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         2  
  1         31  
3              
4             {
5             my $ERRORS;
6              
7             package Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar;
8 1     1   119 use strict;
  1         2  
  1         34  
9 1     1   4 use vars qw($skip $AUTOLOAD );
  1         3  
  1         144  
10             $skip = '\s*';
11              
12             my (%tables, $table_order, @table_comments, @views, @triggers);
13              
14             {
15             local $SIG{__WARN__} = sub {0};
16              
17             # PRETEND TO BE IN Parse::RecDescent NAMESPACE
18             *Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::AUTOLOAD = sub {
19 1     1   10 no strict 'refs';
  1         3  
  1         169  
20 0     0   0 $AUTOLOAD =~ s/^Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar/Parse::RecDescent/;
21 0         0 goto &{$AUTOLOAD};
  0         0  
22             }
23             }
24              
25             push @Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ISA, 'Parse::RecDescent';
26              
27             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
28             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_17_of_rule_sysibm_function
29             {
30 0     0   0 my $thisparser = $_[0];
31 1     1   8 use vars q{$tracelevel};
  1         3  
  1         1163  
32 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
33 0         0 $ERRORS = 0;
34 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_17_of_rule_sysibm_function"};
35              
36 0 0       0 Parse::RecDescent::_trace(
37             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}, $tracelevel
40             ) if defined $::RD_TRACE;
41              
42 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
43              
44 0         0 my $score;
45             my $score_return;
46 0         0 my $_tok;
47 0         0 my $return = undef;
48 0         0 my $_matched = 0;
49 0         0 my $commit = 0;
50 0         0 my @item = ();
51 0         0 my %item = ();
52 0   0     0 my $repeating = defined($_[2]) && $_[2];
53 0   0     0 my $_noactions = defined($_[3]) && $_[3];
54 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
55 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
56 0         0 my $text;
57 0         0 my $lastsep = "";
58 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
59 0         0 $expectation->at($_[1]);
60              
61 0         0 my $thisline;
62 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
63              
64 0   0     0 while (!$_matched && !$commit) {
65              
66 0 0       0 Parse::RecDescent::_trace(
67             q{Trying production: [/DECIMAL/i]},
68             Parse::RecDescent::_tracefirst($_[1]),
69             q{_alternation_1_of_production_17_of_rule_sysibm_function}, $tracelevel
70             ) if defined $::RD_TRACE;
71 0         0 my $thisprod = $thisrule->{"prods"}[0];
72 0         0 $text = $_[1];
73 0         0 my $_savetext;
74 0         0 @item = (q{_alternation_1_of_production_17_of_rule_sysibm_function});
75 0         0 %item = (__RULE__ => q{_alternation_1_of_production_17_of_rule_sysibm_function});
76 0         0 my $repcount = 0;
77              
78 0 0       0 Parse::RecDescent::_trace(
79             q{Trying terminal: [/DECIMAL/i]},
80             Parse::RecDescent::_tracefirst($text),
81             q{_alternation_1_of_production_17_of_rule_sysibm_function}, $tracelevel
82             ) if defined $::RD_TRACE;
83 0         0 $lastsep = "";
84 0         0 $expectation->is(q{})->at($text);
85              
86 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
87             and $text =~ s/\A(?:DECIMAL)//i) {
88              
89 0         0 $expectation->failed();
90 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
91             if defined $::RD_TRACE;
92              
93 0         0 last;
94             }
95 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
96             Parse::RecDescent::_tracefirst($text))
97             if defined $::RD_TRACE;
98 0         0 push @item, $item{__PATTERN1__} = $&;
99              
100 0 0       0 Parse::RecDescent::_trace(
101             q{>>Matched production: [/DECIMAL/i]<<},
102             Parse::RecDescent::_tracefirst($text),
103             q{_alternation_1_of_production_17_of_rule_sysibm_function}, $tracelevel
104             ) if defined $::RD_TRACE;
105 0         0 $_matched = 1;
106 0         0 last;
107             }
108              
109 0   0     0 while (!$_matched && !$commit) {
110              
111 0 0       0 Parse::RecDescent::_trace(
112             q{Trying production: [/DEC/i]},
113             Parse::RecDescent::_tracefirst($_[1]),
114             q{_alternation_1_of_production_17_of_rule_sysibm_function}, $tracelevel
115             ) if defined $::RD_TRACE;
116 0         0 my $thisprod = $thisrule->{"prods"}[1];
117 0         0 $text = $_[1];
118 0         0 my $_savetext;
119 0         0 @item = (q{_alternation_1_of_production_17_of_rule_sysibm_function});
120 0         0 %item = (__RULE__ => q{_alternation_1_of_production_17_of_rule_sysibm_function});
121 0         0 my $repcount = 0;
122              
123 0 0       0 Parse::RecDescent::_trace(
124             q{Trying terminal: [/DEC/i]},
125             Parse::RecDescent::_tracefirst($text),
126             q{_alternation_1_of_production_17_of_rule_sysibm_function}, $tracelevel
127             ) if defined $::RD_TRACE;
128 0         0 $lastsep = "";
129 0         0 $expectation->is(q{})->at($text);
130              
131 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
132             and $text =~ s/\A(?:DEC)//i) {
133              
134 0         0 $expectation->failed();
135 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
136             if defined $::RD_TRACE;
137              
138 0         0 last;
139             }
140 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
141             Parse::RecDescent::_tracefirst($text))
142             if defined $::RD_TRACE;
143 0         0 push @item, $item{__PATTERN1__} = $&;
144              
145 0 0       0 Parse::RecDescent::_trace(
146             q{>>Matched production: [/DEC/i]<<},
147             Parse::RecDescent::_tracefirst($text),
148             q{_alternation_1_of_production_17_of_rule_sysibm_function}, $tracelevel
149             ) if defined $::RD_TRACE;
150 0         0 $_matched = 1;
151 0         0 last;
152             }
153              
154 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
155              
156 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
157 0 0       0 Parse::RecDescent::_trace(
158             q{<>},
159             Parse::RecDescent::_tracefirst($_[1]),
160             q{_alternation_1_of_production_17_of_rule_sysibm_function}, $tracelevel
161             ) if defined $::RD_TRACE;
162 0         0 return undef;
163             }
164 0 0 0     0 if (!defined($return) && defined($score)) {
165 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
166             "", q{_alternation_1_of_production_17_of_rule_sysibm_function}, $tracelevel)
167             if defined $::RD_TRACE;
168 0         0 $return = $score_return;
169             }
170 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
171 0 0       0 $return = $item[$#item] unless defined $return;
172 0 0       0 if (defined $::RD_TRACE) {
173 0         0 Parse::RecDescent::_trace(
174             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
175             q{_alternation_1_of_production_17_of_rule_sysibm_function}, $tracelevel
176             );
177 0         0 Parse::RecDescent::_trace(
178             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
179             Parse::RecDescent::_tracefirst($text),
180             , q{_alternation_1_of_production_17_of_rule_sysibm_function}, $tracelevel
181             );
182             }
183 0         0 $_[1] = $text;
184 0         0 return $return;
185             }
186              
187             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
188             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::triggered_action {
189 0     0   0 my $thisparser = $_[0];
190 1     1   8 use vars q{$tracelevel};
  1         4  
  1         450  
191 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
192 0         0 $ERRORS = 0;
193 0         0 my $thisrule = $thisparser->{"rules"}{"triggered_action"};
194              
195 0 0       0 Parse::RecDescent::_trace(
196             q{Trying rule: [triggered_action]},
197             Parse::RecDescent::_tracefirst($_[1]),
198             q{triggered_action}, $tracelevel
199             ) if defined $::RD_TRACE;
200              
201 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
202              
203 0         0 my $score;
204             my $score_return;
205 0         0 my $_tok;
206 0         0 my $return = undef;
207 0         0 my $_matched = 0;
208 0         0 my $commit = 0;
209 0         0 my @item = ();
210 0         0 my %item = ();
211 0   0     0 my $repeating = defined($_[2]) && $_[2];
212 0   0     0 my $_noactions = defined($_[3]) && $_[3];
213 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
214 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
215 0         0 my $text;
216 0         0 my $lastsep = "";
217 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
218 0         0 $expectation->at($_[1]);
219              
220 0         0 my $thisline;
221 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
222              
223 0   0     0 while (!$_matched && !$commit) {
224              
225 0 0       0 Parse::RecDescent::_trace(
226             q{Trying production: [when_clause SQL_procedure_statement]},
227             Parse::RecDescent::_tracefirst($_[1]),
228             q{triggered_action}, $tracelevel
229             ) if defined $::RD_TRACE;
230 0         0 my $thisprod = $thisrule->{"prods"}[0];
231 0         0 $text = $_[1];
232 0         0 my $_savetext;
233 0         0 @item = (q{triggered_action});
234 0         0 %item = (__RULE__ => q{triggered_action});
235 0         0 my $repcount = 0;
236              
237 0 0       0 Parse::RecDescent::_trace(
238             q{Trying repeated subrule: [when_clause]},
239             Parse::RecDescent::_tracefirst($text),
240             q{triggered_action}, $tracelevel
241             ) if defined $::RD_TRACE;
242 0         0 $expectation->is(q{})->at($text);
243              
244 0 0       0 unless (defined(
245             $_tok = $thisparser->_parserepeat(
246             $text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::when_clause,
247             0, 1, $_noactions, $expectation, undef
248             )
249             )) {
250 0 0       0 Parse::RecDescent::_trace(
251             q{<>},
252             Parse::RecDescent::_tracefirst($text),
253             q{triggered_action}, $tracelevel
254             ) if defined $::RD_TRACE;
255 0         0 last;
256             }
257             Parse::RecDescent::_trace(
258 0 0       0 q{>>Matched repeated subrule: [when_clause]<< (} . @$_tok . q{ times)},
259              
260             Parse::RecDescent::_tracefirst($text),
261             q{triggered_action},
262             $tracelevel
263             ) if defined $::RD_TRACE;
264 0         0 $item{q{when_clause(?)}} = $_tok;
265 0         0 push @item, $_tok;
266              
267 0 0       0 Parse::RecDescent::_trace(
268             q{Trying subrule: [SQL_procedure_statement]},
269             Parse::RecDescent::_tracefirst($text),
270             q{triggered_action}, $tracelevel
271             ) if defined $::RD_TRACE;
272 0         0 if (1) {
273 1     1   8 no strict qw{refs};
  1         1  
  1         456  
274 0         0 $expectation->is(q{SQL_procedure_statement})->at($text);
275 0 0       0 unless (defined(
276             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SQL_procedure_statement(
277 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
278             )
279             )) {
280              
281 0 0       0 Parse::RecDescent::_trace(
282             q{<>},
283             Parse::RecDescent::_tracefirst($text),
284             q{triggered_action}, $tracelevel
285             ) if defined $::RD_TRACE;
286 0         0 $expectation->failed();
287 0         0 last;
288             }
289             Parse::RecDescent::_trace(
290 0 0       0 q{>>Matched subrule: [SQL_procedure_statement]<< (return value: [} . $_tok . q{]},
291              
292             Parse::RecDescent::_tracefirst($text),
293             q{triggered_action},
294             $tracelevel
295             ) if defined $::RD_TRACE;
296 0         0 $item{q{SQL_procedure_statement}} = $_tok;
297 0         0 push @item, $_tok;
298              
299             }
300              
301             Parse::RecDescent::_trace(
302 0 0       0 q{Trying action},
303             Parse::RecDescent::_tracefirst($text),
304             q{triggered_action}, $tracelevel
305             ) if defined $::RD_TRACE;
306              
307 0 0       0 $_tok = ($_noactions) ? 0 : do {
308             $return = {
309             'condition' => $item[1][0],
310 0         0 'statement' => $item{'SQL_procedure_statement'}
311             };
312             };
313 0 0       0 unless (defined $_tok) {
314 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
315             if defined $::RD_TRACE;
316 0         0 last;
317             }
318 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])},
319             Parse::RecDescent::_tracefirst($text))
320             if defined $::RD_TRACE;
321 0         0 push @item, $_tok;
322 0         0 $item{__ACTION1__} = $_tok;
323              
324 0 0       0 Parse::RecDescent::_trace(
325             q{>>Matched production: [when_clause SQL_procedure_statement]<<},
326             Parse::RecDescent::_tracefirst($text),
327             q{triggered_action}, $tracelevel
328             ) if defined $::RD_TRACE;
329 0         0 $_matched = 1;
330 0         0 last;
331             }
332              
333 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
334              
335 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
336 0 0       0 Parse::RecDescent::_trace(
337             q{<>},
338             Parse::RecDescent::_tracefirst($_[1]),
339             q{triggered_action}, $tracelevel
340             ) if defined $::RD_TRACE;
341 0         0 return undef;
342             }
343 0 0 0     0 if (!defined($return) && defined($score)) {
344 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{triggered_action}, $tracelevel)
345             if defined $::RD_TRACE;
346 0         0 $return = $score_return;
347             }
348 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
349 0 0       0 $return = $item[$#item] unless defined $return;
350 0 0       0 if (defined $::RD_TRACE) {
351 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
352             "", q{triggered_action}, $tracelevel);
353 0         0 Parse::RecDescent::_trace(
354             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
355             Parse::RecDescent::_tracefirst($text),
356             , q{triggered_action}, $tracelevel
357             );
358             }
359 0         0 $_[1] = $text;
360 0         0 return $return;
361             }
362              
363             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
364             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_2_of_rule_search_condition
365             {
366 0     0   0 my $thisparser = $_[0];
367 1     1   6 use vars q{$tracelevel};
  1         2  
  1         378  
368 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
369 0         0 $ERRORS = 0;
370 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_2_of_rule_search_condition"};
371              
372 0 0       0 Parse::RecDescent::_trace(
373             q{Trying rule: [_alternation_1_of_production_2_of_rule_search_condition]},
374             Parse::RecDescent::_tracefirst($_[1]),
375             q{_alternation_1_of_production_2_of_rule_search_condition}, $tracelevel
376             ) if defined $::RD_TRACE;
377              
378 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
379              
380 0         0 my $score;
381             my $score_return;
382 0         0 my $_tok;
383 0         0 my $return = undef;
384 0         0 my $_matched = 0;
385 0         0 my $commit = 0;
386 0         0 my @item = ();
387 0         0 my %item = ();
388 0   0     0 my $repeating = defined($_[2]) && $_[2];
389 0   0     0 my $_noactions = defined($_[3]) && $_[3];
390 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
391 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
392 0         0 my $text;
393 0         0 my $lastsep = "";
394 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
395 0         0 $expectation->at($_[1]);
396              
397 0         0 my $thisline;
398 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
399              
400 0   0     0 while (!$_matched && !$commit) {
401              
402 0 0       0 Parse::RecDescent::_trace(
403             q{Trying production: [predicate /SELECTIVITY/i]},
404             Parse::RecDescent::_tracefirst($_[1]),
405             q{_alternation_1_of_production_2_of_rule_search_condition}, $tracelevel
406             ) if defined $::RD_TRACE;
407 0         0 my $thisprod = $thisrule->{"prods"}[0];
408 0         0 $text = $_[1];
409 0         0 my $_savetext;
410 0         0 @item = (q{_alternation_1_of_production_2_of_rule_search_condition});
411 0         0 %item = (__RULE__ => q{_alternation_1_of_production_2_of_rule_search_condition});
412 0         0 my $repcount = 0;
413              
414 0 0       0 Parse::RecDescent::_trace(
415             q{Trying subrule: [predicate]},
416             Parse::RecDescent::_tracefirst($text),
417             q{_alternation_1_of_production_2_of_rule_search_condition}, $tracelevel
418             ) if defined $::RD_TRACE;
419 0         0 if (1) {
420 1     1   43 no strict qw{refs};
  1         3  
  1         786  
421 0         0 $expectation->is(q{})->at($text);
422 0 0       0 unless (defined(
423             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::predicate(
424 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
425             )
426             )) {
427              
428 0 0       0 Parse::RecDescent::_trace(
429             q{<>},
430             Parse::RecDescent::_tracefirst($text),
431             q{_alternation_1_of_production_2_of_rule_search_condition}, $tracelevel
432             ) if defined $::RD_TRACE;
433 0         0 $expectation->failed();
434 0         0 last;
435             }
436             Parse::RecDescent::_trace(
437 0 0       0 q{>>Matched subrule: [predicate]<< (return value: [} . $_tok . q{]},
438              
439             Parse::RecDescent::_tracefirst($text),
440             q{_alternation_1_of_production_2_of_rule_search_condition},
441             $tracelevel
442             ) if defined $::RD_TRACE;
443 0         0 $item{q{predicate}} = $_tok;
444 0         0 push @item, $_tok;
445              
446             }
447              
448             Parse::RecDescent::_trace(
449 0 0       0 q{Trying repeated subrule: [/SELECTIVITY/i]},
450             Parse::RecDescent::_tracefirst($text),
451             q{_alternation_1_of_production_2_of_rule_search_condition}, $tracelevel
452             ) if defined $::RD_TRACE;
453 0         0 $expectation->is(q{/SELECTIVITY/i})->at($text);
454              
455 0 0       0 unless (defined(
456             $_tok = $thisparser->_parserepeat(
457             $text,
458             \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition,
459             0,
460             1,
461             $_noactions,
462             $expectation,
463             undef
464             )
465             )) {
466 0 0       0 Parse::RecDescent::_trace(
467             q{<>},
468             Parse::RecDescent::_tracefirst($text),
469             q{_alternation_1_of_production_2_of_rule_search_condition}, $tracelevel
470             ) if defined $::RD_TRACE;
471 0         0 last;
472             }
473             Parse::RecDescent::_trace(
474 0 0       0 q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition]<< (}
475             . @$_tok
476             . q{ times)},
477              
478             Parse::RecDescent::_tracefirst($text),
479             q{_alternation_1_of_production_2_of_rule_search_condition},
480             $tracelevel
481             ) if defined $::RD_TRACE;
482 0         0 $item{q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition(?)}}
483             = $_tok;
484 0         0 push @item, $_tok;
485              
486 0 0       0 Parse::RecDescent::_trace(
487             q{>>Matched production: [predicate /SELECTIVITY/i]<<},
488             Parse::RecDescent::_tracefirst($text),
489             q{_alternation_1_of_production_2_of_rule_search_condition}, $tracelevel
490             ) if defined $::RD_TRACE;
491 0         0 $_matched = 1;
492 0         0 last;
493             }
494              
495 0   0     0 while (!$_matched && !$commit) {
496              
497 0 0       0 Parse::RecDescent::_trace(
498             q{Trying production: ['(' search_condition ')']},
499             Parse::RecDescent::_tracefirst($_[1]),
500             q{_alternation_1_of_production_2_of_rule_search_condition}, $tracelevel
501             ) if defined $::RD_TRACE;
502 0         0 my $thisprod = $thisrule->{"prods"}[1];
503 0         0 $text = $_[1];
504 0         0 my $_savetext;
505 0         0 @item = (q{_alternation_1_of_production_2_of_rule_search_condition});
506 0         0 %item = (__RULE__ => q{_alternation_1_of_production_2_of_rule_search_condition});
507 0         0 my $repcount = 0;
508              
509 0 0       0 Parse::RecDescent::_trace(
510             q{Trying terminal: ['(']},
511             Parse::RecDescent::_tracefirst($text),
512             q{_alternation_1_of_production_2_of_rule_search_condition}, $tracelevel
513             ) if defined $::RD_TRACE;
514 0         0 $lastsep = "";
515 0         0 $expectation->is(q{})->at($text);
516              
517 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
518             and $text =~ s/\A\(//) {
519              
520 0         0 $expectation->failed();
521 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
522             if defined $::RD_TRACE;
523 0         0 last;
524             }
525 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
526             Parse::RecDescent::_tracefirst($text))
527             if defined $::RD_TRACE;
528 0         0 push @item, $item{__STRING1__} = $&;
529              
530 0 0       0 Parse::RecDescent::_trace(
531             q{Trying subrule: [search_condition]},
532             Parse::RecDescent::_tracefirst($text),
533             q{_alternation_1_of_production_2_of_rule_search_condition}, $tracelevel
534             ) if defined $::RD_TRACE;
535 0         0 if (1) {
536 1     1   26 no strict qw{refs};
  1         7  
  1         1013  
537 0         0 $expectation->is(q{search_condition})->at($text);
538 0 0       0 unless (defined(
539             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition(
540 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
541             )
542             )) {
543              
544 0 0       0 Parse::RecDescent::_trace(
545             q{<>},
546             Parse::RecDescent::_tracefirst($text),
547             q{_alternation_1_of_production_2_of_rule_search_condition}, $tracelevel
548             ) if defined $::RD_TRACE;
549 0         0 $expectation->failed();
550 0         0 last;
551             }
552             Parse::RecDescent::_trace(
553 0 0       0 q{>>Matched subrule: [search_condition]<< (return value: [} . $_tok . q{]},
554              
555             Parse::RecDescent::_tracefirst($text),
556             q{_alternation_1_of_production_2_of_rule_search_condition},
557             $tracelevel
558             ) if defined $::RD_TRACE;
559 0         0 $item{q{search_condition}} = $_tok;
560 0         0 push @item, $_tok;
561              
562             }
563              
564             Parse::RecDescent::_trace(
565 0 0       0 q{Trying terminal: [')']},
566             Parse::RecDescent::_tracefirst($text),
567             q{_alternation_1_of_production_2_of_rule_search_condition}, $tracelevel
568             ) if defined $::RD_TRACE;
569 0         0 $lastsep = "";
570 0         0 $expectation->is(q{')'})->at($text);
571              
572 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
573             and $text =~ s/\A\)//) {
574              
575 0         0 $expectation->failed();
576 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
577             if defined $::RD_TRACE;
578 0         0 last;
579             }
580 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
581             Parse::RecDescent::_tracefirst($text))
582             if defined $::RD_TRACE;
583 0         0 push @item, $item{__STRING2__} = $&;
584              
585 0 0       0 Parse::RecDescent::_trace(
586             q{>>Matched production: ['(' search_condition ')']<<},
587             Parse::RecDescent::_tracefirst($text),
588             q{_alternation_1_of_production_2_of_rule_search_condition}, $tracelevel
589             ) if defined $::RD_TRACE;
590 0         0 $_matched = 1;
591 0         0 last;
592             }
593              
594 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
595              
596 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
597 0 0       0 Parse::RecDescent::_trace(
598             q{<>},
599             Parse::RecDescent::_tracefirst($_[1]),
600             q{_alternation_1_of_production_2_of_rule_search_condition}, $tracelevel
601             ) if defined $::RD_TRACE;
602 0         0 return undef;
603             }
604 0 0 0     0 if (!defined($return) && defined($score)) {
605 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
606             "", q{_alternation_1_of_production_2_of_rule_search_condition}, $tracelevel)
607             if defined $::RD_TRACE;
608 0         0 $return = $score_return;
609             }
610 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
611 0 0       0 $return = $item[$#item] unless defined $return;
612 0 0       0 if (defined $::RD_TRACE) {
613 0         0 Parse::RecDescent::_trace(
614             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
615             q{_alternation_1_of_production_2_of_rule_search_condition}, $tracelevel
616             );
617 0         0 Parse::RecDescent::_trace(
618             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
619             Parse::RecDescent::_tracefirst($text),
620             , q{_alternation_1_of_production_2_of_rule_search_condition}, $tracelevel
621             );
622             }
623 0         0 $_[1] = $text;
624 0         0 return $return;
625             }
626              
627             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
628             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::name1 {
629 0     0   0 my $thisparser = $_[0];
630 1     1   11 use vars q{$tracelevel};
  1         4  
  1         540  
631 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
632 0         0 $ERRORS = 0;
633 0         0 my $thisrule = $thisparser->{"rules"}{"name1"};
634              
635 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [name1]}, Parse::RecDescent::_tracefirst($_[1]), q{name1}, $tracelevel)
636             if defined $::RD_TRACE;
637              
638 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
639              
640 0         0 my $score;
641             my $score_return;
642 0         0 my $_tok;
643 0         0 my $return = undef;
644 0         0 my $_matched = 0;
645 0         0 my $commit = 0;
646 0         0 my @item = ();
647 0         0 my %item = ();
648 0   0     0 my $repeating = defined($_[2]) && $_[2];
649 0   0     0 my $_noactions = defined($_[3]) && $_[3];
650 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
651 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
652 0         0 my $text;
653 0         0 my $lastsep = "";
654 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
655 0         0 $expectation->at($_[1]);
656              
657 0         0 my $thisline;
658 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
659              
660 0   0     0 while (!$_matched && !$commit) {
661              
662 0 0       0 Parse::RecDescent::_trace(
663             q{Trying production: [NAME]},
664             Parse::RecDescent::_tracefirst($_[1]),
665             q{name1}, $tracelevel
666             ) if defined $::RD_TRACE;
667 0         0 my $thisprod = $thisrule->{"prods"}[0];
668 0         0 $text = $_[1];
669 0         0 my $_savetext;
670 0         0 @item = (q{name1});
671 0         0 %item = (__RULE__ => q{name1});
672 0         0 my $repcount = 0;
673              
674 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [NAME]}, Parse::RecDescent::_tracefirst($text), q{name1}, $tracelevel)
675             if defined $::RD_TRACE;
676 0         0 if (1) {
677 1     1   11 no strict qw{refs};
  1         4  
  1         721  
678 0         0 $expectation->is(q{})->at($text);
679 0 0       0 unless (defined(
680             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME(
681 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
682             )
683             )) {
684              
685 0 0       0 Parse::RecDescent::_trace(
686             q{<>},
687             Parse::RecDescent::_tracefirst($text),
688             q{name1}, $tracelevel
689             ) if defined $::RD_TRACE;
690 0         0 $expectation->failed();
691 0         0 last;
692             }
693             Parse::RecDescent::_trace(
694 0 0       0 q{>>Matched subrule: [NAME]<< (return value: [} . $_tok . q{]},
695              
696             Parse::RecDescent::_tracefirst($text),
697             q{name1},
698             $tracelevel
699             ) if defined $::RD_TRACE;
700 0         0 $item{q{NAME}} = $_tok;
701 0         0 push @item, $_tok;
702              
703             }
704              
705             Parse::RecDescent::_trace(
706 0 0       0 q{>>Matched production: [NAME]<<},
707             Parse::RecDescent::_tracefirst($text),
708             q{name1}, $tracelevel
709             ) if defined $::RD_TRACE;
710 0         0 $_matched = 1;
711 0         0 last;
712             }
713              
714 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
715              
716 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
717 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{name1}, $tracelevel)
718             if defined $::RD_TRACE;
719 0         0 return undef;
720             }
721 0 0 0     0 if (!defined($return) && defined($score)) {
722 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{name1}, $tracelevel)
723             if defined $::RD_TRACE;
724 0         0 $return = $score_return;
725             }
726 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
727 0 0       0 $return = $item[$#item] unless defined $return;
728 0 0       0 if (defined $::RD_TRACE) {
729 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{name1}, $tracelevel);
730 0         0 Parse::RecDescent::_trace(
731             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
732             Parse::RecDescent::_tracefirst($text),
733             , q{name1}, $tracelevel
734             );
735             }
736 0         0 $_[1] = $text;
737 0         0 return $return;
738             }
739              
740             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
741             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_cond {
742 0     0   0 my $thisparser = $_[0];
743 1     1   10 use vars q{$tracelevel};
  1         3  
  1         476  
744 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
745 0         0 $ERRORS = 0;
746 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_2_of_production_1_of_rule_cond"};
747              
748 0 0       0 Parse::RecDescent::_trace(
749             q{Trying rule: [_alternation_2_of_production_1_of_rule_cond]},
750             Parse::RecDescent::_tracefirst($_[1]),
751             q{_alternation_2_of_production_1_of_rule_cond}, $tracelevel
752             ) if defined $::RD_TRACE;
753              
754 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
755              
756 0         0 my $score;
757             my $score_return;
758 0         0 my $_tok;
759 0         0 my $return = undef;
760 0         0 my $_matched = 0;
761 0         0 my $commit = 0;
762 0         0 my @item = ();
763 0         0 my %item = ();
764 0   0     0 my $repeating = defined($_[2]) && $_[2];
765 0   0     0 my $_noactions = defined($_[3]) && $_[3];
766 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
767 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
768 0         0 my $text;
769 0         0 my $lastsep = "";
770 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
771 0         0 $expectation->at($_[1]);
772              
773 0         0 my $thisline;
774 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
775              
776 0   0     0 while (!$_matched && !$commit) {
777              
778 0 0       0 Parse::RecDescent::_trace(
779             q{Trying production: [predicate /SELECTIVITY/i]},
780             Parse::RecDescent::_tracefirst($_[1]),
781             q{_alternation_2_of_production_1_of_rule_cond}, $tracelevel
782             ) if defined $::RD_TRACE;
783 0         0 my $thisprod = $thisrule->{"prods"}[0];
784 0         0 $text = $_[1];
785 0         0 my $_savetext;
786 0         0 @item = (q{_alternation_2_of_production_1_of_rule_cond});
787 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_cond});
788 0         0 my $repcount = 0;
789              
790 0 0       0 Parse::RecDescent::_trace(
791             q{Trying subrule: [predicate]},
792             Parse::RecDescent::_tracefirst($text),
793             q{_alternation_2_of_production_1_of_rule_cond}, $tracelevel
794             ) if defined $::RD_TRACE;
795 0         0 if (1) {
796 1     1   11 no strict qw{refs};
  1         4  
  1         716  
797 0         0 $expectation->is(q{})->at($text);
798 0 0       0 unless (defined(
799             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::predicate(
800 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
801             )
802             )) {
803              
804 0 0       0 Parse::RecDescent::_trace(
805             q{<>},
806             Parse::RecDescent::_tracefirst($text),
807             q{_alternation_2_of_production_1_of_rule_cond}, $tracelevel
808             ) if defined $::RD_TRACE;
809 0         0 $expectation->failed();
810 0         0 last;
811             }
812             Parse::RecDescent::_trace(
813 0 0       0 q{>>Matched subrule: [predicate]<< (return value: [} . $_tok . q{]},
814              
815             Parse::RecDescent::_tracefirst($text),
816             q{_alternation_2_of_production_1_of_rule_cond},
817             $tracelevel
818             ) if defined $::RD_TRACE;
819 0         0 $item{q{predicate}} = $_tok;
820 0         0 push @item, $_tok;
821              
822             }
823              
824             Parse::RecDescent::_trace(
825 0 0       0 q{Trying repeated subrule: [/SELECTIVITY/i]},
826             Parse::RecDescent::_tracefirst($text),
827             q{_alternation_2_of_production_1_of_rule_cond}, $tracelevel
828             ) if defined $::RD_TRACE;
829 0         0 $expectation->is(q{/SELECTIVITY/i})->at($text);
830              
831 0 0       0 unless (defined(
832             $_tok = $thisparser->_parserepeat(
833             $text,
834             \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond,
835             0,
836             1,
837             $_noactions,
838             $expectation,
839             undef
840             )
841             )) {
842 0 0       0 Parse::RecDescent::_trace(
843             q{<>},
844             Parse::RecDescent::_tracefirst($text),
845             q{_alternation_2_of_production_1_of_rule_cond}, $tracelevel
846             ) if defined $::RD_TRACE;
847 0         0 last;
848             }
849             Parse::RecDescent::_trace(
850 0 0       0 q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond]<< (}
851             . @$_tok
852             . q{ times)},
853              
854             Parse::RecDescent::_tracefirst($text),
855             q{_alternation_2_of_production_1_of_rule_cond},
856             $tracelevel
857             ) if defined $::RD_TRACE;
858 0         0 $item{q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond(?)}} = $_tok;
859 0         0 push @item, $_tok;
860              
861 0 0       0 Parse::RecDescent::_trace(
862             q{>>Matched production: [predicate /SELECTIVITY/i]<<},
863             Parse::RecDescent::_tracefirst($text),
864             q{_alternation_2_of_production_1_of_rule_cond}, $tracelevel
865             ) if defined $::RD_TRACE;
866 0         0 $_matched = 1;
867 0         0 last;
868             }
869              
870 0   0     0 while (!$_matched && !$commit) {
871              
872 0 0       0 Parse::RecDescent::_trace(
873             q{Trying production: ['(' search_condition ')']},
874             Parse::RecDescent::_tracefirst($_[1]),
875             q{_alternation_2_of_production_1_of_rule_cond}, $tracelevel
876             ) if defined $::RD_TRACE;
877 0         0 my $thisprod = $thisrule->{"prods"}[1];
878 0         0 $text = $_[1];
879 0         0 my $_savetext;
880 0         0 @item = (q{_alternation_2_of_production_1_of_rule_cond});
881 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_cond});
882 0         0 my $repcount = 0;
883              
884 0 0       0 Parse::RecDescent::_trace(
885             q{Trying terminal: ['(']},
886             Parse::RecDescent::_tracefirst($text),
887             q{_alternation_2_of_production_1_of_rule_cond}, $tracelevel
888             ) if defined $::RD_TRACE;
889 0         0 $lastsep = "";
890 0         0 $expectation->is(q{})->at($text);
891              
892 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
893             and $text =~ s/\A\(//) {
894              
895 0         0 $expectation->failed();
896 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
897             if defined $::RD_TRACE;
898 0         0 last;
899             }
900 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
901             Parse::RecDescent::_tracefirst($text))
902             if defined $::RD_TRACE;
903 0         0 push @item, $item{__STRING1__} = $&;
904              
905 0 0       0 Parse::RecDescent::_trace(
906             q{Trying subrule: [search_condition]},
907             Parse::RecDescent::_tracefirst($text),
908             q{_alternation_2_of_production_1_of_rule_cond}, $tracelevel
909             ) if defined $::RD_TRACE;
910 0         0 if (1) {
911 1     1   8 no strict qw{refs};
  1         2  
  1         576  
912 0         0 $expectation->is(q{search_condition})->at($text);
913 0 0       0 unless (defined(
914             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition(
915 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
916             )
917             )) {
918              
919 0 0       0 Parse::RecDescent::_trace(
920             q{<>},
921             Parse::RecDescent::_tracefirst($text),
922             q{_alternation_2_of_production_1_of_rule_cond}, $tracelevel
923             ) if defined $::RD_TRACE;
924 0         0 $expectation->failed();
925 0         0 last;
926             }
927             Parse::RecDescent::_trace(
928 0 0       0 q{>>Matched subrule: [search_condition]<< (return value: [} . $_tok . q{]},
929              
930             Parse::RecDescent::_tracefirst($text),
931             q{_alternation_2_of_production_1_of_rule_cond},
932             $tracelevel
933             ) if defined $::RD_TRACE;
934 0         0 $item{q{search_condition}} = $_tok;
935 0         0 push @item, $_tok;
936              
937             }
938              
939             Parse::RecDescent::_trace(
940 0 0       0 q{Trying terminal: [')']},
941             Parse::RecDescent::_tracefirst($text),
942             q{_alternation_2_of_production_1_of_rule_cond}, $tracelevel
943             ) if defined $::RD_TRACE;
944 0         0 $lastsep = "";
945 0         0 $expectation->is(q{')'})->at($text);
946              
947 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
948             and $text =~ s/\A\)//) {
949              
950 0         0 $expectation->failed();
951 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
952             if defined $::RD_TRACE;
953 0         0 last;
954             }
955 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
956             Parse::RecDescent::_tracefirst($text))
957             if defined $::RD_TRACE;
958 0         0 push @item, $item{__STRING2__} = $&;
959              
960 0 0       0 Parse::RecDescent::_trace(
961             q{>>Matched production: ['(' search_condition ')']<<},
962             Parse::RecDescent::_tracefirst($text),
963             q{_alternation_2_of_production_1_of_rule_cond}, $tracelevel
964             ) if defined $::RD_TRACE;
965 0         0 $_matched = 1;
966 0         0 last;
967             }
968              
969 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
970              
971 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
972 0 0       0 Parse::RecDescent::_trace(
973             q{<>},
974             Parse::RecDescent::_tracefirst($_[1]),
975             q{_alternation_2_of_production_1_of_rule_cond}, $tracelevel
976             ) if defined $::RD_TRACE;
977 0         0 return undef;
978             }
979 0 0 0     0 if (!defined($return) && defined($score)) {
980 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
981             "", q{_alternation_2_of_production_1_of_rule_cond}, $tracelevel)
982             if defined $::RD_TRACE;
983 0         0 $return = $score_return;
984             }
985 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
986 0 0       0 $return = $item[$#item] unless defined $return;
987 0 0       0 if (defined $::RD_TRACE) {
988 0         0 Parse::RecDescent::_trace(
989             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
990             q{_alternation_2_of_production_1_of_rule_cond}, $tracelevel
991             );
992 0         0 Parse::RecDescent::_trace(
993             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
994             Parse::RecDescent::_tracefirst($text),
995             , q{_alternation_2_of_production_1_of_rule_cond}, $tracelevel
996             );
997             }
998 0         0 $_[1] = $text;
999 0         0 return $return;
1000             }
1001              
1002             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1003             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_expression {
1004 0     0   0 my $thisparser = $_[0];
1005 1     1   8 use vars q{$tracelevel};
  1         2  
  1         465  
1006 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
1007 0         0 $ERRORS = 0;
1008 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_expression"};
1009              
1010 0 0       0 Parse::RecDescent::_trace(
1011             q{Trying rule: [_alternation_1_of_production_1_of_rule_expression]},
1012             Parse::RecDescent::_tracefirst($_[1]),
1013             q{_alternation_1_of_production_1_of_rule_expression}, $tracelevel
1014             ) if defined $::RD_TRACE;
1015              
1016 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
1017              
1018 0         0 my $score;
1019             my $score_return;
1020 0         0 my $_tok;
1021 0         0 my $return = undef;
1022 0         0 my $_matched = 0;
1023 0         0 my $commit = 0;
1024 0         0 my @item = ();
1025 0         0 my %item = ();
1026 0   0     0 my $repeating = defined($_[2]) && $_[2];
1027 0   0     0 my $_noactions = defined($_[3]) && $_[3];
1028 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
1029 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
1030 0         0 my $text;
1031 0         0 my $lastsep = "";
1032 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
1033 0         0 $expectation->at($_[1]);
1034              
1035 0         0 my $thisline;
1036 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1037              
1038 0   0     0 while (!$_matched && !$commit) {
1039              
1040 0 0       0 Parse::RecDescent::_trace(
1041             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]},
1042             Parse::RecDescent::_tracefirst($_[1]),
1043             q{_alternation_1_of_production_1_of_rule_expression},
1044             $tracelevel
1045             ) if defined $::RD_TRACE;
1046 0         0 my $thisprod = $thisrule->{"prods"}[0];
1047 0         0 $text = $_[1];
1048 0         0 my $_savetext;
1049 0         0 @item = (q{_alternation_1_of_production_1_of_rule_expression});
1050 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_expression});
1051 0         0 my $repcount = 0;
1052              
1053 0 0       0 Parse::RecDescent::_trace(
1054             q{Trying repeated subrule: ['+', or '-']},
1055             Parse::RecDescent::_tracefirst($text),
1056             q{_alternation_1_of_production_1_of_rule_expression}, $tracelevel
1057             ) if defined $::RD_TRACE;
1058 0         0 $expectation->is(q{})->at($text);
1059              
1060 0 0       0 unless (defined(
1061             $_tok = $thisparser->_parserepeat(
1062             $text,
1063             \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression,
1064             0,
1065             1,
1066             $_noactions,
1067             $expectation,
1068             undef
1069             )
1070             )) {
1071 0 0       0 Parse::RecDescent::_trace(
1072             q{<>}, Parse::RecDescent::_tracefirst($text),
1073             q{_alternation_1_of_production_1_of_rule_expression}, $tracelevel
1074             ) if defined $::RD_TRACE;
1075 0         0 last;
1076             }
1077             Parse::RecDescent::_trace(
1078 0 0       0 q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression]<< (}
1079             . @$_tok
1080             . q{ times)},
1081              
1082             Parse::RecDescent::_tracefirst($text),
1083             q{_alternation_1_of_production_1_of_rule_expression},
1084             $tracelevel
1085             ) if defined $::RD_TRACE;
1086 0         0 $item{q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression(?)}} = $_tok;
1087 0         0 push @item, $_tok;
1088              
1089 0 0       0 Parse::RecDescent::_trace(
1090             q{Trying subrule: [_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression]},
1091             Parse::RecDescent::_tracefirst($text),
1092             q{_alternation_1_of_production_1_of_rule_expression},
1093             $tracelevel
1094             ) if defined $::RD_TRACE;
1095 0         0 if (1) {
1096 1     1   8 no strict qw{refs};
  1         2  
  1         427  
1097 0         0 $expectation->is(
1098             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}
1099             )->at($text);
1100 0 0       0 unless (defined(
1101             $_tok
1102             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression(
1103 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
1104             )
1105             )) {
1106              
1107 0 0       0 Parse::RecDescent::_trace(
1108             q{<>},
1109             Parse::RecDescent::_tracefirst($text),
1110             q{_alternation_1_of_production_1_of_rule_expression},
1111             $tracelevel
1112             ) if defined $::RD_TRACE;
1113 0         0 $expectation->failed();
1114 0         0 last;
1115             }
1116             Parse::RecDescent::_trace(
1117 0 0       0 q{>>Matched subrule: [_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression]<< (return value: [}
1118             . $_tok . q{]},
1119              
1120             Parse::RecDescent::_tracefirst($text),
1121             q{_alternation_1_of_production_1_of_rule_expression},
1122             $tracelevel
1123             ) if defined $::RD_TRACE;
1124 0         0 $item{q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}} = $_tok;
1125 0         0 push @item, $_tok;
1126              
1127             }
1128              
1129             Parse::RecDescent::_trace(
1130 0 0       0 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]<<},
1131             Parse::RecDescent::_tracefirst($text),
1132             q{_alternation_1_of_production_1_of_rule_expression},
1133             $tracelevel
1134             ) if defined $::RD_TRACE;
1135 0         0 $_matched = 1;
1136 0         0 last;
1137             }
1138              
1139 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
1140              
1141 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
1142 0 0       0 Parse::RecDescent::_trace(
1143             q{<>},
1144             Parse::RecDescent::_tracefirst($_[1]),
1145             q{_alternation_1_of_production_1_of_rule_expression}, $tracelevel
1146             ) if defined $::RD_TRACE;
1147 0         0 return undef;
1148             }
1149 0 0 0     0 if (!defined($return) && defined($score)) {
1150 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
1151             "", q{_alternation_1_of_production_1_of_rule_expression}, $tracelevel)
1152             if defined $::RD_TRACE;
1153 0         0 $return = $score_return;
1154             }
1155 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
1156 0 0       0 $return = $item[$#item] unless defined $return;
1157 0 0       0 if (defined $::RD_TRACE) {
1158 0         0 Parse::RecDescent::_trace(
1159             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
1160             q{_alternation_1_of_production_1_of_rule_expression}, $tracelevel
1161             );
1162 0         0 Parse::RecDescent::_trace(
1163             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
1164             Parse::RecDescent::_tracefirst($text),
1165             , q{_alternation_1_of_production_1_of_rule_expression}, $tracelevel
1166             );
1167             }
1168 0         0 $_[1] = $text;
1169 0         0 return $return;
1170             }
1171              
1172             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1173             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SCHEMA {
1174 0     0   0 my $thisparser = $_[0];
1175 1     1   7 use vars q{$tracelevel};
  1         1  
  1         1545  
1176 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
1177 0         0 $ERRORS = 0;
1178 0         0 my $thisrule = $thisparser->{"rules"}{"SCHEMA"};
1179              
1180 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [SCHEMA]}, Parse::RecDescent::_tracefirst($_[1]), q{SCHEMA}, $tracelevel)
1181             if defined $::RD_TRACE;
1182              
1183 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
1184              
1185 0         0 my $score;
1186             my $score_return;
1187 0         0 my $_tok;
1188 0         0 my $return = undef;
1189 0         0 my $_matched = 0;
1190 0         0 my $commit = 0;
1191 0         0 my @item = ();
1192 0         0 my %item = ();
1193 0   0     0 my $repeating = defined($_[2]) && $_[2];
1194 0   0     0 my $_noactions = defined($_[3]) && $_[3];
1195 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
1196 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
1197 0         0 my $text;
1198 0         0 my $lastsep = "";
1199 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
1200 0         0 $expectation->at($_[1]);
1201              
1202 0         0 my $thisline;
1203 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1204              
1205 0   0     0 while (!$_matched && !$commit) {
1206              
1207 0 0       0 Parse::RecDescent::_trace(
1208             q{Trying production: [/\\w+/]},
1209             Parse::RecDescent::_tracefirst($_[1]),
1210             q{SCHEMA}, $tracelevel
1211             ) if defined $::RD_TRACE;
1212 0         0 my $thisprod = $thisrule->{"prods"}[0];
1213 0         0 $text = $_[1];
1214 0         0 my $_savetext;
1215 0         0 @item = (q{SCHEMA});
1216 0         0 %item = (__RULE__ => q{SCHEMA});
1217 0         0 my $repcount = 0;
1218              
1219 0 0       0 Parse::RecDescent::_trace(
1220             q{Trying terminal: [/\\w+/]},
1221             Parse::RecDescent::_tracefirst($text),
1222             q{SCHEMA}, $tracelevel
1223             ) if defined $::RD_TRACE;
1224 0         0 $lastsep = "";
1225 0         0 $expectation->is(q{})->at($text);
1226              
1227 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
1228             and $text =~ s/\A(?:\w+)//) {
1229              
1230 0         0 $expectation->failed();
1231 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
1232             if defined $::RD_TRACE;
1233              
1234 0         0 last;
1235             }
1236 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
1237             Parse::RecDescent::_tracefirst($text))
1238             if defined $::RD_TRACE;
1239 0         0 push @item, $item{__PATTERN1__} = $&;
1240              
1241 0 0       0 Parse::RecDescent::_trace(
1242             q{>>Matched production: [/\\w+/]<<},
1243             Parse::RecDescent::_tracefirst($text),
1244             q{SCHEMA}, $tracelevel
1245             ) if defined $::RD_TRACE;
1246 0         0 $_matched = 1;
1247 0         0 last;
1248             }
1249              
1250 0   0     0 while (!$_matched && !$commit) {
1251              
1252 0 0       0 Parse::RecDescent::_trace(
1253             q{Trying production: [/\\w\{1,128\}/]},
1254             Parse::RecDescent::_tracefirst($_[1]),
1255             q{SCHEMA}, $tracelevel
1256             ) if defined $::RD_TRACE;
1257 0         0 my $thisprod = $thisrule->{"prods"}[1];
1258 0         0 $text = $_[1];
1259 0         0 my $_savetext;
1260 0         0 @item = (q{SCHEMA});
1261 0         0 %item = (__RULE__ => q{SCHEMA});
1262 0         0 my $repcount = 0;
1263              
1264 0 0       0 Parse::RecDescent::_trace(
1265             q{Trying terminal: [/\\w\{1,128\}/]},
1266             Parse::RecDescent::_tracefirst($text),
1267             q{SCHEMA}, $tracelevel
1268             ) if defined $::RD_TRACE;
1269 0         0 $lastsep = "";
1270 0         0 $expectation->is(q{})->at($text);
1271              
1272 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
1273             and $text =~ s/\A(?:\w{1,128})//) {
1274              
1275 0         0 $expectation->failed();
1276 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
1277             if defined $::RD_TRACE;
1278              
1279 0         0 last;
1280             }
1281 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
1282             Parse::RecDescent::_tracefirst($text))
1283             if defined $::RD_TRACE;
1284 0         0 push @item, $item{__PATTERN1__} = $&;
1285              
1286 0 0       0 Parse::RecDescent::_trace(
1287             q{>>Matched production: [/\\w\{1,128\}/]<<},
1288             Parse::RecDescent::_tracefirst($text),
1289             q{SCHEMA}, $tracelevel
1290             ) if defined $::RD_TRACE;
1291 0         0 $_matched = 1;
1292 0         0 last;
1293             }
1294              
1295 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
1296              
1297 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
1298 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{SCHEMA}, $tracelevel)
1299             if defined $::RD_TRACE;
1300 0         0 return undef;
1301             }
1302 0 0 0     0 if (!defined($return) && defined($score)) {
1303 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{SCHEMA}, $tracelevel)
1304             if defined $::RD_TRACE;
1305 0         0 $return = $score_return;
1306             }
1307 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
1308 0 0       0 $return = $item[$#item] unless defined $return;
1309 0 0       0 if (defined $::RD_TRACE) {
1310 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{SCHEMA}, $tracelevel);
1311 0         0 Parse::RecDescent::_trace(
1312             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
1313             Parse::RecDescent::_tracefirst($text),
1314             , q{SCHEMA}, $tracelevel
1315             );
1316             }
1317 0         0 $_[1] = $text;
1318 0         0 return $return;
1319             }
1320              
1321             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1322             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_87_of_rule_sysibm_function
1323             {
1324 0     0   0 my $thisparser = $_[0];
1325 1     1   11 use vars q{$tracelevel};
  1         2  
  1         1502  
1326 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
1327 0         0 $ERRORS = 0;
1328 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_87_of_rule_sysibm_function"};
1329              
1330 0 0       0 Parse::RecDescent::_trace(
1331             q{Trying rule: [_alternation_1_of_production_87_of_rule_sysibm_function]},
1332             Parse::RecDescent::_tracefirst($_[1]),
1333             q{_alternation_1_of_production_87_of_rule_sysibm_function}, $tracelevel
1334             ) if defined $::RD_TRACE;
1335              
1336 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
1337              
1338 0         0 my $score;
1339             my $score_return;
1340 0         0 my $_tok;
1341 0         0 my $return = undef;
1342 0         0 my $_matched = 0;
1343 0         0 my $commit = 0;
1344 0         0 my @item = ();
1345 0         0 my %item = ();
1346 0   0     0 my $repeating = defined($_[2]) && $_[2];
1347 0   0     0 my $_noactions = defined($_[3]) && $_[3];
1348 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
1349 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
1350 0         0 my $text;
1351 0         0 my $lastsep = "";
1352 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
1353 0         0 $expectation->at($_[1]);
1354              
1355 0         0 my $thisline;
1356 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1357              
1358 0   0     0 while (!$_matched && !$commit) {
1359              
1360 0 0       0 Parse::RecDescent::_trace(
1361             q{Trying production: [/VARIANCE/i]},
1362             Parse::RecDescent::_tracefirst($_[1]),
1363             q{_alternation_1_of_production_87_of_rule_sysibm_function}, $tracelevel
1364             ) if defined $::RD_TRACE;
1365 0         0 my $thisprod = $thisrule->{"prods"}[0];
1366 0         0 $text = $_[1];
1367 0         0 my $_savetext;
1368 0         0 @item = (q{_alternation_1_of_production_87_of_rule_sysibm_function});
1369 0         0 %item = (__RULE__ => q{_alternation_1_of_production_87_of_rule_sysibm_function});
1370 0         0 my $repcount = 0;
1371              
1372 0 0       0 Parse::RecDescent::_trace(
1373             q{Trying terminal: [/VARIANCE/i]},
1374             Parse::RecDescent::_tracefirst($text),
1375             q{_alternation_1_of_production_87_of_rule_sysibm_function}, $tracelevel
1376             ) if defined $::RD_TRACE;
1377 0         0 $lastsep = "";
1378 0         0 $expectation->is(q{})->at($text);
1379              
1380 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
1381             and $text =~ s/\A(?:VARIANCE)//i) {
1382              
1383 0         0 $expectation->failed();
1384 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
1385             if defined $::RD_TRACE;
1386              
1387 0         0 last;
1388             }
1389 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
1390             Parse::RecDescent::_tracefirst($text))
1391             if defined $::RD_TRACE;
1392 0         0 push @item, $item{__PATTERN1__} = $&;
1393              
1394 0 0       0 Parse::RecDescent::_trace(
1395             q{>>Matched production: [/VARIANCE/i]<<},
1396             Parse::RecDescent::_tracefirst($text),
1397             q{_alternation_1_of_production_87_of_rule_sysibm_function}, $tracelevel
1398             ) if defined $::RD_TRACE;
1399 0         0 $_matched = 1;
1400 0         0 last;
1401             }
1402              
1403 0   0     0 while (!$_matched && !$commit) {
1404              
1405 0 0       0 Parse::RecDescent::_trace(
1406             q{Trying production: [/VAR/i]},
1407             Parse::RecDescent::_tracefirst($_[1]),
1408             q{_alternation_1_of_production_87_of_rule_sysibm_function}, $tracelevel
1409             ) if defined $::RD_TRACE;
1410 0         0 my $thisprod = $thisrule->{"prods"}[1];
1411 0         0 $text = $_[1];
1412 0         0 my $_savetext;
1413 0         0 @item = (q{_alternation_1_of_production_87_of_rule_sysibm_function});
1414 0         0 %item = (__RULE__ => q{_alternation_1_of_production_87_of_rule_sysibm_function});
1415 0         0 my $repcount = 0;
1416              
1417 0 0       0 Parse::RecDescent::_trace(
1418             q{Trying terminal: [/VAR/i]},
1419             Parse::RecDescent::_tracefirst($text),
1420             q{_alternation_1_of_production_87_of_rule_sysibm_function}, $tracelevel
1421             ) if defined $::RD_TRACE;
1422 0         0 $lastsep = "";
1423 0         0 $expectation->is(q{})->at($text);
1424              
1425 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
1426             and $text =~ s/\A(?:VAR)//i) {
1427              
1428 0         0 $expectation->failed();
1429 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
1430             if defined $::RD_TRACE;
1431              
1432 0         0 last;
1433             }
1434 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
1435             Parse::RecDescent::_tracefirst($text))
1436             if defined $::RD_TRACE;
1437 0         0 push @item, $item{__PATTERN1__} = $&;
1438              
1439 0 0       0 Parse::RecDescent::_trace(
1440             q{>>Matched production: [/VAR/i]<<},
1441             Parse::RecDescent::_tracefirst($text),
1442             q{_alternation_1_of_production_87_of_rule_sysibm_function}, $tracelevel
1443             ) if defined $::RD_TRACE;
1444 0         0 $_matched = 1;
1445 0         0 last;
1446             }
1447              
1448 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
1449              
1450 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
1451 0 0       0 Parse::RecDescent::_trace(
1452             q{<>},
1453             Parse::RecDescent::_tracefirst($_[1]),
1454             q{_alternation_1_of_production_87_of_rule_sysibm_function}, $tracelevel
1455             ) if defined $::RD_TRACE;
1456 0         0 return undef;
1457             }
1458 0 0 0     0 if (!defined($return) && defined($score)) {
1459 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
1460             "", q{_alternation_1_of_production_87_of_rule_sysibm_function}, $tracelevel)
1461             if defined $::RD_TRACE;
1462 0         0 $return = $score_return;
1463             }
1464 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
1465 0 0       0 $return = $item[$#item] unless defined $return;
1466 0 0       0 if (defined $::RD_TRACE) {
1467 0         0 Parse::RecDescent::_trace(
1468             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
1469             q{_alternation_1_of_production_87_of_rule_sysibm_function}, $tracelevel
1470             );
1471 0         0 Parse::RecDescent::_trace(
1472             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
1473             Parse::RecDescent::_tracefirst($text),
1474             , q{_alternation_1_of_production_87_of_rule_sysibm_function}, $tracelevel
1475             );
1476             }
1477 0         0 $_[1] = $text;
1478 0         0 return $return;
1479             }
1480              
1481             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1482             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression
1483             {
1484 0     0   0 my $thisparser = $_[0];
1485 1     1   10 use vars q{$tracelevel};
  1         3  
  1         1657  
1486 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
1487 0         0 $ERRORS = 0;
1488             my $thisrule = $thisparser->{"rules"}
1489 0         0 {"_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression"};
1490              
1491 0 0       0 Parse::RecDescent::_trace(
1492             q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression]},
1493             Parse::RecDescent::_tracefirst($_[1]),
1494             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1495             $tracelevel
1496             ) if defined $::RD_TRACE;
1497              
1498 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
1499              
1500 0         0 my $score;
1501             my $score_return;
1502 0         0 my $_tok;
1503 0         0 my $return = undef;
1504 0         0 my $_matched = 0;
1505 0         0 my $commit = 0;
1506 0         0 my @item = ();
1507 0         0 my %item = ();
1508 0   0     0 my $repeating = defined($_[2]) && $_[2];
1509 0   0     0 my $_noactions = defined($_[3]) && $_[3];
1510 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
1511 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
1512 0         0 my $text;
1513 0         0 my $lastsep = "";
1514 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
1515 0         0 $expectation->at($_[1]);
1516              
1517 0         0 my $thisline;
1518 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1519              
1520 0   0     0 while (!$_matched && !$commit) {
1521              
1522 0 0       0 Parse::RecDescent::_trace(
1523             q{Trying production: ['+']},
1524             Parse::RecDescent::_tracefirst($_[1]),
1525             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
1526             ) if defined $::RD_TRACE;
1527 0         0 my $thisprod = $thisrule->{"prods"}[0];
1528 0         0 $text = $_[1];
1529 0         0 my $_savetext;
1530 0         0 @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
1531 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
1532 0         0 my $repcount = 0;
1533              
1534 0 0       0 Parse::RecDescent::_trace(
1535             q{Trying terminal: ['+']},
1536             Parse::RecDescent::_tracefirst($text),
1537             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
1538             ) if defined $::RD_TRACE;
1539 0         0 $lastsep = "";
1540 0         0 $expectation->is(q{})->at($text);
1541              
1542 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
1543             and $text =~ s/\A\+//) {
1544              
1545 0         0 $expectation->failed();
1546 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
1547             if defined $::RD_TRACE;
1548 0         0 last;
1549             }
1550 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
1551             Parse::RecDescent::_tracefirst($text))
1552             if defined $::RD_TRACE;
1553 0         0 push @item, $item{__STRING1__} = $&;
1554              
1555 0 0       0 Parse::RecDescent::_trace(
1556             q{>>Matched production: ['+']<<},
1557             Parse::RecDescent::_tracefirst($text),
1558             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
1559             ) if defined $::RD_TRACE;
1560 0         0 $_matched = 1;
1561 0         0 last;
1562             }
1563              
1564 0   0     0 while (!$_matched && !$commit) {
1565              
1566 0 0       0 Parse::RecDescent::_trace(
1567             q{Trying production: ['-']},
1568             Parse::RecDescent::_tracefirst($_[1]),
1569             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
1570             ) if defined $::RD_TRACE;
1571 0         0 my $thisprod = $thisrule->{"prods"}[1];
1572 0         0 $text = $_[1];
1573 0         0 my $_savetext;
1574 0         0 @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
1575 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
1576 0         0 my $repcount = 0;
1577              
1578 0 0       0 Parse::RecDescent::_trace(
1579             q{Trying terminal: ['-']},
1580             Parse::RecDescent::_tracefirst($text),
1581             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
1582             ) if defined $::RD_TRACE;
1583 0         0 $lastsep = "";
1584 0         0 $expectation->is(q{})->at($text);
1585              
1586 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
1587             and $text =~ s/\A\-//) {
1588              
1589 0         0 $expectation->failed();
1590 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
1591             if defined $::RD_TRACE;
1592 0         0 last;
1593             }
1594 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
1595             Parse::RecDescent::_tracefirst($text))
1596             if defined $::RD_TRACE;
1597 0         0 push @item, $item{__STRING1__} = $&;
1598              
1599 0 0       0 Parse::RecDescent::_trace(
1600             q{>>Matched production: ['-']<<},
1601             Parse::RecDescent::_tracefirst($text),
1602             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
1603             ) if defined $::RD_TRACE;
1604 0         0 $_matched = 1;
1605 0         0 last;
1606             }
1607              
1608 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
1609              
1610 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
1611 0 0       0 Parse::RecDescent::_trace(
1612             q{<>},
1613             Parse::RecDescent::_tracefirst($_[1]),
1614             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
1615             ) if defined $::RD_TRACE;
1616 0         0 return undef;
1617             }
1618 0 0 0     0 if (!defined($return) && defined($score)) {
1619 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
1620             "", q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1621             $tracelevel)
1622             if defined $::RD_TRACE;
1623 0         0 $return = $score_return;
1624             }
1625 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
1626 0 0       0 $return = $item[$#item] unless defined $return;
1627 0 0       0 if (defined $::RD_TRACE) {
1628 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
1629             "", q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1630             $tracelevel);
1631 0         0 Parse::RecDescent::_trace(
1632             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
1633             Parse::RecDescent::_tracefirst($text),
1634             ,
1635             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1636             $tracelevel
1637             );
1638             }
1639 0         0 $_[1] = $text;
1640 0         0 return $return;
1641             }
1642              
1643             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1644             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::get_bracketed {
1645 0     0   0 my $thisparser = $_[0];
1646 1     1   9 use vars q{$tracelevel};
  1         5  
  1         1090  
1647 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
1648 0         0 $ERRORS = 0;
1649 0         0 my $thisrule = $thisparser->{"rules"}{"get_bracketed"};
1650              
1651 0 0       0 Parse::RecDescent::_trace(
1652             q{Trying rule: [get_bracketed]},
1653             Parse::RecDescent::_tracefirst($_[1]),
1654             q{get_bracketed}, $tracelevel
1655             ) if defined $::RD_TRACE;
1656              
1657 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
1658              
1659 0         0 my $score;
1660             my $score_return;
1661 0         0 my $_tok;
1662 0         0 my $return = undef;
1663 0         0 my $_matched = 0;
1664 0         0 my $commit = 0;
1665 0         0 my @item = ();
1666 0         0 my %item = ();
1667 0   0     0 my $repeating = defined($_[2]) && $_[2];
1668 0   0     0 my $_noactions = defined($_[3]) && $_[3];
1669 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
1670 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
1671 0         0 my $text;
1672 0         0 my $lastsep = "";
1673 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
1674 0         0 $expectation->at($_[1]);
1675              
1676 0         0 my $thisline;
1677 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1678              
1679 0   0     0 while (!$_matched && !$commit) {
1680              
1681 0 0       0 Parse::RecDescent::_trace(
1682             q{Trying production: []},
1683             Parse::RecDescent::_tracefirst($_[1]),
1684             q{get_bracketed}, $tracelevel
1685             ) if defined $::RD_TRACE;
1686 0         0 my $thisprod = $thisrule->{"prods"}[0];
1687 0         0 $text = $_[1];
1688 0         0 my $_savetext;
1689 0         0 @item = (q{get_bracketed});
1690 0         0 %item = (__RULE__ => q{get_bracketed});
1691 0         0 my $repcount = 0;
1692              
1693 0 0       0 Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{get_bracketed}, $tracelevel)
1694             if defined $::RD_TRACE;
1695              
1696 0 0       0 $_tok = ($_noactions) ? 0 : do {
1697 0         0 extract_bracketed($text, '(');
1698             };
1699 0 0       0 unless (defined $_tok) {
1700 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
1701             if defined $::RD_TRACE;
1702 0         0 last;
1703             }
1704 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])},
1705             Parse::RecDescent::_tracefirst($text))
1706             if defined $::RD_TRACE;
1707 0         0 push @item, $_tok;
1708 0         0 $item{__ACTION1__} = $_tok;
1709              
1710 0 0       0 Parse::RecDescent::_trace(
1711             q{>>Matched production: []<<},
1712             Parse::RecDescent::_tracefirst($text),
1713             q{get_bracketed}, $tracelevel
1714             ) if defined $::RD_TRACE;
1715 0         0 $_matched = 1;
1716 0         0 last;
1717             }
1718              
1719 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
1720              
1721 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
1722 0 0       0 Parse::RecDescent::_trace(
1723             q{<>},
1724             Parse::RecDescent::_tracefirst($_[1]),
1725             q{get_bracketed}, $tracelevel
1726             ) if defined $::RD_TRACE;
1727 0         0 return undef;
1728             }
1729 0 0 0     0 if (!defined($return) && defined($score)) {
1730 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{get_bracketed}, $tracelevel)
1731             if defined $::RD_TRACE;
1732 0         0 $return = $score_return;
1733             }
1734 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
1735 0 0       0 $return = $item[$#item] unless defined $return;
1736 0 0       0 if (defined $::RD_TRACE) {
1737 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
1738             "", q{get_bracketed}, $tracelevel);
1739 0         0 Parse::RecDescent::_trace(
1740             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
1741             Parse::RecDescent::_tracefirst($text),
1742             , q{get_bracketed}, $tracelevel
1743             );
1744             }
1745 0         0 $_[1] = $text;
1746 0         0 return $return;
1747             }
1748              
1749             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1750             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::labeled_duration {
1751 0     0   0 my $thisparser = $_[0];
1752 1     1   12 use vars q{$tracelevel};
  1         3  
  1         599  
1753 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
1754 0         0 $ERRORS = 0;
1755 0         0 my $thisrule = $thisparser->{"rules"}{"labeled_duration"};
1756              
1757 0 0       0 Parse::RecDescent::_trace(
1758             q{Trying rule: [labeled_duration]},
1759             Parse::RecDescent::_tracefirst($_[1]),
1760             q{labeled_duration}, $tracelevel
1761             ) if defined $::RD_TRACE;
1762              
1763 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
1764              
1765 0         0 my $score;
1766             my $score_return;
1767 0         0 my $_tok;
1768 0         0 my $return = undef;
1769 0         0 my $_matched = 0;
1770 0         0 my $commit = 0;
1771 0         0 my @item = ();
1772 0         0 my %item = ();
1773 0   0     0 my $repeating = defined($_[2]) && $_[2];
1774 0   0     0 my $_noactions = defined($_[3]) && $_[3];
1775 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
1776 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
1777 0         0 my $text;
1778 0         0 my $lastsep = "";
1779 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
1780 0         0 $expectation->at($_[1]);
1781              
1782 0         0 my $thisline;
1783 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1784              
1785 0   0     0 while (!$_matched && !$commit) {
1786              
1787 0 0       0 Parse::RecDescent::_trace(
1788             q{Trying production: [ld_type ld_duration]},
1789             Parse::RecDescent::_tracefirst($_[1]),
1790             q{labeled_duration}, $tracelevel
1791             ) if defined $::RD_TRACE;
1792 0         0 my $thisprod = $thisrule->{"prods"}[0];
1793 0         0 $text = $_[1];
1794 0         0 my $_savetext;
1795 0         0 @item = (q{labeled_duration});
1796 0         0 %item = (__RULE__ => q{labeled_duration});
1797 0         0 my $repcount = 0;
1798              
1799 0 0       0 Parse::RecDescent::_trace(
1800             q{Trying subrule: [ld_type]},
1801             Parse::RecDescent::_tracefirst($text),
1802             q{labeled_duration}, $tracelevel
1803             ) if defined $::RD_TRACE;
1804 0         0 if (1) {
1805 1     1   11 no strict qw{refs};
  1         2  
  1         261  
1806 0         0 $expectation->is(q{})->at($text);
1807 0 0       0 unless (defined(
1808             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ld_type(
1809 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
1810             )
1811             )) {
1812              
1813 0 0       0 Parse::RecDescent::_trace(
1814             q{<>},
1815             Parse::RecDescent::_tracefirst($text),
1816             q{labeled_duration}, $tracelevel
1817             ) if defined $::RD_TRACE;
1818 0         0 $expectation->failed();
1819 0         0 last;
1820             }
1821             Parse::RecDescent::_trace(
1822 0 0       0 q{>>Matched subrule: [ld_type]<< (return value: [} . $_tok . q{]},
1823              
1824             Parse::RecDescent::_tracefirst($text),
1825             q{labeled_duration},
1826             $tracelevel
1827             ) if defined $::RD_TRACE;
1828 0         0 $item{q{ld_type}} = $_tok;
1829 0         0 push @item, $_tok;
1830              
1831             }
1832              
1833             Parse::RecDescent::_trace(
1834 0 0       0 q{Trying subrule: [ld_duration]},
1835             Parse::RecDescent::_tracefirst($text),
1836             q{labeled_duration}, $tracelevel
1837             ) if defined $::RD_TRACE;
1838 0         0 if (1) {
1839 1     1   11 no strict qw{refs};
  1         4  
  1         689  
1840 0         0 $expectation->is(q{ld_duration})->at($text);
1841 0 0       0 unless (defined(
1842             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ld_duration(
1843 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
1844             )
1845             )) {
1846              
1847 0 0       0 Parse::RecDescent::_trace(
1848             q{<>},
1849             Parse::RecDescent::_tracefirst($text),
1850             q{labeled_duration}, $tracelevel
1851             ) if defined $::RD_TRACE;
1852 0         0 $expectation->failed();
1853 0         0 last;
1854             }
1855             Parse::RecDescent::_trace(
1856 0 0       0 q{>>Matched subrule: [ld_duration]<< (return value: [} . $_tok . q{]},
1857              
1858             Parse::RecDescent::_tracefirst($text),
1859             q{labeled_duration},
1860             $tracelevel
1861             ) if defined $::RD_TRACE;
1862 0         0 $item{q{ld_duration}} = $_tok;
1863 0         0 push @item, $_tok;
1864              
1865             }
1866              
1867             Parse::RecDescent::_trace(
1868 0 0       0 q{>>Matched production: [ld_type ld_duration]<<},
1869             Parse::RecDescent::_tracefirst($text),
1870             q{labeled_duration}, $tracelevel
1871             ) if defined $::RD_TRACE;
1872 0         0 $_matched = 1;
1873 0         0 last;
1874             }
1875              
1876 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
1877              
1878 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
1879 0 0       0 Parse::RecDescent::_trace(
1880             q{<>},
1881             Parse::RecDescent::_tracefirst($_[1]),
1882             q{labeled_duration}, $tracelevel
1883             ) if defined $::RD_TRACE;
1884 0         0 return undef;
1885             }
1886 0 0 0     0 if (!defined($return) && defined($score)) {
1887 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{labeled_duration}, $tracelevel)
1888             if defined $::RD_TRACE;
1889 0         0 $return = $score_return;
1890             }
1891 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
1892 0 0       0 $return = $item[$#item] unless defined $return;
1893 0 0       0 if (defined $::RD_TRACE) {
1894 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
1895             "", q{labeled_duration}, $tracelevel);
1896 0         0 Parse::RecDescent::_trace(
1897             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
1898             Parse::RecDescent::_tracefirst($text),
1899             , q{labeled_duration}, $tracelevel
1900             );
1901             }
1902 0         0 $_[1] = $text;
1903 0         0 return $return;
1904             }
1905              
1906             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1907             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_end {
1908 0     0   0 my $thisparser = $_[0];
1909 1     1   10 use vars q{$tracelevel};
  1         3  
  1         913  
1910 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
1911 0         0 $ERRORS = 0;
1912 0         0 my $thisrule = $thisparser->{"rules"}{"group_end"};
1913              
1914 0 0       0 Parse::RecDescent::_trace(
1915             q{Trying rule: [group_end]},
1916             Parse::RecDescent::_tracefirst($_[1]),
1917             q{group_end}, $tracelevel
1918             ) if defined $::RD_TRACE;
1919              
1920 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
1921              
1922 0         0 my $score;
1923             my $score_return;
1924 0         0 my $_tok;
1925 0         0 my $return = undef;
1926 0         0 my $_matched = 0;
1927 0         0 my $commit = 0;
1928 0         0 my @item = ();
1929 0         0 my %item = ();
1930 0   0     0 my $repeating = defined($_[2]) && $_[2];
1931 0   0     0 my $_noactions = defined($_[3]) && $_[3];
1932 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
1933 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
1934 0         0 my $text;
1935 0         0 my $lastsep = "";
1936 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
1937 0         0 $expectation->at($_[1]);
1938              
1939 0         0 my $thisline;
1940 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1941              
1942 0   0     0 while (!$_matched && !$commit) {
1943              
1944 0 0       0 Parse::RecDescent::_trace(
1945             q{Trying production: [/UNBOUNDED\\s+PRECEDING/i]},
1946             Parse::RecDescent::_tracefirst($_[1]),
1947             q{group_end}, $tracelevel
1948             ) if defined $::RD_TRACE;
1949 0         0 my $thisprod = $thisrule->{"prods"}[0];
1950 0         0 $text = $_[1];
1951 0         0 my $_savetext;
1952 0         0 @item = (q{group_end});
1953 0         0 %item = (__RULE__ => q{group_end});
1954 0         0 my $repcount = 0;
1955              
1956 0 0       0 Parse::RecDescent::_trace(
1957             q{Trying terminal: [/UNBOUNDED\\s+PRECEDING/i]},
1958             Parse::RecDescent::_tracefirst($text),
1959             q{group_end}, $tracelevel
1960             ) if defined $::RD_TRACE;
1961 0         0 $lastsep = "";
1962 0         0 $expectation->is(q{})->at($text);
1963              
1964 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
1965             and $text =~ s/\A(?:UNBOUNDED\s+PRECEDING)//i) {
1966              
1967 0         0 $expectation->failed();
1968 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
1969             if defined $::RD_TRACE;
1970              
1971 0         0 last;
1972             }
1973 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
1974             Parse::RecDescent::_tracefirst($text))
1975             if defined $::RD_TRACE;
1976 0         0 push @item, $item{__PATTERN1__} = $&;
1977              
1978 0 0       0 Parse::RecDescent::_trace(
1979             q{>>Matched production: [/UNBOUNDED\\s+PRECEDING/i]<<},
1980             Parse::RecDescent::_tracefirst($text),
1981             q{group_end}, $tracelevel
1982             ) if defined $::RD_TRACE;
1983 0         0 $_matched = 1;
1984 0         0 last;
1985             }
1986              
1987 0   0     0 while (!$_matched && !$commit) {
1988              
1989 0 0       0 Parse::RecDescent::_trace(
1990             q{Trying production: [unsigned_constant /FOLLOWING/i]},
1991             Parse::RecDescent::_tracefirst($_[1]),
1992             q{group_end}, $tracelevel
1993             ) if defined $::RD_TRACE;
1994 0         0 my $thisprod = $thisrule->{"prods"}[1];
1995 0         0 $text = $_[1];
1996 0         0 my $_savetext;
1997 0         0 @item = (q{group_end});
1998 0         0 %item = (__RULE__ => q{group_end});
1999 0         0 my $repcount = 0;
2000              
2001 0 0       0 Parse::RecDescent::_trace(
2002             q{Trying subrule: [unsigned_constant]},
2003             Parse::RecDescent::_tracefirst($text),
2004             q{group_end}, $tracelevel
2005             ) if defined $::RD_TRACE;
2006 0         0 if (1) {
2007 1     1   11 no strict qw{refs};
  1         4  
  1         963  
2008 0         0 $expectation->is(q{})->at($text);
2009 0 0       0 unless (defined(
2010             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::unsigned_constant(
2011 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
2012             )
2013             )) {
2014              
2015 0 0       0 Parse::RecDescent::_trace(
2016             q{<>},
2017             Parse::RecDescent::_tracefirst($text),
2018             q{group_end}, $tracelevel
2019             ) if defined $::RD_TRACE;
2020 0         0 $expectation->failed();
2021 0         0 last;
2022             }
2023             Parse::RecDescent::_trace(
2024 0 0       0 q{>>Matched subrule: [unsigned_constant]<< (return value: [} . $_tok . q{]},
2025              
2026             Parse::RecDescent::_tracefirst($text),
2027             q{group_end},
2028             $tracelevel
2029             ) if defined $::RD_TRACE;
2030 0         0 $item{q{unsigned_constant}} = $_tok;
2031 0         0 push @item, $_tok;
2032              
2033             }
2034              
2035             Parse::RecDescent::_trace(
2036 0 0       0 q{Trying terminal: [/FOLLOWING/i]},
2037             Parse::RecDescent::_tracefirst($text),
2038             q{group_end}, $tracelevel
2039             ) if defined $::RD_TRACE;
2040 0         0 $lastsep = "";
2041 0         0 $expectation->is(q{/FOLLOWING/i})->at($text);
2042              
2043 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
2044             and $text =~ s/\A(?:FOLLOWING)//i) {
2045              
2046 0         0 $expectation->failed();
2047 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
2048             if defined $::RD_TRACE;
2049              
2050 0         0 last;
2051             }
2052 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
2053             Parse::RecDescent::_tracefirst($text))
2054             if defined $::RD_TRACE;
2055 0         0 push @item, $item{__PATTERN1__} = $&;
2056              
2057 0 0       0 Parse::RecDescent::_trace(
2058             q{>>Matched production: [unsigned_constant /FOLLOWING/i]<<},
2059             Parse::RecDescent::_tracefirst($text),
2060             q{group_end}, $tracelevel
2061             ) if defined $::RD_TRACE;
2062 0         0 $_matched = 1;
2063 0         0 last;
2064             }
2065              
2066 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
2067              
2068 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
2069 0 0       0 Parse::RecDescent::_trace(
2070             q{<>},
2071             Parse::RecDescent::_tracefirst($_[1]),
2072             q{group_end}, $tracelevel
2073             ) if defined $::RD_TRACE;
2074 0         0 return undef;
2075             }
2076 0 0 0     0 if (!defined($return) && defined($score)) {
2077 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{group_end}, $tracelevel)
2078             if defined $::RD_TRACE;
2079 0         0 $return = $score_return;
2080             }
2081 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
2082 0 0       0 $return = $item[$#item] unless defined $return;
2083 0 0       0 if (defined $::RD_TRACE) {
2084 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{group_end}, $tracelevel);
2085 0         0 Parse::RecDescent::_trace(
2086             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
2087             Parse::RecDescent::_tracefirst($text),
2088             , q{group_end}, $tracelevel
2089             );
2090             }
2091 0         0 $_[1] = $text;
2092 0         0 return $return;
2093             }
2094              
2095             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2096             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::statement {
2097 1     1   30 my $thisparser = $_[0];
2098 1     1   12 use vars q{$tracelevel};
  1         3  
  1         523  
2099 1   50     6 local $tracelevel = ($tracelevel || 0) + 1;
2100 1         3 $ERRORS = 0;
2101 1         5 my $thisrule = $thisparser->{"rules"}{"statement"};
2102              
2103 1 50       5 Parse::RecDescent::_trace(
2104             q{Trying rule: [statement]},
2105             Parse::RecDescent::_tracefirst($_[1]),
2106             q{statement}, $tracelevel
2107             ) if defined $::RD_TRACE;
2108              
2109 1         2 my $err_at = @{ $thisparser->{errors} };
  1         3  
2110              
2111 1         5 my $score;
2112             my $score_return;
2113 1         0 my $_tok;
2114 1         3 my $return = undef;
2115 1         2 my $_matched = 0;
2116 1         12 my $commit = 0;
2117 1         3 my @item = ();
2118 1         4 my %item = ();
2119 1   33     6 my $repeating = defined($_[2]) && $_[2];
2120 1   33     6 my $_noactions = defined($_[3]) && $_[3];
2121 1 50       5 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
2122 1 50       5 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
2123 1         3 my $text;
2124 1         4 my $lastsep = "";
2125 1         5 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
2126 1         89 $expectation->at($_[1]);
2127              
2128 1         5 my $thisline;
2129 1         6 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2130              
2131 1   33     15 while (!$_matched && !$commit) {
2132              
2133 1 50       5 Parse::RecDescent::_trace(
2134             q{Trying production: [comment]},
2135             Parse::RecDescent::_tracefirst($_[1]),
2136             q{statement}, $tracelevel
2137             ) if defined $::RD_TRACE;
2138 1         3 my $thisprod = $thisrule->{"prods"}[0];
2139 1         3 $text = $_[1];
2140 1         2 my $_savetext;
2141 1         4 @item = (q{statement});
2142 1         5 %item = (__RULE__ => q{statement});
2143 1         3 my $repcount = 0;
2144              
2145 1 50       4 Parse::RecDescent::_trace(
2146             q{Trying subrule: [comment]},
2147             Parse::RecDescent::_tracefirst($text),
2148             q{statement}, $tracelevel
2149             ) if defined $::RD_TRACE;
2150 1         2 if (1) {
2151 1     1   12 no strict qw{refs};
  1         2  
  1         487  
2152 1         16 $expectation->is(q{})->at($text);
2153 1 50       19 unless (defined(
2154             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::comment(
2155 1     1   3 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
2156             )
2157             )) {
2158              
2159 1 50       3 Parse::RecDescent::_trace(
2160             q{<>},
2161             Parse::RecDescent::_tracefirst($text),
2162             q{statement}, $tracelevel
2163             ) if defined $::RD_TRACE;
2164 1         4 $expectation->failed();
2165 1         4 last;
2166             }
2167             Parse::RecDescent::_trace(
2168 0 0       0 q{>>Matched subrule: [comment]<< (return value: [} . $_tok . q{]},
2169              
2170             Parse::RecDescent::_tracefirst($text),
2171             q{statement},
2172             $tracelevel
2173             ) if defined $::RD_TRACE;
2174 0         0 $item{q{comment}} = $_tok;
2175 0         0 push @item, $_tok;
2176              
2177             }
2178              
2179             Parse::RecDescent::_trace(
2180 0 0       0 q{>>Matched production: [comment]<<},
2181             Parse::RecDescent::_tracefirst($text),
2182             q{statement}, $tracelevel
2183             ) if defined $::RD_TRACE;
2184 0         0 $_matched = 1;
2185 0         0 last;
2186             }
2187              
2188 1   33     14 while (!$_matched && !$commit) {
2189              
2190 1 50       4 Parse::RecDescent::_trace(
2191             q{Trying production: [create]},
2192             Parse::RecDescent::_tracefirst($_[1]),
2193             q{statement}, $tracelevel
2194             ) if defined $::RD_TRACE;
2195 1         3 my $thisprod = $thisrule->{"prods"}[1];
2196 1         4 $text = $_[1];
2197 1         3 my $_savetext;
2198 1         3 @item = (q{statement});
2199 1         4 %item = (__RULE__ => q{statement});
2200 1         2 my $repcount = 0;
2201              
2202 1 50       5 Parse::RecDescent::_trace(
2203             q{Trying subrule: [create]},
2204             Parse::RecDescent::_tracefirst($text),
2205             q{statement}, $tracelevel
2206             ) if defined $::RD_TRACE;
2207 1         2 if (1) {
2208 1     1   12 no strict qw{refs};
  1         3  
  1         1220  
2209 1         6 $expectation->is(q{})->at($text);
2210 1 50       18 unless (defined(
2211             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::create(
2212 1     1   3 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
2213             )
2214             )) {
2215              
2216 1 50       6 Parse::RecDescent::_trace(
2217             q{<>},
2218             Parse::RecDescent::_tracefirst($text),
2219             q{statement}, $tracelevel
2220             ) if defined $::RD_TRACE;
2221 1         8 $expectation->failed();
2222 1         4 last;
2223             }
2224             Parse::RecDescent::_trace(
2225 0 0       0 q{>>Matched subrule: [create]<< (return value: [} . $_tok . q{]},
2226              
2227             Parse::RecDescent::_tracefirst($text),
2228             q{statement},
2229             $tracelevel
2230             ) if defined $::RD_TRACE;
2231 0         0 $item{q{create}} = $_tok;
2232 0         0 push @item, $_tok;
2233              
2234             }
2235              
2236             Parse::RecDescent::_trace(
2237 0 0       0 q{>>Matched production: [create]<<},
2238             Parse::RecDescent::_tracefirst($text),
2239             q{statement}, $tracelevel
2240             ) if defined $::RD_TRACE;
2241 0         0 $_matched = 1;
2242 0         0 last;
2243             }
2244              
2245 1         7 while (!$_matched) {
2246              
2247 1 50       5 Parse::RecDescent::_trace(
2248             q{Trying production: []},
2249             Parse::RecDescent::_tracefirst($_[1]),
2250             q{statement}, $tracelevel
2251             ) if defined $::RD_TRACE;
2252 1         14 my $thisprod = $thisrule->{"prods"}[2];
2253              
2254 1         3 my $_savetext;
2255 1         6 @item = (q{statement});
2256 1         5 %item = (__RULE__ => q{statement});
2257 1         3 my $repcount = 0;
2258              
2259 1 50       5 Parse::RecDescent::_trace(
2260             q{Trying directive: []},
2261             Parse::RecDescent::_tracefirst($text),
2262             q{statement}, $tracelevel
2263             ) if defined $::RD_TRACE;
2264 1         3 $_tok = do {
2265 1         3 if (1) {
2266 1 50       4 do {
2267 1         11 my $rule = $item[0];
2268 1         5 $rule =~ s/_/ /g;
2269              
2270             #WAS: Parse::RecDescent::_error("Invalid $rule: " . $expectation->message() ,$thisline);
2271 1         2 push @{ $thisparser->{errors} }, [ "Invalid $rule: " . $expectation->message(), $thisline ];
  1         10  
2272             } unless $_noactions;
2273 1         74 undef;
2274             } else {
2275             0;
2276             }
2277             };
2278 1 50       5 if (defined($_tok)) {
2279 0 0       0 Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [} . $_tok . q{])},
2280             Parse::RecDescent::_tracefirst($text))
2281             if defined $::RD_TRACE;
2282             } else {
2283 1 50       5 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
2284             if defined $::RD_TRACE;
2285             }
2286              
2287 1 50       5 last unless defined $_tok;
2288 0         0 push @item, $item{__DIRECTIVE1__} = $_tok;
2289              
2290 0 0       0 Parse::RecDescent::_trace(
2291             q{>>Matched production: []<<},
2292             Parse::RecDescent::_tracefirst($text),
2293             q{statement}, $tracelevel
2294             ) if defined $::RD_TRACE;
2295 0         0 $_matched = 1;
2296 0         0 last;
2297             }
2298              
2299 1 50 33     12 unless ($_matched || defined($return) || defined($score)) {
      33        
2300              
2301 1         4 $_[1] = $text; # NOT SURE THIS IS NEEDED
2302 1 50       4 Parse::RecDescent::_trace(
2303             q{<>},
2304             Parse::RecDescent::_tracefirst($_[1]),
2305             q{statement}, $tracelevel
2306             ) if defined $::RD_TRACE;
2307 1         10 return undef;
2308             }
2309 0 0 0     0 if (!defined($return) && defined($score)) {
2310 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{statement}, $tracelevel)
2311             if defined $::RD_TRACE;
2312 0         0 $return = $score_return;
2313             }
2314 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
2315 0 0       0 $return = $item[$#item] unless defined $return;
2316 0 0       0 if (defined $::RD_TRACE) {
2317 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{statement}, $tracelevel);
2318 0         0 Parse::RecDescent::_trace(
2319             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
2320             Parse::RecDescent::_tracefirst($text),
2321             , q{statement}, $tracelevel
2322             );
2323             }
2324 0         0 $_[1] = $text;
2325 0         0 return $return;
2326             }
2327              
2328             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2329             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
2330             {
2331 0     0   0 my $thisparser = $_[0];
2332 1     1   12 use vars q{$tracelevel};
  1         3  
  1         576  
2333 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
2334 0         0 $ERRORS = 0;
2335             my $thisrule = $thisparser->{"rules"}
2336 0         0 {"_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause"};
2337              
2338 0 0       0 Parse::RecDescent::_trace(
2339             q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause]},
2340             Parse::RecDescent::_tracefirst($_[1]),
2341             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2342             $tracelevel
2343             ) if defined $::RD_TRACE;
2344              
2345 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
2346              
2347 0         0 my $score;
2348             my $score_return;
2349 0         0 my $_tok;
2350 0         0 my $return = undef;
2351 0         0 my $_matched = 0;
2352 0         0 my $commit = 0;
2353 0         0 my @item = ();
2354 0         0 my %item = ();
2355 0   0     0 my $repeating = defined($_[2]) && $_[2];
2356 0   0     0 my $_noactions = defined($_[3]) && $_[3];
2357 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
2358 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
2359 0         0 my $text;
2360 0         0 my $lastsep = "";
2361 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
2362 0         0 $expectation->at($_[1]);
2363              
2364 0         0 my $thisline;
2365 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2366              
2367 0   0     0 while (!$_matched && !$commit) {
2368              
2369 0 0       0 Parse::RecDescent::_trace(
2370             q{Trying production: [result_expression]},
2371             Parse::RecDescent::_tracefirst($_[1]),
2372             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2373             $tracelevel
2374             ) if defined $::RD_TRACE;
2375 0         0 my $thisprod = $thisrule->{"prods"}[0];
2376 0         0 $text = $_[1];
2377 0         0 my $_savetext;
2378 0         0 @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause});
2379 0         0 %item = (__RULE__ =>
2380             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause});
2381 0         0 my $repcount = 0;
2382              
2383 0 0       0 Parse::RecDescent::_trace(
2384             q{Trying subrule: [result_expression]},
2385             Parse::RecDescent::_tracefirst($text),
2386             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2387             $tracelevel
2388             ) if defined $::RD_TRACE;
2389 0         0 if (1) {
2390 1     1   11 no strict qw{refs};
  1         3  
  1         1144  
2391 0         0 $expectation->is(q{})->at($text);
2392 0 0       0 unless (defined(
2393             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::result_expression(
2394 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
2395             )
2396             )) {
2397              
2398 0 0       0 Parse::RecDescent::_trace(
2399             q{<>},
2400             Parse::RecDescent::_tracefirst($text),
2401             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2402             $tracelevel
2403             ) if defined $::RD_TRACE;
2404 0         0 $expectation->failed();
2405 0         0 last;
2406             }
2407             Parse::RecDescent::_trace(
2408 0 0       0 q{>>Matched subrule: [result_expression]<< (return value: [} . $_tok . q{]},
2409              
2410             Parse::RecDescent::_tracefirst($text),
2411             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2412             $tracelevel
2413             ) if defined $::RD_TRACE;
2414 0         0 $item{q{result_expression}} = $_tok;
2415 0         0 push @item, $_tok;
2416              
2417             }
2418              
2419             Parse::RecDescent::_trace(
2420 0 0       0 q{>>Matched production: [result_expression]<<},
2421             Parse::RecDescent::_tracefirst($text),
2422             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2423             $tracelevel
2424             ) if defined $::RD_TRACE;
2425 0         0 $_matched = 1;
2426 0         0 last;
2427             }
2428              
2429 0   0     0 while (!$_matched && !$commit) {
2430              
2431 0 0       0 Parse::RecDescent::_trace(
2432             q{Trying production: [/NULL/i]},
2433             Parse::RecDescent::_tracefirst($_[1]),
2434             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2435             $tracelevel
2436             ) if defined $::RD_TRACE;
2437 0         0 my $thisprod = $thisrule->{"prods"}[1];
2438 0         0 $text = $_[1];
2439 0         0 my $_savetext;
2440 0         0 @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause});
2441 0         0 %item = (__RULE__ =>
2442             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause});
2443 0         0 my $repcount = 0;
2444              
2445 0 0       0 Parse::RecDescent::_trace(
2446             q{Trying terminal: [/NULL/i]},
2447             Parse::RecDescent::_tracefirst($text),
2448             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2449             $tracelevel
2450             ) if defined $::RD_TRACE;
2451 0         0 $lastsep = "";
2452 0         0 $expectation->is(q{})->at($text);
2453              
2454 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
2455             and $text =~ s/\A(?:NULL)//i) {
2456              
2457 0         0 $expectation->failed();
2458 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
2459             if defined $::RD_TRACE;
2460              
2461 0         0 last;
2462             }
2463 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
2464             Parse::RecDescent::_tracefirst($text))
2465             if defined $::RD_TRACE;
2466 0         0 push @item, $item{__PATTERN1__} = $&;
2467              
2468 0 0       0 Parse::RecDescent::_trace(
2469             q{>>Matched production: [/NULL/i]<<},
2470             Parse::RecDescent::_tracefirst($text),
2471             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2472             $tracelevel
2473             ) if defined $::RD_TRACE;
2474 0         0 $_matched = 1;
2475 0         0 last;
2476             }
2477              
2478 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
2479              
2480 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
2481 0 0       0 Parse::RecDescent::_trace(
2482             q{<>},
2483             Parse::RecDescent::_tracefirst($_[1]),
2484             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2485             $tracelevel
2486             ) if defined $::RD_TRACE;
2487 0         0 return undef;
2488             }
2489 0 0 0     0 if (!defined($return) && defined($score)) {
2490 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
2491             "", q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2492             $tracelevel)
2493             if defined $::RD_TRACE;
2494 0         0 $return = $score_return;
2495             }
2496 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
2497 0 0       0 $return = $item[$#item] unless defined $return;
2498 0 0       0 if (defined $::RD_TRACE) {
2499 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
2500             "", q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2501             $tracelevel);
2502 0         0 Parse::RecDescent::_trace(
2503             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
2504             Parse::RecDescent::_tracefirst($text),
2505             ,
2506             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2507             $tracelevel
2508             );
2509             }
2510 0         0 $_[1] = $text;
2511 0         0 return $return;
2512             }
2513              
2514             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2515             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_case_expression {
2516 0     0   0 my $thisparser = $_[0];
2517 1     1   12 use vars q{$tracelevel};
  1         3  
  1         1180  
2518 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
2519 0         0 $ERRORS = 0;
2520 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_2_of_production_1_of_rule_case_expression"};
2521              
2522 0 0       0 Parse::RecDescent::_trace(
2523             q{Trying rule: [_alternation_2_of_production_1_of_rule_case_expression]},
2524             Parse::RecDescent::_tracefirst($_[1]),
2525             q{_alternation_2_of_production_1_of_rule_case_expression}, $tracelevel
2526             ) if defined $::RD_TRACE;
2527              
2528 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
2529              
2530 0         0 my $score;
2531             my $score_return;
2532 0         0 my $_tok;
2533 0         0 my $return = undef;
2534 0         0 my $_matched = 0;
2535 0         0 my $commit = 0;
2536 0         0 my @item = ();
2537 0         0 my %item = ();
2538 0   0     0 my $repeating = defined($_[2]) && $_[2];
2539 0   0     0 my $_noactions = defined($_[3]) && $_[3];
2540 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
2541 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
2542 0         0 my $text;
2543 0         0 my $lastsep = "";
2544 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
2545 0         0 $expectation->at($_[1]);
2546              
2547 0         0 my $thisline;
2548 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2549              
2550 0   0     0 while (!$_matched && !$commit) {
2551              
2552 0 0       0 Parse::RecDescent::_trace(
2553             q{Trying production: [/ELSE\\s+NULL/i]},
2554             Parse::RecDescent::_tracefirst($_[1]),
2555             q{_alternation_2_of_production_1_of_rule_case_expression}, $tracelevel
2556             ) if defined $::RD_TRACE;
2557 0         0 my $thisprod = $thisrule->{"prods"}[0];
2558 0         0 $text = $_[1];
2559 0         0 my $_savetext;
2560 0         0 @item = (q{_alternation_2_of_production_1_of_rule_case_expression});
2561 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_case_expression});
2562 0         0 my $repcount = 0;
2563              
2564 0 0       0 Parse::RecDescent::_trace(
2565             q{Trying terminal: [/ELSE\\s+NULL/i]},
2566             Parse::RecDescent::_tracefirst($text),
2567             q{_alternation_2_of_production_1_of_rule_case_expression}, $tracelevel
2568             ) if defined $::RD_TRACE;
2569 0         0 $lastsep = "";
2570 0         0 $expectation->is(q{})->at($text);
2571              
2572 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
2573             and $text =~ s/\A(?:ELSE\s+NULL)//i) {
2574              
2575 0         0 $expectation->failed();
2576 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
2577             if defined $::RD_TRACE;
2578              
2579 0         0 last;
2580             }
2581 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
2582             Parse::RecDescent::_tracefirst($text))
2583             if defined $::RD_TRACE;
2584 0         0 push @item, $item{__PATTERN1__} = $&;
2585              
2586 0 0       0 Parse::RecDescent::_trace(
2587             q{>>Matched production: [/ELSE\\s+NULL/i]<<},
2588             Parse::RecDescent::_tracefirst($text),
2589             q{_alternation_2_of_production_1_of_rule_case_expression}, $tracelevel
2590             ) if defined $::RD_TRACE;
2591 0         0 $_matched = 1;
2592 0         0 last;
2593             }
2594              
2595 0   0     0 while (!$_matched && !$commit) {
2596              
2597 0 0       0 Parse::RecDescent::_trace(
2598             q{Trying production: [/ELSE/i result_expression]},
2599             Parse::RecDescent::_tracefirst($_[1]),
2600             q{_alternation_2_of_production_1_of_rule_case_expression}, $tracelevel
2601             ) if defined $::RD_TRACE;
2602 0         0 my $thisprod = $thisrule->{"prods"}[1];
2603 0         0 $text = $_[1];
2604 0         0 my $_savetext;
2605 0         0 @item = (q{_alternation_2_of_production_1_of_rule_case_expression});
2606 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_case_expression});
2607 0         0 my $repcount = 0;
2608              
2609 0 0       0 Parse::RecDescent::_trace(
2610             q{Trying terminal: [/ELSE/i]},
2611             Parse::RecDescent::_tracefirst($text),
2612             q{_alternation_2_of_production_1_of_rule_case_expression}, $tracelevel
2613             ) if defined $::RD_TRACE;
2614 0         0 $lastsep = "";
2615 0         0 $expectation->is(q{})->at($text);
2616              
2617 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
2618             and $text =~ s/\A(?:ELSE)//i) {
2619              
2620 0         0 $expectation->failed();
2621 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
2622             if defined $::RD_TRACE;
2623              
2624 0         0 last;
2625             }
2626 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
2627             Parse::RecDescent::_tracefirst($text))
2628             if defined $::RD_TRACE;
2629 0         0 push @item, $item{__PATTERN1__} = $&;
2630              
2631 0 0       0 Parse::RecDescent::_trace(
2632             q{Trying subrule: [result_expression]},
2633             Parse::RecDescent::_tracefirst($text),
2634             q{_alternation_2_of_production_1_of_rule_case_expression}, $tracelevel
2635             ) if defined $::RD_TRACE;
2636 0         0 if (1) {
2637 1     1   11 no strict qw{refs};
  1         5  
  1         703  
2638 0         0 $expectation->is(q{result_expression})->at($text);
2639 0 0       0 unless (defined(
2640             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::result_expression(
2641 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
2642             )
2643             )) {
2644              
2645 0 0       0 Parse::RecDescent::_trace(
2646             q{<>},
2647             Parse::RecDescent::_tracefirst($text),
2648             q{_alternation_2_of_production_1_of_rule_case_expression}, $tracelevel
2649             ) if defined $::RD_TRACE;
2650 0         0 $expectation->failed();
2651 0         0 last;
2652             }
2653             Parse::RecDescent::_trace(
2654 0 0       0 q{>>Matched subrule: [result_expression]<< (return value: [} . $_tok . q{]},
2655              
2656             Parse::RecDescent::_tracefirst($text),
2657             q{_alternation_2_of_production_1_of_rule_case_expression},
2658             $tracelevel
2659             ) if defined $::RD_TRACE;
2660 0         0 $item{q{result_expression}} = $_tok;
2661 0         0 push @item, $_tok;
2662              
2663             }
2664              
2665             Parse::RecDescent::_trace(
2666 0 0       0 q{>>Matched production: [/ELSE/i result_expression]<<}, Parse::RecDescent::_tracefirst($text),
2667             q{_alternation_2_of_production_1_of_rule_case_expression}, $tracelevel
2668             ) if defined $::RD_TRACE;
2669 0         0 $_matched = 1;
2670 0         0 last;
2671             }
2672              
2673 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
2674              
2675 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
2676 0 0       0 Parse::RecDescent::_trace(
2677             q{<>},
2678             Parse::RecDescent::_tracefirst($_[1]),
2679             q{_alternation_2_of_production_1_of_rule_case_expression}, $tracelevel
2680             ) if defined $::RD_TRACE;
2681 0         0 return undef;
2682             }
2683 0 0 0     0 if (!defined($return) && defined($score)) {
2684 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
2685             "", q{_alternation_2_of_production_1_of_rule_case_expression}, $tracelevel)
2686             if defined $::RD_TRACE;
2687 0         0 $return = $score_return;
2688             }
2689 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
2690 0 0       0 $return = $item[$#item] unless defined $return;
2691 0 0       0 if (defined $::RD_TRACE) {
2692 0         0 Parse::RecDescent::_trace(
2693             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
2694             q{_alternation_2_of_production_1_of_rule_case_expression}, $tracelevel
2695             );
2696 0         0 Parse::RecDescent::_trace(
2697             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
2698             Parse::RecDescent::_tracefirst($text),
2699             , q{_alternation_2_of_production_1_of_rule_case_expression}, $tracelevel
2700             );
2701             }
2702 0         0 $_[1] = $text;
2703 0         0 return $return;
2704             }
2705              
2706             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2707             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::subject_expression {
2708 0     0   0 my $thisparser = $_[0];
2709 1     1   10 use vars q{$tracelevel};
  1         6  
  1         461  
2710 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
2711 0         0 $ERRORS = 0;
2712 0         0 my $thisrule = $thisparser->{"rules"}{"subject_expression"};
2713              
2714 0 0       0 Parse::RecDescent::_trace(
2715             q{Trying rule: [subject_expression]},
2716             Parse::RecDescent::_tracefirst($_[1]),
2717             q{subject_expression}, $tracelevel
2718             ) if defined $::RD_TRACE;
2719              
2720 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
2721              
2722 0         0 my $score;
2723             my $score_return;
2724 0         0 my $_tok;
2725 0         0 my $return = undef;
2726 0         0 my $_matched = 0;
2727 0         0 my $commit = 0;
2728 0         0 my @item = ();
2729 0         0 my %item = ();
2730 0   0     0 my $repeating = defined($_[2]) && $_[2];
2731 0   0     0 my $_noactions = defined($_[3]) && $_[3];
2732 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
2733 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
2734 0         0 my $text;
2735 0         0 my $lastsep = "";
2736 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
2737 0         0 $expectation->at($_[1]);
2738              
2739 0         0 my $thisline;
2740 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2741              
2742 0   0     0 while (!$_matched && !$commit) {
2743              
2744 0 0       0 Parse::RecDescent::_trace(
2745             q{Trying production: [expression]},
2746             Parse::RecDescent::_tracefirst($_[1]),
2747             q{subject_expression}, $tracelevel
2748             ) if defined $::RD_TRACE;
2749 0         0 my $thisprod = $thisrule->{"prods"}[0];
2750 0         0 $text = $_[1];
2751 0         0 my $_savetext;
2752 0         0 @item = (q{subject_expression});
2753 0         0 %item = (__RULE__ => q{subject_expression});
2754 0         0 my $repcount = 0;
2755              
2756 0 0       0 Parse::RecDescent::_trace(
2757             q{Trying subrule: [expression]},
2758             Parse::RecDescent::_tracefirst($text),
2759             q{subject_expression}, $tracelevel
2760             ) if defined $::RD_TRACE;
2761 0         0 if (1) {
2762 1     1   10 no strict qw{refs};
  1         4  
  1         782  
2763 0         0 $expectation->is(q{})->at($text);
2764 0 0       0 unless (defined(
2765             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression(
2766 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
2767             )
2768             )) {
2769              
2770 0 0       0 Parse::RecDescent::_trace(
2771             q{<>},
2772             Parse::RecDescent::_tracefirst($text),
2773             q{subject_expression}, $tracelevel
2774             ) if defined $::RD_TRACE;
2775 0         0 $expectation->failed();
2776 0         0 last;
2777             }
2778             Parse::RecDescent::_trace(
2779 0 0       0 q{>>Matched subrule: [expression]<< (return value: [} . $_tok . q{]},
2780              
2781             Parse::RecDescent::_tracefirst($text),
2782             q{subject_expression},
2783             $tracelevel
2784             ) if defined $::RD_TRACE;
2785 0         0 $item{q{expression}} = $_tok;
2786 0         0 push @item, $_tok;
2787              
2788             }
2789              
2790             Parse::RecDescent::_trace(
2791 0 0       0 q{Trying action},
2792             Parse::RecDescent::_tracefirst($text),
2793             q{subject_expression}, $tracelevel
2794             ) if defined $::RD_TRACE;
2795              
2796             $_tok
2797             = ($_noactions)
2798             ? 0
2799 0 0       0 : do { # with static result type that is a used-defined struct type
2800             };
2801 0 0       0 unless (defined $_tok) {
2802 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
2803             if defined $::RD_TRACE;
2804 0         0 last;
2805             }
2806 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])},
2807             Parse::RecDescent::_tracefirst($text))
2808             if defined $::RD_TRACE;
2809 0         0 push @item, $_tok;
2810 0         0 $item{__ACTION1__} = $_tok;
2811              
2812 0 0       0 Parse::RecDescent::_trace(
2813             q{>>Matched production: [expression]<<},
2814             Parse::RecDescent::_tracefirst($text),
2815             q{subject_expression}, $tracelevel
2816             ) if defined $::RD_TRACE;
2817 0         0 $_matched = 1;
2818 0         0 last;
2819             }
2820              
2821 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
2822              
2823 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
2824 0 0       0 Parse::RecDescent::_trace(
2825             q{<>},
2826             Parse::RecDescent::_tracefirst($_[1]),
2827             q{subject_expression}, $tracelevel
2828             ) if defined $::RD_TRACE;
2829 0         0 return undef;
2830             }
2831 0 0 0     0 if (!defined($return) && defined($score)) {
2832 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{subject_expression}, $tracelevel)
2833             if defined $::RD_TRACE;
2834 0         0 $return = $score_return;
2835             }
2836 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
2837 0 0       0 $return = $item[$#item] unless defined $return;
2838 0 0       0 if (defined $::RD_TRACE) {
2839 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
2840             "", q{subject_expression}, $tracelevel);
2841 0         0 Parse::RecDescent::_trace(
2842             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
2843             Parse::RecDescent::_tracefirst($text),
2844             , q{subject_expression}, $tracelevel
2845             );
2846             }
2847 0         0 $_[1] = $text;
2848 0         0 return $return;
2849             }
2850              
2851             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2852             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_desc_option {
2853 0     0   0 my $thisparser = $_[0];
2854 1     1   11 use vars q{$tracelevel};
  1         3  
  1         1622  
2855 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
2856 0         0 $ERRORS = 0;
2857 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_desc_option"};
2858              
2859 0 0       0 Parse::RecDescent::_trace(
2860             q{Trying rule: [_alternation_1_of_production_1_of_rule_desc_option]},
2861             Parse::RecDescent::_tracefirst($_[1]),
2862             q{_alternation_1_of_production_1_of_rule_desc_option}, $tracelevel
2863             ) if defined $::RD_TRACE;
2864              
2865 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
2866              
2867 0         0 my $score;
2868             my $score_return;
2869 0         0 my $_tok;
2870 0         0 my $return = undef;
2871 0         0 my $_matched = 0;
2872 0         0 my $commit = 0;
2873 0         0 my @item = ();
2874 0         0 my %item = ();
2875 0   0     0 my $repeating = defined($_[2]) && $_[2];
2876 0   0     0 my $_noactions = defined($_[3]) && $_[3];
2877 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
2878 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
2879 0         0 my $text;
2880 0         0 my $lastsep = "";
2881 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
2882 0         0 $expectation->at($_[1]);
2883              
2884 0         0 my $thisline;
2885 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2886              
2887 0   0     0 while (!$_matched && !$commit) {
2888              
2889 0 0       0 Parse::RecDescent::_trace(
2890             q{Trying production: [/NULLS\\s+FIRST/i]},
2891             Parse::RecDescent::_tracefirst($_[1]),
2892             q{_alternation_1_of_production_1_of_rule_desc_option}, $tracelevel
2893             ) if defined $::RD_TRACE;
2894 0         0 my $thisprod = $thisrule->{"prods"}[0];
2895 0         0 $text = $_[1];
2896 0         0 my $_savetext;
2897 0         0 @item = (q{_alternation_1_of_production_1_of_rule_desc_option});
2898 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_desc_option});
2899 0         0 my $repcount = 0;
2900              
2901 0 0       0 Parse::RecDescent::_trace(
2902             q{Trying terminal: [/NULLS\\s+FIRST/i]},
2903             Parse::RecDescent::_tracefirst($text),
2904             q{_alternation_1_of_production_1_of_rule_desc_option}, $tracelevel
2905             ) if defined $::RD_TRACE;
2906 0         0 $lastsep = "";
2907 0         0 $expectation->is(q{})->at($text);
2908              
2909 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
2910             and $text =~ s/\A(?:NULLS\s+FIRST)//i) {
2911              
2912 0         0 $expectation->failed();
2913 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
2914             if defined $::RD_TRACE;
2915              
2916 0         0 last;
2917             }
2918 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
2919             Parse::RecDescent::_tracefirst($text))
2920             if defined $::RD_TRACE;
2921 0         0 push @item, $item{__PATTERN1__} = $&;
2922              
2923 0 0       0 Parse::RecDescent::_trace(
2924             q{>>Matched production: [/NULLS\\s+FIRST/i]<<},
2925             Parse::RecDescent::_tracefirst($text),
2926             q{_alternation_1_of_production_1_of_rule_desc_option}, $tracelevel
2927             ) if defined $::RD_TRACE;
2928 0         0 $_matched = 1;
2929 0         0 last;
2930             }
2931              
2932 0   0     0 while (!$_matched && !$commit) {
2933              
2934 0 0       0 Parse::RecDescent::_trace(
2935             q{Trying production: [/NULLS\\s+LAST/i]},
2936             Parse::RecDescent::_tracefirst($_[1]),
2937             q{_alternation_1_of_production_1_of_rule_desc_option}, $tracelevel
2938             ) if defined $::RD_TRACE;
2939 0         0 my $thisprod = $thisrule->{"prods"}[1];
2940 0         0 $text = $_[1];
2941 0         0 my $_savetext;
2942 0         0 @item = (q{_alternation_1_of_production_1_of_rule_desc_option});
2943 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_desc_option});
2944 0         0 my $repcount = 0;
2945              
2946 0 0       0 Parse::RecDescent::_trace(
2947             q{Trying terminal: [/NULLS\\s+LAST/i]},
2948             Parse::RecDescent::_tracefirst($text),
2949             q{_alternation_1_of_production_1_of_rule_desc_option}, $tracelevel
2950             ) if defined $::RD_TRACE;
2951 0         0 $lastsep = "";
2952 0         0 $expectation->is(q{})->at($text);
2953              
2954 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
2955             and $text =~ s/\A(?:NULLS\s+LAST)//i) {
2956              
2957 0         0 $expectation->failed();
2958 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
2959             if defined $::RD_TRACE;
2960              
2961 0         0 last;
2962             }
2963 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
2964             Parse::RecDescent::_tracefirst($text))
2965             if defined $::RD_TRACE;
2966 0         0 push @item, $item{__PATTERN1__} = $&;
2967              
2968 0 0       0 Parse::RecDescent::_trace(
2969             q{>>Matched production: [/NULLS\\s+LAST/i]<<},
2970             Parse::RecDescent::_tracefirst($text),
2971             q{_alternation_1_of_production_1_of_rule_desc_option}, $tracelevel
2972             ) if defined $::RD_TRACE;
2973 0         0 $_matched = 1;
2974 0         0 last;
2975             }
2976              
2977 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
2978              
2979 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
2980 0 0       0 Parse::RecDescent::_trace(
2981             q{<>},
2982             Parse::RecDescent::_tracefirst($_[1]),
2983             q{_alternation_1_of_production_1_of_rule_desc_option}, $tracelevel
2984             ) if defined $::RD_TRACE;
2985 0         0 return undef;
2986             }
2987 0 0 0     0 if (!defined($return) && defined($score)) {
2988 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
2989             "", q{_alternation_1_of_production_1_of_rule_desc_option}, $tracelevel)
2990             if defined $::RD_TRACE;
2991 0         0 $return = $score_return;
2992             }
2993 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
2994 0 0       0 $return = $item[$#item] unless defined $return;
2995 0 0       0 if (defined $::RD_TRACE) {
2996 0         0 Parse::RecDescent::_trace(
2997             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
2998             q{_alternation_1_of_production_1_of_rule_desc_option}, $tracelevel
2999             );
3000 0         0 Parse::RecDescent::_trace(
3001             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
3002             Parse::RecDescent::_tracefirst($text),
3003             , q{_alternation_1_of_production_1_of_rule_desc_option}, $tracelevel
3004             );
3005             }
3006 0         0 $_[1] = $text;
3007 0         0 return $return;
3008             }
3009              
3010             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
3011             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::view_name {
3012 0     0   0 my $thisparser = $_[0];
3013 1     1   11 use vars q{$tracelevel};
  1         3  
  1         499  
3014 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
3015 0         0 $ERRORS = 0;
3016 0         0 my $thisrule = $thisparser->{"rules"}{"view_name"};
3017              
3018 0 0       0 Parse::RecDescent::_trace(
3019             q{Trying rule: [view_name]},
3020             Parse::RecDescent::_tracefirst($_[1]),
3021             q{view_name}, $tracelevel
3022             ) if defined $::RD_TRACE;
3023              
3024 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
3025              
3026 0         0 my $score;
3027             my $score_return;
3028 0         0 my $_tok;
3029 0         0 my $return = undef;
3030 0         0 my $_matched = 0;
3031 0         0 my $commit = 0;
3032 0         0 my @item = ();
3033 0         0 my %item = ();
3034 0   0     0 my $repeating = defined($_[2]) && $_[2];
3035 0   0     0 my $_noactions = defined($_[3]) && $_[3];
3036 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
3037 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
3038 0         0 my $text;
3039 0         0 my $lastsep = "";
3040 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
3041 0         0 $expectation->at($_[1]);
3042              
3043 0         0 my $thisline;
3044 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
3045              
3046 0   0     0 while (!$_matched && !$commit) {
3047              
3048 0 0       0 Parse::RecDescent::_trace(
3049             q{Trying production: [SCHEMA '.' NAME]},
3050             Parse::RecDescent::_tracefirst($_[1]),
3051             q{view_name}, $tracelevel
3052             ) if defined $::RD_TRACE;
3053 0         0 my $thisprod = $thisrule->{"prods"}[0];
3054 0         0 $text = $_[1];
3055 0         0 my $_savetext;
3056 0         0 @item = (q{view_name});
3057 0         0 %item = (__RULE__ => q{view_name});
3058 0         0 my $repcount = 0;
3059              
3060 0 0       0 Parse::RecDescent::_trace(
3061             q{Trying subrule: [SCHEMA]},
3062             Parse::RecDescent::_tracefirst($text),
3063             q{view_name}, $tracelevel
3064             ) if defined $::RD_TRACE;
3065 0         0 if (1) {
3066 1     1   9 no strict qw{refs};
  1         4  
  1         508  
3067 0         0 $expectation->is(q{})->at($text);
3068 0 0       0 unless (defined(
3069             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SCHEMA(
3070 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
3071             )
3072             )) {
3073              
3074 0 0       0 Parse::RecDescent::_trace(
3075             q{<>},
3076             Parse::RecDescent::_tracefirst($text),
3077             q{view_name}, $tracelevel
3078             ) if defined $::RD_TRACE;
3079 0         0 $expectation->failed();
3080 0         0 last;
3081             }
3082             Parse::RecDescent::_trace(
3083 0 0       0 q{>>Matched subrule: [SCHEMA]<< (return value: [} . $_tok . q{]},
3084              
3085             Parse::RecDescent::_tracefirst($text),
3086             q{view_name},
3087             $tracelevel
3088             ) if defined $::RD_TRACE;
3089 0         0 $item{q{SCHEMA}} = $_tok;
3090 0         0 push @item, $_tok;
3091              
3092             }
3093              
3094             Parse::RecDescent::_trace(
3095 0 0       0 q{Trying terminal: ['.']},
3096             Parse::RecDescent::_tracefirst($text),
3097             q{view_name}, $tracelevel
3098             ) if defined $::RD_TRACE;
3099 0         0 $lastsep = "";
3100 0         0 $expectation->is(q{'.'})->at($text);
3101              
3102 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
3103             and $text =~ s/\A\.//) {
3104              
3105 0         0 $expectation->failed();
3106 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
3107             if defined $::RD_TRACE;
3108 0         0 last;
3109             }
3110 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
3111             Parse::RecDescent::_tracefirst($text))
3112             if defined $::RD_TRACE;
3113 0         0 push @item, $item{__STRING1__} = $&;
3114              
3115 0 0       0 Parse::RecDescent::_trace(
3116             q{Trying subrule: [NAME]},
3117             Parse::RecDescent::_tracefirst($text),
3118             q{view_name}, $tracelevel
3119             ) if defined $::RD_TRACE;
3120 0         0 if (1) {
3121 1     1   13 no strict qw{refs};
  1         4  
  1         511  
3122 0         0 $expectation->is(q{NAME})->at($text);
3123 0 0       0 unless (defined(
3124             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME(
3125 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
3126             )
3127             )) {
3128              
3129 0 0       0 Parse::RecDescent::_trace(
3130             q{<>},
3131             Parse::RecDescent::_tracefirst($text),
3132             q{view_name}, $tracelevel
3133             ) if defined $::RD_TRACE;
3134 0         0 $expectation->failed();
3135 0         0 last;
3136             }
3137             Parse::RecDescent::_trace(
3138 0 0       0 q{>>Matched subrule: [NAME]<< (return value: [} . $_tok . q{]},
3139              
3140             Parse::RecDescent::_tracefirst($text),
3141             q{view_name},
3142             $tracelevel
3143             ) if defined $::RD_TRACE;
3144 0         0 $item{q{NAME}} = $_tok;
3145 0         0 push @item, $_tok;
3146              
3147             }
3148              
3149 0 0       0 Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{view_name}, $tracelevel)
3150             if defined $::RD_TRACE;
3151              
3152             $_tok
3153             = ($_noactions)
3154             ? 0
3155 0 0       0 : do { $return = { schema => $item[1], name => $item[3] } };
  0         0  
3156 0 0       0 unless (defined $_tok) {
3157 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
3158             if defined $::RD_TRACE;
3159 0         0 last;
3160             }
3161 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])},
3162             Parse::RecDescent::_tracefirst($text))
3163             if defined $::RD_TRACE;
3164 0         0 push @item, $_tok;
3165 0         0 $item{__ACTION1__} = $_tok;
3166              
3167 0 0       0 Parse::RecDescent::_trace(
3168             q{>>Matched production: [SCHEMA '.' NAME]<<},
3169             Parse::RecDescent::_tracefirst($text),
3170             q{view_name}, $tracelevel
3171             ) if defined $::RD_TRACE;
3172 0         0 $_matched = 1;
3173 0         0 last;
3174             }
3175              
3176 0   0     0 while (!$_matched && !$commit) {
3177              
3178 0 0       0 Parse::RecDescent::_trace(
3179             q{Trying production: [NAME]},
3180             Parse::RecDescent::_tracefirst($_[1]),
3181             q{view_name}, $tracelevel
3182             ) if defined $::RD_TRACE;
3183 0         0 my $thisprod = $thisrule->{"prods"}[1];
3184 0         0 $text = $_[1];
3185 0         0 my $_savetext;
3186 0         0 @item = (q{view_name});
3187 0         0 %item = (__RULE__ => q{view_name});
3188 0         0 my $repcount = 0;
3189              
3190 0 0       0 Parse::RecDescent::_trace(
3191             q{Trying subrule: [NAME]},
3192             Parse::RecDescent::_tracefirst($text),
3193             q{view_name}, $tracelevel
3194             ) if defined $::RD_TRACE;
3195 0         0 if (1) {
3196 1     1   11 no strict qw{refs};
  1         2  
  1         878  
3197 0         0 $expectation->is(q{})->at($text);
3198 0 0       0 unless (defined(
3199             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME(
3200 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
3201             )
3202             )) {
3203              
3204 0 0       0 Parse::RecDescent::_trace(
3205             q{<>},
3206             Parse::RecDescent::_tracefirst($text),
3207             q{view_name}, $tracelevel
3208             ) if defined $::RD_TRACE;
3209 0         0 $expectation->failed();
3210 0         0 last;
3211             }
3212             Parse::RecDescent::_trace(
3213 0 0       0 q{>>Matched subrule: [NAME]<< (return value: [} . $_tok . q{]},
3214              
3215             Parse::RecDescent::_tracefirst($text),
3216             q{view_name},
3217             $tracelevel
3218             ) if defined $::RD_TRACE;
3219 0         0 $item{q{NAME}} = $_tok;
3220 0         0 push @item, $_tok;
3221              
3222             }
3223              
3224 0 0       0 Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{view_name}, $tracelevel)
3225             if defined $::RD_TRACE;
3226              
3227 0 0       0 $_tok = ($_noactions) ? 0 : do { $return = { name => $item[1] } };
  0         0  
3228 0 0       0 unless (defined $_tok) {
3229 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
3230             if defined $::RD_TRACE;
3231 0         0 last;
3232             }
3233 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])},
3234             Parse::RecDescent::_tracefirst($text))
3235             if defined $::RD_TRACE;
3236 0         0 push @item, $_tok;
3237 0         0 $item{__ACTION1__} = $_tok;
3238              
3239 0 0       0 Parse::RecDescent::_trace(
3240             q{>>Matched production: [NAME]<<},
3241             Parse::RecDescent::_tracefirst($text),
3242             q{view_name}, $tracelevel
3243             ) if defined $::RD_TRACE;
3244 0         0 $_matched = 1;
3245 0         0 last;
3246             }
3247              
3248 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
3249              
3250 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
3251 0 0       0 Parse::RecDescent::_trace(
3252             q{<>},
3253             Parse::RecDescent::_tracefirst($_[1]),
3254             q{view_name}, $tracelevel
3255             ) if defined $::RD_TRACE;
3256 0         0 return undef;
3257             }
3258 0 0 0     0 if (!defined($return) && defined($score)) {
3259 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{view_name}, $tracelevel)
3260             if defined $::RD_TRACE;
3261 0         0 $return = $score_return;
3262             }
3263 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
3264 0 0       0 $return = $item[$#item] unless defined $return;
3265 0 0       0 if (defined $::RD_TRACE) {
3266 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{view_name}, $tracelevel);
3267 0         0 Parse::RecDescent::_trace(
3268             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
3269             Parse::RecDescent::_tracefirst($text),
3270             , q{view_name}, $tracelevel
3271             );
3272             }
3273 0         0 $_[1] = $text;
3274 0         0 return $return;
3275             }
3276              
3277             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
3278             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_cond {
3279 0     0   0 my $thisparser = $_[0];
3280 1     1   11 use vars q{$tracelevel};
  1         4  
  1         1609  
3281 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
3282 0         0 $ERRORS = 0;
3283 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_cond"};
3284              
3285 0 0       0 Parse::RecDescent::_trace(
3286             q{Trying rule: [_alternation_1_of_production_1_of_rule_cond]},
3287             Parse::RecDescent::_tracefirst($_[1]),
3288             q{_alternation_1_of_production_1_of_rule_cond}, $tracelevel
3289             ) if defined $::RD_TRACE;
3290              
3291 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
3292              
3293 0         0 my $score;
3294             my $score_return;
3295 0         0 my $_tok;
3296 0         0 my $return = undef;
3297 0         0 my $_matched = 0;
3298 0         0 my $commit = 0;
3299 0         0 my @item = ();
3300 0         0 my %item = ();
3301 0   0     0 my $repeating = defined($_[2]) && $_[2];
3302 0   0     0 my $_noactions = defined($_[3]) && $_[3];
3303 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
3304 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
3305 0         0 my $text;
3306 0         0 my $lastsep = "";
3307 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
3308 0         0 $expectation->at($_[1]);
3309              
3310 0         0 my $thisline;
3311 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
3312              
3313 0   0     0 while (!$_matched && !$commit) {
3314              
3315 0 0       0 Parse::RecDescent::_trace(
3316             q{Trying production: [/AND/i]},
3317             Parse::RecDescent::_tracefirst($_[1]),
3318             q{_alternation_1_of_production_1_of_rule_cond}, $tracelevel
3319             ) if defined $::RD_TRACE;
3320 0         0 my $thisprod = $thisrule->{"prods"}[0];
3321 0         0 $text = $_[1];
3322 0         0 my $_savetext;
3323 0         0 @item = (q{_alternation_1_of_production_1_of_rule_cond});
3324 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_cond});
3325 0         0 my $repcount = 0;
3326              
3327 0 0       0 Parse::RecDescent::_trace(
3328             q{Trying terminal: [/AND/i]},
3329             Parse::RecDescent::_tracefirst($text),
3330             q{_alternation_1_of_production_1_of_rule_cond}, $tracelevel
3331             ) if defined $::RD_TRACE;
3332 0         0 $lastsep = "";
3333 0         0 $expectation->is(q{})->at($text);
3334              
3335 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
3336             and $text =~ s/\A(?:AND)//i) {
3337              
3338 0         0 $expectation->failed();
3339 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
3340             if defined $::RD_TRACE;
3341              
3342 0         0 last;
3343             }
3344 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
3345             Parse::RecDescent::_tracefirst($text))
3346             if defined $::RD_TRACE;
3347 0         0 push @item, $item{__PATTERN1__} = $&;
3348              
3349 0 0       0 Parse::RecDescent::_trace(
3350             q{>>Matched production: [/AND/i]<<},
3351             Parse::RecDescent::_tracefirst($text),
3352             q{_alternation_1_of_production_1_of_rule_cond}, $tracelevel
3353             ) if defined $::RD_TRACE;
3354 0         0 $_matched = 1;
3355 0         0 last;
3356             }
3357              
3358 0   0     0 while (!$_matched && !$commit) {
3359              
3360 0 0       0 Parse::RecDescent::_trace(
3361             q{Trying production: [/OR/i]},
3362             Parse::RecDescent::_tracefirst($_[1]),
3363             q{_alternation_1_of_production_1_of_rule_cond}, $tracelevel
3364             ) if defined $::RD_TRACE;
3365 0         0 my $thisprod = $thisrule->{"prods"}[1];
3366 0         0 $text = $_[1];
3367 0         0 my $_savetext;
3368 0         0 @item = (q{_alternation_1_of_production_1_of_rule_cond});
3369 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_cond});
3370 0         0 my $repcount = 0;
3371              
3372 0 0       0 Parse::RecDescent::_trace(
3373             q{Trying terminal: [/OR/i]},
3374             Parse::RecDescent::_tracefirst($text),
3375             q{_alternation_1_of_production_1_of_rule_cond}, $tracelevel
3376             ) if defined $::RD_TRACE;
3377 0         0 $lastsep = "";
3378 0         0 $expectation->is(q{})->at($text);
3379              
3380 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
3381             and $text =~ s/\A(?:OR)//i) {
3382              
3383 0         0 $expectation->failed();
3384 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
3385             if defined $::RD_TRACE;
3386              
3387 0         0 last;
3388             }
3389 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
3390             Parse::RecDescent::_tracefirst($text))
3391             if defined $::RD_TRACE;
3392 0         0 push @item, $item{__PATTERN1__} = $&;
3393              
3394 0 0       0 Parse::RecDescent::_trace(
3395             q{>>Matched production: [/OR/i]<<},
3396             Parse::RecDescent::_tracefirst($text),
3397             q{_alternation_1_of_production_1_of_rule_cond}, $tracelevel
3398             ) if defined $::RD_TRACE;
3399 0         0 $_matched = 1;
3400 0         0 last;
3401             }
3402              
3403 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
3404              
3405 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
3406 0 0       0 Parse::RecDescent::_trace(
3407             q{<>},
3408             Parse::RecDescent::_tracefirst($_[1]),
3409             q{_alternation_1_of_production_1_of_rule_cond}, $tracelevel
3410             ) if defined $::RD_TRACE;
3411 0         0 return undef;
3412             }
3413 0 0 0     0 if (!defined($return) && defined($score)) {
3414 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
3415             "", q{_alternation_1_of_production_1_of_rule_cond}, $tracelevel)
3416             if defined $::RD_TRACE;
3417 0         0 $return = $score_return;
3418             }
3419 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
3420 0 0       0 $return = $item[$#item] unless defined $return;
3421 0 0       0 if (defined $::RD_TRACE) {
3422 0         0 Parse::RecDescent::_trace(
3423             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
3424             q{_alternation_1_of_production_1_of_rule_cond}, $tracelevel
3425             );
3426 0         0 Parse::RecDescent::_trace(
3427             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
3428             Parse::RecDescent::_tracefirst($text),
3429             , q{_alternation_1_of_production_1_of_rule_cond}, $tracelevel
3430             );
3431             }
3432 0         0 $_[1] = $text;
3433 0         0 return $return;
3434             }
3435              
3436             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
3437             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::numbering_function {
3438 0     0   0 my $thisparser = $_[0];
3439 1     1   11 use vars q{$tracelevel};
  1         3  
  1         2603  
3440 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
3441 0         0 $ERRORS = 0;
3442 0         0 my $thisrule = $thisparser->{"rules"}{"numbering_function"};
3443              
3444 0 0       0 Parse::RecDescent::_trace(
3445             q{Trying rule: [numbering_function]},
3446             Parse::RecDescent::_tracefirst($_[1]),
3447             q{numbering_function}, $tracelevel
3448             ) if defined $::RD_TRACE;
3449              
3450 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
3451              
3452 0         0 my $score;
3453             my $score_return;
3454 0         0 my $_tok;
3455 0         0 my $return = undef;
3456 0         0 my $_matched = 0;
3457 0         0 my $commit = 0;
3458 0         0 my @item = ();
3459 0         0 my %item = ();
3460 0   0     0 my $repeating = defined($_[2]) && $_[2];
3461 0   0     0 my $_noactions = defined($_[3]) && $_[3];
3462 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
3463 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
3464 0         0 my $text;
3465 0         0 my $lastsep = "";
3466 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
3467 0         0 $expectation->at($_[1]);
3468              
3469 0         0 my $thisline;
3470 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
3471              
3472 0   0     0 while (!$_matched && !$commit) {
3473              
3474 0 0       0 Parse::RecDescent::_trace(
3475             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 ')']},
3476             Parse::RecDescent::_tracefirst($_[1]), q{numbering_function}, $tracelevel
3477             ) if defined $::RD_TRACE;
3478 0         0 my $thisprod = $thisrule->{"prods"}[0];
3479 0         0 $text = $_[1];
3480 0         0 my $_savetext;
3481 0         0 @item = (q{numbering_function});
3482 0         0 %item = (__RULE__ => q{numbering_function});
3483 0         0 my $repcount = 0;
3484              
3485 0 0       0 Parse::RecDescent::_trace(
3486             q{Trying terminal: [/ROW_NUMBER|ROWNUMBER/i]},
3487             Parse::RecDescent::_tracefirst($text),
3488             q{numbering_function}, $tracelevel
3489             ) if defined $::RD_TRACE;
3490 0         0 $lastsep = "";
3491 0         0 $expectation->is(q{})->at($text);
3492              
3493 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
3494             and $text =~ s/\A(?:ROW_NUMBER|ROWNUMBER)//i) {
3495              
3496 0         0 $expectation->failed();
3497 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
3498             if defined $::RD_TRACE;
3499              
3500 0         0 last;
3501             }
3502 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
3503             Parse::RecDescent::_tracefirst($text))
3504             if defined $::RD_TRACE;
3505 0         0 push @item, $item{__PATTERN1__} = $&;
3506              
3507 0 0       0 Parse::RecDescent::_trace(
3508             q{Trying terminal: ['()']},
3509             Parse::RecDescent::_tracefirst($text),
3510             q{numbering_function}, $tracelevel
3511             ) if defined $::RD_TRACE;
3512 0         0 $lastsep = "";
3513 0         0 $expectation->is(q{'()'})->at($text);
3514              
3515 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
3516             and $text =~ s/\A\(\)//) {
3517              
3518 0         0 $expectation->failed();
3519 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
3520             if defined $::RD_TRACE;
3521 0         0 last;
3522             }
3523 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
3524             Parse::RecDescent::_tracefirst($text))
3525             if defined $::RD_TRACE;
3526 0         0 push @item, $item{__STRING1__} = $&;
3527              
3528 0 0       0 Parse::RecDescent::_trace(
3529             q{Trying terminal: [/OVER/i]},
3530             Parse::RecDescent::_tracefirst($text),
3531             q{numbering_function}, $tracelevel
3532             ) if defined $::RD_TRACE;
3533 0         0 $lastsep = "";
3534 0         0 $expectation->is(q{/OVER/i})->at($text);
3535              
3536 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
3537             and $text =~ s/\A(?:OVER)//i) {
3538              
3539 0         0 $expectation->failed();
3540 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
3541             if defined $::RD_TRACE;
3542              
3543 0         0 last;
3544             }
3545 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
3546             Parse::RecDescent::_tracefirst($text))
3547             if defined $::RD_TRACE;
3548 0         0 push @item, $item{__PATTERN2__} = $&;
3549              
3550 0 0       0 Parse::RecDescent::_trace(
3551             q{Trying terminal: ['(']},
3552             Parse::RecDescent::_tracefirst($text),
3553             q{numbering_function}, $tracelevel
3554             ) if defined $::RD_TRACE;
3555 0         0 $lastsep = "";
3556 0         0 $expectation->is(q{'('})->at($text);
3557              
3558 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
3559             and $text =~ s/\A\(//) {
3560              
3561 0         0 $expectation->failed();
3562 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
3563             if defined $::RD_TRACE;
3564 0         0 last;
3565             }
3566 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
3567             Parse::RecDescent::_tracefirst($text))
3568             if defined $::RD_TRACE;
3569 0         0 push @item, $item{__STRING2__} = $&;
3570              
3571 0 0       0 Parse::RecDescent::_trace(
3572             q{Trying repeated subrule: [window_partition_clause]},
3573             Parse::RecDescent::_tracefirst($text),
3574             q{numbering_function}, $tracelevel
3575             ) if defined $::RD_TRACE;
3576 0         0 $expectation->is(q{window_partition_clause})->at($text);
3577              
3578 0 0       0 unless (defined(
3579             $_tok = $thisparser->_parserepeat(
3580             $text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_partition_clause,
3581             0, 1, $_noactions, $expectation, undef
3582             )
3583             )) {
3584 0 0       0 Parse::RecDescent::_trace(
3585             q{<>},
3586             Parse::RecDescent::_tracefirst($text),
3587             q{numbering_function}, $tracelevel
3588             ) if defined $::RD_TRACE;
3589 0         0 last;
3590             }
3591             Parse::RecDescent::_trace(
3592 0 0       0 q{>>Matched repeated subrule: [window_partition_clause]<< (} . @$_tok . q{ times)},
3593              
3594             Parse::RecDescent::_tracefirst($text),
3595             q{numbering_function},
3596             $tracelevel
3597             ) if defined $::RD_TRACE;
3598 0         0 $item{q{window_partition_clause(?)}} = $_tok;
3599 0         0 push @item, $_tok;
3600              
3601 0 0       0 Parse::RecDescent::_trace(
3602             q{Trying repeated subrule: [window_order_clause]},
3603             Parse::RecDescent::_tracefirst($text),
3604             q{numbering_function}, $tracelevel
3605             ) if defined $::RD_TRACE;
3606 0         0 $expectation->is(q{window_order_clause})->at($text);
3607              
3608 0 0       0 unless (defined(
3609             $_tok = $thisparser->_parserepeat(
3610             $text,
3611             \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_numbering_function,
3612             0,
3613             1,
3614             $_noactions,
3615             $expectation,
3616             undef
3617             )
3618             )) {
3619 0 0       0 Parse::RecDescent::_trace(
3620             q{<>},
3621             Parse::RecDescent::_tracefirst($text),
3622             q{numbering_function}, $tracelevel
3623             ) if defined $::RD_TRACE;
3624 0         0 last;
3625             }
3626             Parse::RecDescent::_trace(
3627 0 0       0 q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_numbering_function]<< (}
3628             . @$_tok
3629             . q{ times)},
3630              
3631             Parse::RecDescent::_tracefirst($text),
3632             q{numbering_function},
3633             $tracelevel
3634             ) if defined $::RD_TRACE;
3635 0         0 $item{q{_alternation_1_of_production_1_of_rule_numbering_function(?)}} = $_tok;
3636 0         0 push @item, $_tok;
3637              
3638 0 0       0 Parse::RecDescent::_trace(
3639             q{Trying repeated subrule: [/RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i, or window_aggregation_group_clause]},
3640             Parse::RecDescent::_tracefirst($text), q{numbering_function}, $tracelevel
3641             ) if defined $::RD_TRACE;
3642 0         0 $expectation->is(
3643             q{/RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i, or window_aggregation_group_clause}
3644             )->at($text);
3645              
3646 0 0       0 unless (defined(
3647             $_tok = $thisparser->_parserepeat(
3648             $text,
3649             \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_numbering_function,
3650             0,
3651             1,
3652             $_noactions,
3653             $expectation,
3654             undef
3655             )
3656             )) {
3657 0 0       0 Parse::RecDescent::_trace(
3658             q{<>},
3659             Parse::RecDescent::_tracefirst($text), q{numbering_function}, $tracelevel
3660             ) if defined $::RD_TRACE;
3661 0         0 last;
3662             }
3663             Parse::RecDescent::_trace(
3664 0 0       0 q{>>Matched repeated subrule: [_alternation_2_of_production_1_of_rule_numbering_function]<< (}
3665             . @$_tok
3666             . q{ times)},
3667              
3668             Parse::RecDescent::_tracefirst($text),
3669             q{numbering_function},
3670             $tracelevel
3671             ) if defined $::RD_TRACE;
3672 0         0 $item{q{_alternation_2_of_production_1_of_rule_numbering_function(?)}} = $_tok;
3673 0         0 push @item, $_tok;
3674              
3675 0 0       0 Parse::RecDescent::_trace(
3676             q{Trying terminal: [')']},
3677             Parse::RecDescent::_tracefirst($text),
3678             q{numbering_function}, $tracelevel
3679             ) if defined $::RD_TRACE;
3680 0         0 $lastsep = "";
3681 0         0 $expectation->is(q{')'})->at($text);
3682              
3683 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
3684             and $text =~ s/\A\)//) {
3685              
3686 0         0 $expectation->failed();
3687 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
3688             if defined $::RD_TRACE;
3689 0         0 last;
3690             }
3691 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
3692             Parse::RecDescent::_tracefirst($text))
3693             if defined $::RD_TRACE;
3694 0         0 push @item, $item{__STRING3__} = $&;
3695              
3696 0 0       0 Parse::RecDescent::_trace(
3697             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 ')']<<},
3698             Parse::RecDescent::_tracefirst($text), q{numbering_function}, $tracelevel
3699             ) if defined $::RD_TRACE;
3700 0         0 $_matched = 1;
3701 0         0 last;
3702             }
3703              
3704 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
3705              
3706 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
3707 0 0       0 Parse::RecDescent::_trace(
3708             q{<>},
3709             Parse::RecDescent::_tracefirst($_[1]),
3710             q{numbering_function}, $tracelevel
3711             ) if defined $::RD_TRACE;
3712 0         0 return undef;
3713             }
3714 0 0 0     0 if (!defined($return) && defined($score)) {
3715 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{numbering_function}, $tracelevel)
3716             if defined $::RD_TRACE;
3717 0         0 $return = $score_return;
3718             }
3719 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
3720 0 0       0 $return = $item[$#item] unless defined $return;
3721 0 0       0 if (defined $::RD_TRACE) {
3722 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
3723             "", q{numbering_function}, $tracelevel);
3724 0         0 Parse::RecDescent::_trace(
3725             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
3726             Parse::RecDescent::_tracefirst($text),
3727             , q{numbering_function}, $tracelevel
3728             );
3729             }
3730 0         0 $_[1] = $text;
3731 0         0 return $return;
3732             }
3733              
3734             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
3735             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_window_aggregation_group_clause
3736             {
3737 0     0   0 my $thisparser = $_[0];
3738 1     1   12 use vars q{$tracelevel};
  1         14  
  1         1537  
3739 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
3740 0         0 $ERRORS = 0;
3741 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_window_aggregation_group_clause"};
3742              
3743 0 0       0 Parse::RecDescent::_trace(
3744             q{Trying rule: [_alternation_1_of_production_1_of_rule_window_aggregation_group_clause]},
3745             Parse::RecDescent::_tracefirst($_[1]),
3746             q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause}, $tracelevel
3747             ) if defined $::RD_TRACE;
3748              
3749 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
3750              
3751 0         0 my $score;
3752             my $score_return;
3753 0         0 my $_tok;
3754 0         0 my $return = undef;
3755 0         0 my $_matched = 0;
3756 0         0 my $commit = 0;
3757 0         0 my @item = ();
3758 0         0 my %item = ();
3759 0   0     0 my $repeating = defined($_[2]) && $_[2];
3760 0   0     0 my $_noactions = defined($_[3]) && $_[3];
3761 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
3762 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
3763 0         0 my $text;
3764 0         0 my $lastsep = "";
3765 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
3766 0         0 $expectation->at($_[1]);
3767              
3768 0         0 my $thisline;
3769 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
3770              
3771 0   0     0 while (!$_matched && !$commit) {
3772              
3773 0 0       0 Parse::RecDescent::_trace(
3774             q{Trying production: [/ROWS/i]},
3775             Parse::RecDescent::_tracefirst($_[1]),
3776             q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause}, $tracelevel
3777             ) if defined $::RD_TRACE;
3778 0         0 my $thisprod = $thisrule->{"prods"}[0];
3779 0         0 $text = $_[1];
3780 0         0 my $_savetext;
3781 0         0 @item = (q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause});
3782 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause});
3783 0         0 my $repcount = 0;
3784              
3785 0 0       0 Parse::RecDescent::_trace(
3786             q{Trying terminal: [/ROWS/i]},
3787             Parse::RecDescent::_tracefirst($text),
3788             q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause}, $tracelevel
3789             ) if defined $::RD_TRACE;
3790 0         0 $lastsep = "";
3791 0         0 $expectation->is(q{})->at($text);
3792              
3793 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
3794             and $text =~ s/\A(?:ROWS)//i) {
3795              
3796 0         0 $expectation->failed();
3797 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
3798             if defined $::RD_TRACE;
3799              
3800 0         0 last;
3801             }
3802 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
3803             Parse::RecDescent::_tracefirst($text))
3804             if defined $::RD_TRACE;
3805 0         0 push @item, $item{__PATTERN1__} = $&;
3806              
3807 0 0       0 Parse::RecDescent::_trace(
3808             q{>>Matched production: [/ROWS/i]<<},
3809             Parse::RecDescent::_tracefirst($text),
3810             q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause}, $tracelevel
3811             ) if defined $::RD_TRACE;
3812 0         0 $_matched = 1;
3813 0         0 last;
3814             }
3815              
3816 0   0     0 while (!$_matched && !$commit) {
3817              
3818 0 0       0 Parse::RecDescent::_trace(
3819             q{Trying production: [/RANGE/i]},
3820             Parse::RecDescent::_tracefirst($_[1]),
3821             q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause}, $tracelevel
3822             ) if defined $::RD_TRACE;
3823 0         0 my $thisprod = $thisrule->{"prods"}[1];
3824 0         0 $text = $_[1];
3825 0         0 my $_savetext;
3826 0         0 @item = (q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause});
3827 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause});
3828 0         0 my $repcount = 0;
3829              
3830 0 0       0 Parse::RecDescent::_trace(
3831             q{Trying terminal: [/RANGE/i]},
3832             Parse::RecDescent::_tracefirst($text),
3833             q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause}, $tracelevel
3834             ) if defined $::RD_TRACE;
3835 0         0 $lastsep = "";
3836 0         0 $expectation->is(q{})->at($text);
3837              
3838 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
3839             and $text =~ s/\A(?:RANGE)//i) {
3840              
3841 0         0 $expectation->failed();
3842 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
3843             if defined $::RD_TRACE;
3844              
3845 0         0 last;
3846             }
3847 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
3848             Parse::RecDescent::_tracefirst($text))
3849             if defined $::RD_TRACE;
3850 0         0 push @item, $item{__PATTERN1__} = $&;
3851              
3852 0 0       0 Parse::RecDescent::_trace(
3853             q{>>Matched production: [/RANGE/i]<<},
3854             Parse::RecDescent::_tracefirst($text),
3855             q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause}, $tracelevel
3856             ) if defined $::RD_TRACE;
3857 0         0 $_matched = 1;
3858 0         0 last;
3859             }
3860              
3861 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
3862              
3863 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
3864 0 0       0 Parse::RecDescent::_trace(
3865             q{<>},
3866             Parse::RecDescent::_tracefirst($_[1]),
3867             q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause}, $tracelevel
3868             ) if defined $::RD_TRACE;
3869 0         0 return undef;
3870             }
3871 0 0 0     0 if (!defined($return) && defined($score)) {
3872 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
3873             "", q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause}, $tracelevel)
3874             if defined $::RD_TRACE;
3875 0         0 $return = $score_return;
3876             }
3877 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
3878 0 0       0 $return = $item[$#item] unless defined $return;
3879 0 0       0 if (defined $::RD_TRACE) {
3880 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
3881             "", q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause}, $tracelevel);
3882 0         0 Parse::RecDescent::_trace(
3883             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
3884             Parse::RecDescent::_tracefirst($text),
3885             ,
3886             q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
3887             $tracelevel
3888             );
3889             }
3890 0         0 $_[1] = $text;
3891 0         0 return $return;
3892             }
3893              
3894             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
3895             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_bound1 {
3896 0     0   0 my $thisparser = $_[0];
3897 1     1   11 use vars q{$tracelevel};
  1         3  
  1         910  
3898 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
3899 0         0 $ERRORS = 0;
3900 0         0 my $thisrule = $thisparser->{"rules"}{"group_bound1"};
3901              
3902 0 0       0 Parse::RecDescent::_trace(
3903             q{Trying rule: [group_bound1]},
3904             Parse::RecDescent::_tracefirst($_[1]),
3905             q{group_bound1}, $tracelevel
3906             ) if defined $::RD_TRACE;
3907              
3908 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
3909              
3910 0         0 my $score;
3911             my $score_return;
3912 0         0 my $_tok;
3913 0         0 my $return = undef;
3914 0         0 my $_matched = 0;
3915 0         0 my $commit = 0;
3916 0         0 my @item = ();
3917 0         0 my %item = ();
3918 0   0     0 my $repeating = defined($_[2]) && $_[2];
3919 0   0     0 my $_noactions = defined($_[3]) && $_[3];
3920 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
3921 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
3922 0         0 my $text;
3923 0         0 my $lastsep = "";
3924 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
3925 0         0 $expectation->at($_[1]);
3926              
3927 0         0 my $thisline;
3928 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
3929              
3930 0   0     0 while (!$_matched && !$commit) {
3931              
3932 0 0       0 Parse::RecDescent::_trace(
3933             q{Trying production: [/UNBOUNDED\\s+PRECEDING/i]},
3934             Parse::RecDescent::_tracefirst($_[1]),
3935             q{group_bound1}, $tracelevel
3936             ) if defined $::RD_TRACE;
3937 0         0 my $thisprod = $thisrule->{"prods"}[0];
3938 0         0 $text = $_[1];
3939 0         0 my $_savetext;
3940 0         0 @item = (q{group_bound1});
3941 0         0 %item = (__RULE__ => q{group_bound1});
3942 0         0 my $repcount = 0;
3943              
3944 0 0       0 Parse::RecDescent::_trace(
3945             q{Trying terminal: [/UNBOUNDED\\s+PRECEDING/i]},
3946             Parse::RecDescent::_tracefirst($text),
3947             q{group_bound1}, $tracelevel
3948             ) if defined $::RD_TRACE;
3949 0         0 $lastsep = "";
3950 0         0 $expectation->is(q{})->at($text);
3951              
3952 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
3953             and $text =~ s/\A(?:UNBOUNDED\s+PRECEDING)//i) {
3954              
3955 0         0 $expectation->failed();
3956 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
3957             if defined $::RD_TRACE;
3958              
3959 0         0 last;
3960             }
3961 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
3962             Parse::RecDescent::_tracefirst($text))
3963             if defined $::RD_TRACE;
3964 0         0 push @item, $item{__PATTERN1__} = $&;
3965              
3966 0 0       0 Parse::RecDescent::_trace(
3967             q{>>Matched production: [/UNBOUNDED\\s+PRECEDING/i]<<},
3968             Parse::RecDescent::_tracefirst($text),
3969             q{group_bound1}, $tracelevel
3970             ) if defined $::RD_TRACE;
3971 0         0 $_matched = 1;
3972 0         0 last;
3973             }
3974              
3975 0   0     0 while (!$_matched && !$commit) {
3976              
3977 0 0       0 Parse::RecDescent::_trace(
3978             q{Trying production: [unsigned_constant /PRECEDING/i]},
3979             Parse::RecDescent::_tracefirst($_[1]),
3980             q{group_bound1}, $tracelevel
3981             ) if defined $::RD_TRACE;
3982 0         0 my $thisprod = $thisrule->{"prods"}[1];
3983 0         0 $text = $_[1];
3984 0         0 my $_savetext;
3985 0         0 @item = (q{group_bound1});
3986 0         0 %item = (__RULE__ => q{group_bound1});
3987 0         0 my $repcount = 0;
3988              
3989 0 0       0 Parse::RecDescent::_trace(
3990             q{Trying subrule: [unsigned_constant]},
3991             Parse::RecDescent::_tracefirst($text),
3992             q{group_bound1}, $tracelevel
3993             ) if defined $::RD_TRACE;
3994 0         0 if (1) {
3995 1     1   12 no strict qw{refs};
  1         3  
  1         594  
3996 0         0 $expectation->is(q{})->at($text);
3997 0 0       0 unless (defined(
3998             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::unsigned_constant(
3999 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
4000             )
4001             )) {
4002              
4003 0 0       0 Parse::RecDescent::_trace(
4004             q{<>},
4005             Parse::RecDescent::_tracefirst($text),
4006             q{group_bound1}, $tracelevel
4007             ) if defined $::RD_TRACE;
4008 0         0 $expectation->failed();
4009 0         0 last;
4010             }
4011             Parse::RecDescent::_trace(
4012 0 0       0 q{>>Matched subrule: [unsigned_constant]<< (return value: [} . $_tok . q{]},
4013              
4014             Parse::RecDescent::_tracefirst($text),
4015             q{group_bound1},
4016             $tracelevel
4017             ) if defined $::RD_TRACE;
4018 0         0 $item{q{unsigned_constant}} = $_tok;
4019 0         0 push @item, $_tok;
4020              
4021             }
4022              
4023             Parse::RecDescent::_trace(
4024 0 0       0 q{Trying terminal: [/PRECEDING/i]},
4025             Parse::RecDescent::_tracefirst($text),
4026             q{group_bound1}, $tracelevel
4027             ) if defined $::RD_TRACE;
4028 0         0 $lastsep = "";
4029 0         0 $expectation->is(q{/PRECEDING/i})->at($text);
4030              
4031 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
4032             and $text =~ s/\A(?:PRECEDING)//i) {
4033              
4034 0         0 $expectation->failed();
4035 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
4036             if defined $::RD_TRACE;
4037              
4038 0         0 last;
4039             }
4040 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
4041             Parse::RecDescent::_tracefirst($text))
4042             if defined $::RD_TRACE;
4043 0         0 push @item, $item{__PATTERN1__} = $&;
4044              
4045 0 0       0 Parse::RecDescent::_trace(
4046             q{>>Matched production: [unsigned_constant /PRECEDING/i]<<},
4047             Parse::RecDescent::_tracefirst($text),
4048             q{group_bound1}, $tracelevel
4049             ) if defined $::RD_TRACE;
4050 0         0 $_matched = 1;
4051 0         0 last;
4052             }
4053              
4054 0   0     0 while (!$_matched && !$commit) {
4055              
4056 0 0       0 Parse::RecDescent::_trace(
4057             q{Trying production: [unsigned_constant /FOLLOWING/i]},
4058             Parse::RecDescent::_tracefirst($_[1]),
4059             q{group_bound1}, $tracelevel
4060             ) if defined $::RD_TRACE;
4061 0         0 my $thisprod = $thisrule->{"prods"}[2];
4062 0         0 $text = $_[1];
4063 0         0 my $_savetext;
4064 0         0 @item = (q{group_bound1});
4065 0         0 %item = (__RULE__ => q{group_bound1});
4066 0         0 my $repcount = 0;
4067              
4068 0 0       0 Parse::RecDescent::_trace(
4069             q{Trying subrule: [unsigned_constant]},
4070             Parse::RecDescent::_tracefirst($text),
4071             q{group_bound1}, $tracelevel
4072             ) if defined $::RD_TRACE;
4073 0         0 if (1) {
4074 1     1   10 no strict qw{refs};
  1         3  
  1         1401  
4075 0         0 $expectation->is(q{})->at($text);
4076 0 0       0 unless (defined(
4077             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::unsigned_constant(
4078 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
4079             )
4080             )) {
4081              
4082 0 0       0 Parse::RecDescent::_trace(
4083             q{<>},
4084             Parse::RecDescent::_tracefirst($text),
4085             q{group_bound1}, $tracelevel
4086             ) if defined $::RD_TRACE;
4087 0         0 $expectation->failed();
4088 0         0 last;
4089             }
4090             Parse::RecDescent::_trace(
4091 0 0       0 q{>>Matched subrule: [unsigned_constant]<< (return value: [} . $_tok . q{]},
4092              
4093             Parse::RecDescent::_tracefirst($text),
4094             q{group_bound1},
4095             $tracelevel
4096             ) if defined $::RD_TRACE;
4097 0         0 $item{q{unsigned_constant}} = $_tok;
4098 0         0 push @item, $_tok;
4099              
4100             }
4101              
4102             Parse::RecDescent::_trace(
4103 0 0       0 q{Trying terminal: [/FOLLOWING/i]},
4104             Parse::RecDescent::_tracefirst($text),
4105             q{group_bound1}, $tracelevel
4106             ) if defined $::RD_TRACE;
4107 0         0 $lastsep = "";
4108 0         0 $expectation->is(q{/FOLLOWING/i})->at($text);
4109              
4110 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
4111             and $text =~ s/\A(?:FOLLOWING)//i) {
4112              
4113 0         0 $expectation->failed();
4114 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
4115             if defined $::RD_TRACE;
4116              
4117 0         0 last;
4118             }
4119 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
4120             Parse::RecDescent::_tracefirst($text))
4121             if defined $::RD_TRACE;
4122 0         0 push @item, $item{__PATTERN1__} = $&;
4123              
4124 0 0       0 Parse::RecDescent::_trace(
4125             q{>>Matched production: [unsigned_constant /FOLLOWING/i]<<},
4126             Parse::RecDescent::_tracefirst($text),
4127             q{group_bound1}, $tracelevel
4128             ) if defined $::RD_TRACE;
4129 0         0 $_matched = 1;
4130 0         0 last;
4131             }
4132              
4133 0   0     0 while (!$_matched && !$commit) {
4134              
4135 0 0       0 Parse::RecDescent::_trace(
4136             q{Trying production: [/CURRENT\\s+ROW/i]},
4137             Parse::RecDescent::_tracefirst($_[1]),
4138             q{group_bound1}, $tracelevel
4139             ) if defined $::RD_TRACE;
4140 0         0 my $thisprod = $thisrule->{"prods"}[3];
4141 0         0 $text = $_[1];
4142 0         0 my $_savetext;
4143 0         0 @item = (q{group_bound1});
4144 0         0 %item = (__RULE__ => q{group_bound1});
4145 0         0 my $repcount = 0;
4146              
4147 0 0       0 Parse::RecDescent::_trace(
4148             q{Trying terminal: [/CURRENT\\s+ROW/i]},
4149             Parse::RecDescent::_tracefirst($text),
4150             q{group_bound1}, $tracelevel
4151             ) if defined $::RD_TRACE;
4152 0         0 $lastsep = "";
4153 0         0 $expectation->is(q{})->at($text);
4154              
4155 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
4156             and $text =~ s/\A(?:CURRENT\s+ROW)//i) {
4157              
4158 0         0 $expectation->failed();
4159 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
4160             if defined $::RD_TRACE;
4161              
4162 0         0 last;
4163             }
4164 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
4165             Parse::RecDescent::_tracefirst($text))
4166             if defined $::RD_TRACE;
4167 0         0 push @item, $item{__PATTERN1__} = $&;
4168              
4169 0 0       0 Parse::RecDescent::_trace(
4170             q{>>Matched production: [/CURRENT\\s+ROW/i]<<},
4171             Parse::RecDescent::_tracefirst($text),
4172             q{group_bound1}, $tracelevel
4173             ) if defined $::RD_TRACE;
4174 0         0 $_matched = 1;
4175 0         0 last;
4176             }
4177              
4178 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
4179              
4180 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
4181 0 0       0 Parse::RecDescent::_trace(
4182             q{<>},
4183             Parse::RecDescent::_tracefirst($_[1]),
4184             q{group_bound1}, $tracelevel
4185             ) if defined $::RD_TRACE;
4186 0         0 return undef;
4187             }
4188 0 0 0     0 if (!defined($return) && defined($score)) {
4189 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{group_bound1}, $tracelevel)
4190             if defined $::RD_TRACE;
4191 0         0 $return = $score_return;
4192             }
4193 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
4194 0 0       0 $return = $item[$#item] unless defined $return;
4195 0 0       0 if (defined $::RD_TRACE) {
4196 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
4197             "", q{group_bound1}, $tracelevel);
4198 0         0 Parse::RecDescent::_trace(
4199             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
4200             Parse::RecDescent::_tracefirst($text),
4201             , q{group_bound1}, $tracelevel
4202             );
4203             }
4204 0         0 $_[1] = $text;
4205 0         0 return $return;
4206             }
4207              
4208             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
4209             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::OLAP_function {
4210 0     0   0 my $thisparser = $_[0];
4211 1     1   10 use vars q{$tracelevel};
  1         2  
  1         511  
4212 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
4213 0         0 $ERRORS = 0;
4214 0         0 my $thisrule = $thisparser->{"rules"}{"OLAP_function"};
4215              
4216 0 0       0 Parse::RecDescent::_trace(
4217             q{Trying rule: [OLAP_function]},
4218             Parse::RecDescent::_tracefirst($_[1]),
4219             q{OLAP_function}, $tracelevel
4220             ) if defined $::RD_TRACE;
4221              
4222 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
4223              
4224 0         0 my $score;
4225             my $score_return;
4226 0         0 my $_tok;
4227 0         0 my $return = undef;
4228 0         0 my $_matched = 0;
4229 0         0 my $commit = 0;
4230 0         0 my @item = ();
4231 0         0 my %item = ();
4232 0   0     0 my $repeating = defined($_[2]) && $_[2];
4233 0   0     0 my $_noactions = defined($_[3]) && $_[3];
4234 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
4235 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
4236 0         0 my $text;
4237 0         0 my $lastsep = "";
4238 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
4239 0         0 $expectation->at($_[1]);
4240              
4241 0         0 my $thisline;
4242 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
4243              
4244 0   0     0 while (!$_matched && !$commit) {
4245              
4246 0 0       0 Parse::RecDescent::_trace(
4247             q{Trying production: [ranking_function]},
4248             Parse::RecDescent::_tracefirst($_[1]),
4249             q{OLAP_function}, $tracelevel
4250             ) if defined $::RD_TRACE;
4251 0         0 my $thisprod = $thisrule->{"prods"}[0];
4252 0         0 $text = $_[1];
4253 0         0 my $_savetext;
4254 0         0 @item = (q{OLAP_function});
4255 0         0 %item = (__RULE__ => q{OLAP_function});
4256 0         0 my $repcount = 0;
4257              
4258 0 0       0 Parse::RecDescent::_trace(
4259             q{Trying subrule: [ranking_function]},
4260             Parse::RecDescent::_tracefirst($text),
4261             q{OLAP_function}, $tracelevel
4262             ) if defined $::RD_TRACE;
4263 0         0 if (1) {
4264 1     1   10 no strict qw{refs};
  1         3  
  1         463  
4265 0         0 $expectation->is(q{})->at($text);
4266 0 0       0 unless (defined(
4267             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ranking_function(
4268 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
4269             )
4270             )) {
4271              
4272 0 0       0 Parse::RecDescent::_trace(
4273             q{<>},
4274             Parse::RecDescent::_tracefirst($text),
4275             q{OLAP_function}, $tracelevel
4276             ) if defined $::RD_TRACE;
4277 0         0 $expectation->failed();
4278 0         0 last;
4279             }
4280             Parse::RecDescent::_trace(
4281 0 0       0 q{>>Matched subrule: [ranking_function]<< (return value: [} . $_tok . q{]},
4282              
4283             Parse::RecDescent::_tracefirst($text),
4284             q{OLAP_function},
4285             $tracelevel
4286             ) if defined $::RD_TRACE;
4287 0         0 $item{q{ranking_function}} = $_tok;
4288 0         0 push @item, $_tok;
4289              
4290             }
4291              
4292             Parse::RecDescent::_trace(
4293 0 0       0 q{>>Matched production: [ranking_function]<<},
4294             Parse::RecDescent::_tracefirst($text),
4295             q{OLAP_function}, $tracelevel
4296             ) if defined $::RD_TRACE;
4297 0         0 $_matched = 1;
4298 0         0 last;
4299             }
4300              
4301 0   0     0 while (!$_matched && !$commit) {
4302              
4303 0 0       0 Parse::RecDescent::_trace(
4304             q{Trying production: [numbering_function]},
4305             Parse::RecDescent::_tracefirst($_[1]),
4306             q{OLAP_function}, $tracelevel
4307             ) if defined $::RD_TRACE;
4308 0         0 my $thisprod = $thisrule->{"prods"}[1];
4309 0         0 $text = $_[1];
4310 0         0 my $_savetext;
4311 0         0 @item = (q{OLAP_function});
4312 0         0 %item = (__RULE__ => q{OLAP_function});
4313 0         0 my $repcount = 0;
4314              
4315 0 0       0 Parse::RecDescent::_trace(
4316             q{Trying subrule: [numbering_function]},
4317             Parse::RecDescent::_tracefirst($text),
4318             q{OLAP_function}, $tracelevel
4319             ) if defined $::RD_TRACE;
4320 0         0 if (1) {
4321 1     1   10 no strict qw{refs};
  1         3  
  1         372  
4322 0         0 $expectation->is(q{})->at($text);
4323 0 0       0 unless (defined(
4324             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::numbering_function(
4325 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
4326             )
4327             )) {
4328              
4329 0 0       0 Parse::RecDescent::_trace(
4330             q{<>},
4331             Parse::RecDescent::_tracefirst($text),
4332             q{OLAP_function}, $tracelevel
4333             ) if defined $::RD_TRACE;
4334 0         0 $expectation->failed();
4335 0         0 last;
4336             }
4337             Parse::RecDescent::_trace(
4338 0 0       0 q{>>Matched subrule: [numbering_function]<< (return value: [} . $_tok . q{]},
4339              
4340             Parse::RecDescent::_tracefirst($text),
4341             q{OLAP_function},
4342             $tracelevel
4343             ) if defined $::RD_TRACE;
4344 0         0 $item{q{numbering_function}} = $_tok;
4345 0         0 push @item, $_tok;
4346              
4347             }
4348              
4349             Parse::RecDescent::_trace(
4350 0 0       0 q{>>Matched production: [numbering_function]<<},
4351             Parse::RecDescent::_tracefirst($text),
4352             q{OLAP_function}, $tracelevel
4353             ) if defined $::RD_TRACE;
4354 0         0 $_matched = 1;
4355 0         0 last;
4356             }
4357              
4358 0   0     0 while (!$_matched && !$commit) {
4359              
4360 0 0       0 Parse::RecDescent::_trace(
4361             q{Trying production: [aggregation_function]},
4362             Parse::RecDescent::_tracefirst($_[1]),
4363             q{OLAP_function}, $tracelevel
4364             ) if defined $::RD_TRACE;
4365 0         0 my $thisprod = $thisrule->{"prods"}[2];
4366 0         0 $text = $_[1];
4367 0         0 my $_savetext;
4368 0         0 @item = (q{OLAP_function});
4369 0         0 %item = (__RULE__ => q{OLAP_function});
4370 0         0 my $repcount = 0;
4371              
4372 0 0       0 Parse::RecDescent::_trace(
4373             q{Trying subrule: [aggregation_function]},
4374             Parse::RecDescent::_tracefirst($text),
4375             q{OLAP_function}, $tracelevel
4376             ) if defined $::RD_TRACE;
4377 0         0 if (1) {
4378 1     1   12 no strict qw{refs};
  1         3  
  1         751  
4379 0         0 $expectation->is(q{})->at($text);
4380 0 0       0 unless (defined(
4381             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::aggregation_function(
4382 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
4383             )
4384             )) {
4385              
4386 0 0       0 Parse::RecDescent::_trace(
4387             q{<>},
4388             Parse::RecDescent::_tracefirst($text),
4389             q{OLAP_function}, $tracelevel
4390             ) if defined $::RD_TRACE;
4391 0         0 $expectation->failed();
4392 0         0 last;
4393             }
4394             Parse::RecDescent::_trace(
4395 0 0       0 q{>>Matched subrule: [aggregation_function]<< (return value: [} . $_tok . q{]},
4396              
4397             Parse::RecDescent::_tracefirst($text),
4398             q{OLAP_function},
4399             $tracelevel
4400             ) if defined $::RD_TRACE;
4401 0         0 $item{q{aggregation_function}} = $_tok;
4402 0         0 push @item, $_tok;
4403              
4404             }
4405              
4406             Parse::RecDescent::_trace(
4407 0 0       0 q{>>Matched production: [aggregation_function]<<},
4408             Parse::RecDescent::_tracefirst($text),
4409             q{OLAP_function}, $tracelevel
4410             ) if defined $::RD_TRACE;
4411 0         0 $_matched = 1;
4412 0         0 last;
4413             }
4414              
4415 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
4416              
4417 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
4418 0 0       0 Parse::RecDescent::_trace(
4419             q{<>},
4420             Parse::RecDescent::_tracefirst($_[1]),
4421             q{OLAP_function}, $tracelevel
4422             ) if defined $::RD_TRACE;
4423 0         0 return undef;
4424             }
4425 0 0 0     0 if (!defined($return) && defined($score)) {
4426 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{OLAP_function}, $tracelevel)
4427             if defined $::RD_TRACE;
4428 0         0 $return = $score_return;
4429             }
4430 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
4431 0 0       0 $return = $item[$#item] unless defined $return;
4432 0 0       0 if (defined $::RD_TRACE) {
4433 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
4434             "", q{OLAP_function}, $tracelevel);
4435 0         0 Parse::RecDescent::_trace(
4436             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
4437             Parse::RecDescent::_tracefirst($text),
4438             , q{OLAP_function}, $tracelevel
4439             );
4440             }
4441 0         0 $_[1] = $text;
4442 0         0 return $return;
4443             }
4444              
4445             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
4446             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_30_of_rule_sysibm_function
4447             {
4448 0     0   0 my $thisparser = $_[0];
4449 1     1   12 use vars q{$tracelevel};
  1         2  
  1         1528  
4450 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
4451 0         0 $ERRORS = 0;
4452 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_30_of_rule_sysibm_function"};
4453              
4454 0 0       0 Parse::RecDescent::_trace(
4455             q{Trying rule: [_alternation_1_of_production_30_of_rule_sysibm_function]},
4456             Parse::RecDescent::_tracefirst($_[1]),
4457             q{_alternation_1_of_production_30_of_rule_sysibm_function}, $tracelevel
4458             ) if defined $::RD_TRACE;
4459              
4460 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
4461              
4462 0         0 my $score;
4463             my $score_return;
4464 0         0 my $_tok;
4465 0         0 my $return = undef;
4466 0         0 my $_matched = 0;
4467 0         0 my $commit = 0;
4468 0         0 my @item = ();
4469 0         0 my %item = ();
4470 0   0     0 my $repeating = defined($_[2]) && $_[2];
4471 0   0     0 my $_noactions = defined($_[3]) && $_[3];
4472 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
4473 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
4474 0         0 my $text;
4475 0         0 my $lastsep = "";
4476 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
4477 0         0 $expectation->at($_[1]);
4478              
4479 0         0 my $thisline;
4480 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
4481              
4482 0   0     0 while (!$_matched && !$commit) {
4483              
4484 0 0       0 Parse::RecDescent::_trace(
4485             q{Trying production: [/DOUBLE/i]},
4486             Parse::RecDescent::_tracefirst($_[1]),
4487             q{_alternation_1_of_production_30_of_rule_sysibm_function}, $tracelevel
4488             ) if defined $::RD_TRACE;
4489 0         0 my $thisprod = $thisrule->{"prods"}[0];
4490 0         0 $text = $_[1];
4491 0         0 my $_savetext;
4492 0         0 @item = (q{_alternation_1_of_production_30_of_rule_sysibm_function});
4493 0         0 %item = (__RULE__ => q{_alternation_1_of_production_30_of_rule_sysibm_function});
4494 0         0 my $repcount = 0;
4495              
4496 0 0       0 Parse::RecDescent::_trace(
4497             q{Trying terminal: [/DOUBLE/i]},
4498             Parse::RecDescent::_tracefirst($text),
4499             q{_alternation_1_of_production_30_of_rule_sysibm_function}, $tracelevel
4500             ) if defined $::RD_TRACE;
4501 0         0 $lastsep = "";
4502 0         0 $expectation->is(q{})->at($text);
4503              
4504 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
4505             and $text =~ s/\A(?:DOUBLE)//i) {
4506              
4507 0         0 $expectation->failed();
4508 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
4509             if defined $::RD_TRACE;
4510              
4511 0         0 last;
4512             }
4513 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
4514             Parse::RecDescent::_tracefirst($text))
4515             if defined $::RD_TRACE;
4516 0         0 push @item, $item{__PATTERN1__} = $&;
4517              
4518 0 0       0 Parse::RecDescent::_trace(
4519             q{>>Matched production: [/DOUBLE/i]<<},
4520             Parse::RecDescent::_tracefirst($text),
4521             q{_alternation_1_of_production_30_of_rule_sysibm_function}, $tracelevel
4522             ) if defined $::RD_TRACE;
4523 0         0 $_matched = 1;
4524 0         0 last;
4525             }
4526              
4527 0   0     0 while (!$_matched && !$commit) {
4528              
4529 0 0       0 Parse::RecDescent::_trace(
4530             q{Trying production: [/DOUBLE_PRECISION/i]},
4531             Parse::RecDescent::_tracefirst($_[1]),
4532             q{_alternation_1_of_production_30_of_rule_sysibm_function}, $tracelevel
4533             ) if defined $::RD_TRACE;
4534 0         0 my $thisprod = $thisrule->{"prods"}[1];
4535 0         0 $text = $_[1];
4536 0         0 my $_savetext;
4537 0         0 @item = (q{_alternation_1_of_production_30_of_rule_sysibm_function});
4538 0         0 %item = (__RULE__ => q{_alternation_1_of_production_30_of_rule_sysibm_function});
4539 0         0 my $repcount = 0;
4540              
4541 0 0       0 Parse::RecDescent::_trace(
4542             q{Trying terminal: [/DOUBLE_PRECISION/i]},
4543             Parse::RecDescent::_tracefirst($text),
4544             q{_alternation_1_of_production_30_of_rule_sysibm_function}, $tracelevel
4545             ) if defined $::RD_TRACE;
4546 0         0 $lastsep = "";
4547 0         0 $expectation->is(q{})->at($text);
4548              
4549 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
4550             and $text =~ s/\A(?:DOUBLE_PRECISION)//i) {
4551              
4552 0         0 $expectation->failed();
4553 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
4554             if defined $::RD_TRACE;
4555              
4556 0         0 last;
4557             }
4558 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
4559             Parse::RecDescent::_tracefirst($text))
4560             if defined $::RD_TRACE;
4561 0         0 push @item, $item{__PATTERN1__} = $&;
4562              
4563 0 0       0 Parse::RecDescent::_trace(
4564             q{>>Matched production: [/DOUBLE_PRECISION/i]<<},
4565             Parse::RecDescent::_tracefirst($text),
4566             q{_alternation_1_of_production_30_of_rule_sysibm_function}, $tracelevel
4567             ) if defined $::RD_TRACE;
4568 0         0 $_matched = 1;
4569 0         0 last;
4570             }
4571              
4572 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
4573              
4574 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
4575 0 0       0 Parse::RecDescent::_trace(
4576             q{<>},
4577             Parse::RecDescent::_tracefirst($_[1]),
4578             q{_alternation_1_of_production_30_of_rule_sysibm_function}, $tracelevel
4579             ) if defined $::RD_TRACE;
4580 0         0 return undef;
4581             }
4582 0 0 0     0 if (!defined($return) && defined($score)) {
4583 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
4584             "", q{_alternation_1_of_production_30_of_rule_sysibm_function}, $tracelevel)
4585             if defined $::RD_TRACE;
4586 0         0 $return = $score_return;
4587             }
4588 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
4589 0 0       0 $return = $item[$#item] unless defined $return;
4590 0 0       0 if (defined $::RD_TRACE) {
4591 0         0 Parse::RecDescent::_trace(
4592             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
4593             q{_alternation_1_of_production_30_of_rule_sysibm_function}, $tracelevel
4594             );
4595 0         0 Parse::RecDescent::_trace(
4596             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
4597             Parse::RecDescent::_tracefirst($text),
4598             , q{_alternation_1_of_production_30_of_rule_sysibm_function}, $tracelevel
4599             );
4600             }
4601 0         0 $_[1] = $text;
4602 0         0 return $return;
4603             }
4604              
4605             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
4606             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::FULL {
4607 0     0   0 my $thisparser = $_[0];
4608 1     1   11 use vars q{$tracelevel};
  1         4  
  1         1181  
4609 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
4610 0         0 $ERRORS = 0;
4611 0         0 my $thisrule = $thisparser->{"rules"}{"FULL"};
4612              
4613 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [FULL]}, Parse::RecDescent::_tracefirst($_[1]), q{FULL}, $tracelevel)
4614             if defined $::RD_TRACE;
4615              
4616 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
4617              
4618 0         0 my $score;
4619             my $score_return;
4620 0         0 my $_tok;
4621 0         0 my $return = undef;
4622 0         0 my $_matched = 0;
4623 0         0 my $commit = 0;
4624 0         0 my @item = ();
4625 0         0 my %item = ();
4626 0   0     0 my $repeating = defined($_[2]) && $_[2];
4627 0   0     0 my $_noactions = defined($_[3]) && $_[3];
4628 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
4629 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
4630 0         0 my $text;
4631 0         0 my $lastsep = "";
4632 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
4633 0         0 $expectation->at($_[1]);
4634              
4635 0         0 my $thisline;
4636 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
4637              
4638 0   0     0 while (!$_matched && !$commit) {
4639              
4640 0 0       0 Parse::RecDescent::_trace(
4641             q{Trying production: [/full/i]},
4642             Parse::RecDescent::_tracefirst($_[1]),
4643             q{FULL}, $tracelevel
4644             ) if defined $::RD_TRACE;
4645 0         0 my $thisprod = $thisrule->{"prods"}[0];
4646 0         0 $text = $_[1];
4647 0         0 my $_savetext;
4648 0         0 @item = (q{FULL});
4649 0         0 %item = (__RULE__ => q{FULL});
4650 0         0 my $repcount = 0;
4651              
4652 0 0       0 Parse::RecDescent::_trace(
4653             q{Trying terminal: [/full/i]},
4654             Parse::RecDescent::_tracefirst($text),
4655             q{FULL}, $tracelevel
4656             ) if defined $::RD_TRACE;
4657 0         0 $lastsep = "";
4658 0         0 $expectation->is(q{})->at($text);
4659              
4660 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
4661             and $text =~ s/\A(?:full)//i) {
4662              
4663 0         0 $expectation->failed();
4664 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
4665             if defined $::RD_TRACE;
4666              
4667 0         0 last;
4668             }
4669 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
4670             Parse::RecDescent::_tracefirst($text))
4671             if defined $::RD_TRACE;
4672 0         0 push @item, $item{__PATTERN1__} = $&;
4673              
4674 0 0       0 Parse::RecDescent::_trace(
4675             q{>>Matched production: [/full/i]<<},
4676             Parse::RecDescent::_tracefirst($text),
4677             q{FULL}, $tracelevel
4678             ) if defined $::RD_TRACE;
4679 0         0 $_matched = 1;
4680 0         0 last;
4681             }
4682              
4683 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
4684              
4685 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
4686 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{FULL}, $tracelevel)
4687             if defined $::RD_TRACE;
4688 0         0 return undef;
4689             }
4690 0 0 0     0 if (!defined($return) && defined($score)) {
4691 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{FULL}, $tracelevel)
4692             if defined $::RD_TRACE;
4693 0         0 $return = $score_return;
4694             }
4695 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
4696 0 0       0 $return = $item[$#item] unless defined $return;
4697 0 0       0 if (defined $::RD_TRACE) {
4698 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{FULL}, $tracelevel);
4699 0         0 Parse::RecDescent::_trace(
4700             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
4701             Parse::RecDescent::_tracefirst($text),
4702             , q{FULL}, $tracelevel
4703             );
4704             }
4705 0         0 $_[1] = $text;
4706 0         0 return $return;
4707             }
4708              
4709             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
4710             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_cast_specification
4711             {
4712 0     0   0 my $thisparser = $_[0];
4713 1     1   12 use vars q{$tracelevel};
  1         5  
  1         723  
4714 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
4715 0         0 $ERRORS = 0;
4716 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_2_of_production_1_of_rule_cast_specification"};
4717              
4718 0 0       0 Parse::RecDescent::_trace(
4719             q{Trying rule: [_alternation_2_of_production_1_of_rule_cast_specification]},
4720             Parse::RecDescent::_tracefirst($_[1]),
4721             q{_alternation_2_of_production_1_of_rule_cast_specification}, $tracelevel
4722             ) if defined $::RD_TRACE;
4723              
4724 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
4725              
4726 0         0 my $score;
4727             my $score_return;
4728 0         0 my $_tok;
4729 0         0 my $return = undef;
4730 0         0 my $_matched = 0;
4731 0         0 my $commit = 0;
4732 0         0 my @item = ();
4733 0         0 my %item = ();
4734 0   0     0 my $repeating = defined($_[2]) && $_[2];
4735 0   0     0 my $_noactions = defined($_[3]) && $_[3];
4736 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
4737 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
4738 0         0 my $text;
4739 0         0 my $lastsep = "";
4740 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
4741 0         0 $expectation->at($_[1]);
4742              
4743 0         0 my $thisline;
4744 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
4745              
4746 0   0     0 while (!$_matched && !$commit) {
4747              
4748 0 0       0 Parse::RecDescent::_trace(
4749             q{Trying production: [/SCOPE/ typed_table_name, or typed_view_name]},
4750             Parse::RecDescent::_tracefirst($_[1]),
4751             q{_alternation_2_of_production_1_of_rule_cast_specification}, $tracelevel
4752             ) if defined $::RD_TRACE;
4753 0         0 my $thisprod = $thisrule->{"prods"}[0];
4754 0         0 $text = $_[1];
4755 0         0 my $_savetext;
4756 0         0 @item = (q{_alternation_2_of_production_1_of_rule_cast_specification});
4757 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_cast_specification});
4758 0         0 my $repcount = 0;
4759              
4760 0 0       0 Parse::RecDescent::_trace(
4761             q{Trying terminal: [/SCOPE/]},
4762             Parse::RecDescent::_tracefirst($text),
4763             q{_alternation_2_of_production_1_of_rule_cast_specification}, $tracelevel
4764             ) if defined $::RD_TRACE;
4765 0         0 $lastsep = "";
4766 0         0 $expectation->is(q{})->at($text);
4767              
4768 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
4769             and $text =~ s/\A(?:SCOPE)//) {
4770              
4771 0         0 $expectation->failed();
4772 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
4773             if defined $::RD_TRACE;
4774              
4775 0         0 last;
4776             }
4777 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
4778             Parse::RecDescent::_tracefirst($text))
4779             if defined $::RD_TRACE;
4780 0         0 push @item, $item{__PATTERN1__} = $&;
4781              
4782 0 0       0 Parse::RecDescent::_trace(
4783             q{Trying subrule: [_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification]},
4784             Parse::RecDescent::_tracefirst($text),
4785             q{_alternation_2_of_production_1_of_rule_cast_specification},
4786             $tracelevel
4787             ) if defined $::RD_TRACE;
4788 0         0 if (1) {
4789 1     1   11 no strict qw{refs};
  1         2  
  1         717  
4790 0         0 $expectation->is(q{typed_table_name, or typed_view_name})
4791             ->at($text);
4792 0 0       0 unless (defined(
4793             $_tok
4794             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification(
4795 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
4796             )
4797             )) {
4798              
4799 0 0       0 Parse::RecDescent::_trace(
4800             q{<>},
4801             Parse::RecDescent::_tracefirst($text),
4802             q{_alternation_2_of_production_1_of_rule_cast_specification},
4803             $tracelevel
4804             ) if defined $::RD_TRACE;
4805 0         0 $expectation->failed();
4806 0         0 last;
4807             }
4808             Parse::RecDescent::_trace(
4809 0 0       0 q{>>Matched subrule: [_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification]<< (return value: [}
4810             . $_tok . q{]},
4811              
4812             Parse::RecDescent::_tracefirst($text),
4813             q{_alternation_2_of_production_1_of_rule_cast_specification},
4814             $tracelevel
4815             ) if defined $::RD_TRACE;
4816 0         0 $item{q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification}}
4817             = $_tok;
4818 0         0 push @item, $_tok;
4819              
4820             }
4821              
4822             Parse::RecDescent::_trace(
4823 0 0       0 q{>>Matched production: [/SCOPE/ typed_table_name, or typed_view_name]<<},
4824             Parse::RecDescent::_tracefirst($text),
4825             q{_alternation_2_of_production_1_of_rule_cast_specification}, $tracelevel
4826             ) if defined $::RD_TRACE;
4827 0         0 $_matched = 1;
4828 0         0 last;
4829             }
4830              
4831 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
4832              
4833 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
4834 0 0       0 Parse::RecDescent::_trace(
4835             q{<>},
4836             Parse::RecDescent::_tracefirst($_[1]),
4837             q{_alternation_2_of_production_1_of_rule_cast_specification}, $tracelevel
4838             ) if defined $::RD_TRACE;
4839 0         0 return undef;
4840             }
4841 0 0 0     0 if (!defined($return) && defined($score)) {
4842 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
4843             "", q{_alternation_2_of_production_1_of_rule_cast_specification}, $tracelevel)
4844             if defined $::RD_TRACE;
4845 0         0 $return = $score_return;
4846             }
4847 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
4848 0 0       0 $return = $item[$#item] unless defined $return;
4849 0 0       0 if (defined $::RD_TRACE) {
4850 0         0 Parse::RecDescent::_trace(
4851             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
4852             q{_alternation_2_of_production_1_of_rule_cast_specification}, $tracelevel
4853             );
4854 0         0 Parse::RecDescent::_trace(
4855             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
4856             Parse::RecDescent::_tracefirst($text),
4857             , q{_alternation_2_of_production_1_of_rule_cast_specification}, $tracelevel
4858             );
4859             }
4860 0         0 $_[1] = $text;
4861 0         0 return $return;
4862             }
4863              
4864             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
4865             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::case_expression {
4866 0     0   0 my $thisparser = $_[0];
4867 1     1   11 use vars q{$tracelevel};
  1         4  
  1         745  
4868 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
4869 0         0 $ERRORS = 0;
4870 0         0 my $thisrule = $thisparser->{"rules"}{"case_expression"};
4871              
4872 0 0       0 Parse::RecDescent::_trace(
4873             q{Trying rule: [case_expression]},
4874             Parse::RecDescent::_tracefirst($_[1]),
4875             q{case_expression}, $tracelevel
4876             ) if defined $::RD_TRACE;
4877              
4878 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
4879              
4880 0         0 my $score;
4881             my $score_return;
4882 0         0 my $_tok;
4883 0         0 my $return = undef;
4884 0         0 my $_matched = 0;
4885 0         0 my $commit = 0;
4886 0         0 my @item = ();
4887 0         0 my %item = ();
4888 0   0     0 my $repeating = defined($_[2]) && $_[2];
4889 0   0     0 my $_noactions = defined($_[3]) && $_[3];
4890 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
4891 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
4892 0         0 my $text;
4893 0         0 my $lastsep = "";
4894 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
4895 0         0 $expectation->at($_[1]);
4896              
4897 0         0 my $thisline;
4898 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
4899              
4900 0   0     0 while (!$_matched && !$commit) {
4901              
4902 0 0       0 Parse::RecDescent::_trace(
4903             q{Trying production: [/CASE/i searched_when_clause, or simple_when_clause /ELSE\\s+NULL/i, or /ELSE/i /END/i]},
4904             Parse::RecDescent::_tracefirst($_[1]), q{case_expression}, $tracelevel
4905             ) if defined $::RD_TRACE;
4906 0         0 my $thisprod = $thisrule->{"prods"}[0];
4907 0         0 $text = $_[1];
4908 0         0 my $_savetext;
4909 0         0 @item = (q{case_expression});
4910 0         0 %item = (__RULE__ => q{case_expression});
4911 0         0 my $repcount = 0;
4912              
4913 0 0       0 Parse::RecDescent::_trace(
4914             q{Trying terminal: [/CASE/i]},
4915             Parse::RecDescent::_tracefirst($text),
4916             q{case_expression}, $tracelevel
4917             ) if defined $::RD_TRACE;
4918 0         0 $lastsep = "";
4919 0         0 $expectation->is(q{})->at($text);
4920              
4921 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
4922             and $text =~ s/\A(?:CASE)//i) {
4923              
4924 0         0 $expectation->failed();
4925 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
4926             if defined $::RD_TRACE;
4927              
4928 0         0 last;
4929             }
4930 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
4931             Parse::RecDescent::_tracefirst($text))
4932             if defined $::RD_TRACE;
4933 0         0 push @item, $item{__PATTERN1__} = $&;
4934              
4935 0 0       0 Parse::RecDescent::_trace(
4936             q{Trying subrule: [_alternation_1_of_production_1_of_rule_case_expression]},
4937             Parse::RecDescent::_tracefirst($text),
4938             q{case_expression}, $tracelevel
4939             ) if defined $::RD_TRACE;
4940 0         0 if (1) {
4941 1     1   10 no strict qw{refs};
  1         3  
  1         1162  
4942 0         0 $expectation->is(q{searched_when_clause, or simple_when_clause})
4943             ->at($text);
4944 0 0       0 unless (defined(
4945             $_tok
4946             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_case_expression(
4947 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
4948             )
4949             )) {
4950              
4951 0 0       0 Parse::RecDescent::_trace(
4952             q{<>},
4953             Parse::RecDescent::_tracefirst($text),
4954             q{case_expression}, $tracelevel
4955             ) if defined $::RD_TRACE;
4956 0         0 $expectation->failed();
4957 0         0 last;
4958             }
4959             Parse::RecDescent::_trace(
4960 0 0       0 q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_case_expression]<< (return value: [}
4961             . $_tok . q{]},
4962              
4963             Parse::RecDescent::_tracefirst($text),
4964             q{case_expression},
4965             $tracelevel
4966             ) if defined $::RD_TRACE;
4967 0         0 $item{q{_alternation_1_of_production_1_of_rule_case_expression}} = $_tok;
4968 0         0 push @item, $_tok;
4969              
4970             }
4971              
4972             Parse::RecDescent::_trace(
4973 0 0       0 q{Trying repeated subrule: [/ELSE\\s+NULL/i, or /ELSE/i]},
4974             Parse::RecDescent::_tracefirst($text),
4975             q{case_expression}, $tracelevel
4976             ) if defined $::RD_TRACE;
4977 0         0 $expectation->is(q{/ELSE\\s+NULL/i, or /ELSE/i})->at($text);
4978              
4979 0 0       0 unless (defined(
4980             $_tok = $thisparser->_parserepeat(
4981             $text,
4982             \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_case_expression,
4983             0,
4984             1,
4985             $_noactions,
4986             $expectation,
4987             undef
4988             )
4989             )) {
4990 0 0       0 Parse::RecDescent::_trace(
4991             q{<>},
4992             Parse::RecDescent::_tracefirst($text),
4993             q{case_expression}, $tracelevel
4994             ) if defined $::RD_TRACE;
4995 0         0 last;
4996             }
4997             Parse::RecDescent::_trace(
4998 0 0       0 q{>>Matched repeated subrule: [_alternation_2_of_production_1_of_rule_case_expression]<< (}
4999             . @$_tok
5000             . q{ times)},
5001              
5002             Parse::RecDescent::_tracefirst($text),
5003             q{case_expression},
5004             $tracelevel
5005             ) if defined $::RD_TRACE;
5006 0         0 $item{q{_alternation_2_of_production_1_of_rule_case_expression(?)}} = $_tok;
5007 0         0 push @item, $_tok;
5008              
5009 0 0       0 Parse::RecDescent::_trace(
5010             q{Trying terminal: [/END/i]},
5011             Parse::RecDescent::_tracefirst($text),
5012             q{case_expression}, $tracelevel
5013             ) if defined $::RD_TRACE;
5014 0         0 $lastsep = "";
5015 0         0 $expectation->is(q{/END/i})->at($text);
5016              
5017 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
5018             and $text =~ s/\A(?:END)//i) {
5019              
5020 0         0 $expectation->failed();
5021 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
5022             if defined $::RD_TRACE;
5023              
5024 0         0 last;
5025             }
5026 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
5027             Parse::RecDescent::_tracefirst($text))
5028             if defined $::RD_TRACE;
5029 0         0 push @item, $item{__PATTERN2__} = $&;
5030              
5031 0 0       0 Parse::RecDescent::_trace(
5032             q{>>Matched production: [/CASE/i searched_when_clause, or simple_when_clause /ELSE\\s+NULL/i, or /ELSE/i /END/i]<<},
5033             Parse::RecDescent::_tracefirst($text), q{case_expression}, $tracelevel
5034             ) if defined $::RD_TRACE;
5035 0         0 $_matched = 1;
5036 0         0 last;
5037             }
5038              
5039 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
5040              
5041 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
5042 0 0       0 Parse::RecDescent::_trace(
5043             q{<>},
5044             Parse::RecDescent::_tracefirst($_[1]),
5045             q{case_expression}, $tracelevel
5046             ) if defined $::RD_TRACE;
5047 0         0 return undef;
5048             }
5049 0 0 0     0 if (!defined($return) && defined($score)) {
5050 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{case_expression}, $tracelevel)
5051             if defined $::RD_TRACE;
5052 0         0 $return = $score_return;
5053             }
5054 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
5055 0 0       0 $return = $item[$#item] unless defined $return;
5056 0 0       0 if (defined $::RD_TRACE) {
5057 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
5058             "", q{case_expression}, $tracelevel);
5059 0         0 Parse::RecDescent::_trace(
5060             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
5061             Parse::RecDescent::_tracefirst($text),
5062             , q{case_expression}, $tracelevel
5063             );
5064             }
5065 0         0 $_[1] = $text;
5066 0         0 return $return;
5067             }
5068              
5069             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5070             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::operator {
5071 0     0   0 my $thisparser = $_[0];
5072 1     1   11 use vars q{$tracelevel};
  1         5  
  1         555  
5073 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
5074 0         0 $ERRORS = 0;
5075 0         0 my $thisrule = $thisparser->{"rules"}{"operator"};
5076              
5077 0 0       0 Parse::RecDescent::_trace(
5078             q{Trying rule: [operator]},
5079             Parse::RecDescent::_tracefirst($_[1]),
5080             q{operator}, $tracelevel
5081             ) if defined $::RD_TRACE;
5082              
5083 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
5084              
5085 0         0 my $score;
5086             my $score_return;
5087 0         0 my $_tok;
5088 0         0 my $return = undef;
5089 0         0 my $_matched = 0;
5090 0         0 my $commit = 0;
5091 0         0 my @item = ();
5092 0         0 my %item = ();
5093 0   0     0 my $repeating = defined($_[2]) && $_[2];
5094 0   0     0 my $_noactions = defined($_[3]) && $_[3];
5095 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
5096 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
5097 0         0 my $text;
5098 0         0 my $lastsep = "";
5099 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
5100 0         0 $expectation->at($_[1]);
5101              
5102 0         0 my $thisline;
5103 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5104              
5105 0   0     0 while (!$_matched && !$commit) {
5106              
5107 0 0       0 Parse::RecDescent::_trace(
5108             q{Trying production: [/CONCAT/i, or '||']},
5109             Parse::RecDescent::_tracefirst($_[1]),
5110             q{operator}, $tracelevel
5111             ) if defined $::RD_TRACE;
5112 0         0 my $thisprod = $thisrule->{"prods"}[0];
5113 0         0 $text = $_[1];
5114 0         0 my $_savetext;
5115 0         0 @item = (q{operator});
5116 0         0 %item = (__RULE__ => q{operator});
5117 0         0 my $repcount = 0;
5118              
5119 0 0       0 Parse::RecDescent::_trace(
5120             q{Trying subrule: [_alternation_1_of_production_1_of_rule_operator]},
5121             Parse::RecDescent::_tracefirst($text),
5122             q{operator}, $tracelevel
5123             ) if defined $::RD_TRACE;
5124 0         0 if (1) {
5125 1     1   10 no strict qw{refs};
  1         3  
  1         2267  
5126 0         0 $expectation->is(q{})->at($text);
5127 0 0       0 unless (defined(
5128             $_tok
5129             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_operator(
5130 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
5131             )
5132             )) {
5133              
5134 0 0       0 Parse::RecDescent::_trace(
5135             q{<>},
5136             Parse::RecDescent::_tracefirst($text),
5137             q{operator}, $tracelevel
5138             ) if defined $::RD_TRACE;
5139 0         0 $expectation->failed();
5140 0         0 last;
5141             }
5142             Parse::RecDescent::_trace(
5143 0 0       0 q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_operator]<< (return value: [} . $_tok . q{]},
5144              
5145             Parse::RecDescent::_tracefirst($text),
5146             q{operator},
5147             $tracelevel
5148             ) if defined $::RD_TRACE;
5149 0         0 $item{q{_alternation_1_of_production_1_of_rule_operator}} = $_tok;
5150 0         0 push @item, $_tok;
5151              
5152             }
5153              
5154             Parse::RecDescent::_trace(
5155 0 0       0 q{>>Matched production: [/CONCAT/i, or '||']<<},
5156             Parse::RecDescent::_tracefirst($text),
5157             q{operator}, $tracelevel
5158             ) if defined $::RD_TRACE;
5159 0         0 $_matched = 1;
5160 0         0 last;
5161             }
5162              
5163 0   0     0 while (!$_matched && !$commit) {
5164              
5165 0 0       0 Parse::RecDescent::_trace(
5166             q{Trying production: ['/']},
5167             Parse::RecDescent::_tracefirst($_[1]),
5168             q{operator}, $tracelevel
5169             ) if defined $::RD_TRACE;
5170 0         0 my $thisprod = $thisrule->{"prods"}[1];
5171 0         0 $text = $_[1];
5172 0         0 my $_savetext;
5173 0         0 @item = (q{operator});
5174 0         0 %item = (__RULE__ => q{operator});
5175 0         0 my $repcount = 0;
5176              
5177 0 0       0 Parse::RecDescent::_trace(
5178             q{Trying terminal: ['/']},
5179             Parse::RecDescent::_tracefirst($text),
5180             q{operator}, $tracelevel
5181             ) if defined $::RD_TRACE;
5182 0         0 $lastsep = "";
5183 0         0 $expectation->is(q{})->at($text);
5184              
5185 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
5186             and $text =~ s/\A\///) {
5187              
5188 0         0 $expectation->failed();
5189 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
5190             if defined $::RD_TRACE;
5191 0         0 last;
5192             }
5193 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
5194             Parse::RecDescent::_tracefirst($text))
5195             if defined $::RD_TRACE;
5196 0         0 push @item, $item{__STRING1__} = $&;
5197              
5198 0 0       0 Parse::RecDescent::_trace(
5199             q{>>Matched production: ['/']<<},
5200             Parse::RecDescent::_tracefirst($text),
5201             q{operator}, $tracelevel
5202             ) if defined $::RD_TRACE;
5203 0         0 $_matched = 1;
5204 0         0 last;
5205             }
5206              
5207 0   0     0 while (!$_matched && !$commit) {
5208              
5209 0 0       0 Parse::RecDescent::_trace(
5210             q{Trying production: ['*']},
5211             Parse::RecDescent::_tracefirst($_[1]),
5212             q{operator}, $tracelevel
5213             ) if defined $::RD_TRACE;
5214 0         0 my $thisprod = $thisrule->{"prods"}[2];
5215 0         0 $text = $_[1];
5216 0         0 my $_savetext;
5217 0         0 @item = (q{operator});
5218 0         0 %item = (__RULE__ => q{operator});
5219 0         0 my $repcount = 0;
5220              
5221 0 0       0 Parse::RecDescent::_trace(
5222             q{Trying terminal: ['*']},
5223             Parse::RecDescent::_tracefirst($text),
5224             q{operator}, $tracelevel
5225             ) if defined $::RD_TRACE;
5226 0         0 $lastsep = "";
5227 0         0 $expectation->is(q{})->at($text);
5228              
5229 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
5230             and $text =~ s/\A\*//) {
5231              
5232 0         0 $expectation->failed();
5233 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
5234             if defined $::RD_TRACE;
5235 0         0 last;
5236             }
5237 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
5238             Parse::RecDescent::_tracefirst($text))
5239             if defined $::RD_TRACE;
5240 0         0 push @item, $item{__STRING1__} = $&;
5241              
5242 0 0       0 Parse::RecDescent::_trace(
5243             q{>>Matched production: ['*']<<},
5244             Parse::RecDescent::_tracefirst($text),
5245             q{operator}, $tracelevel
5246             ) if defined $::RD_TRACE;
5247 0         0 $_matched = 1;
5248 0         0 last;
5249             }
5250              
5251 0   0     0 while (!$_matched && !$commit) {
5252              
5253 0 0       0 Parse::RecDescent::_trace(
5254             q{Trying production: ['+']},
5255             Parse::RecDescent::_tracefirst($_[1]),
5256             q{operator}, $tracelevel
5257             ) if defined $::RD_TRACE;
5258 0         0 my $thisprod = $thisrule->{"prods"}[3];
5259 0         0 $text = $_[1];
5260 0         0 my $_savetext;
5261 0         0 @item = (q{operator});
5262 0         0 %item = (__RULE__ => q{operator});
5263 0         0 my $repcount = 0;
5264              
5265 0 0       0 Parse::RecDescent::_trace(
5266             q{Trying terminal: ['+']},
5267             Parse::RecDescent::_tracefirst($text),
5268             q{operator}, $tracelevel
5269             ) if defined $::RD_TRACE;
5270 0         0 $lastsep = "";
5271 0         0 $expectation->is(q{})->at($text);
5272              
5273 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
5274             and $text =~ s/\A\+//) {
5275              
5276 0         0 $expectation->failed();
5277 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
5278             if defined $::RD_TRACE;
5279 0         0 last;
5280             }
5281 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
5282             Parse::RecDescent::_tracefirst($text))
5283             if defined $::RD_TRACE;
5284 0         0 push @item, $item{__STRING1__} = $&;
5285              
5286 0 0       0 Parse::RecDescent::_trace(
5287             q{>>Matched production: ['+']<<},
5288             Parse::RecDescent::_tracefirst($text),
5289             q{operator}, $tracelevel
5290             ) if defined $::RD_TRACE;
5291 0         0 $_matched = 1;
5292 0         0 last;
5293             }
5294              
5295 0   0     0 while (!$_matched && !$commit) {
5296              
5297 0 0       0 Parse::RecDescent::_trace(
5298             q{Trying production: ['-']},
5299             Parse::RecDescent::_tracefirst($_[1]),
5300             q{operator}, $tracelevel
5301             ) if defined $::RD_TRACE;
5302 0         0 my $thisprod = $thisrule->{"prods"}[4];
5303 0         0 $text = $_[1];
5304 0         0 my $_savetext;
5305 0         0 @item = (q{operator});
5306 0         0 %item = (__RULE__ => q{operator});
5307 0         0 my $repcount = 0;
5308              
5309 0 0       0 Parse::RecDescent::_trace(
5310             q{Trying terminal: ['-']},
5311             Parse::RecDescent::_tracefirst($text),
5312             q{operator}, $tracelevel
5313             ) if defined $::RD_TRACE;
5314 0         0 $lastsep = "";
5315 0         0 $expectation->is(q{})->at($text);
5316              
5317 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
5318             and $text =~ s/\A\-//) {
5319              
5320 0         0 $expectation->failed();
5321 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
5322             if defined $::RD_TRACE;
5323 0         0 last;
5324             }
5325 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
5326             Parse::RecDescent::_tracefirst($text))
5327             if defined $::RD_TRACE;
5328 0         0 push @item, $item{__STRING1__} = $&;
5329              
5330 0 0       0 Parse::RecDescent::_trace(
5331             q{>>Matched production: ['-']<<},
5332             Parse::RecDescent::_tracefirst($text),
5333             q{operator}, $tracelevel
5334             ) if defined $::RD_TRACE;
5335 0         0 $_matched = 1;
5336 0         0 last;
5337             }
5338              
5339 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
5340              
5341 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
5342 0 0       0 Parse::RecDescent::_trace(
5343             q{<>},
5344             Parse::RecDescent::_tracefirst($_[1]),
5345             q{operator}, $tracelevel
5346             ) if defined $::RD_TRACE;
5347 0         0 return undef;
5348             }
5349 0 0 0     0 if (!defined($return) && defined($score)) {
5350 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{operator}, $tracelevel)
5351             if defined $::RD_TRACE;
5352 0         0 $return = $score_return;
5353             }
5354 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
5355 0 0       0 $return = $item[$#item] unless defined $return;
5356 0 0       0 if (defined $::RD_TRACE) {
5357 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{operator}, $tracelevel);
5358 0         0 Parse::RecDescent::_trace(
5359             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
5360             Parse::RecDescent::_tracefirst($text),
5361             , q{operator}, $tracelevel
5362             );
5363             }
5364 0         0 $_[1] = $text;
5365 0         0 return $return;
5366             }
5367              
5368             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5369             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_2_of_rule_type {
5370 0     0   0 my $thisparser = $_[0];
5371 1     1   12 use vars q{$tracelevel};
  1         4  
  1         1994  
5372 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
5373 0         0 $ERRORS = 0;
5374 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_2_of_rule_type"};
5375              
5376 0 0       0 Parse::RecDescent::_trace(
5377             q{Trying rule: [_alternation_1_of_production_2_of_rule_type]},
5378             Parse::RecDescent::_tracefirst($_[1]),
5379             q{_alternation_1_of_production_2_of_rule_type}, $tracelevel
5380             ) if defined $::RD_TRACE;
5381              
5382 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
5383              
5384 0         0 my $score;
5385             my $score_return;
5386 0         0 my $_tok;
5387 0         0 my $return = undef;
5388 0         0 my $_matched = 0;
5389 0         0 my $commit = 0;
5390 0         0 my @item = ();
5391 0         0 my %item = ();
5392 0   0     0 my $repeating = defined($_[2]) && $_[2];
5393 0   0     0 my $_noactions = defined($_[3]) && $_[3];
5394 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
5395 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
5396 0         0 my $text;
5397 0         0 my $lastsep = "";
5398 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
5399 0         0 $expectation->at($_[1]);
5400              
5401 0         0 my $thisline;
5402 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5403              
5404 0   0     0 while (!$_matched && !$commit) {
5405              
5406 0 0       0 Parse::RecDescent::_trace(
5407             q{Trying production: [/INSERT/i]},
5408             Parse::RecDescent::_tracefirst($_[1]),
5409             q{_alternation_1_of_production_2_of_rule_type}, $tracelevel
5410             ) if defined $::RD_TRACE;
5411 0         0 my $thisprod = $thisrule->{"prods"}[0];
5412 0         0 $text = $_[1];
5413 0         0 my $_savetext;
5414 0         0 @item = (q{_alternation_1_of_production_2_of_rule_type});
5415 0         0 %item = (__RULE__ => q{_alternation_1_of_production_2_of_rule_type});
5416 0         0 my $repcount = 0;
5417              
5418 0 0       0 Parse::RecDescent::_trace(
5419             q{Trying terminal: [/INSERT/i]},
5420             Parse::RecDescent::_tracefirst($text),
5421             q{_alternation_1_of_production_2_of_rule_type}, $tracelevel
5422             ) if defined $::RD_TRACE;
5423 0         0 $lastsep = "";
5424 0         0 $expectation->is(q{})->at($text);
5425              
5426 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
5427             and $text =~ s/\A(?:INSERT)//i) {
5428              
5429 0         0 $expectation->failed();
5430 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
5431             if defined $::RD_TRACE;
5432              
5433 0         0 last;
5434             }
5435 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
5436             Parse::RecDescent::_tracefirst($text))
5437             if defined $::RD_TRACE;
5438 0         0 push @item, $item{__PATTERN1__} = $&;
5439              
5440 0 0       0 Parse::RecDescent::_trace(
5441             q{>>Matched production: [/INSERT/i]<<},
5442             Parse::RecDescent::_tracefirst($text),
5443             q{_alternation_1_of_production_2_of_rule_type}, $tracelevel
5444             ) if defined $::RD_TRACE;
5445 0         0 $_matched = 1;
5446 0         0 last;
5447             }
5448              
5449 0   0     0 while (!$_matched && !$commit) {
5450              
5451 0 0       0 Parse::RecDescent::_trace(
5452             q{Trying production: [/DELETE/i]},
5453             Parse::RecDescent::_tracefirst($_[1]),
5454             q{_alternation_1_of_production_2_of_rule_type}, $tracelevel
5455             ) if defined $::RD_TRACE;
5456 0         0 my $thisprod = $thisrule->{"prods"}[1];
5457 0         0 $text = $_[1];
5458 0         0 my $_savetext;
5459 0         0 @item = (q{_alternation_1_of_production_2_of_rule_type});
5460 0         0 %item = (__RULE__ => q{_alternation_1_of_production_2_of_rule_type});
5461 0         0 my $repcount = 0;
5462              
5463 0 0       0 Parse::RecDescent::_trace(
5464             q{Trying terminal: [/DELETE/i]},
5465             Parse::RecDescent::_tracefirst($text),
5466             q{_alternation_1_of_production_2_of_rule_type}, $tracelevel
5467             ) if defined $::RD_TRACE;
5468 0         0 $lastsep = "";
5469 0         0 $expectation->is(q{})->at($text);
5470              
5471 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
5472             and $text =~ s/\A(?:DELETE)//i) {
5473              
5474 0         0 $expectation->failed();
5475 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
5476             if defined $::RD_TRACE;
5477              
5478 0         0 last;
5479             }
5480 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
5481             Parse::RecDescent::_tracefirst($text))
5482             if defined $::RD_TRACE;
5483 0         0 push @item, $item{__PATTERN1__} = $&;
5484              
5485 0 0       0 Parse::RecDescent::_trace(
5486             q{>>Matched production: [/DELETE/i]<<},
5487             Parse::RecDescent::_tracefirst($text),
5488             q{_alternation_1_of_production_2_of_rule_type}, $tracelevel
5489             ) if defined $::RD_TRACE;
5490 0         0 $_matched = 1;
5491 0         0 last;
5492             }
5493              
5494 0   0     0 while (!$_matched && !$commit) {
5495              
5496 0 0       0 Parse::RecDescent::_trace(
5497             q{Trying production: [/UPDATE/i]},
5498             Parse::RecDescent::_tracefirst($_[1]),
5499             q{_alternation_1_of_production_2_of_rule_type}, $tracelevel
5500             ) if defined $::RD_TRACE;
5501 0         0 my $thisprod = $thisrule->{"prods"}[2];
5502 0         0 $text = $_[1];
5503 0         0 my $_savetext;
5504 0         0 @item = (q{_alternation_1_of_production_2_of_rule_type});
5505 0         0 %item = (__RULE__ => q{_alternation_1_of_production_2_of_rule_type});
5506 0         0 my $repcount = 0;
5507              
5508 0 0       0 Parse::RecDescent::_trace(
5509             q{Trying terminal: [/UPDATE/i]},
5510             Parse::RecDescent::_tracefirst($text),
5511             q{_alternation_1_of_production_2_of_rule_type}, $tracelevel
5512             ) if defined $::RD_TRACE;
5513 0         0 $lastsep = "";
5514 0         0 $expectation->is(q{})->at($text);
5515              
5516 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
5517             and $text =~ s/\A(?:UPDATE)//i) {
5518              
5519 0         0 $expectation->failed();
5520 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
5521             if defined $::RD_TRACE;
5522              
5523 0         0 last;
5524             }
5525 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
5526             Parse::RecDescent::_tracefirst($text))
5527             if defined $::RD_TRACE;
5528 0         0 push @item, $item{__PATTERN1__} = $&;
5529              
5530 0 0       0 Parse::RecDescent::_trace(
5531             q{>>Matched production: [/UPDATE/i]<<},
5532             Parse::RecDescent::_tracefirst($text),
5533             q{_alternation_1_of_production_2_of_rule_type}, $tracelevel
5534             ) if defined $::RD_TRACE;
5535 0         0 $_matched = 1;
5536 0         0 last;
5537             }
5538              
5539 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
5540              
5541 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
5542 0 0       0 Parse::RecDescent::_trace(
5543             q{<>},
5544             Parse::RecDescent::_tracefirst($_[1]),
5545             q{_alternation_1_of_production_2_of_rule_type}, $tracelevel
5546             ) if defined $::RD_TRACE;
5547 0         0 return undef;
5548             }
5549 0 0 0     0 if (!defined($return) && defined($score)) {
5550 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
5551             "", q{_alternation_1_of_production_2_of_rule_type}, $tracelevel)
5552             if defined $::RD_TRACE;
5553 0         0 $return = $score_return;
5554             }
5555 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
5556 0 0       0 $return = $item[$#item] unless defined $return;
5557 0 0       0 if (defined $::RD_TRACE) {
5558 0         0 Parse::RecDescent::_trace(
5559             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
5560             q{_alternation_1_of_production_2_of_rule_type}, $tracelevel
5561             );
5562 0         0 Parse::RecDescent::_trace(
5563             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
5564             Parse::RecDescent::_tracefirst($text),
5565             , q{_alternation_1_of_production_2_of_rule_type}, $tracelevel
5566             );
5567             }
5568 0         0 $_[1] = $text;
5569 0         0 return $return;
5570             }
5571              
5572             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5573             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_8_of_rule_sysibm_function {
5574 0     0   0 my $thisparser = $_[0];
5575 1     1   12 use vars q{$tracelevel};
  1         4  
  1         1459  
5576 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
5577 0         0 $ERRORS = 0;
5578 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_8_of_rule_sysibm_function"};
5579              
5580 0 0       0 Parse::RecDescent::_trace(
5581             q{Trying rule: [_alternation_1_of_production_8_of_rule_sysibm_function]},
5582             Parse::RecDescent::_tracefirst($_[1]),
5583             q{_alternation_1_of_production_8_of_rule_sysibm_function}, $tracelevel
5584             ) if defined $::RD_TRACE;
5585              
5586 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
5587              
5588 0         0 my $score;
5589             my $score_return;
5590 0         0 my $_tok;
5591 0         0 my $return = undef;
5592 0         0 my $_matched = 0;
5593 0         0 my $commit = 0;
5594 0         0 my @item = ();
5595 0         0 my %item = ();
5596 0   0     0 my $repeating = defined($_[2]) && $_[2];
5597 0   0     0 my $_noactions = defined($_[3]) && $_[3];
5598 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
5599 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
5600 0         0 my $text;
5601 0         0 my $lastsep = "";
5602 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
5603 0         0 $expectation->at($_[1]);
5604              
5605 0         0 my $thisline;
5606 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5607              
5608 0   0     0 while (!$_matched && !$commit) {
5609              
5610 0 0       0 Parse::RecDescent::_trace(
5611             q{Trying production: [/CONCAT/]},
5612             Parse::RecDescent::_tracefirst($_[1]),
5613             q{_alternation_1_of_production_8_of_rule_sysibm_function}, $tracelevel
5614             ) if defined $::RD_TRACE;
5615 0         0 my $thisprod = $thisrule->{"prods"}[0];
5616 0         0 $text = $_[1];
5617 0         0 my $_savetext;
5618 0         0 @item = (q{_alternation_1_of_production_8_of_rule_sysibm_function});
5619 0         0 %item = (__RULE__ => q{_alternation_1_of_production_8_of_rule_sysibm_function});
5620 0         0 my $repcount = 0;
5621              
5622 0 0       0 Parse::RecDescent::_trace(
5623             q{Trying terminal: [/CONCAT/]},
5624             Parse::RecDescent::_tracefirst($text),
5625             q{_alternation_1_of_production_8_of_rule_sysibm_function}, $tracelevel
5626             ) if defined $::RD_TRACE;
5627 0         0 $lastsep = "";
5628 0         0 $expectation->is(q{})->at($text);
5629              
5630 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
5631             and $text =~ s/\A(?:CONCAT)//) {
5632              
5633 0         0 $expectation->failed();
5634 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
5635             if defined $::RD_TRACE;
5636              
5637 0         0 last;
5638             }
5639 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
5640             Parse::RecDescent::_tracefirst($text))
5641             if defined $::RD_TRACE;
5642 0         0 push @item, $item{__PATTERN1__} = $&;
5643              
5644 0 0       0 Parse::RecDescent::_trace(
5645             q{>>Matched production: [/CONCAT/]<<},
5646             Parse::RecDescent::_tracefirst($text),
5647             q{_alternation_1_of_production_8_of_rule_sysibm_function}, $tracelevel
5648             ) if defined $::RD_TRACE;
5649 0         0 $_matched = 1;
5650 0         0 last;
5651             }
5652              
5653 0   0     0 while (!$_matched && !$commit) {
5654              
5655 0 0       0 Parse::RecDescent::_trace(
5656             q{Trying production: ['||']},
5657             Parse::RecDescent::_tracefirst($_[1]),
5658             q{_alternation_1_of_production_8_of_rule_sysibm_function}, $tracelevel
5659             ) if defined $::RD_TRACE;
5660 0         0 my $thisprod = $thisrule->{"prods"}[1];
5661 0         0 $text = $_[1];
5662 0         0 my $_savetext;
5663 0         0 @item = (q{_alternation_1_of_production_8_of_rule_sysibm_function});
5664 0         0 %item = (__RULE__ => q{_alternation_1_of_production_8_of_rule_sysibm_function});
5665 0         0 my $repcount = 0;
5666              
5667 0 0       0 Parse::RecDescent::_trace(
5668             q{Trying terminal: ['||']},
5669             Parse::RecDescent::_tracefirst($text),
5670             q{_alternation_1_of_production_8_of_rule_sysibm_function}, $tracelevel
5671             ) if defined $::RD_TRACE;
5672 0         0 $lastsep = "";
5673 0         0 $expectation->is(q{})->at($text);
5674              
5675 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
5676             and $text =~ s/\A\|\|//) {
5677              
5678 0         0 $expectation->failed();
5679 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
5680             if defined $::RD_TRACE;
5681 0         0 last;
5682             }
5683 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
5684             Parse::RecDescent::_tracefirst($text))
5685             if defined $::RD_TRACE;
5686 0         0 push @item, $item{__STRING1__} = $&;
5687              
5688 0 0       0 Parse::RecDescent::_trace(
5689             q{>>Matched production: ['||']<<},
5690             Parse::RecDescent::_tracefirst($text),
5691             q{_alternation_1_of_production_8_of_rule_sysibm_function}, $tracelevel
5692             ) if defined $::RD_TRACE;
5693 0         0 $_matched = 1;
5694 0         0 last;
5695             }
5696              
5697 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
5698              
5699 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
5700 0 0       0 Parse::RecDescent::_trace(
5701             q{<>},
5702             Parse::RecDescent::_tracefirst($_[1]),
5703             q{_alternation_1_of_production_8_of_rule_sysibm_function}, $tracelevel
5704             ) if defined $::RD_TRACE;
5705 0         0 return undef;
5706             }
5707 0 0 0     0 if (!defined($return) && defined($score)) {
5708 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
5709             "", q{_alternation_1_of_production_8_of_rule_sysibm_function}, $tracelevel)
5710             if defined $::RD_TRACE;
5711 0         0 $return = $score_return;
5712             }
5713 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
5714 0 0       0 $return = $item[$#item] unless defined $return;
5715 0 0       0 if (defined $::RD_TRACE) {
5716 0         0 Parse::RecDescent::_trace(
5717             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
5718             q{_alternation_1_of_production_8_of_rule_sysibm_function}, $tracelevel
5719             );
5720 0         0 Parse::RecDescent::_trace(
5721             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
5722             Parse::RecDescent::_tracefirst($text),
5723             , q{_alternation_1_of_production_8_of_rule_sysibm_function}, $tracelevel
5724             );
5725             }
5726 0         0 $_[1] = $text;
5727 0         0 return $return;
5728             }
5729              
5730             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5731             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sequence_reference {
5732 0     0   0 my $thisparser = $_[0];
5733 1     1   10 use vars q{$tracelevel};
  1         3  
  1         558  
5734 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
5735 0         0 $ERRORS = 0;
5736 0         0 my $thisrule = $thisparser->{"rules"}{"sequence_reference"};
5737              
5738 0 0       0 Parse::RecDescent::_trace(
5739             q{Trying rule: [sequence_reference]},
5740             Parse::RecDescent::_tracefirst($_[1]),
5741             q{sequence_reference}, $tracelevel
5742             ) if defined $::RD_TRACE;
5743              
5744 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
5745              
5746 0         0 my $score;
5747             my $score_return;
5748 0         0 my $_tok;
5749 0         0 my $return = undef;
5750 0         0 my $_matched = 0;
5751 0         0 my $commit = 0;
5752 0         0 my @item = ();
5753 0         0 my %item = ();
5754 0   0     0 my $repeating = defined($_[2]) && $_[2];
5755 0   0     0 my $_noactions = defined($_[3]) && $_[3];
5756 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
5757 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
5758 0         0 my $text;
5759 0         0 my $lastsep = "";
5760 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
5761 0         0 $expectation->at($_[1]);
5762              
5763 0         0 my $thisline;
5764 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5765              
5766 0   0     0 while (!$_matched && !$commit) {
5767              
5768 0 0       0 Parse::RecDescent::_trace(
5769             q{Trying production: [nextval_expression]},
5770             Parse::RecDescent::_tracefirst($_[1]),
5771             q{sequence_reference}, $tracelevel
5772             ) if defined $::RD_TRACE;
5773 0         0 my $thisprod = $thisrule->{"prods"}[0];
5774 0         0 $text = $_[1];
5775 0         0 my $_savetext;
5776 0         0 @item = (q{sequence_reference});
5777 0         0 %item = (__RULE__ => q{sequence_reference});
5778 0         0 my $repcount = 0;
5779              
5780 0 0       0 Parse::RecDescent::_trace(
5781             q{Trying subrule: [nextval_expression]},
5782             Parse::RecDescent::_tracefirst($text),
5783             q{sequence_reference}, $tracelevel
5784             ) if defined $::RD_TRACE;
5785 0         0 if (1) {
5786 1     1   9 no strict qw{refs};
  1         3  
  1         406  
5787 0         0 $expectation->is(q{})->at($text);
5788 0 0       0 unless (defined(
5789             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::nextval_expression(
5790 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
5791             )
5792             )) {
5793              
5794 0 0       0 Parse::RecDescent::_trace(
5795             q{<>},
5796             Parse::RecDescent::_tracefirst($text),
5797             q{sequence_reference}, $tracelevel
5798             ) if defined $::RD_TRACE;
5799 0         0 $expectation->failed();
5800 0         0 last;
5801             }
5802             Parse::RecDescent::_trace(
5803 0 0       0 q{>>Matched subrule: [nextval_expression]<< (return value: [} . $_tok . q{]},
5804              
5805             Parse::RecDescent::_tracefirst($text),
5806             q{sequence_reference},
5807             $tracelevel
5808             ) if defined $::RD_TRACE;
5809 0         0 $item{q{nextval_expression}} = $_tok;
5810 0         0 push @item, $_tok;
5811              
5812             }
5813              
5814             Parse::RecDescent::_trace(
5815 0 0       0 q{>>Matched production: [nextval_expression]<<},
5816             Parse::RecDescent::_tracefirst($text),
5817             q{sequence_reference}, $tracelevel
5818             ) if defined $::RD_TRACE;
5819 0         0 $_matched = 1;
5820 0         0 last;
5821             }
5822              
5823 0   0     0 while (!$_matched && !$commit) {
5824              
5825 0 0       0 Parse::RecDescent::_trace(
5826             q{Trying production: [prevval_expression]},
5827             Parse::RecDescent::_tracefirst($_[1]),
5828             q{sequence_reference}, $tracelevel
5829             ) if defined $::RD_TRACE;
5830 0         0 my $thisprod = $thisrule->{"prods"}[1];
5831 0         0 $text = $_[1];
5832 0         0 my $_savetext;
5833 0         0 @item = (q{sequence_reference});
5834 0         0 %item = (__RULE__ => q{sequence_reference});
5835 0         0 my $repcount = 0;
5836              
5837 0 0       0 Parse::RecDescent::_trace(
5838             q{Trying subrule: [prevval_expression]},
5839             Parse::RecDescent::_tracefirst($text),
5840             q{sequence_reference}, $tracelevel
5841             ) if defined $::RD_TRACE;
5842 0         0 if (1) {
5843 1     1   14 no strict qw{refs};
  1         4  
  1         722  
5844 0         0 $expectation->is(q{})->at($text);
5845 0 0       0 unless (defined(
5846             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::prevval_expression(
5847 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
5848             )
5849             )) {
5850              
5851 0 0       0 Parse::RecDescent::_trace(
5852             q{<>},
5853             Parse::RecDescent::_tracefirst($text),
5854             q{sequence_reference}, $tracelevel
5855             ) if defined $::RD_TRACE;
5856 0         0 $expectation->failed();
5857 0         0 last;
5858             }
5859             Parse::RecDescent::_trace(
5860 0 0       0 q{>>Matched subrule: [prevval_expression]<< (return value: [} . $_tok . q{]},
5861              
5862             Parse::RecDescent::_tracefirst($text),
5863             q{sequence_reference},
5864             $tracelevel
5865             ) if defined $::RD_TRACE;
5866 0         0 $item{q{prevval_expression}} = $_tok;
5867 0         0 push @item, $_tok;
5868              
5869             }
5870              
5871             Parse::RecDescent::_trace(
5872 0 0       0 q{>>Matched production: [prevval_expression]<<},
5873             Parse::RecDescent::_tracefirst($text),
5874             q{sequence_reference}, $tracelevel
5875             ) if defined $::RD_TRACE;
5876 0         0 $_matched = 1;
5877 0         0 last;
5878             }
5879              
5880 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
5881              
5882 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
5883 0 0       0 Parse::RecDescent::_trace(
5884             q{<>},
5885             Parse::RecDescent::_tracefirst($_[1]),
5886             q{sequence_reference}, $tracelevel
5887             ) if defined $::RD_TRACE;
5888 0         0 return undef;
5889             }
5890 0 0 0     0 if (!defined($return) && defined($score)) {
5891 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{sequence_reference}, $tracelevel)
5892             if defined $::RD_TRACE;
5893 0         0 $return = $score_return;
5894             }
5895 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
5896 0 0       0 $return = $item[$#item] unless defined $return;
5897 0 0       0 if (defined $::RD_TRACE) {
5898 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
5899             "", q{sequence_reference}, $tracelevel);
5900 0         0 Parse::RecDescent::_trace(
5901             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
5902             Parse::RecDescent::_tracefirst($text),
5903             , q{sequence_reference}, $tracelevel
5904             );
5905             }
5906 0         0 $_[1] = $text;
5907 0         0 return $return;
5908             }
5909              
5910             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5911             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sysibm_function {
5912 0     0   0 my $thisparser = $_[0];
5913 1     1   12 use vars q{$tracelevel};
  1         4  
  1         554  
5914 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
5915 0         0 $ERRORS = 0;
5916 0         0 my $thisrule = $thisparser->{"rules"}{"sysibm_function"};
5917              
5918 0 0       0 Parse::RecDescent::_trace(
5919             q{Trying rule: [sysibm_function]},
5920             Parse::RecDescent::_tracefirst($_[1]),
5921             q{sysibm_function}, $tracelevel
5922             ) if defined $::RD_TRACE;
5923              
5924 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
5925              
5926 0         0 my $score;
5927             my $score_return;
5928 0         0 my $_tok;
5929 0         0 my $return = undef;
5930 0         0 my $_matched = 0;
5931 0         0 my $commit = 0;
5932 0         0 my @item = ();
5933 0         0 my %item = ();
5934 0   0     0 my $repeating = defined($_[2]) && $_[2];
5935 0   0     0 my $_noactions = defined($_[3]) && $_[3];
5936 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
5937 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
5938 0         0 my $text;
5939 0         0 my $lastsep = "";
5940 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
5941 0         0 $expectation->at($_[1]);
5942              
5943 0         0 my $thisline;
5944 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5945              
5946 0   0     0 while (!$_matched && !$commit) {
5947              
5948 0 0       0 Parse::RecDescent::_trace(
5949             q{Trying production: [/ABS/i, or /ABSVAL/i]},
5950             Parse::RecDescent::_tracefirst($_[1]),
5951             q{sysibm_function}, $tracelevel
5952             ) if defined $::RD_TRACE;
5953 0         0 my $thisprod = $thisrule->{"prods"}[0];
5954 0         0 $text = $_[1];
5955 0         0 my $_savetext;
5956 0         0 @item = (q{sysibm_function});
5957 0         0 %item = (__RULE__ => q{sysibm_function});
5958 0         0 my $repcount = 0;
5959              
5960 0 0       0 Parse::RecDescent::_trace(
5961             q{Trying subrule: [_alternation_1_of_production_1_of_rule_sysibm_function]},
5962             Parse::RecDescent::_tracefirst($text),
5963             q{sysibm_function}, $tracelevel
5964             ) if defined $::RD_TRACE;
5965 0         0 if (1) {
5966 1     1   11 no strict qw{refs};
  1         2  
  1         2609  
5967 0         0 $expectation->is(q{})->at($text);
5968 0 0       0 unless (defined(
5969             $_tok
5970             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_sysibm_function(
5971 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
5972             )
5973             )) {
5974              
5975 0 0       0 Parse::RecDescent::_trace(
5976             q{<>},
5977             Parse::RecDescent::_tracefirst($text),
5978             q{sysibm_function}, $tracelevel
5979             ) if defined $::RD_TRACE;
5980 0         0 $expectation->failed();
5981 0         0 last;
5982             }
5983             Parse::RecDescent::_trace(
5984 0 0       0 q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_sysibm_function]<< (return value: [}
5985             . $_tok . q{]},
5986              
5987             Parse::RecDescent::_tracefirst($text),
5988             q{sysibm_function},
5989             $tracelevel
5990             ) if defined $::RD_TRACE;
5991 0         0 $item{q{_alternation_1_of_production_1_of_rule_sysibm_function}} = $_tok;
5992 0         0 push @item, $_tok;
5993              
5994             }
5995              
5996             Parse::RecDescent::_trace(
5997 0 0       0 q{>>Matched production: [/ABS/i, or /ABSVAL/i]<<},
5998             Parse::RecDescent::_tracefirst($text),
5999             q{sysibm_function}, $tracelevel
6000             ) if defined $::RD_TRACE;
6001 0         0 $_matched = 1;
6002 0         0 last;
6003             }
6004              
6005 0   0     0 while (!$_matched && !$commit) {
6006              
6007 0 0       0 Parse::RecDescent::_trace(
6008             q{Trying production: [/AVG/i]},
6009             Parse::RecDescent::_tracefirst($_[1]),
6010             q{sysibm_function}, $tracelevel
6011             ) if defined $::RD_TRACE;
6012 0         0 my $thisprod = $thisrule->{"prods"}[1];
6013 0         0 $text = $_[1];
6014 0         0 my $_savetext;
6015 0         0 @item = (q{sysibm_function});
6016 0         0 %item = (__RULE__ => q{sysibm_function});
6017 0         0 my $repcount = 0;
6018              
6019 0 0       0 Parse::RecDescent::_trace(
6020             q{Trying terminal: [/AVG/i]},
6021             Parse::RecDescent::_tracefirst($text),
6022             q{sysibm_function}, $tracelevel
6023             ) if defined $::RD_TRACE;
6024 0         0 $lastsep = "";
6025 0         0 $expectation->is(q{})->at($text);
6026              
6027 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
6028             and $text =~ s/\A(?:AVG)//i) {
6029              
6030 0         0 $expectation->failed();
6031 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
6032             if defined $::RD_TRACE;
6033              
6034 0         0 last;
6035             }
6036 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
6037             Parse::RecDescent::_tracefirst($text))
6038             if defined $::RD_TRACE;
6039 0         0 push @item, $item{__PATTERN1__} = $&;
6040              
6041 0 0       0 Parse::RecDescent::_trace(
6042             q{>>Matched production: [/AVG/i]<<},
6043             Parse::RecDescent::_tracefirst($text),
6044             q{sysibm_function}, $tracelevel
6045             ) if defined $::RD_TRACE;
6046 0         0 $_matched = 1;
6047 0         0 last;
6048             }
6049              
6050 0   0     0 while (!$_matched && !$commit) {
6051              
6052 0 0       0 Parse::RecDescent::_trace(
6053             q{Trying production: [/BIGINT/i]},
6054             Parse::RecDescent::_tracefirst($_[1]),
6055             q{sysibm_function}, $tracelevel
6056             ) if defined $::RD_TRACE;
6057 0         0 my $thisprod = $thisrule->{"prods"}[2];
6058 0         0 $text = $_[1];
6059 0         0 my $_savetext;
6060 0         0 @item = (q{sysibm_function});
6061 0         0 %item = (__RULE__ => q{sysibm_function});
6062 0         0 my $repcount = 0;
6063              
6064 0 0       0 Parse::RecDescent::_trace(
6065             q{Trying terminal: [/BIGINT/i]},
6066             Parse::RecDescent::_tracefirst($text),
6067             q{sysibm_function}, $tracelevel
6068             ) if defined $::RD_TRACE;
6069 0         0 $lastsep = "";
6070 0         0 $expectation->is(q{})->at($text);
6071              
6072 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
6073             and $text =~ s/\A(?:BIGINT)//i) {
6074              
6075 0         0 $expectation->failed();
6076 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
6077             if defined $::RD_TRACE;
6078              
6079 0         0 last;
6080             }
6081 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
6082             Parse::RecDescent::_tracefirst($text))
6083             if defined $::RD_TRACE;
6084 0         0 push @item, $item{__PATTERN1__} = $&;
6085              
6086 0 0       0 Parse::RecDescent::_trace(
6087             q{>>Matched production: [/BIGINT/i]<<},
6088             Parse::RecDescent::_tracefirst($text),
6089             q{sysibm_function}, $tracelevel
6090             ) if defined $::RD_TRACE;
6091 0         0 $_matched = 1;
6092 0         0 last;
6093             }
6094              
6095 0   0     0 while (!$_matched && !$commit) {
6096              
6097 0 0       0 Parse::RecDescent::_trace(
6098             q{Trying production: [/BLOB/i]},
6099             Parse::RecDescent::_tracefirst($_[1]),
6100             q{sysibm_function}, $tracelevel
6101             ) if defined $::RD_TRACE;
6102 0         0 my $thisprod = $thisrule->{"prods"}[3];
6103 0         0 $text = $_[1];
6104 0         0 my $_savetext;
6105 0         0 @item = (q{sysibm_function});
6106 0         0 %item = (__RULE__ => q{sysibm_function});
6107 0         0 my $repcount = 0;
6108              
6109 0 0       0 Parse::RecDescent::_trace(
6110             q{Trying terminal: [/BLOB/i]},
6111             Parse::RecDescent::_tracefirst($text),
6112             q{sysibm_function}, $tracelevel
6113             ) if defined $::RD_TRACE;
6114 0         0 $lastsep = "";
6115 0         0 $expectation->is(q{})->at($text);
6116              
6117 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
6118             and $text =~ s/\A(?:BLOB)//i) {
6119              
6120 0         0 $expectation->failed();
6121 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
6122             if defined $::RD_TRACE;
6123              
6124 0         0 last;
6125             }
6126 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
6127             Parse::RecDescent::_tracefirst($text))
6128             if defined $::RD_TRACE;
6129 0         0 push @item, $item{__PATTERN1__} = $&;
6130              
6131 0 0       0 Parse::RecDescent::_trace(
6132             q{>>Matched production: [/BLOB/i]<<},
6133             Parse::RecDescent::_tracefirst($text),
6134             q{sysibm_function}, $tracelevel
6135             ) if defined $::RD_TRACE;
6136 0         0 $_matched = 1;
6137 0         0 last;
6138             }
6139              
6140 0   0     0 while (!$_matched && !$commit) {
6141              
6142 0 0       0 Parse::RecDescent::_trace(
6143             q{Trying production: [/CHAR/i]},
6144             Parse::RecDescent::_tracefirst($_[1]),
6145             q{sysibm_function}, $tracelevel
6146             ) if defined $::RD_TRACE;
6147 0         0 my $thisprod = $thisrule->{"prods"}[4];
6148 0         0 $text = $_[1];
6149 0         0 my $_savetext;
6150 0         0 @item = (q{sysibm_function});
6151 0         0 %item = (__RULE__ => q{sysibm_function});
6152 0         0 my $repcount = 0;
6153              
6154 0 0       0 Parse::RecDescent::_trace(
6155             q{Trying terminal: [/CHAR/i]},
6156             Parse::RecDescent::_tracefirst($text),
6157             q{sysibm_function}, $tracelevel
6158             ) if defined $::RD_TRACE;
6159 0         0 $lastsep = "";
6160 0         0 $expectation->is(q{})->at($text);
6161              
6162 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
6163             and $text =~ s/\A(?:CHAR)//i) {
6164              
6165 0         0 $expectation->failed();
6166 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
6167             if defined $::RD_TRACE;
6168              
6169 0         0 last;
6170             }
6171 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
6172             Parse::RecDescent::_tracefirst($text))
6173             if defined $::RD_TRACE;
6174 0         0 push @item, $item{__PATTERN1__} = $&;
6175              
6176 0 0       0 Parse::RecDescent::_trace(
6177             q{>>Matched production: [/CHAR/i]<<},
6178             Parse::RecDescent::_tracefirst($text),
6179             q{sysibm_function}, $tracelevel
6180             ) if defined $::RD_TRACE;
6181 0         0 $_matched = 1;
6182 0         0 last;
6183             }
6184              
6185 0   0     0 while (!$_matched && !$commit) {
6186              
6187 0 0       0 Parse::RecDescent::_trace(
6188             q{Trying production: [/CLOB/i]},
6189             Parse::RecDescent::_tracefirst($_[1]),
6190             q{sysibm_function}, $tracelevel
6191             ) if defined $::RD_TRACE;
6192 0         0 my $thisprod = $thisrule->{"prods"}[5];
6193 0         0 $text = $_[1];
6194 0         0 my $_savetext;
6195 0         0 @item = (q{sysibm_function});
6196 0         0 %item = (__RULE__ => q{sysibm_function});
6197 0         0 my $repcount = 0;
6198              
6199 0 0       0 Parse::RecDescent::_trace(
6200             q{Trying terminal: [/CLOB/i]},
6201             Parse::RecDescent::_tracefirst($text),
6202             q{sysibm_function}, $tracelevel
6203             ) if defined $::RD_TRACE;
6204 0         0 $lastsep = "";
6205 0         0 $expectation->is(q{})->at($text);
6206              
6207 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
6208             and $text =~ s/\A(?:CLOB)//i) {
6209              
6210 0         0 $expectation->failed();
6211 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
6212             if defined $::RD_TRACE;
6213              
6214 0         0 last;
6215             }
6216 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
6217             Parse::RecDescent::_tracefirst($text))
6218             if defined $::RD_TRACE;
6219 0         0 push @item, $item{__PATTERN1__} = $&;
6220              
6221 0 0       0 Parse::RecDescent::_trace(
6222             q{>>Matched production: [/CLOB/i]<<},
6223             Parse::RecDescent::_tracefirst($text),
6224             q{sysibm_function}, $tracelevel
6225             ) if defined $::RD_TRACE;
6226 0         0 $_matched = 1;
6227 0         0 last;
6228             }
6229              
6230 0   0     0 while (!$_matched && !$commit) {
6231              
6232 0 0       0 Parse::RecDescent::_trace(
6233             q{Trying production: [/COALESCE/i]},
6234             Parse::RecDescent::_tracefirst($_[1]),
6235             q{sysibm_function}, $tracelevel
6236             ) if defined $::RD_TRACE;
6237 0         0 my $thisprod = $thisrule->{"prods"}[6];
6238 0         0 $text = $_[1];
6239 0         0 my $_savetext;
6240 0         0 @item = (q{sysibm_function});
6241 0         0 %item = (__RULE__ => q{sysibm_function});
6242 0         0 my $repcount = 0;
6243              
6244 0 0       0 Parse::RecDescent::_trace(
6245             q{Trying terminal: [/COALESCE/i]},
6246             Parse::RecDescent::_tracefirst($text),
6247             q{sysibm_function}, $tracelevel
6248             ) if defined $::RD_TRACE;
6249 0         0 $lastsep = "";
6250 0         0 $expectation->is(q{})->at($text);
6251              
6252 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
6253             and $text =~ s/\A(?:COALESCE)//i) {
6254              
6255 0         0 $expectation->failed();
6256 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
6257             if defined $::RD_TRACE;
6258              
6259 0         0 last;
6260             }
6261 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
6262             Parse::RecDescent::_tracefirst($text))
6263             if defined $::RD_TRACE;
6264 0         0 push @item, $item{__PATTERN1__} = $&;
6265              
6266 0 0       0 Parse::RecDescent::_trace(
6267             q{>>Matched production: [/COALESCE/i]<<},
6268             Parse::RecDescent::_tracefirst($text),
6269             q{sysibm_function}, $tracelevel
6270             ) if defined $::RD_TRACE;
6271 0         0 $_matched = 1;
6272 0         0 last;
6273             }
6274              
6275 0   0     0 while (!$_matched && !$commit) {
6276              
6277 0 0       0 Parse::RecDescent::_trace(
6278             q{Trying production: [/CONCAT/, or '||']},
6279             Parse::RecDescent::_tracefirst($_[1]),
6280             q{sysibm_function}, $tracelevel
6281             ) if defined $::RD_TRACE;
6282 0         0 my $thisprod = $thisrule->{"prods"}[7];
6283 0         0 $text = $_[1];
6284 0         0 my $_savetext;
6285 0         0 @item = (q{sysibm_function});
6286 0         0 %item = (__RULE__ => q{sysibm_function});
6287 0         0 my $repcount = 0;
6288              
6289 0 0       0 Parse::RecDescent::_trace(
6290             q{Trying subrule: [_alternation_1_of_production_8_of_rule_sysibm_function]},
6291             Parse::RecDescent::_tracefirst($text),
6292             q{sysibm_function}, $tracelevel
6293             ) if defined $::RD_TRACE;
6294 0         0 if (1) {
6295 1     1   11 no strict qw{refs};
  1         22  
  1         520  
6296 0         0 $expectation->is(q{})->at($text);
6297 0 0       0 unless (defined(
6298             $_tok
6299             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_8_of_rule_sysibm_function(
6300 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
6301             )
6302             )) {
6303              
6304 0 0       0 Parse::RecDescent::_trace(
6305             q{<>},
6306             Parse::RecDescent::_tracefirst($text),
6307             q{sysibm_function}, $tracelevel
6308             ) if defined $::RD_TRACE;
6309 0         0 $expectation->failed();
6310 0         0 last;
6311             }
6312             Parse::RecDescent::_trace(
6313 0 0       0 q{>>Matched subrule: [_alternation_1_of_production_8_of_rule_sysibm_function]<< (return value: [}
6314             . $_tok . q{]},
6315              
6316             Parse::RecDescent::_tracefirst($text),
6317             q{sysibm_function},
6318             $tracelevel
6319             ) if defined $::RD_TRACE;
6320 0         0 $item{q{_alternation_1_of_production_8_of_rule_sysibm_function}} = $_tok;
6321 0         0 push @item, $_tok;
6322              
6323             }
6324              
6325             Parse::RecDescent::_trace(
6326 0 0       0 q{>>Matched production: [/CONCAT/, or '||']<<},
6327             Parse::RecDescent::_tracefirst($text),
6328             q{sysibm_function}, $tracelevel
6329             ) if defined $::RD_TRACE;
6330 0         0 $_matched = 1;
6331 0         0 last;
6332             }
6333              
6334 0   0     0 while (!$_matched && !$commit) {
6335              
6336 0 0       0 Parse::RecDescent::_trace(
6337             q{Trying production: [/CORRELATION/i, or /CORR/]},
6338             Parse::RecDescent::_tracefirst($_[1]),
6339             q{sysibm_function}, $tracelevel
6340             ) if defined $::RD_TRACE;
6341 0         0 my $thisprod = $thisrule->{"prods"}[8];
6342 0         0 $text = $_[1];
6343 0         0 my $_savetext;
6344 0         0 @item = (q{sysibm_function});
6345 0         0 %item = (__RULE__ => q{sysibm_function});
6346 0         0 my $repcount = 0;
6347              
6348 0 0       0 Parse::RecDescent::_trace(
6349             q{Trying subrule: [_alternation_1_of_production_9_of_rule_sysibm_function]},
6350             Parse::RecDescent::_tracefirst($text),
6351             q{sysibm_function}, $tracelevel
6352             ) if defined $::RD_TRACE;
6353 0         0 if (1) {
6354 1     1   11 no strict qw{refs};
  1         3  
  1         1239  
6355 0         0 $expectation->is(q{})->at($text);
6356 0 0       0 unless (defined(
6357             $_tok
6358             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_9_of_rule_sysibm_function(
6359 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
6360             )
6361             )) {
6362              
6363 0 0       0 Parse::RecDescent::_trace(
6364             q{<>},
6365             Parse::RecDescent::_tracefirst($text),
6366             q{sysibm_function}, $tracelevel
6367             ) if defined $::RD_TRACE;
6368 0         0 $expectation->failed();
6369 0         0 last;
6370             }
6371             Parse::RecDescent::_trace(
6372 0 0       0 q{>>Matched subrule: [_alternation_1_of_production_9_of_rule_sysibm_function]<< (return value: [}
6373             . $_tok . q{]},
6374              
6375             Parse::RecDescent::_tracefirst($text),
6376             q{sysibm_function},
6377             $tracelevel
6378             ) if defined $::RD_TRACE;
6379 0         0 $item{q{_alternation_1_of_production_9_of_rule_sysibm_function}} = $_tok;
6380 0         0 push @item, $_tok;
6381              
6382             }
6383              
6384             Parse::RecDescent::_trace(
6385 0 0       0 q{>>Matched production: [/CORRELATION/i, or /CORR/]<<},
6386             Parse::RecDescent::_tracefirst($text),
6387             q{sysibm_function}, $tracelevel
6388             ) if defined $::RD_TRACE;
6389 0         0 $_matched = 1;
6390 0         0 last;
6391             }
6392              
6393 0   0     0 while (!$_matched && !$commit) {
6394              
6395 0 0       0 Parse::RecDescent::_trace(
6396             q{Trying production: [/COUNT/i]},
6397             Parse::RecDescent::_tracefirst($_[1]),
6398             q{sysibm_function}, $tracelevel
6399             ) if defined $::RD_TRACE;
6400 0         0 my $thisprod = $thisrule->{"prods"}[9];
6401 0         0 $text = $_[1];
6402 0         0 my $_savetext;
6403 0         0 @item = (q{sysibm_function});
6404 0         0 %item = (__RULE__ => q{sysibm_function});
6405 0         0 my $repcount = 0;
6406              
6407 0 0       0 Parse::RecDescent::_trace(
6408             q{Trying terminal: [/COUNT/i]},
6409             Parse::RecDescent::_tracefirst($text),
6410             q{sysibm_function}, $tracelevel
6411             ) if defined $::RD_TRACE;
6412 0         0 $lastsep = "";
6413 0         0 $expectation->is(q{})->at($text);
6414              
6415 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
6416             and $text =~ s/\A(?:COUNT)//i) {
6417              
6418 0         0 $expectation->failed();
6419 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
6420             if defined $::RD_TRACE;
6421              
6422 0         0 last;
6423             }
6424 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
6425             Parse::RecDescent::_tracefirst($text))
6426             if defined $::RD_TRACE;
6427 0         0 push @item, $item{__PATTERN1__} = $&;
6428              
6429 0 0       0 Parse::RecDescent::_trace(
6430             q{>>Matched production: [/COUNT/i]<<},
6431             Parse::RecDescent::_tracefirst($text),
6432             q{sysibm_function}, $tracelevel
6433             ) if defined $::RD_TRACE;
6434 0         0 $_matched = 1;
6435 0         0 last;
6436             }
6437              
6438 0   0     0 while (!$_matched && !$commit) {
6439              
6440 0 0       0 Parse::RecDescent::_trace(
6441             q{Trying production: [/COUNT_BIG/i]},
6442             Parse::RecDescent::_tracefirst($_[1]),
6443             q{sysibm_function}, $tracelevel
6444             ) if defined $::RD_TRACE;
6445 0         0 my $thisprod = $thisrule->{"prods"}[10];
6446 0         0 $text = $_[1];
6447 0         0 my $_savetext;
6448 0         0 @item = (q{sysibm_function});
6449 0         0 %item = (__RULE__ => q{sysibm_function});
6450 0         0 my $repcount = 0;
6451              
6452 0 0       0 Parse::RecDescent::_trace(
6453             q{Trying terminal: [/COUNT_BIG/i]},
6454             Parse::RecDescent::_tracefirst($text),
6455             q{sysibm_function}, $tracelevel
6456             ) if defined $::RD_TRACE;
6457 0         0 $lastsep = "";
6458 0         0 $expectation->is(q{})->at($text);
6459              
6460 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
6461             and $text =~ s/\A(?:COUNT_BIG)//i) {
6462              
6463 0         0 $expectation->failed();
6464 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
6465             if defined $::RD_TRACE;
6466              
6467 0         0 last;
6468             }
6469 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
6470             Parse::RecDescent::_tracefirst($text))
6471             if defined $::RD_TRACE;
6472 0         0 push @item, $item{__PATTERN1__} = $&;
6473              
6474 0 0       0 Parse::RecDescent::_trace(
6475             q{>>Matched production: [/COUNT_BIG/i]<<},
6476             Parse::RecDescent::_tracefirst($text),
6477             q{sysibm_function}, $tracelevel
6478             ) if defined $::RD_TRACE;
6479 0         0 $_matched = 1;
6480 0         0 last;
6481             }
6482              
6483 0   0     0 while (!$_matched && !$commit) {
6484              
6485 0 0       0 Parse::RecDescent::_trace(
6486             q{Trying production: [/COVARIANCE/i, or /COVAR/i]},
6487             Parse::RecDescent::_tracefirst($_[1]),
6488             q{sysibm_function}, $tracelevel
6489             ) if defined $::RD_TRACE;
6490 0         0 my $thisprod = $thisrule->{"prods"}[11];
6491 0         0 $text = $_[1];
6492 0         0 my $_savetext;
6493 0         0 @item = (q{sysibm_function});
6494 0         0 %item = (__RULE__ => q{sysibm_function});
6495 0         0 my $repcount = 0;
6496              
6497 0 0       0 Parse::RecDescent::_trace(
6498             q{Trying subrule: [_alternation_1_of_production_12_of_rule_sysibm_function]},
6499             Parse::RecDescent::_tracefirst($text),
6500             q{sysibm_function}, $tracelevel
6501             ) if defined $::RD_TRACE;
6502 0         0 if (1) {
6503 1     1   12 no strict qw{refs};
  1         3  
  1         2225  
6504 0         0 $expectation->is(q{})->at($text);
6505 0 0       0 unless (defined(
6506             $_tok
6507             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_12_of_rule_sysibm_function(
6508 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
6509             )
6510             )) {
6511              
6512 0 0       0 Parse::RecDescent::_trace(
6513             q{<>},
6514             Parse::RecDescent::_tracefirst($text),
6515             q{sysibm_function}, $tracelevel
6516             ) if defined $::RD_TRACE;
6517 0         0 $expectation->failed();
6518 0         0 last;
6519             }
6520             Parse::RecDescent::_trace(
6521 0 0       0 q{>>Matched subrule: [_alternation_1_of_production_12_of_rule_sysibm_function]<< (return value: [}
6522             . $_tok . q{]},
6523              
6524             Parse::RecDescent::_tracefirst($text),
6525             q{sysibm_function},
6526             $tracelevel
6527             ) if defined $::RD_TRACE;
6528 0         0 $item{q{_alternation_1_of_production_12_of_rule_sysibm_function}} = $_tok;
6529 0         0 push @item, $_tok;
6530              
6531             }
6532              
6533             Parse::RecDescent::_trace(
6534 0 0       0 q{>>Matched production: [/COVARIANCE/i, or /COVAR/i]<<},
6535             Parse::RecDescent::_tracefirst($text),
6536             q{sysibm_function}, $tracelevel
6537             ) if defined $::RD_TRACE;
6538 0         0 $_matched = 1;
6539 0         0 last;
6540             }
6541              
6542 0   0     0 while (!$_matched && !$commit) {
6543              
6544 0 0       0 Parse::RecDescent::_trace(
6545             q{Trying production: [/DATE/i]},
6546             Parse::RecDescent::_tracefirst($_[1]),
6547             q{sysibm_function}, $tracelevel
6548             ) if defined $::RD_TRACE;
6549 0         0 my $thisprod = $thisrule->{"prods"}[12];
6550 0         0 $text = $_[1];
6551 0         0 my $_savetext;
6552 0         0 @item = (q{sysibm_function});
6553 0         0 %item = (__RULE__ => q{sysibm_function});
6554 0         0 my $repcount = 0;
6555              
6556 0 0       0 Parse::RecDescent::_trace(
6557             q{Trying terminal: [/DATE/i]},
6558             Parse::RecDescent::_tracefirst($text),
6559             q{sysibm_function}, $tracelevel
6560             ) if defined $::RD_TRACE;
6561 0         0 $lastsep = "";
6562 0         0 $expectation->is(q{})->at($text);
6563              
6564 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
6565             and $text =~ s/\A(?:DATE)//i) {
6566              
6567 0         0 $expectation->failed();
6568 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
6569             if defined $::RD_TRACE;
6570              
6571 0         0 last;
6572             }
6573 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
6574             Parse::RecDescent::_tracefirst($text))
6575             if defined $::RD_TRACE;
6576 0         0 push @item, $item{__PATTERN1__} = $&;
6577              
6578 0 0       0 Parse::RecDescent::_trace(
6579             q{>>Matched production: [/DATE/i]<<},
6580             Parse::RecDescent::_tracefirst($text),
6581             q{sysibm_function}, $tracelevel
6582             ) if defined $::RD_TRACE;
6583 0         0 $_matched = 1;
6584 0         0 last;
6585             }
6586              
6587 0   0     0 while (!$_matched && !$commit) {
6588              
6589 0 0       0 Parse::RecDescent::_trace(
6590             q{Trying production: [/DAY/i]},
6591             Parse::RecDescent::_tracefirst($_[1]),
6592             q{sysibm_function}, $tracelevel
6593             ) if defined $::RD_TRACE;
6594 0         0 my $thisprod = $thisrule->{"prods"}[13];
6595 0         0 $text = $_[1];
6596 0         0 my $_savetext;
6597 0         0 @item = (q{sysibm_function});
6598 0         0 %item = (__RULE__ => q{sysibm_function});
6599 0         0 my $repcount = 0;
6600              
6601 0 0       0 Parse::RecDescent::_trace(
6602             q{Trying terminal: [/DAY/i]},
6603             Parse::RecDescent::_tracefirst($text),
6604             q{sysibm_function}, $tracelevel
6605             ) if defined $::RD_TRACE;
6606 0         0 $lastsep = "";
6607 0         0 $expectation->is(q{})->at($text);
6608              
6609 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
6610             and $text =~ s/\A(?:DAY)//i) {
6611              
6612 0         0 $expectation->failed();
6613 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
6614             if defined $::RD_TRACE;
6615              
6616 0         0 last;
6617             }
6618 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
6619             Parse::RecDescent::_tracefirst($text))
6620             if defined $::RD_TRACE;
6621 0         0 push @item, $item{__PATTERN1__} = $&;
6622              
6623 0 0       0 Parse::RecDescent::_trace(
6624             q{>>Matched production: [/DAY/i]<<},
6625             Parse::RecDescent::_tracefirst($text),
6626             q{sysibm_function}, $tracelevel
6627             ) if defined $::RD_TRACE;
6628 0         0 $_matched = 1;
6629 0         0 last;
6630             }
6631              
6632 0   0     0 while (!$_matched && !$commit) {
6633              
6634 0 0       0 Parse::RecDescent::_trace(
6635             q{Trying production: [/DAYS/i]},
6636             Parse::RecDescent::_tracefirst($_[1]),
6637             q{sysibm_function}, $tracelevel
6638             ) if defined $::RD_TRACE;
6639 0         0 my $thisprod = $thisrule->{"prods"}[14];
6640 0         0 $text = $_[1];
6641 0         0 my $_savetext;
6642 0         0 @item = (q{sysibm_function});
6643 0         0 %item = (__RULE__ => q{sysibm_function});
6644 0         0 my $repcount = 0;
6645              
6646 0 0       0 Parse::RecDescent::_trace(
6647             q{Trying terminal: [/DAYS/i]},
6648             Parse::RecDescent::_tracefirst($text),
6649             q{sysibm_function}, $tracelevel
6650             ) if defined $::RD_TRACE;
6651 0         0 $lastsep = "";
6652 0         0 $expectation->is(q{})->at($text);
6653              
6654 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
6655             and $text =~ s/\A(?:DAYS)//i) {
6656              
6657 0         0 $expectation->failed();
6658 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
6659             if defined $::RD_TRACE;
6660              
6661 0         0 last;
6662             }
6663 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
6664             Parse::RecDescent::_tracefirst($text))
6665             if defined $::RD_TRACE;
6666 0         0 push @item, $item{__PATTERN1__} = $&;
6667              
6668 0 0       0 Parse::RecDescent::_trace(
6669             q{>>Matched production: [/DAYS/i]<<},
6670             Parse::RecDescent::_tracefirst($text),
6671             q{sysibm_function}, $tracelevel
6672             ) if defined $::RD_TRACE;
6673 0         0 $_matched = 1;
6674 0         0 last;
6675             }
6676              
6677 0   0     0 while (!$_matched && !$commit) {
6678              
6679 0 0       0 Parse::RecDescent::_trace(
6680             q{Trying production: [/DBCLOB/i]},
6681             Parse::RecDescent::_tracefirst($_[1]),
6682             q{sysibm_function}, $tracelevel
6683             ) if defined $::RD_TRACE;
6684 0         0 my $thisprod = $thisrule->{"prods"}[15];
6685 0         0 $text = $_[1];
6686 0         0 my $_savetext;
6687 0         0 @item = (q{sysibm_function});
6688 0         0 %item = (__RULE__ => q{sysibm_function});
6689 0         0 my $repcount = 0;
6690              
6691 0 0       0 Parse::RecDescent::_trace(
6692             q{Trying terminal: [/DBCLOB/i]},
6693             Parse::RecDescent::_tracefirst($text),
6694             q{sysibm_function}, $tracelevel
6695             ) if defined $::RD_TRACE;
6696 0         0 $lastsep = "";
6697 0         0 $expectation->is(q{})->at($text);
6698              
6699 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
6700             and $text =~ s/\A(?:DBCLOB)//i) {
6701              
6702 0         0 $expectation->failed();
6703 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
6704             if defined $::RD_TRACE;
6705              
6706 0         0 last;
6707             }
6708 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
6709             Parse::RecDescent::_tracefirst($text))
6710             if defined $::RD_TRACE;
6711 0         0 push @item, $item{__PATTERN1__} = $&;
6712              
6713 0 0       0 Parse::RecDescent::_trace(
6714             q{>>Matched production: [/DBCLOB/i]<<},
6715             Parse::RecDescent::_tracefirst($text),
6716             q{sysibm_function}, $tracelevel
6717             ) if defined $::RD_TRACE;
6718 0         0 $_matched = 1;
6719 0         0 last;
6720             }
6721              
6722 0   0     0 while (!$_matched && !$commit) {
6723              
6724 0 0       0 Parse::RecDescent::_trace(
6725             q{Trying production: [/DECIMAL/i, or /DEC/i]},
6726             Parse::RecDescent::_tracefirst($_[1]),
6727             q{sysibm_function}, $tracelevel
6728             ) if defined $::RD_TRACE;
6729 0         0 my $thisprod = $thisrule->{"prods"}[16];
6730 0         0 $text = $_[1];
6731 0         0 my $_savetext;
6732 0         0 @item = (q{sysibm_function});
6733 0         0 %item = (__RULE__ => q{sysibm_function});
6734 0         0 my $repcount = 0;
6735              
6736 0 0       0 Parse::RecDescent::_trace(
6737             q{Trying subrule: [_alternation_1_of_production_17_of_rule_sysibm_function]},
6738             Parse::RecDescent::_tracefirst($text),
6739             q{sysibm_function}, $tracelevel
6740             ) if defined $::RD_TRACE;
6741 0         0 if (1) {
6742 1     1   12 no strict qw{refs};
  1         4  
  1         6104  
6743 0         0 $expectation->is(q{})->at($text);
6744 0 0       0 unless (defined(
6745             $_tok
6746             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_17_of_rule_sysibm_function(
6747 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
6748             )
6749             )) {
6750              
6751 0 0       0 Parse::RecDescent::_trace(
6752             q{<>},
6753             Parse::RecDescent::_tracefirst($text),
6754             q{sysibm_function}, $tracelevel
6755             ) if defined $::RD_TRACE;
6756 0         0 $expectation->failed();
6757 0         0 last;
6758             }
6759             Parse::RecDescent::_trace(
6760 0 0       0 q{>>Matched subrule: [_alternation_1_of_production_17_of_rule_sysibm_function]<< (return value: [}
6761             . $_tok . q{]},
6762              
6763             Parse::RecDescent::_tracefirst($text),
6764             q{sysibm_function},
6765             $tracelevel
6766             ) if defined $::RD_TRACE;
6767 0         0 $item{q{_alternation_1_of_production_17_of_rule_sysibm_function}} = $_tok;
6768 0         0 push @item, $_tok;
6769              
6770             }
6771              
6772             Parse::RecDescent::_trace(
6773 0 0       0 q{>>Matched production: [/DECIMAL/i, or /DEC/i]<<},
6774             Parse::RecDescent::_tracefirst($text),
6775             q{sysibm_function}, $tracelevel
6776             ) if defined $::RD_TRACE;
6777 0         0 $_matched = 1;
6778 0         0 last;
6779             }
6780              
6781 0   0     0 while (!$_matched && !$commit) {
6782              
6783 0 0       0 Parse::RecDescent::_trace(
6784             q{Trying production: [/DECRYPT_BIN/i]},
6785             Parse::RecDescent::_tracefirst($_[1]),
6786             q{sysibm_function}, $tracelevel
6787             ) if defined $::RD_TRACE;
6788 0         0 my $thisprod = $thisrule->{"prods"}[17];
6789 0         0 $text = $_[1];
6790 0         0 my $_savetext;
6791 0         0 @item = (q{sysibm_function});
6792 0         0 %item = (__RULE__ => q{sysibm_function});
6793 0         0 my $repcount = 0;
6794              
6795 0 0       0 Parse::RecDescent::_trace(
6796             q{Trying terminal: [/DECRYPT_BIN/i]},
6797             Parse::RecDescent::_tracefirst($text),
6798             q{sysibm_function}, $tracelevel
6799             ) if defined $::RD_TRACE;
6800 0         0 $lastsep = "";
6801 0         0 $expectation->is(q{})->at($text);
6802              
6803 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
6804             and $text =~ s/\A(?:DECRYPT_BIN)//i) {
6805              
6806 0         0 $expectation->failed();
6807 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
6808             if defined $::RD_TRACE;
6809              
6810 0         0 last;
6811             }
6812 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
6813             Parse::RecDescent::_tracefirst($text))
6814             if defined $::RD_TRACE;
6815 0         0 push @item, $item{__PATTERN1__} = $&;
6816              
6817 0 0       0 Parse::RecDescent::_trace(
6818             q{>>Matched production: [/DECRYPT_BIN/i]<<},
6819             Parse::RecDescent::_tracefirst($text),
6820             q{sysibm_function}, $tracelevel
6821             ) if defined $::RD_TRACE;
6822 0         0 $_matched = 1;
6823 0         0 last;
6824             }
6825              
6826 0   0     0 while (!$_matched && !$commit) {
6827              
6828 0 0       0 Parse::RecDescent::_trace(
6829             q{Trying production: [/DECRYPT_CHAR/i]},
6830             Parse::RecDescent::_tracefirst($_[1]),
6831             q{sysibm_function}, $tracelevel
6832             ) if defined $::RD_TRACE;
6833 0         0 my $thisprod = $thisrule->{"prods"}[18];
6834 0         0 $text = $_[1];
6835 0         0 my $_savetext;
6836 0         0 @item = (q{sysibm_function});
6837 0         0 %item = (__RULE__ => q{sysibm_function});
6838 0         0 my $repcount = 0;
6839              
6840 0 0       0 Parse::RecDescent::_trace(
6841             q{Trying terminal: [/DECRYPT_CHAR/i]},
6842             Parse::RecDescent::_tracefirst($text),
6843             q{sysibm_function}, $tracelevel
6844             ) if defined $::RD_TRACE;
6845 0         0 $lastsep = "";
6846 0         0 $expectation->is(q{})->at($text);
6847              
6848 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
6849             and $text =~ s/\A(?:DECRYPT_CHAR)//i) {
6850              
6851 0         0 $expectation->failed();
6852 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
6853             if defined $::RD_TRACE;
6854              
6855 0         0 last;
6856             }
6857 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
6858             Parse::RecDescent::_tracefirst($text))
6859             if defined $::RD_TRACE;
6860 0         0 push @item, $item{__PATTERN1__} = $&;
6861              
6862 0 0       0 Parse::RecDescent::_trace(
6863             q{>>Matched production: [/DECRYPT_CHAR/i]<<},
6864             Parse::RecDescent::_tracefirst($text),
6865             q{sysibm_function}, $tracelevel
6866             ) if defined $::RD_TRACE;
6867 0         0 $_matched = 1;
6868 0         0 last;
6869             }
6870              
6871 0   0     0 while (!$_matched && !$commit) {
6872              
6873 0 0       0 Parse::RecDescent::_trace(
6874             q{Trying production: [/DEREF/i]},
6875             Parse::RecDescent::_tracefirst($_[1]),
6876             q{sysibm_function}, $tracelevel
6877             ) if defined $::RD_TRACE;
6878 0         0 my $thisprod = $thisrule->{"prods"}[19];
6879 0         0 $text = $_[1];
6880 0         0 my $_savetext;
6881 0         0 @item = (q{sysibm_function});
6882 0         0 %item = (__RULE__ => q{sysibm_function});
6883 0         0 my $repcount = 0;
6884              
6885 0 0       0 Parse::RecDescent::_trace(
6886             q{Trying terminal: [/DEREF/i]},
6887             Parse::RecDescent::_tracefirst($text),
6888             q{sysibm_function}, $tracelevel
6889             ) if defined $::RD_TRACE;
6890 0         0 $lastsep = "";
6891 0         0 $expectation->is(q{})->at($text);
6892              
6893 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
6894             and $text =~ s/\A(?:DEREF)//i) {
6895              
6896 0         0 $expectation->failed();
6897 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
6898             if defined $::RD_TRACE;
6899              
6900 0         0 last;
6901             }
6902 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
6903             Parse::RecDescent::_tracefirst($text))
6904             if defined $::RD_TRACE;
6905 0         0 push @item, $item{__PATTERN1__} = $&;
6906              
6907 0 0       0 Parse::RecDescent::_trace(
6908             q{>>Matched production: [/DEREF/i]<<},
6909             Parse::RecDescent::_tracefirst($text),
6910             q{sysibm_function}, $tracelevel
6911             ) if defined $::RD_TRACE;
6912 0         0 $_matched = 1;
6913 0         0 last;
6914             }
6915              
6916 0   0     0 while (!$_matched && !$commit) {
6917              
6918 0 0       0 Parse::RecDescent::_trace(
6919             q{Trying production: [/DIGITS/i]},
6920             Parse::RecDescent::_tracefirst($_[1]),
6921             q{sysibm_function}, $tracelevel
6922             ) if defined $::RD_TRACE;
6923 0         0 my $thisprod = $thisrule->{"prods"}[20];
6924 0         0 $text = $_[1];
6925 0         0 my $_savetext;
6926 0         0 @item = (q{sysibm_function});
6927 0         0 %item = (__RULE__ => q{sysibm_function});
6928 0         0 my $repcount = 0;
6929              
6930 0 0       0 Parse::RecDescent::_trace(
6931             q{Trying terminal: [/DIGITS/i]},
6932             Parse::RecDescent::_tracefirst($text),
6933             q{sysibm_function}, $tracelevel
6934             ) if defined $::RD_TRACE;
6935 0         0 $lastsep = "";
6936 0         0 $expectation->is(q{})->at($text);
6937              
6938 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
6939             and $text =~ s/\A(?:DIGITS)//i) {
6940              
6941 0         0 $expectation->failed();
6942 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
6943             if defined $::RD_TRACE;
6944              
6945 0         0 last;
6946             }
6947 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
6948             Parse::RecDescent::_tracefirst($text))
6949             if defined $::RD_TRACE;
6950 0         0 push @item, $item{__PATTERN1__} = $&;
6951              
6952 0 0       0 Parse::RecDescent::_trace(
6953             q{>>Matched production: [/DIGITS/i]<<},
6954             Parse::RecDescent::_tracefirst($text),
6955             q{sysibm_function}, $tracelevel
6956             ) if defined $::RD_TRACE;
6957 0         0 $_matched = 1;
6958 0         0 last;
6959             }
6960              
6961 0   0     0 while (!$_matched && !$commit) {
6962              
6963 0 0       0 Parse::RecDescent::_trace(
6964             q{Trying production: [/DLCOMMENT/i]},
6965             Parse::RecDescent::_tracefirst($_[1]),
6966             q{sysibm_function}, $tracelevel
6967             ) if defined $::RD_TRACE;
6968 0         0 my $thisprod = $thisrule->{"prods"}[21];
6969 0         0 $text = $_[1];
6970 0         0 my $_savetext;
6971 0         0 @item = (q{sysibm_function});
6972 0         0 %item = (__RULE__ => q{sysibm_function});
6973 0         0 my $repcount = 0;
6974              
6975 0 0       0 Parse::RecDescent::_trace(
6976             q{Trying terminal: [/DLCOMMENT/i]},
6977             Parse::RecDescent::_tracefirst($text),
6978             q{sysibm_function}, $tracelevel
6979             ) if defined $::RD_TRACE;
6980 0         0 $lastsep = "";
6981 0         0 $expectation->is(q{})->at($text);
6982              
6983 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
6984             and $text =~ s/\A(?:DLCOMMENT)//i) {
6985              
6986 0         0 $expectation->failed();
6987 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
6988             if defined $::RD_TRACE;
6989              
6990 0         0 last;
6991             }
6992 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
6993             Parse::RecDescent::_tracefirst($text))
6994             if defined $::RD_TRACE;
6995 0         0 push @item, $item{__PATTERN1__} = $&;
6996              
6997 0 0       0 Parse::RecDescent::_trace(
6998             q{>>Matched production: [/DLCOMMENT/i]<<},
6999             Parse::RecDescent::_tracefirst($text),
7000             q{sysibm_function}, $tracelevel
7001             ) if defined $::RD_TRACE;
7002 0         0 $_matched = 1;
7003 0         0 last;
7004             }
7005              
7006 0   0     0 while (!$_matched && !$commit) {
7007              
7008 0 0       0 Parse::RecDescent::_trace(
7009             q{Trying production: [/DLLINKTYPE/i]},
7010             Parse::RecDescent::_tracefirst($_[1]),
7011             q{sysibm_function}, $tracelevel
7012             ) if defined $::RD_TRACE;
7013 0         0 my $thisprod = $thisrule->{"prods"}[22];
7014 0         0 $text = $_[1];
7015 0         0 my $_savetext;
7016 0         0 @item = (q{sysibm_function});
7017 0         0 %item = (__RULE__ => q{sysibm_function});
7018 0         0 my $repcount = 0;
7019              
7020 0 0       0 Parse::RecDescent::_trace(
7021             q{Trying terminal: [/DLLINKTYPE/i]},
7022             Parse::RecDescent::_tracefirst($text),
7023             q{sysibm_function}, $tracelevel
7024             ) if defined $::RD_TRACE;
7025 0         0 $lastsep = "";
7026 0         0 $expectation->is(q{})->at($text);
7027              
7028 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
7029             and $text =~ s/\A(?:DLLINKTYPE)//i) {
7030              
7031 0         0 $expectation->failed();
7032 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
7033             if defined $::RD_TRACE;
7034              
7035 0         0 last;
7036             }
7037 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
7038             Parse::RecDescent::_tracefirst($text))
7039             if defined $::RD_TRACE;
7040 0         0 push @item, $item{__PATTERN1__} = $&;
7041              
7042 0 0       0 Parse::RecDescent::_trace(
7043             q{>>Matched production: [/DLLINKTYPE/i]<<},
7044             Parse::RecDescent::_tracefirst($text),
7045             q{sysibm_function}, $tracelevel
7046             ) if defined $::RD_TRACE;
7047 0         0 $_matched = 1;
7048 0         0 last;
7049             }
7050              
7051 0   0     0 while (!$_matched && !$commit) {
7052              
7053 0 0       0 Parse::RecDescent::_trace(
7054             q{Trying production: [/DLURLCOMPLETE/i]},
7055             Parse::RecDescent::_tracefirst($_[1]),
7056             q{sysibm_function}, $tracelevel
7057             ) if defined $::RD_TRACE;
7058 0         0 my $thisprod = $thisrule->{"prods"}[23];
7059 0         0 $text = $_[1];
7060 0         0 my $_savetext;
7061 0         0 @item = (q{sysibm_function});
7062 0         0 %item = (__RULE__ => q{sysibm_function});
7063 0         0 my $repcount = 0;
7064              
7065 0 0       0 Parse::RecDescent::_trace(
7066             q{Trying terminal: [/DLURLCOMPLETE/i]},
7067             Parse::RecDescent::_tracefirst($text),
7068             q{sysibm_function}, $tracelevel
7069             ) if defined $::RD_TRACE;
7070 0         0 $lastsep = "";
7071 0         0 $expectation->is(q{})->at($text);
7072              
7073 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
7074             and $text =~ s/\A(?:DLURLCOMPLETE)//i) {
7075              
7076 0         0 $expectation->failed();
7077 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
7078             if defined $::RD_TRACE;
7079              
7080 0         0 last;
7081             }
7082 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
7083             Parse::RecDescent::_tracefirst($text))
7084             if defined $::RD_TRACE;
7085 0         0 push @item, $item{__PATTERN1__} = $&;
7086              
7087 0 0       0 Parse::RecDescent::_trace(
7088             q{>>Matched production: [/DLURLCOMPLETE/i]<<},
7089             Parse::RecDescent::_tracefirst($text),
7090             q{sysibm_function}, $tracelevel
7091             ) if defined $::RD_TRACE;
7092 0         0 $_matched = 1;
7093 0         0 last;
7094             }
7095              
7096 0   0     0 while (!$_matched && !$commit) {
7097              
7098 0 0       0 Parse::RecDescent::_trace(
7099             q{Trying production: [/DLURLPATH/i]},
7100             Parse::RecDescent::_tracefirst($_[1]),
7101             q{sysibm_function}, $tracelevel
7102             ) if defined $::RD_TRACE;
7103 0         0 my $thisprod = $thisrule->{"prods"}[24];
7104 0         0 $text = $_[1];
7105 0         0 my $_savetext;
7106 0         0 @item = (q{sysibm_function});
7107 0         0 %item = (__RULE__ => q{sysibm_function});
7108 0         0 my $repcount = 0;
7109              
7110 0 0       0 Parse::RecDescent::_trace(
7111             q{Trying terminal: [/DLURLPATH/i]},
7112             Parse::RecDescent::_tracefirst($text),
7113             q{sysibm_function}, $tracelevel
7114             ) if defined $::RD_TRACE;
7115 0         0 $lastsep = "";
7116 0         0 $expectation->is(q{})->at($text);
7117              
7118 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
7119             and $text =~ s/\A(?:DLURLPATH)//i) {
7120              
7121 0         0 $expectation->failed();
7122 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
7123             if defined $::RD_TRACE;
7124              
7125 0         0 last;
7126             }
7127 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
7128             Parse::RecDescent::_tracefirst($text))
7129             if defined $::RD_TRACE;
7130 0         0 push @item, $item{__PATTERN1__} = $&;
7131              
7132 0 0       0 Parse::RecDescent::_trace(
7133             q{>>Matched production: [/DLURLPATH/i]<<},
7134             Parse::RecDescent::_tracefirst($text),
7135             q{sysibm_function}, $tracelevel
7136             ) if defined $::RD_TRACE;
7137 0         0 $_matched = 1;
7138 0         0 last;
7139             }
7140              
7141 0   0     0 while (!$_matched && !$commit) {
7142              
7143 0 0       0 Parse::RecDescent::_trace(
7144             q{Trying production: [/DLURLPATHONLY/i]},
7145             Parse::RecDescent::_tracefirst($_[1]),
7146             q{sysibm_function}, $tracelevel
7147             ) if defined $::RD_TRACE;
7148 0         0 my $thisprod = $thisrule->{"prods"}[25];
7149 0         0 $text = $_[1];
7150 0         0 my $_savetext;
7151 0         0 @item = (q{sysibm_function});
7152 0         0 %item = (__RULE__ => q{sysibm_function});
7153 0         0 my $repcount = 0;
7154              
7155 0 0       0 Parse::RecDescent::_trace(
7156             q{Trying terminal: [/DLURLPATHONLY/i]},
7157             Parse::RecDescent::_tracefirst($text),
7158             q{sysibm_function}, $tracelevel
7159             ) if defined $::RD_TRACE;
7160 0         0 $lastsep = "";
7161 0         0 $expectation->is(q{})->at($text);
7162              
7163 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
7164             and $text =~ s/\A(?:DLURLPATHONLY)//i) {
7165              
7166 0         0 $expectation->failed();
7167 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
7168             if defined $::RD_TRACE;
7169              
7170 0         0 last;
7171             }
7172 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
7173             Parse::RecDescent::_tracefirst($text))
7174             if defined $::RD_TRACE;
7175 0         0 push @item, $item{__PATTERN1__} = $&;
7176              
7177 0 0       0 Parse::RecDescent::_trace(
7178             q{>>Matched production: [/DLURLPATHONLY/i]<<},
7179             Parse::RecDescent::_tracefirst($text),
7180             q{sysibm_function}, $tracelevel
7181             ) if defined $::RD_TRACE;
7182 0         0 $_matched = 1;
7183 0         0 last;
7184             }
7185              
7186 0   0     0 while (!$_matched && !$commit) {
7187              
7188 0 0       0 Parse::RecDescent::_trace(
7189             q{Trying production: [/DLURLSCHEME/i]},
7190             Parse::RecDescent::_tracefirst($_[1]),
7191             q{sysibm_function}, $tracelevel
7192             ) if defined $::RD_TRACE;
7193 0         0 my $thisprod = $thisrule->{"prods"}[26];
7194 0         0 $text = $_[1];
7195 0         0 my $_savetext;
7196 0         0 @item = (q{sysibm_function});
7197 0         0 %item = (__RULE__ => q{sysibm_function});
7198 0         0 my $repcount = 0;
7199              
7200 0 0       0 Parse::RecDescent::_trace(
7201             q{Trying terminal: [/DLURLSCHEME/i]},
7202             Parse::RecDescent::_tracefirst($text),
7203             q{sysibm_function}, $tracelevel
7204             ) if defined $::RD_TRACE;
7205 0         0 $lastsep = "";
7206 0         0 $expectation->is(q{})->at($text);
7207              
7208 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
7209             and $text =~ s/\A(?:DLURLSCHEME)//i) {
7210              
7211 0         0 $expectation->failed();
7212 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
7213             if defined $::RD_TRACE;
7214              
7215 0         0 last;
7216             }
7217 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
7218             Parse::RecDescent::_tracefirst($text))
7219             if defined $::RD_TRACE;
7220 0         0 push @item, $item{__PATTERN1__} = $&;
7221              
7222 0 0       0 Parse::RecDescent::_trace(
7223             q{>>Matched production: [/DLURLSCHEME/i]<<},
7224             Parse::RecDescent::_tracefirst($text),
7225             q{sysibm_function}, $tracelevel
7226             ) if defined $::RD_TRACE;
7227 0         0 $_matched = 1;
7228 0         0 last;
7229             }
7230              
7231 0   0     0 while (!$_matched && !$commit) {
7232              
7233 0 0       0 Parse::RecDescent::_trace(
7234             q{Trying production: [/DLURLSERVER/i]},
7235             Parse::RecDescent::_tracefirst($_[1]),
7236             q{sysibm_function}, $tracelevel
7237             ) if defined $::RD_TRACE;
7238 0         0 my $thisprod = $thisrule->{"prods"}[27];
7239 0         0 $text = $_[1];
7240 0         0 my $_savetext;
7241 0         0 @item = (q{sysibm_function});
7242 0         0 %item = (__RULE__ => q{sysibm_function});
7243 0         0 my $repcount = 0;
7244              
7245 0 0       0 Parse::RecDescent::_trace(
7246             q{Trying terminal: [/DLURLSERVER/i]},
7247             Parse::RecDescent::_tracefirst($text),
7248             q{sysibm_function}, $tracelevel
7249             ) if defined $::RD_TRACE;
7250 0         0 $lastsep = "";
7251 0         0 $expectation->is(q{})->at($text);
7252              
7253 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
7254             and $text =~ s/\A(?:DLURLSERVER)//i) {
7255              
7256 0         0 $expectation->failed();
7257 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
7258             if defined $::RD_TRACE;
7259              
7260 0         0 last;
7261             }
7262 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
7263             Parse::RecDescent::_tracefirst($text))
7264             if defined $::RD_TRACE;
7265 0         0 push @item, $item{__PATTERN1__} = $&;
7266              
7267 0 0       0 Parse::RecDescent::_trace(
7268             q{>>Matched production: [/DLURLSERVER/i]<<},
7269             Parse::RecDescent::_tracefirst($text),
7270             q{sysibm_function}, $tracelevel
7271             ) if defined $::RD_TRACE;
7272 0         0 $_matched = 1;
7273 0         0 last;
7274             }
7275              
7276 0   0     0 while (!$_matched && !$commit) {
7277              
7278 0 0       0 Parse::RecDescent::_trace(
7279             q{Trying production: [/DLVALUE/i]},
7280             Parse::RecDescent::_tracefirst($_[1]),
7281             q{sysibm_function}, $tracelevel
7282             ) if defined $::RD_TRACE;
7283 0         0 my $thisprod = $thisrule->{"prods"}[28];
7284 0         0 $text = $_[1];
7285 0         0 my $_savetext;
7286 0         0 @item = (q{sysibm_function});
7287 0         0 %item = (__RULE__ => q{sysibm_function});
7288 0         0 my $repcount = 0;
7289              
7290 0 0       0 Parse::RecDescent::_trace(
7291             q{Trying terminal: [/DLVALUE/i]},
7292             Parse::RecDescent::_tracefirst($text),
7293             q{sysibm_function}, $tracelevel
7294             ) if defined $::RD_TRACE;
7295 0         0 $lastsep = "";
7296 0         0 $expectation->is(q{})->at($text);
7297              
7298 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
7299             and $text =~ s/\A(?:DLVALUE)//i) {
7300              
7301 0         0 $expectation->failed();
7302 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
7303             if defined $::RD_TRACE;
7304              
7305 0         0 last;
7306             }
7307 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
7308             Parse::RecDescent::_tracefirst($text))
7309             if defined $::RD_TRACE;
7310 0         0 push @item, $item{__PATTERN1__} = $&;
7311              
7312 0 0       0 Parse::RecDescent::_trace(
7313             q{>>Matched production: [/DLVALUE/i]<<},
7314             Parse::RecDescent::_tracefirst($text),
7315             q{sysibm_function}, $tracelevel
7316             ) if defined $::RD_TRACE;
7317 0         0 $_matched = 1;
7318 0         0 last;
7319             }
7320              
7321 0   0     0 while (!$_matched && !$commit) {
7322              
7323 0 0       0 Parse::RecDescent::_trace(
7324             q{Trying production: [/DOUBLE/i, or /DOUBLE_PRECISION/i]},
7325             Parse::RecDescent::_tracefirst($_[1]),
7326             q{sysibm_function}, $tracelevel
7327             ) if defined $::RD_TRACE;
7328 0         0 my $thisprod = $thisrule->{"prods"}[29];
7329 0         0 $text = $_[1];
7330 0         0 my $_savetext;
7331 0         0 @item = (q{sysibm_function});
7332 0         0 %item = (__RULE__ => q{sysibm_function});
7333 0         0 my $repcount = 0;
7334              
7335 0 0       0 Parse::RecDescent::_trace(
7336             q{Trying subrule: [_alternation_1_of_production_30_of_rule_sysibm_function]},
7337             Parse::RecDescent::_tracefirst($text),
7338             q{sysibm_function}, $tracelevel
7339             ) if defined $::RD_TRACE;
7340 0         0 if (1) {
7341 1     1   38 no strict qw{refs};
  1         7  
  1         5878  
7342 0         0 $expectation->is(q{})->at($text);
7343 0 0       0 unless (defined(
7344             $_tok
7345             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_30_of_rule_sysibm_function(
7346 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
7347             )
7348             )) {
7349              
7350 0 0       0 Parse::RecDescent::_trace(
7351             q{<>},
7352             Parse::RecDescent::_tracefirst($text),
7353             q{sysibm_function}, $tracelevel
7354             ) if defined $::RD_TRACE;
7355 0         0 $expectation->failed();
7356 0         0 last;
7357             }
7358             Parse::RecDescent::_trace(
7359 0 0       0 q{>>Matched subrule: [_alternation_1_of_production_30_of_rule_sysibm_function]<< (return value: [}
7360             . $_tok . q{]},
7361              
7362             Parse::RecDescent::_tracefirst($text),
7363             q{sysibm_function},
7364             $tracelevel
7365             ) if defined $::RD_TRACE;
7366 0         0 $item{q{_alternation_1_of_production_30_of_rule_sysibm_function}} = $_tok;
7367 0         0 push @item, $_tok;
7368              
7369             }
7370              
7371             Parse::RecDescent::_trace(
7372 0 0       0 q{>>Matched production: [/DOUBLE/i, or /DOUBLE_PRECISION/i]<<},
7373             Parse::RecDescent::_tracefirst($text),
7374             q{sysibm_function}, $tracelevel
7375             ) if defined $::RD_TRACE;
7376 0         0 $_matched = 1;
7377 0         0 last;
7378             }
7379              
7380 0   0     0 while (!$_matched && !$commit) {
7381              
7382 0 0       0 Parse::RecDescent::_trace(
7383             q{Trying production: [/ENCRYPT/i]},
7384             Parse::RecDescent::_tracefirst($_[1]),
7385             q{sysibm_function}, $tracelevel
7386             ) if defined $::RD_TRACE;
7387 0         0 my $thisprod = $thisrule->{"prods"}[30];
7388 0         0 $text = $_[1];
7389 0         0 my $_savetext;
7390 0         0 @item = (q{sysibm_function});
7391 0         0 %item = (__RULE__ => q{sysibm_function});
7392 0         0 my $repcount = 0;
7393              
7394 0 0       0 Parse::RecDescent::_trace(
7395             q{Trying terminal: [/ENCRYPT/i]},
7396             Parse::RecDescent::_tracefirst($text),
7397             q{sysibm_function}, $tracelevel
7398             ) if defined $::RD_TRACE;
7399 0         0 $lastsep = "";
7400 0         0 $expectation->is(q{})->at($text);
7401              
7402 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
7403             and $text =~ s/\A(?:ENCRYPT)//i) {
7404              
7405 0         0 $expectation->failed();
7406 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
7407             if defined $::RD_TRACE;
7408              
7409 0         0 last;
7410             }
7411 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
7412             Parse::RecDescent::_tracefirst($text))
7413             if defined $::RD_TRACE;
7414 0         0 push @item, $item{__PATTERN1__} = $&;
7415              
7416 0 0       0 Parse::RecDescent::_trace(
7417             q{>>Matched production: [/ENCRYPT/i]<<},
7418             Parse::RecDescent::_tracefirst($text),
7419             q{sysibm_function}, $tracelevel
7420             ) if defined $::RD_TRACE;
7421 0         0 $_matched = 1;
7422 0         0 last;
7423             }
7424              
7425 0   0     0 while (!$_matched && !$commit) {
7426              
7427 0 0       0 Parse::RecDescent::_trace(
7428             q{Trying production: [/EVENT_MON_STATE/i]},
7429             Parse::RecDescent::_tracefirst($_[1]),
7430             q{sysibm_function}, $tracelevel
7431             ) if defined $::RD_TRACE;
7432 0         0 my $thisprod = $thisrule->{"prods"}[31];
7433 0         0 $text = $_[1];
7434 0         0 my $_savetext;
7435 0         0 @item = (q{sysibm_function});
7436 0         0 %item = (__RULE__ => q{sysibm_function});
7437 0         0 my $repcount = 0;
7438              
7439 0 0       0 Parse::RecDescent::_trace(
7440             q{Trying terminal: [/EVENT_MON_STATE/i]},
7441             Parse::RecDescent::_tracefirst($text),
7442             q{sysibm_function}, $tracelevel
7443             ) if defined $::RD_TRACE;
7444 0         0 $lastsep = "";
7445 0         0 $expectation->is(q{})->at($text);
7446              
7447 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
7448             and $text =~ s/\A(?:EVENT_MON_STATE)//i) {
7449              
7450 0         0 $expectation->failed();
7451 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
7452             if defined $::RD_TRACE;
7453              
7454 0         0 last;
7455             }
7456 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
7457             Parse::RecDescent::_tracefirst($text))
7458             if defined $::RD_TRACE;
7459 0         0 push @item, $item{__PATTERN1__} = $&;
7460              
7461 0 0       0 Parse::RecDescent::_trace(
7462             q{>>Matched production: [/EVENT_MON_STATE/i]<<},
7463             Parse::RecDescent::_tracefirst($text),
7464             q{sysibm_function}, $tracelevel
7465             ) if defined $::RD_TRACE;
7466 0         0 $_matched = 1;
7467 0         0 last;
7468             }
7469              
7470 0   0     0 while (!$_matched && !$commit) {
7471              
7472 0 0       0 Parse::RecDescent::_trace(
7473             q{Trying production: [/FLOAT/i]},
7474             Parse::RecDescent::_tracefirst($_[1]),
7475             q{sysibm_function}, $tracelevel
7476             ) if defined $::RD_TRACE;
7477 0         0 my $thisprod = $thisrule->{"prods"}[32];
7478 0         0 $text = $_[1];
7479 0         0 my $_savetext;
7480 0         0 @item = (q{sysibm_function});
7481 0         0 %item = (__RULE__ => q{sysibm_function});
7482 0         0 my $repcount = 0;
7483              
7484 0 0       0 Parse::RecDescent::_trace(
7485             q{Trying terminal: [/FLOAT/i]},
7486             Parse::RecDescent::_tracefirst($text),
7487             q{sysibm_function}, $tracelevel
7488             ) if defined $::RD_TRACE;
7489 0         0 $lastsep = "";
7490 0         0 $expectation->is(q{})->at($text);
7491              
7492 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
7493             and $text =~ s/\A(?:FLOAT)//i) {
7494              
7495 0         0 $expectation->failed();
7496 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
7497             if defined $::RD_TRACE;
7498              
7499 0         0 last;
7500             }
7501 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
7502             Parse::RecDescent::_tracefirst($text))
7503             if defined $::RD_TRACE;
7504 0         0 push @item, $item{__PATTERN1__} = $&;
7505              
7506 0 0       0 Parse::RecDescent::_trace(
7507             q{>>Matched production: [/FLOAT/i]<<},
7508             Parse::RecDescent::_tracefirst($text),
7509             q{sysibm_function}, $tracelevel
7510             ) if defined $::RD_TRACE;
7511 0         0 $_matched = 1;
7512 0         0 last;
7513             }
7514              
7515 0   0     0 while (!$_matched && !$commit) {
7516              
7517 0 0       0 Parse::RecDescent::_trace(
7518             q{Trying production: [/GETHINT/i]},
7519             Parse::RecDescent::_tracefirst($_[1]),
7520             q{sysibm_function}, $tracelevel
7521             ) if defined $::RD_TRACE;
7522 0         0 my $thisprod = $thisrule->{"prods"}[33];
7523 0         0 $text = $_[1];
7524 0         0 my $_savetext;
7525 0         0 @item = (q{sysibm_function});
7526 0         0 %item = (__RULE__ => q{sysibm_function});
7527 0         0 my $repcount = 0;
7528              
7529 0 0       0 Parse::RecDescent::_trace(
7530             q{Trying terminal: [/GETHINT/i]},
7531             Parse::RecDescent::_tracefirst($text),
7532             q{sysibm_function}, $tracelevel
7533             ) if defined $::RD_TRACE;
7534 0         0 $lastsep = "";
7535 0         0 $expectation->is(q{})->at($text);
7536              
7537 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
7538             and $text =~ s/\A(?:GETHINT)//i) {
7539              
7540 0         0 $expectation->failed();
7541 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
7542             if defined $::RD_TRACE;
7543              
7544 0         0 last;
7545             }
7546 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
7547             Parse::RecDescent::_tracefirst($text))
7548             if defined $::RD_TRACE;
7549 0         0 push @item, $item{__PATTERN1__} = $&;
7550              
7551 0 0       0 Parse::RecDescent::_trace(
7552             q{>>Matched production: [/GETHINT/i]<<},
7553             Parse::RecDescent::_tracefirst($text),
7554             q{sysibm_function}, $tracelevel
7555             ) if defined $::RD_TRACE;
7556 0         0 $_matched = 1;
7557 0         0 last;
7558             }
7559              
7560 0   0     0 while (!$_matched && !$commit) {
7561              
7562 0 0       0 Parse::RecDescent::_trace(
7563             q{Trying production: [/GENERATE_UNIQUE/i]},
7564             Parse::RecDescent::_tracefirst($_[1]),
7565             q{sysibm_function}, $tracelevel
7566             ) if defined $::RD_TRACE;
7567 0         0 my $thisprod = $thisrule->{"prods"}[34];
7568 0         0 $text = $_[1];
7569 0         0 my $_savetext;
7570 0         0 @item = (q{sysibm_function});
7571 0         0 %item = (__RULE__ => q{sysibm_function});
7572 0         0 my $repcount = 0;
7573              
7574 0 0       0 Parse::RecDescent::_trace(
7575             q{Trying terminal: [/GENERATE_UNIQUE/i]},
7576             Parse::RecDescent::_tracefirst($text),
7577             q{sysibm_function}, $tracelevel
7578             ) if defined $::RD_TRACE;
7579 0         0 $lastsep = "";
7580 0         0 $expectation->is(q{})->at($text);
7581              
7582 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
7583             and $text =~ s/\A(?:GENERATE_UNIQUE)//i) {
7584              
7585 0         0 $expectation->failed();
7586 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
7587             if defined $::RD_TRACE;
7588              
7589 0         0 last;
7590             }
7591 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
7592             Parse::RecDescent::_tracefirst($text))
7593             if defined $::RD_TRACE;
7594 0         0 push @item, $item{__PATTERN1__} = $&;
7595              
7596 0 0       0 Parse::RecDescent::_trace(
7597             q{>>Matched production: [/GENERATE_UNIQUE/i]<<},
7598             Parse::RecDescent::_tracefirst($text),
7599             q{sysibm_function}, $tracelevel
7600             ) if defined $::RD_TRACE;
7601 0         0 $_matched = 1;
7602 0         0 last;
7603             }
7604              
7605 0   0     0 while (!$_matched && !$commit) {
7606              
7607 0 0       0 Parse::RecDescent::_trace(
7608             q{Trying production: [/GRAPHIC/i]},
7609             Parse::RecDescent::_tracefirst($_[1]),
7610             q{sysibm_function}, $tracelevel
7611             ) if defined $::RD_TRACE;
7612 0         0 my $thisprod = $thisrule->{"prods"}[35];
7613 0         0 $text = $_[1];
7614 0         0 my $_savetext;
7615 0         0 @item = (q{sysibm_function});
7616 0         0 %item = (__RULE__ => q{sysibm_function});
7617 0         0 my $repcount = 0;
7618              
7619 0 0       0 Parse::RecDescent::_trace(
7620             q{Trying terminal: [/GRAPHIC/i]},
7621             Parse::RecDescent::_tracefirst($text),
7622             q{sysibm_function}, $tracelevel
7623             ) if defined $::RD_TRACE;
7624 0         0 $lastsep = "";
7625 0         0 $expectation->is(q{})->at($text);
7626              
7627 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
7628             and $text =~ s/\A(?:GRAPHIC)//i) {
7629              
7630 0         0 $expectation->failed();
7631 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
7632             if defined $::RD_TRACE;
7633              
7634 0         0 last;
7635             }
7636 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
7637             Parse::RecDescent::_tracefirst($text))
7638             if defined $::RD_TRACE;
7639 0         0 push @item, $item{__PATTERN1__} = $&;
7640              
7641 0 0       0 Parse::RecDescent::_trace(
7642             q{>>Matched production: [/GRAPHIC/i]<<},
7643             Parse::RecDescent::_tracefirst($text),
7644             q{sysibm_function}, $tracelevel
7645             ) if defined $::RD_TRACE;
7646 0         0 $_matched = 1;
7647 0         0 last;
7648             }
7649              
7650 0   0     0 while (!$_matched && !$commit) {
7651              
7652 0 0       0 Parse::RecDescent::_trace(
7653             q{Trying production: [/GROUPING/i]},
7654             Parse::RecDescent::_tracefirst($_[1]),
7655             q{sysibm_function}, $tracelevel
7656             ) if defined $::RD_TRACE;
7657 0         0 my $thisprod = $thisrule->{"prods"}[36];
7658 0         0 $text = $_[1];
7659 0         0 my $_savetext;
7660 0         0 @item = (q{sysibm_function});
7661 0         0 %item = (__RULE__ => q{sysibm_function});
7662 0         0 my $repcount = 0;
7663              
7664 0 0       0 Parse::RecDescent::_trace(
7665             q{Trying terminal: [/GROUPING/i]},
7666             Parse::RecDescent::_tracefirst($text),
7667             q{sysibm_function}, $tracelevel
7668             ) if defined $::RD_TRACE;
7669 0         0 $lastsep = "";
7670 0         0 $expectation->is(q{})->at($text);
7671              
7672 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
7673             and $text =~ s/\A(?:GROUPING)//i) {
7674              
7675 0         0 $expectation->failed();
7676 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
7677             if defined $::RD_TRACE;
7678              
7679 0         0 last;
7680             }
7681 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
7682             Parse::RecDescent::_tracefirst($text))
7683             if defined $::RD_TRACE;
7684 0         0 push @item, $item{__PATTERN1__} = $&;
7685              
7686 0 0       0 Parse::RecDescent::_trace(
7687             q{>>Matched production: [/GROUPING/i]<<},
7688             Parse::RecDescent::_tracefirst($text),
7689             q{sysibm_function}, $tracelevel
7690             ) if defined $::RD_TRACE;
7691 0         0 $_matched = 1;
7692 0         0 last;
7693             }
7694              
7695 0   0     0 while (!$_matched && !$commit) {
7696              
7697 0 0       0 Parse::RecDescent::_trace(
7698             q{Trying production: [/HEX/i]},
7699             Parse::RecDescent::_tracefirst($_[1]),
7700             q{sysibm_function}, $tracelevel
7701             ) if defined $::RD_TRACE;
7702 0         0 my $thisprod = $thisrule->{"prods"}[37];
7703 0         0 $text = $_[1];
7704 0         0 my $_savetext;
7705 0         0 @item = (q{sysibm_function});
7706 0         0 %item = (__RULE__ => q{sysibm_function});
7707 0         0 my $repcount = 0;
7708              
7709 0 0       0 Parse::RecDescent::_trace(
7710             q{Trying terminal: [/HEX/i]},
7711             Parse::RecDescent::_tracefirst($text),
7712             q{sysibm_function}, $tracelevel
7713             ) if defined $::RD_TRACE;
7714 0         0 $lastsep = "";
7715 0         0 $expectation->is(q{})->at($text);
7716              
7717 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
7718             and $text =~ s/\A(?:HEX)//i) {
7719              
7720 0         0 $expectation->failed();
7721 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
7722             if defined $::RD_TRACE;
7723              
7724 0         0 last;
7725             }
7726 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
7727             Parse::RecDescent::_tracefirst($text))
7728             if defined $::RD_TRACE;
7729 0         0 push @item, $item{__PATTERN1__} = $&;
7730              
7731 0 0       0 Parse::RecDescent::_trace(
7732             q{>>Matched production: [/HEX/i]<<},
7733             Parse::RecDescent::_tracefirst($text),
7734             q{sysibm_function}, $tracelevel
7735             ) if defined $::RD_TRACE;
7736 0         0 $_matched = 1;
7737 0         0 last;
7738             }
7739              
7740 0   0     0 while (!$_matched && !$commit) {
7741              
7742 0 0       0 Parse::RecDescent::_trace(
7743             q{Trying production: [/HOUR/i]},
7744             Parse::RecDescent::_tracefirst($_[1]),
7745             q{sysibm_function}, $tracelevel
7746             ) if defined $::RD_TRACE;
7747 0         0 my $thisprod = $thisrule->{"prods"}[38];
7748 0         0 $text = $_[1];
7749 0         0 my $_savetext;
7750 0         0 @item = (q{sysibm_function});
7751 0         0 %item = (__RULE__ => q{sysibm_function});
7752 0         0 my $repcount = 0;
7753              
7754 0 0       0 Parse::RecDescent::_trace(
7755             q{Trying terminal: [/HOUR/i]},
7756             Parse::RecDescent::_tracefirst($text),
7757             q{sysibm_function}, $tracelevel
7758             ) if defined $::RD_TRACE;
7759 0         0 $lastsep = "";
7760 0         0 $expectation->is(q{})->at($text);
7761              
7762 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
7763             and $text =~ s/\A(?:HOUR)//i) {
7764              
7765 0         0 $expectation->failed();
7766 0 0       0 Parse::RecDescent::_trace(q{<>}, 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: [} . $& . q{])},
7772             Parse::RecDescent::_tracefirst($text))
7773             if defined $::RD_TRACE;
7774 0         0 push @item, $item{__PATTERN1__} = $&;
7775              
7776 0 0       0 Parse::RecDescent::_trace(
7777             q{>>Matched production: [/HOUR/i]<<},
7778             Parse::RecDescent::_tracefirst($text),
7779             q{sysibm_function}, $tracelevel
7780             ) if defined $::RD_TRACE;
7781 0         0 $_matched = 1;
7782 0         0 last;
7783             }
7784              
7785 0   0     0 while (!$_matched && !$commit) {
7786              
7787 0 0       0 Parse::RecDescent::_trace(
7788             q{Trying production: [/IDENTITY_VAL_LOCAL/i]},
7789             Parse::RecDescent::_tracefirst($_[1]),
7790             q{sysibm_function}, $tracelevel
7791             ) if defined $::RD_TRACE;
7792 0         0 my $thisprod = $thisrule->{"prods"}[39];
7793 0         0 $text = $_[1];
7794 0         0 my $_savetext;
7795 0         0 @item = (q{sysibm_function});
7796 0         0 %item = (__RULE__ => q{sysibm_function});
7797 0         0 my $repcount = 0;
7798              
7799 0 0       0 Parse::RecDescent::_trace(
7800             q{Trying terminal: [/IDENTITY_VAL_LOCAL/i]},
7801             Parse::RecDescent::_tracefirst($text),
7802             q{sysibm_function}, $tracelevel
7803             ) if defined $::RD_TRACE;
7804 0         0 $lastsep = "";
7805 0         0 $expectation->is(q{})->at($text);
7806              
7807 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
7808             and $text =~ s/\A(?:IDENTITY_VAL_LOCAL)//i) {
7809              
7810 0         0 $expectation->failed();
7811 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
7812             if defined $::RD_TRACE;
7813              
7814 0         0 last;
7815             }
7816 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
7817             Parse::RecDescent::_tracefirst($text))
7818             if defined $::RD_TRACE;
7819 0         0 push @item, $item{__PATTERN1__} = $&;
7820              
7821 0 0       0 Parse::RecDescent::_trace(
7822             q{>>Matched production: [/IDENTITY_VAL_LOCAL/i]<<},
7823             Parse::RecDescent::_tracefirst($text),
7824             q{sysibm_function}, $tracelevel
7825             ) if defined $::RD_TRACE;
7826 0         0 $_matched = 1;
7827 0         0 last;
7828             }
7829              
7830 0   0     0 while (!$_matched && !$commit) {
7831              
7832 0 0       0 Parse::RecDescent::_trace(
7833             q{Trying production: [/INTEGER/i, or /INT/]},
7834             Parse::RecDescent::_tracefirst($_[1]),
7835             q{sysibm_function}, $tracelevel
7836             ) if defined $::RD_TRACE;
7837 0         0 my $thisprod = $thisrule->{"prods"}[40];
7838 0         0 $text = $_[1];
7839 0         0 my $_savetext;
7840 0         0 @item = (q{sysibm_function});
7841 0         0 %item = (__RULE__ => q{sysibm_function});
7842 0         0 my $repcount = 0;
7843              
7844 0 0       0 Parse::RecDescent::_trace(
7845             q{Trying subrule: [_alternation_1_of_production_41_of_rule_sysibm_function]},
7846             Parse::RecDescent::_tracefirst($text),
7847             q{sysibm_function}, $tracelevel
7848             ) if defined $::RD_TRACE;
7849 0         0 if (1) {
7850 1     1   13 no strict qw{refs};
  1         3  
  1         668  
7851 0         0 $expectation->is(q{})->at($text);
7852 0 0       0 unless (defined(
7853             $_tok
7854             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_41_of_rule_sysibm_function(
7855 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
7856             )
7857             )) {
7858              
7859 0 0       0 Parse::RecDescent::_trace(
7860             q{<>},
7861             Parse::RecDescent::_tracefirst($text),
7862             q{sysibm_function}, $tracelevel
7863             ) if defined $::RD_TRACE;
7864 0         0 $expectation->failed();
7865 0         0 last;
7866             }
7867             Parse::RecDescent::_trace(
7868 0 0       0 q{>>Matched subrule: [_alternation_1_of_production_41_of_rule_sysibm_function]<< (return value: [}
7869             . $_tok . q{]},
7870              
7871             Parse::RecDescent::_tracefirst($text),
7872             q{sysibm_function},
7873             $tracelevel
7874             ) if defined $::RD_TRACE;
7875 0         0 $item{q{_alternation_1_of_production_41_of_rule_sysibm_function}} = $_tok;
7876 0         0 push @item, $_tok;
7877              
7878             }
7879              
7880             Parse::RecDescent::_trace(
7881 0 0       0 q{>>Matched production: [/INTEGER/i, or /INT/]<<},
7882             Parse::RecDescent::_tracefirst($text),
7883             q{sysibm_function}, $tracelevel
7884             ) if defined $::RD_TRACE;
7885 0         0 $_matched = 1;
7886 0         0 last;
7887             }
7888              
7889 0   0     0 while (!$_matched && !$commit) {
7890              
7891 0 0       0 Parse::RecDescent::_trace(
7892             q{Trying production: [/LCASE/i, or /LOWER/]},
7893             Parse::RecDescent::_tracefirst($_[1]),
7894             q{sysibm_function}, $tracelevel
7895             ) if defined $::RD_TRACE;
7896 0         0 my $thisprod = $thisrule->{"prods"}[41];
7897 0         0 $text = $_[1];
7898 0         0 my $_savetext;
7899 0         0 @item = (q{sysibm_function});
7900 0         0 %item = (__RULE__ => q{sysibm_function});
7901 0         0 my $repcount = 0;
7902              
7903 0 0       0 Parse::RecDescent::_trace(
7904             q{Trying subrule: [_alternation_1_of_production_42_of_rule_sysibm_function]},
7905             Parse::RecDescent::_tracefirst($text),
7906             q{sysibm_function}, $tracelevel
7907             ) if defined $::RD_TRACE;
7908 0         0 if (1) {
7909 1     1   10 no strict qw{refs};
  1         3  
  1         12891  
7910 0         0 $expectation->is(q{})->at($text);
7911 0 0       0 unless (defined(
7912             $_tok
7913             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_42_of_rule_sysibm_function(
7914 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
7915             )
7916             )) {
7917              
7918 0 0       0 Parse::RecDescent::_trace(
7919             q{<>},
7920             Parse::RecDescent::_tracefirst($text),
7921             q{sysibm_function}, $tracelevel
7922             ) if defined $::RD_TRACE;
7923 0         0 $expectation->failed();
7924 0         0 last;
7925             }
7926             Parse::RecDescent::_trace(
7927 0 0       0 q{>>Matched subrule: [_alternation_1_of_production_42_of_rule_sysibm_function]<< (return value: [}
7928             . $_tok . q{]},
7929              
7930             Parse::RecDescent::_tracefirst($text),
7931             q{sysibm_function},
7932             $tracelevel
7933             ) if defined $::RD_TRACE;
7934 0         0 $item{q{_alternation_1_of_production_42_of_rule_sysibm_function}} = $_tok;
7935 0         0 push @item, $_tok;
7936              
7937             }
7938              
7939             Parse::RecDescent::_trace(
7940 0 0       0 q{>>Matched production: [/LCASE/i, or /LOWER/]<<},
7941             Parse::RecDescent::_tracefirst($text),
7942             q{sysibm_function}, $tracelevel
7943             ) if defined $::RD_TRACE;
7944 0         0 $_matched = 1;
7945 0         0 last;
7946             }
7947              
7948 0   0     0 while (!$_matched && !$commit) {
7949              
7950 0 0       0 Parse::RecDescent::_trace(
7951             q{Trying production: [/LENGTH/i]},
7952             Parse::RecDescent::_tracefirst($_[1]),
7953             q{sysibm_function}, $tracelevel
7954             ) if defined $::RD_TRACE;
7955 0         0 my $thisprod = $thisrule->{"prods"}[42];
7956 0         0 $text = $_[1];
7957 0         0 my $_savetext;
7958 0         0 @item = (q{sysibm_function});
7959 0         0 %item = (__RULE__ => q{sysibm_function});
7960 0         0 my $repcount = 0;
7961              
7962 0 0       0 Parse::RecDescent::_trace(
7963             q{Trying terminal: [/LENGTH/i]},
7964             Parse::RecDescent::_tracefirst($text),
7965             q{sysibm_function}, $tracelevel
7966             ) if defined $::RD_TRACE;
7967 0         0 $lastsep = "";
7968 0         0 $expectation->is(q{})->at($text);
7969              
7970 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
7971             and $text =~ s/\A(?:LENGTH)//i) {
7972              
7973 0         0 $expectation->failed();
7974 0 0       0 Parse::RecDescent::_trace(q{<>}, 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: [} . $& . q{])},
7980             Parse::RecDescent::_tracefirst($text))
7981             if defined $::RD_TRACE;
7982 0         0 push @item, $item{__PATTERN1__} = $&;
7983              
7984 0 0       0 Parse::RecDescent::_trace(
7985             q{>>Matched production: [/LENGTH/i]<<},
7986             Parse::RecDescent::_tracefirst($text),
7987             q{sysibm_function}, $tracelevel
7988             ) if defined $::RD_TRACE;
7989 0         0 $_matched = 1;
7990 0         0 last;
7991             }
7992              
7993 0   0     0 while (!$_matched && !$commit) {
7994              
7995 0 0       0 Parse::RecDescent::_trace(
7996             q{Trying production: [/LONG_VARCHAR/i]},
7997             Parse::RecDescent::_tracefirst($_[1]),
7998             q{sysibm_function}, $tracelevel
7999             ) if defined $::RD_TRACE;
8000 0         0 my $thisprod = $thisrule->{"prods"}[43];
8001 0         0 $text = $_[1];
8002 0         0 my $_savetext;
8003 0         0 @item = (q{sysibm_function});
8004 0         0 %item = (__RULE__ => q{sysibm_function});
8005 0         0 my $repcount = 0;
8006              
8007 0 0       0 Parse::RecDescent::_trace(
8008             q{Trying terminal: [/LONG_VARCHAR/i]},
8009             Parse::RecDescent::_tracefirst($text),
8010             q{sysibm_function}, $tracelevel
8011             ) if defined $::RD_TRACE;
8012 0         0 $lastsep = "";
8013 0         0 $expectation->is(q{})->at($text);
8014              
8015 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
8016             and $text =~ s/\A(?:LONG_VARCHAR)//i) {
8017              
8018 0         0 $expectation->failed();
8019 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
8020             if defined $::RD_TRACE;
8021              
8022 0         0 last;
8023             }
8024 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
8025             Parse::RecDescent::_tracefirst($text))
8026             if defined $::RD_TRACE;
8027 0         0 push @item, $item{__PATTERN1__} = $&;
8028              
8029 0 0       0 Parse::RecDescent::_trace(
8030             q{>>Matched production: [/LONG_VARCHAR/i]<<},
8031             Parse::RecDescent::_tracefirst($text),
8032             q{sysibm_function}, $tracelevel
8033             ) if defined $::RD_TRACE;
8034 0         0 $_matched = 1;
8035 0         0 last;
8036             }
8037              
8038 0   0     0 while (!$_matched && !$commit) {
8039              
8040 0 0       0 Parse::RecDescent::_trace(
8041             q{Trying production: [/LONG_VARGRAPHIC/i]},
8042             Parse::RecDescent::_tracefirst($_[1]),
8043             q{sysibm_function}, $tracelevel
8044             ) if defined $::RD_TRACE;
8045 0         0 my $thisprod = $thisrule->{"prods"}[44];
8046 0         0 $text = $_[1];
8047 0         0 my $_savetext;
8048 0         0 @item = (q{sysibm_function});
8049 0         0 %item = (__RULE__ => q{sysibm_function});
8050 0         0 my $repcount = 0;
8051              
8052 0 0       0 Parse::RecDescent::_trace(
8053             q{Trying terminal: [/LONG_VARGRAPHIC/i]},
8054             Parse::RecDescent::_tracefirst($text),
8055             q{sysibm_function}, $tracelevel
8056             ) if defined $::RD_TRACE;
8057 0         0 $lastsep = "";
8058 0         0 $expectation->is(q{})->at($text);
8059              
8060 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
8061             and $text =~ s/\A(?:LONG_VARGRAPHIC)//i) {
8062              
8063 0         0 $expectation->failed();
8064 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
8065             if defined $::RD_TRACE;
8066              
8067 0         0 last;
8068             }
8069 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
8070             Parse::RecDescent::_tracefirst($text))
8071             if defined $::RD_TRACE;
8072 0         0 push @item, $item{__PATTERN1__} = $&;
8073              
8074 0 0       0 Parse::RecDescent::_trace(
8075             q{>>Matched production: [/LONG_VARGRAPHIC/i]<<},
8076             Parse::RecDescent::_tracefirst($text),
8077             q{sysibm_function}, $tracelevel
8078             ) if defined $::RD_TRACE;
8079 0         0 $_matched = 1;
8080 0         0 last;
8081             }
8082              
8083 0   0     0 while (!$_matched && !$commit) {
8084              
8085 0 0       0 Parse::RecDescent::_trace(
8086             q{Trying production: [/LTRIM/i]},
8087             Parse::RecDescent::_tracefirst($_[1]),
8088             q{sysibm_function}, $tracelevel
8089             ) if defined $::RD_TRACE;
8090 0         0 my $thisprod = $thisrule->{"prods"}[45];
8091 0         0 $text = $_[1];
8092 0         0 my $_savetext;
8093 0         0 @item = (q{sysibm_function});
8094 0         0 %item = (__RULE__ => q{sysibm_function});
8095 0         0 my $repcount = 0;
8096              
8097 0 0       0 Parse::RecDescent::_trace(
8098             q{Trying terminal: [/LTRIM/i]},
8099             Parse::RecDescent::_tracefirst($text),
8100             q{sysibm_function}, $tracelevel
8101             ) if defined $::RD_TRACE;
8102 0         0 $lastsep = "";
8103 0         0 $expectation->is(q{})->at($text);
8104              
8105 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
8106             and $text =~ s/\A(?:LTRIM)//i) {
8107              
8108 0         0 $expectation->failed();
8109 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
8110             if defined $::RD_TRACE;
8111              
8112 0         0 last;
8113             }
8114 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
8115             Parse::RecDescent::_tracefirst($text))
8116             if defined $::RD_TRACE;
8117 0         0 push @item, $item{__PATTERN1__} = $&;
8118              
8119 0 0       0 Parse::RecDescent::_trace(
8120             q{>>Matched production: [/LTRIM/i]<<},
8121             Parse::RecDescent::_tracefirst($text),
8122             q{sysibm_function}, $tracelevel
8123             ) if defined $::RD_TRACE;
8124 0         0 $_matched = 1;
8125 0         0 last;
8126             }
8127              
8128 0   0     0 while (!$_matched && !$commit) {
8129              
8130 0 0       0 Parse::RecDescent::_trace(
8131             q{Trying production: [/MAX/i]},
8132             Parse::RecDescent::_tracefirst($_[1]),
8133             q{sysibm_function}, $tracelevel
8134             ) if defined $::RD_TRACE;
8135 0         0 my $thisprod = $thisrule->{"prods"}[46];
8136 0         0 $text = $_[1];
8137 0         0 my $_savetext;
8138 0         0 @item = (q{sysibm_function});
8139 0         0 %item = (__RULE__ => q{sysibm_function});
8140 0         0 my $repcount = 0;
8141              
8142 0 0       0 Parse::RecDescent::_trace(
8143             q{Trying terminal: [/MAX/i]},
8144             Parse::RecDescent::_tracefirst($text),
8145             q{sysibm_function}, $tracelevel
8146             ) if defined $::RD_TRACE;
8147 0         0 $lastsep = "";
8148 0         0 $expectation->is(q{})->at($text);
8149              
8150 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
8151             and $text =~ s/\A(?:MAX)//i) {
8152              
8153 0         0 $expectation->failed();
8154 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
8155             if defined $::RD_TRACE;
8156              
8157 0         0 last;
8158             }
8159 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
8160             Parse::RecDescent::_tracefirst($text))
8161             if defined $::RD_TRACE;
8162 0         0 push @item, $item{__PATTERN1__} = $&;
8163              
8164 0 0       0 Parse::RecDescent::_trace(
8165             q{>>Matched production: [/MAX/i]<<},
8166             Parse::RecDescent::_tracefirst($text),
8167             q{sysibm_function}, $tracelevel
8168             ) if defined $::RD_TRACE;
8169 0         0 $_matched = 1;
8170 0         0 last;
8171             }
8172              
8173 0   0     0 while (!$_matched && !$commit) {
8174              
8175 0 0       0 Parse::RecDescent::_trace(
8176             q{Trying production: [/MICROSECOND/i]},
8177             Parse::RecDescent::_tracefirst($_[1]),
8178             q{sysibm_function}, $tracelevel
8179             ) if defined $::RD_TRACE;
8180 0         0 my $thisprod = $thisrule->{"prods"}[47];
8181 0         0 $text = $_[1];
8182 0         0 my $_savetext;
8183 0         0 @item = (q{sysibm_function});
8184 0         0 %item = (__RULE__ => q{sysibm_function});
8185 0         0 my $repcount = 0;
8186              
8187 0 0       0 Parse::RecDescent::_trace(
8188             q{Trying terminal: [/MICROSECOND/i]},
8189             Parse::RecDescent::_tracefirst($text),
8190             q{sysibm_function}, $tracelevel
8191             ) if defined $::RD_TRACE;
8192 0         0 $lastsep = "";
8193 0         0 $expectation->is(q{})->at($text);
8194              
8195 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
8196             and $text =~ s/\A(?:MICROSECOND)//i) {
8197              
8198 0         0 $expectation->failed();
8199 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
8200             if defined $::RD_TRACE;
8201              
8202 0         0 last;
8203             }
8204 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
8205             Parse::RecDescent::_tracefirst($text))
8206             if defined $::RD_TRACE;
8207 0         0 push @item, $item{__PATTERN1__} = $&;
8208              
8209 0 0       0 Parse::RecDescent::_trace(
8210             q{>>Matched production: [/MICROSECOND/i]<<},
8211             Parse::RecDescent::_tracefirst($text),
8212             q{sysibm_function}, $tracelevel
8213             ) if defined $::RD_TRACE;
8214 0         0 $_matched = 1;
8215 0         0 last;
8216             }
8217              
8218 0   0     0 while (!$_matched && !$commit) {
8219              
8220 0 0       0 Parse::RecDescent::_trace(
8221             q{Trying production: [/MIN/i]},
8222             Parse::RecDescent::_tracefirst($_[1]),
8223             q{sysibm_function}, $tracelevel
8224             ) if defined $::RD_TRACE;
8225 0         0 my $thisprod = $thisrule->{"prods"}[48];
8226 0         0 $text = $_[1];
8227 0         0 my $_savetext;
8228 0         0 @item = (q{sysibm_function});
8229 0         0 %item = (__RULE__ => q{sysibm_function});
8230 0         0 my $repcount = 0;
8231              
8232 0 0       0 Parse::RecDescent::_trace(
8233             q{Trying terminal: [/MIN/i]},
8234             Parse::RecDescent::_tracefirst($text),
8235             q{sysibm_function}, $tracelevel
8236             ) if defined $::RD_TRACE;
8237 0         0 $lastsep = "";
8238 0         0 $expectation->is(q{})->at($text);
8239              
8240 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
8241             and $text =~ s/\A(?:MIN)//i) {
8242              
8243 0         0 $expectation->failed();
8244 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
8245             if defined $::RD_TRACE;
8246              
8247 0         0 last;
8248             }
8249 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
8250             Parse::RecDescent::_tracefirst($text))
8251             if defined $::RD_TRACE;
8252 0         0 push @item, $item{__PATTERN1__} = $&;
8253              
8254 0 0       0 Parse::RecDescent::_trace(
8255             q{>>Matched production: [/MIN/i]<<},
8256             Parse::RecDescent::_tracefirst($text),
8257             q{sysibm_function}, $tracelevel
8258             ) if defined $::RD_TRACE;
8259 0         0 $_matched = 1;
8260 0         0 last;
8261             }
8262              
8263 0   0     0 while (!$_matched && !$commit) {
8264              
8265 0 0       0 Parse::RecDescent::_trace(
8266             q{Trying production: [/MINUTE/i]},
8267             Parse::RecDescent::_tracefirst($_[1]),
8268             q{sysibm_function}, $tracelevel
8269             ) if defined $::RD_TRACE;
8270 0         0 my $thisprod = $thisrule->{"prods"}[49];
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 0 0       0 Parse::RecDescent::_trace(
8278             q{Trying terminal: [/MINUTE/i]},
8279             Parse::RecDescent::_tracefirst($text),
8280             q{sysibm_function}, $tracelevel
8281             ) if defined $::RD_TRACE;
8282 0         0 $lastsep = "";
8283 0         0 $expectation->is(q{})->at($text);
8284              
8285 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
8286             and $text =~ s/\A(?:MINUTE)//i) {
8287              
8288 0         0 $expectation->failed();
8289 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
8290             if defined $::RD_TRACE;
8291              
8292 0         0 last;
8293             }
8294 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
8295             Parse::RecDescent::_tracefirst($text))
8296             if defined $::RD_TRACE;
8297 0         0 push @item, $item{__PATTERN1__} = $&;
8298              
8299 0 0       0 Parse::RecDescent::_trace(
8300             q{>>Matched production: [/MINUTE/i]<<},
8301             Parse::RecDescent::_tracefirst($text),
8302             q{sysibm_function}, $tracelevel
8303             ) if defined $::RD_TRACE;
8304 0         0 $_matched = 1;
8305 0         0 last;
8306             }
8307              
8308 0   0     0 while (!$_matched && !$commit) {
8309              
8310 0 0       0 Parse::RecDescent::_trace(
8311             q{Trying production: [/MONTH/i]},
8312             Parse::RecDescent::_tracefirst($_[1]),
8313             q{sysibm_function}, $tracelevel
8314             ) if defined $::RD_TRACE;
8315 0         0 my $thisprod = $thisrule->{"prods"}[50];
8316 0         0 $text = $_[1];
8317 0         0 my $_savetext;
8318 0         0 @item = (q{sysibm_function});
8319 0         0 %item = (__RULE__ => q{sysibm_function});
8320 0         0 my $repcount = 0;
8321              
8322 0 0       0 Parse::RecDescent::_trace(
8323             q{Trying terminal: [/MONTH/i]},
8324             Parse::RecDescent::_tracefirst($text),
8325             q{sysibm_function}, $tracelevel
8326             ) if defined $::RD_TRACE;
8327 0         0 $lastsep = "";
8328 0         0 $expectation->is(q{})->at($text);
8329              
8330 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
8331             and $text =~ s/\A(?:MONTH)//i) {
8332              
8333 0         0 $expectation->failed();
8334 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
8335             if defined $::RD_TRACE;
8336              
8337 0         0 last;
8338             }
8339 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
8340             Parse::RecDescent::_tracefirst($text))
8341             if defined $::RD_TRACE;
8342 0         0 push @item, $item{__PATTERN1__} = $&;
8343              
8344 0 0       0 Parse::RecDescent::_trace(
8345             q{>>Matched production: [/MONTH/i]<<},
8346             Parse::RecDescent::_tracefirst($text),
8347             q{sysibm_function}, $tracelevel
8348             ) if defined $::RD_TRACE;
8349 0         0 $_matched = 1;
8350 0         0 last;
8351             }
8352              
8353 0   0     0 while (!$_matched && !$commit) {
8354              
8355 0 0       0 Parse::RecDescent::_trace(
8356             q{Trying production: [/MULTIPLY_ACT/i]},
8357             Parse::RecDescent::_tracefirst($_[1]),
8358             q{sysibm_function}, $tracelevel
8359             ) if defined $::RD_TRACE;
8360 0         0 my $thisprod = $thisrule->{"prods"}[51];
8361 0         0 $text = $_[1];
8362 0         0 my $_savetext;
8363 0         0 @item = (q{sysibm_function});
8364 0         0 %item = (__RULE__ => q{sysibm_function});
8365 0         0 my $repcount = 0;
8366              
8367 0 0       0 Parse::RecDescent::_trace(
8368             q{Trying terminal: [/MULTIPLY_ACT/i]},
8369             Parse::RecDescent::_tracefirst($text),
8370             q{sysibm_function}, $tracelevel
8371             ) if defined $::RD_TRACE;
8372 0         0 $lastsep = "";
8373 0         0 $expectation->is(q{})->at($text);
8374              
8375 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
8376             and $text =~ s/\A(?:MULTIPLY_ACT)//i) {
8377              
8378 0         0 $expectation->failed();
8379 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
8380             if defined $::RD_TRACE;
8381              
8382 0         0 last;
8383             }
8384 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
8385             Parse::RecDescent::_tracefirst($text))
8386             if defined $::RD_TRACE;
8387 0         0 push @item, $item{__PATTERN1__} = $&;
8388              
8389 0 0       0 Parse::RecDescent::_trace(
8390             q{>>Matched production: [/MULTIPLY_ACT/i]<<},
8391             Parse::RecDescent::_tracefirst($text),
8392             q{sysibm_function}, $tracelevel
8393             ) if defined $::RD_TRACE;
8394 0         0 $_matched = 1;
8395 0         0 last;
8396             }
8397              
8398 0   0     0 while (!$_matched && !$commit) {
8399              
8400 0 0       0 Parse::RecDescent::_trace(
8401             q{Trying production: [/NODENUMBER/i]},
8402             Parse::RecDescent::_tracefirst($_[1]),
8403             q{sysibm_function}, $tracelevel
8404             ) if defined $::RD_TRACE;
8405 0         0 my $thisprod = $thisrule->{"prods"}[52];
8406 0         0 $text = $_[1];
8407 0         0 my $_savetext;
8408 0         0 @item = (q{sysibm_function});
8409 0         0 %item = (__RULE__ => q{sysibm_function});
8410 0         0 my $repcount = 0;
8411              
8412 0 0       0 Parse::RecDescent::_trace(
8413             q{Trying terminal: [/NODENUMBER/i]},
8414             Parse::RecDescent::_tracefirst($text),
8415             q{sysibm_function}, $tracelevel
8416             ) if defined $::RD_TRACE;
8417 0         0 $lastsep = "";
8418 0         0 $expectation->is(q{})->at($text);
8419              
8420 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
8421             and $text =~ s/\A(?:NODENUMBER)//i) {
8422              
8423 0         0 $expectation->failed();
8424 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
8425             if defined $::RD_TRACE;
8426              
8427 0         0 last;
8428             }
8429 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
8430             Parse::RecDescent::_tracefirst($text))
8431             if defined $::RD_TRACE;
8432 0         0 push @item, $item{__PATTERN1__} = $&;
8433              
8434 0 0       0 Parse::RecDescent::_trace(
8435             q{>>Matched production: [/NODENUMBER/i]<<},
8436             Parse::RecDescent::_tracefirst($text),
8437             q{sysibm_function}, $tracelevel
8438             ) if defined $::RD_TRACE;
8439 0         0 $_matched = 1;
8440 0         0 last;
8441             }
8442              
8443 0   0     0 while (!$_matched && !$commit) {
8444              
8445 0 0       0 Parse::RecDescent::_trace(
8446             q{Trying production: [/NULLIF/i]},
8447             Parse::RecDescent::_tracefirst($_[1]),
8448             q{sysibm_function}, $tracelevel
8449             ) if defined $::RD_TRACE;
8450 0         0 my $thisprod = $thisrule->{"prods"}[53];
8451 0         0 $text = $_[1];
8452 0         0 my $_savetext;
8453 0         0 @item = (q{sysibm_function});
8454 0         0 %item = (__RULE__ => q{sysibm_function});
8455 0         0 my $repcount = 0;
8456              
8457 0 0       0 Parse::RecDescent::_trace(
8458             q{Trying terminal: [/NULLIF/i]},
8459             Parse::RecDescent::_tracefirst($text),
8460             q{sysibm_function}, $tracelevel
8461             ) if defined $::RD_TRACE;
8462 0         0 $lastsep = "";
8463 0         0 $expectation->is(q{})->at($text);
8464              
8465 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
8466             and $text =~ s/\A(?:NULLIF)//i) {
8467              
8468 0         0 $expectation->failed();
8469 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
8470             if defined $::RD_TRACE;
8471              
8472 0         0 last;
8473             }
8474 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
8475             Parse::RecDescent::_tracefirst($text))
8476             if defined $::RD_TRACE;
8477 0         0 push @item, $item{__PATTERN1__} = $&;
8478              
8479 0 0       0 Parse::RecDescent::_trace(
8480             q{>>Matched production: [/NULLIF/i]<<},
8481             Parse::RecDescent::_tracefirst($text),
8482             q{sysibm_function}, $tracelevel
8483             ) if defined $::RD_TRACE;
8484 0         0 $_matched = 1;
8485 0         0 last;
8486             }
8487              
8488 0   0     0 while (!$_matched && !$commit) {
8489              
8490 0 0       0 Parse::RecDescent::_trace(
8491             q{Trying production: [/PARTITON/i]},
8492             Parse::RecDescent::_tracefirst($_[1]),
8493             q{sysibm_function}, $tracelevel
8494             ) if defined $::RD_TRACE;
8495 0         0 my $thisprod = $thisrule->{"prods"}[54];
8496 0         0 $text = $_[1];
8497 0         0 my $_savetext;
8498 0         0 @item = (q{sysibm_function});
8499 0         0 %item = (__RULE__ => q{sysibm_function});
8500 0         0 my $repcount = 0;
8501              
8502 0 0       0 Parse::RecDescent::_trace(
8503             q{Trying terminal: [/PARTITON/i]},
8504             Parse::RecDescent::_tracefirst($text),
8505             q{sysibm_function}, $tracelevel
8506             ) if defined $::RD_TRACE;
8507 0         0 $lastsep = "";
8508 0         0 $expectation->is(q{})->at($text);
8509              
8510 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
8511             and $text =~ s/\A(?:PARTITON)//i) {
8512              
8513 0         0 $expectation->failed();
8514 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
8515             if defined $::RD_TRACE;
8516              
8517 0         0 last;
8518             }
8519 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
8520             Parse::RecDescent::_tracefirst($text))
8521             if defined $::RD_TRACE;
8522 0         0 push @item, $item{__PATTERN1__} = $&;
8523              
8524 0 0       0 Parse::RecDescent::_trace(
8525             q{>>Matched production: [/PARTITON/i]<<},
8526             Parse::RecDescent::_tracefirst($text),
8527             q{sysibm_function}, $tracelevel
8528             ) if defined $::RD_TRACE;
8529 0         0 $_matched = 1;
8530 0         0 last;
8531             }
8532              
8533 0   0     0 while (!$_matched && !$commit) {
8534              
8535 0 0       0 Parse::RecDescent::_trace(
8536             q{Trying production: [/POSSTR/i]},
8537             Parse::RecDescent::_tracefirst($_[1]),
8538             q{sysibm_function}, $tracelevel
8539             ) if defined $::RD_TRACE;
8540 0         0 my $thisprod = $thisrule->{"prods"}[55];
8541 0         0 $text = $_[1];
8542 0         0 my $_savetext;
8543 0         0 @item = (q{sysibm_function});
8544 0         0 %item = (__RULE__ => q{sysibm_function});
8545 0         0 my $repcount = 0;
8546              
8547 0 0       0 Parse::RecDescent::_trace(
8548             q{Trying terminal: [/POSSTR/i]},
8549             Parse::RecDescent::_tracefirst($text),
8550             q{sysibm_function}, $tracelevel
8551             ) if defined $::RD_TRACE;
8552 0         0 $lastsep = "";
8553 0         0 $expectation->is(q{})->at($text);
8554              
8555 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
8556             and $text =~ s/\A(?:POSSTR)//i) {
8557              
8558 0         0 $expectation->failed();
8559 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
8560             if defined $::RD_TRACE;
8561              
8562 0         0 last;
8563             }
8564 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
8565             Parse::RecDescent::_tracefirst($text))
8566             if defined $::RD_TRACE;
8567 0         0 push @item, $item{__PATTERN1__} = $&;
8568              
8569 0 0       0 Parse::RecDescent::_trace(
8570             q{>>Matched production: [/POSSTR/i]<<},
8571             Parse::RecDescent::_tracefirst($text),
8572             q{sysibm_function}, $tracelevel
8573             ) if defined $::RD_TRACE;
8574 0         0 $_matched = 1;
8575 0         0 last;
8576             }
8577              
8578 0   0     0 while (!$_matched && !$commit) {
8579              
8580 0 0       0 Parse::RecDescent::_trace(
8581             q{Trying production: [/RAISE_ERROR/i]},
8582             Parse::RecDescent::_tracefirst($_[1]),
8583             q{sysibm_function}, $tracelevel
8584             ) if defined $::RD_TRACE;
8585 0         0 my $thisprod = $thisrule->{"prods"}[56];
8586 0         0 $text = $_[1];
8587 0         0 my $_savetext;
8588 0         0 @item = (q{sysibm_function});
8589 0         0 %item = (__RULE__ => q{sysibm_function});
8590 0         0 my $repcount = 0;
8591              
8592 0 0       0 Parse::RecDescent::_trace(
8593             q{Trying terminal: [/RAISE_ERROR/i]},
8594             Parse::RecDescent::_tracefirst($text),
8595             q{sysibm_function}, $tracelevel
8596             ) if defined $::RD_TRACE;
8597 0         0 $lastsep = "";
8598 0         0 $expectation->is(q{})->at($text);
8599              
8600 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
8601             and $text =~ s/\A(?:RAISE_ERROR)//i) {
8602              
8603 0         0 $expectation->failed();
8604 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
8605             if defined $::RD_TRACE;
8606              
8607 0         0 last;
8608             }
8609 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
8610             Parse::RecDescent::_tracefirst($text))
8611             if defined $::RD_TRACE;
8612 0         0 push @item, $item{__PATTERN1__} = $&;
8613              
8614 0 0       0 Parse::RecDescent::_trace(
8615             q{>>Matched production: [/RAISE_ERROR/i]<<},
8616             Parse::RecDescent::_tracefirst($text),
8617             q{sysibm_function}, $tracelevel
8618             ) if defined $::RD_TRACE;
8619 0         0 $_matched = 1;
8620 0         0 last;
8621             }
8622              
8623 0   0     0 while (!$_matched && !$commit) {
8624              
8625 0 0       0 Parse::RecDescent::_trace(
8626             q{Trying production: [/REAL/i]},
8627             Parse::RecDescent::_tracefirst($_[1]),
8628             q{sysibm_function}, $tracelevel
8629             ) if defined $::RD_TRACE;
8630 0         0 my $thisprod = $thisrule->{"prods"}[57];
8631 0         0 $text = $_[1];
8632 0         0 my $_savetext;
8633 0         0 @item = (q{sysibm_function});
8634 0         0 %item = (__RULE__ => q{sysibm_function});
8635 0         0 my $repcount = 0;
8636              
8637 0 0       0 Parse::RecDescent::_trace(
8638             q{Trying terminal: [/REAL/i]},
8639             Parse::RecDescent::_tracefirst($text),
8640             q{sysibm_function}, $tracelevel
8641             ) if defined $::RD_TRACE;
8642 0         0 $lastsep = "";
8643 0         0 $expectation->is(q{})->at($text);
8644              
8645 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
8646             and $text =~ s/\A(?:REAL)//i) {
8647              
8648 0         0 $expectation->failed();
8649 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
8650             if defined $::RD_TRACE;
8651              
8652 0         0 last;
8653             }
8654 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
8655             Parse::RecDescent::_tracefirst($text))
8656             if defined $::RD_TRACE;
8657 0         0 push @item, $item{__PATTERN1__} = $&;
8658              
8659 0 0       0 Parse::RecDescent::_trace(
8660             q{>>Matched production: [/REAL/i]<<},
8661             Parse::RecDescent::_tracefirst($text),
8662             q{sysibm_function}, $tracelevel
8663             ) if defined $::RD_TRACE;
8664 0         0 $_matched = 1;
8665 0         0 last;
8666             }
8667              
8668 0   0     0 while (!$_matched && !$commit) {
8669              
8670 0 0       0 Parse::RecDescent::_trace(
8671             q{Trying production: [/REC2XML/i]},
8672             Parse::RecDescent::_tracefirst($_[1]),
8673             q{sysibm_function}, $tracelevel
8674             ) if defined $::RD_TRACE;
8675 0         0 my $thisprod = $thisrule->{"prods"}[58];
8676 0         0 $text = $_[1];
8677 0         0 my $_savetext;
8678 0         0 @item = (q{sysibm_function});
8679 0         0 %item = (__RULE__ => q{sysibm_function});
8680 0         0 my $repcount = 0;
8681              
8682 0 0       0 Parse::RecDescent::_trace(
8683             q{Trying terminal: [/REC2XML/i]},
8684             Parse::RecDescent::_tracefirst($text),
8685             q{sysibm_function}, $tracelevel
8686             ) if defined $::RD_TRACE;
8687 0         0 $lastsep = "";
8688 0         0 $expectation->is(q{})->at($text);
8689              
8690 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
8691             and $text =~ s/\A(?:REC2XML)//i) {
8692              
8693 0         0 $expectation->failed();
8694 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
8695             if defined $::RD_TRACE;
8696              
8697 0         0 last;
8698             }
8699 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
8700             Parse::RecDescent::_tracefirst($text))
8701             if defined $::RD_TRACE;
8702 0         0 push @item, $item{__PATTERN1__} = $&;
8703              
8704 0 0       0 Parse::RecDescent::_trace(
8705             q{>>Matched production: [/REC2XML/i]<<},
8706             Parse::RecDescent::_tracefirst($text),
8707             q{sysibm_function}, $tracelevel
8708             ) if defined $::RD_TRACE;
8709 0         0 $_matched = 1;
8710 0         0 last;
8711             }
8712              
8713 0   0     0 while (!$_matched && !$commit) {
8714              
8715 0 0       0 Parse::RecDescent::_trace(
8716             q{Trying production: [/REGR_AVGX/i]},
8717             Parse::RecDescent::_tracefirst($_[1]),
8718             q{sysibm_function}, $tracelevel
8719             ) if defined $::RD_TRACE;
8720 0         0 my $thisprod = $thisrule->{"prods"}[59];
8721 0         0 $text = $_[1];
8722 0         0 my $_savetext;
8723 0         0 @item = (q{sysibm_function});
8724 0         0 %item = (__RULE__ => q{sysibm_function});
8725 0         0 my $repcount = 0;
8726              
8727 0 0       0 Parse::RecDescent::_trace(
8728             q{Trying terminal: [/REGR_AVGX/i]},
8729             Parse::RecDescent::_tracefirst($text),
8730             q{sysibm_function}, $tracelevel
8731             ) if defined $::RD_TRACE;
8732 0         0 $lastsep = "";
8733 0         0 $expectation->is(q{})->at($text);
8734              
8735 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
8736             and $text =~ s/\A(?:REGR_AVGX)//i) {
8737              
8738 0         0 $expectation->failed();
8739 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
8740             if defined $::RD_TRACE;
8741              
8742 0         0 last;
8743             }
8744 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
8745             Parse::RecDescent::_tracefirst($text))
8746             if defined $::RD_TRACE;
8747 0         0 push @item, $item{__PATTERN1__} = $&;
8748              
8749 0 0       0 Parse::RecDescent::_trace(
8750             q{>>Matched production: [/REGR_AVGX/i]<<},
8751             Parse::RecDescent::_tracefirst($text),
8752             q{sysibm_function}, $tracelevel
8753             ) if defined $::RD_TRACE;
8754 0         0 $_matched = 1;
8755 0         0 last;
8756             }
8757              
8758 0   0     0 while (!$_matched && !$commit) {
8759              
8760 0 0       0 Parse::RecDescent::_trace(
8761             q{Trying production: [/REGR_AVGY/i]},
8762             Parse::RecDescent::_tracefirst($_[1]),
8763             q{sysibm_function}, $tracelevel
8764             ) if defined $::RD_TRACE;
8765 0         0 my $thisprod = $thisrule->{"prods"}[60];
8766 0         0 $text = $_[1];
8767 0         0 my $_savetext;
8768 0         0 @item = (q{sysibm_function});
8769 0         0 %item = (__RULE__ => q{sysibm_function});
8770 0         0 my $repcount = 0;
8771              
8772 0 0       0 Parse::RecDescent::_trace(
8773             q{Trying terminal: [/REGR_AVGY/i]},
8774             Parse::RecDescent::_tracefirst($text),
8775             q{sysibm_function}, $tracelevel
8776             ) if defined $::RD_TRACE;
8777 0         0 $lastsep = "";
8778 0         0 $expectation->is(q{})->at($text);
8779              
8780 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
8781             and $text =~ s/\A(?:REGR_AVGY)//i) {
8782              
8783 0         0 $expectation->failed();
8784 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
8785             if defined $::RD_TRACE;
8786              
8787 0         0 last;
8788             }
8789 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
8790             Parse::RecDescent::_tracefirst($text))
8791             if defined $::RD_TRACE;
8792 0         0 push @item, $item{__PATTERN1__} = $&;
8793              
8794 0 0       0 Parse::RecDescent::_trace(
8795             q{>>Matched production: [/REGR_AVGY/i]<<},
8796             Parse::RecDescent::_tracefirst($text),
8797             q{sysibm_function}, $tracelevel
8798             ) if defined $::RD_TRACE;
8799 0         0 $_matched = 1;
8800 0         0 last;
8801             }
8802              
8803 0   0     0 while (!$_matched && !$commit) {
8804              
8805 0 0       0 Parse::RecDescent::_trace(
8806             q{Trying production: [/REGR_COUNT/i]},
8807             Parse::RecDescent::_tracefirst($_[1]),
8808             q{sysibm_function}, $tracelevel
8809             ) if defined $::RD_TRACE;
8810 0         0 my $thisprod = $thisrule->{"prods"}[61];
8811 0         0 $text = $_[1];
8812 0         0 my $_savetext;
8813 0         0 @item = (q{sysibm_function});
8814 0         0 %item = (__RULE__ => q{sysibm_function});
8815 0         0 my $repcount = 0;
8816              
8817 0 0       0 Parse::RecDescent::_trace(
8818             q{Trying terminal: [/REGR_COUNT/i]},
8819             Parse::RecDescent::_tracefirst($text),
8820             q{sysibm_function}, $tracelevel
8821             ) if defined $::RD_TRACE;
8822 0         0 $lastsep = "";
8823 0         0 $expectation->is(q{})->at($text);
8824              
8825 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
8826             and $text =~ s/\A(?:REGR_COUNT)//i) {
8827              
8828 0         0 $expectation->failed();
8829 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
8830             if defined $::RD_TRACE;
8831              
8832 0         0 last;
8833             }
8834 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
8835             Parse::RecDescent::_tracefirst($text))
8836             if defined $::RD_TRACE;
8837 0         0 push @item, $item{__PATTERN1__} = $&;
8838              
8839 0 0       0 Parse::RecDescent::_trace(
8840             q{>>Matched production: [/REGR_COUNT/i]<<},
8841             Parse::RecDescent::_tracefirst($text),
8842             q{sysibm_function}, $tracelevel
8843             ) if defined $::RD_TRACE;
8844 0         0 $_matched = 1;
8845 0         0 last;
8846             }
8847              
8848 0   0     0 while (!$_matched && !$commit) {
8849              
8850 0 0       0 Parse::RecDescent::_trace(
8851             q{Trying production: [/REGR_INTERCEPT/i, or /REGR_ICPT/i]},
8852             Parse::RecDescent::_tracefirst($_[1]),
8853             q{sysibm_function}, $tracelevel
8854             ) if defined $::RD_TRACE;
8855 0         0 my $thisprod = $thisrule->{"prods"}[62];
8856 0         0 $text = $_[1];
8857 0         0 my $_savetext;
8858 0         0 @item = (q{sysibm_function});
8859 0         0 %item = (__RULE__ => q{sysibm_function});
8860 0         0 my $repcount = 0;
8861              
8862 0 0       0 Parse::RecDescent::_trace(
8863             q{Trying subrule: [_alternation_1_of_production_63_of_rule_sysibm_function]},
8864             Parse::RecDescent::_tracefirst($text),
8865             q{sysibm_function}, $tracelevel
8866             ) if defined $::RD_TRACE;
8867 0         0 if (1) {
8868 1     1   15 no strict qw{refs};
  1         4  
  1         14185  
8869 0         0 $expectation->is(q{})->at($text);
8870 0 0       0 unless (defined(
8871             $_tok
8872             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_63_of_rule_sysibm_function(
8873 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
8874             )
8875             )) {
8876              
8877 0 0       0 Parse::RecDescent::_trace(
8878             q{<>},
8879             Parse::RecDescent::_tracefirst($text),
8880             q{sysibm_function}, $tracelevel
8881             ) if defined $::RD_TRACE;
8882 0         0 $expectation->failed();
8883 0         0 last;
8884             }
8885             Parse::RecDescent::_trace(
8886 0 0       0 q{>>Matched subrule: [_alternation_1_of_production_63_of_rule_sysibm_function]<< (return value: [}
8887             . $_tok . q{]},
8888              
8889             Parse::RecDescent::_tracefirst($text),
8890             q{sysibm_function},
8891             $tracelevel
8892             ) if defined $::RD_TRACE;
8893 0         0 $item{q{_alternation_1_of_production_63_of_rule_sysibm_function}} = $_tok;
8894 0         0 push @item, $_tok;
8895              
8896             }
8897              
8898             Parse::RecDescent::_trace(
8899 0 0       0 q{>>Matched production: [/REGR_INTERCEPT/i, or /REGR_ICPT/i]<<},
8900             Parse::RecDescent::_tracefirst($text),
8901             q{sysibm_function}, $tracelevel
8902             ) if defined $::RD_TRACE;
8903 0         0 $_matched = 1;
8904 0         0 last;
8905             }
8906              
8907 0   0     0 while (!$_matched && !$commit) {
8908              
8909 0 0       0 Parse::RecDescent::_trace(
8910             q{Trying production: [/REGR_R2/i]},
8911             Parse::RecDescent::_tracefirst($_[1]),
8912             q{sysibm_function}, $tracelevel
8913             ) if defined $::RD_TRACE;
8914 0         0 my $thisprod = $thisrule->{"prods"}[63];
8915 0         0 $text = $_[1];
8916 0         0 my $_savetext;
8917 0         0 @item = (q{sysibm_function});
8918 0         0 %item = (__RULE__ => q{sysibm_function});
8919 0         0 my $repcount = 0;
8920              
8921 0 0       0 Parse::RecDescent::_trace(
8922             q{Trying terminal: [/REGR_R2/i]},
8923             Parse::RecDescent::_tracefirst($text),
8924             q{sysibm_function}, $tracelevel
8925             ) if defined $::RD_TRACE;
8926 0         0 $lastsep = "";
8927 0         0 $expectation->is(q{})->at($text);
8928              
8929 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
8930             and $text =~ s/\A(?:REGR_R2)//i) {
8931              
8932 0         0 $expectation->failed();
8933 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
8934             if defined $::RD_TRACE;
8935              
8936 0         0 last;
8937             }
8938 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
8939             Parse::RecDescent::_tracefirst($text))
8940             if defined $::RD_TRACE;
8941 0         0 push @item, $item{__PATTERN1__} = $&;
8942              
8943 0 0       0 Parse::RecDescent::_trace(
8944             q{>>Matched production: [/REGR_R2/i]<<},
8945             Parse::RecDescent::_tracefirst($text),
8946             q{sysibm_function}, $tracelevel
8947             ) if defined $::RD_TRACE;
8948 0         0 $_matched = 1;
8949 0         0 last;
8950             }
8951              
8952 0   0     0 while (!$_matched && !$commit) {
8953              
8954 0 0       0 Parse::RecDescent::_trace(
8955             q{Trying production: [/REGR_SLOPE/i]},
8956             Parse::RecDescent::_tracefirst($_[1]),
8957             q{sysibm_function}, $tracelevel
8958             ) if defined $::RD_TRACE;
8959 0         0 my $thisprod = $thisrule->{"prods"}[64];
8960 0         0 $text = $_[1];
8961 0         0 my $_savetext;
8962 0         0 @item = (q{sysibm_function});
8963 0         0 %item = (__RULE__ => q{sysibm_function});
8964 0         0 my $repcount = 0;
8965              
8966 0 0       0 Parse::RecDescent::_trace(
8967             q{Trying terminal: [/REGR_SLOPE/i]},
8968             Parse::RecDescent::_tracefirst($text),
8969             q{sysibm_function}, $tracelevel
8970             ) if defined $::RD_TRACE;
8971 0         0 $lastsep = "";
8972 0         0 $expectation->is(q{})->at($text);
8973              
8974 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
8975             and $text =~ s/\A(?:REGR_SLOPE)//i) {
8976              
8977 0         0 $expectation->failed();
8978 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
8979             if defined $::RD_TRACE;
8980              
8981 0         0 last;
8982             }
8983 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
8984             Parse::RecDescent::_tracefirst($text))
8985             if defined $::RD_TRACE;
8986 0         0 push @item, $item{__PATTERN1__} = $&;
8987              
8988 0 0       0 Parse::RecDescent::_trace(
8989             q{>>Matched production: [/REGR_SLOPE/i]<<},
8990             Parse::RecDescent::_tracefirst($text),
8991             q{sysibm_function}, $tracelevel
8992             ) if defined $::RD_TRACE;
8993 0         0 $_matched = 1;
8994 0         0 last;
8995             }
8996              
8997 0   0     0 while (!$_matched && !$commit) {
8998              
8999 0 0       0 Parse::RecDescent::_trace(
9000             q{Trying production: [/REGR_SXX/i]},
9001             Parse::RecDescent::_tracefirst($_[1]),
9002             q{sysibm_function}, $tracelevel
9003             ) if defined $::RD_TRACE;
9004 0         0 my $thisprod = $thisrule->{"prods"}[65];
9005 0         0 $text = $_[1];
9006 0         0 my $_savetext;
9007 0         0 @item = (q{sysibm_function});
9008 0         0 %item = (__RULE__ => q{sysibm_function});
9009 0         0 my $repcount = 0;
9010              
9011 0 0       0 Parse::RecDescent::_trace(
9012             q{Trying terminal: [/REGR_SXX/i]},
9013             Parse::RecDescent::_tracefirst($text),
9014             q{sysibm_function}, $tracelevel
9015             ) if defined $::RD_TRACE;
9016 0         0 $lastsep = "";
9017 0         0 $expectation->is(q{})->at($text);
9018              
9019 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
9020             and $text =~ s/\A(?:REGR_SXX)//i) {
9021              
9022 0         0 $expectation->failed();
9023 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
9024             if defined $::RD_TRACE;
9025              
9026 0         0 last;
9027             }
9028 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
9029             Parse::RecDescent::_tracefirst($text))
9030             if defined $::RD_TRACE;
9031 0         0 push @item, $item{__PATTERN1__} = $&;
9032              
9033 0 0       0 Parse::RecDescent::_trace(
9034             q{>>Matched production: [/REGR_SXX/i]<<},
9035             Parse::RecDescent::_tracefirst($text),
9036             q{sysibm_function}, $tracelevel
9037             ) if defined $::RD_TRACE;
9038 0         0 $_matched = 1;
9039 0         0 last;
9040             }
9041              
9042 0   0     0 while (!$_matched && !$commit) {
9043              
9044 0 0       0 Parse::RecDescent::_trace(
9045             q{Trying production: [/REGR_SXY/i]},
9046             Parse::RecDescent::_tracefirst($_[1]),
9047             q{sysibm_function}, $tracelevel
9048             ) if defined $::RD_TRACE;
9049 0         0 my $thisprod = $thisrule->{"prods"}[66];
9050 0         0 $text = $_[1];
9051 0         0 my $_savetext;
9052 0         0 @item = (q{sysibm_function});
9053 0         0 %item = (__RULE__ => q{sysibm_function});
9054 0         0 my $repcount = 0;
9055              
9056 0 0       0 Parse::RecDescent::_trace(
9057             q{Trying terminal: [/REGR_SXY/i]},
9058             Parse::RecDescent::_tracefirst($text),
9059             q{sysibm_function}, $tracelevel
9060             ) if defined $::RD_TRACE;
9061 0         0 $lastsep = "";
9062 0         0 $expectation->is(q{})->at($text);
9063              
9064 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
9065             and $text =~ s/\A(?:REGR_SXY)//i) {
9066              
9067 0         0 $expectation->failed();
9068 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
9069             if defined $::RD_TRACE;
9070              
9071 0         0 last;
9072             }
9073 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
9074             Parse::RecDescent::_tracefirst($text))
9075             if defined $::RD_TRACE;
9076 0         0 push @item, $item{__PATTERN1__} = $&;
9077              
9078 0 0       0 Parse::RecDescent::_trace(
9079             q{>>Matched production: [/REGR_SXY/i]<<},
9080             Parse::RecDescent::_tracefirst($text),
9081             q{sysibm_function}, $tracelevel
9082             ) if defined $::RD_TRACE;
9083 0         0 $_matched = 1;
9084 0         0 last;
9085             }
9086              
9087 0   0     0 while (!$_matched && !$commit) {
9088              
9089 0 0       0 Parse::RecDescent::_trace(
9090             q{Trying production: [/REGR_SYY/i]},
9091             Parse::RecDescent::_tracefirst($_[1]),
9092             q{sysibm_function}, $tracelevel
9093             ) if defined $::RD_TRACE;
9094 0         0 my $thisprod = $thisrule->{"prods"}[67];
9095 0         0 $text = $_[1];
9096 0         0 my $_savetext;
9097 0         0 @item = (q{sysibm_function});
9098 0         0 %item = (__RULE__ => q{sysibm_function});
9099 0         0 my $repcount = 0;
9100              
9101 0 0       0 Parse::RecDescent::_trace(
9102             q{Trying terminal: [/REGR_SYY/i]},
9103             Parse::RecDescent::_tracefirst($text),
9104             q{sysibm_function}, $tracelevel
9105             ) if defined $::RD_TRACE;
9106 0         0 $lastsep = "";
9107 0         0 $expectation->is(q{})->at($text);
9108              
9109 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
9110             and $text =~ s/\A(?:REGR_SYY)//i) {
9111              
9112 0         0 $expectation->failed();
9113 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
9114             if defined $::RD_TRACE;
9115              
9116 0         0 last;
9117             }
9118 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
9119             Parse::RecDescent::_tracefirst($text))
9120             if defined $::RD_TRACE;
9121 0         0 push @item, $item{__PATTERN1__} = $&;
9122              
9123 0 0       0 Parse::RecDescent::_trace(
9124             q{>>Matched production: [/REGR_SYY/i]<<},
9125             Parse::RecDescent::_tracefirst($text),
9126             q{sysibm_function}, $tracelevel
9127             ) if defined $::RD_TRACE;
9128 0         0 $_matched = 1;
9129 0         0 last;
9130             }
9131              
9132 0   0     0 while (!$_matched && !$commit) {
9133              
9134 0 0       0 Parse::RecDescent::_trace(
9135             q{Trying production: [/RTRIM/i]},
9136             Parse::RecDescent::_tracefirst($_[1]),
9137             q{sysibm_function}, $tracelevel
9138             ) if defined $::RD_TRACE;
9139 0         0 my $thisprod = $thisrule->{"prods"}[68];
9140 0         0 $text = $_[1];
9141 0         0 my $_savetext;
9142 0         0 @item = (q{sysibm_function});
9143 0         0 %item = (__RULE__ => q{sysibm_function});
9144 0         0 my $repcount = 0;
9145              
9146 0 0       0 Parse::RecDescent::_trace(
9147             q{Trying terminal: [/RTRIM/i]},
9148             Parse::RecDescent::_tracefirst($text),
9149             q{sysibm_function}, $tracelevel
9150             ) if defined $::RD_TRACE;
9151 0         0 $lastsep = "";
9152 0         0 $expectation->is(q{})->at($text);
9153              
9154 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
9155             and $text =~ s/\A(?:RTRIM)//i) {
9156              
9157 0         0 $expectation->failed();
9158 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
9159             if defined $::RD_TRACE;
9160              
9161 0         0 last;
9162             }
9163 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
9164             Parse::RecDescent::_tracefirst($text))
9165             if defined $::RD_TRACE;
9166 0         0 push @item, $item{__PATTERN1__} = $&;
9167              
9168 0 0       0 Parse::RecDescent::_trace(
9169             q{>>Matched production: [/RTRIM/i]<<},
9170             Parse::RecDescent::_tracefirst($text),
9171             q{sysibm_function}, $tracelevel
9172             ) if defined $::RD_TRACE;
9173 0         0 $_matched = 1;
9174 0         0 last;
9175             }
9176              
9177 0   0     0 while (!$_matched && !$commit) {
9178              
9179 0 0       0 Parse::RecDescent::_trace(
9180             q{Trying production: [/SECOND/i]},
9181             Parse::RecDescent::_tracefirst($_[1]),
9182             q{sysibm_function}, $tracelevel
9183             ) if defined $::RD_TRACE;
9184 0         0 my $thisprod = $thisrule->{"prods"}[69];
9185 0         0 $text = $_[1];
9186 0         0 my $_savetext;
9187 0         0 @item = (q{sysibm_function});
9188 0         0 %item = (__RULE__ => q{sysibm_function});
9189 0         0 my $repcount = 0;
9190              
9191 0 0       0 Parse::RecDescent::_trace(
9192             q{Trying terminal: [/SECOND/i]},
9193             Parse::RecDescent::_tracefirst($text),
9194             q{sysibm_function}, $tracelevel
9195             ) if defined $::RD_TRACE;
9196 0         0 $lastsep = "";
9197 0         0 $expectation->is(q{})->at($text);
9198              
9199 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
9200             and $text =~ s/\A(?:SECOND)//i) {
9201              
9202 0         0 $expectation->failed();
9203 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
9204             if defined $::RD_TRACE;
9205              
9206 0         0 last;
9207             }
9208 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
9209             Parse::RecDescent::_tracefirst($text))
9210             if defined $::RD_TRACE;
9211 0         0 push @item, $item{__PATTERN1__} = $&;
9212              
9213 0 0       0 Parse::RecDescent::_trace(
9214             q{>>Matched production: [/SECOND/i]<<},
9215             Parse::RecDescent::_tracefirst($text),
9216             q{sysibm_function}, $tracelevel
9217             ) if defined $::RD_TRACE;
9218 0         0 $_matched = 1;
9219 0         0 last;
9220             }
9221              
9222 0   0     0 while (!$_matched && !$commit) {
9223              
9224 0 0       0 Parse::RecDescent::_trace(
9225             q{Trying production: [/SMALLINT/i]},
9226             Parse::RecDescent::_tracefirst($_[1]),
9227             q{sysibm_function}, $tracelevel
9228             ) if defined $::RD_TRACE;
9229 0         0 my $thisprod = $thisrule->{"prods"}[70];
9230 0         0 $text = $_[1];
9231 0         0 my $_savetext;
9232 0         0 @item = (q{sysibm_function});
9233 0         0 %item = (__RULE__ => q{sysibm_function});
9234 0         0 my $repcount = 0;
9235              
9236 0 0       0 Parse::RecDescent::_trace(
9237             q{Trying terminal: [/SMALLINT/i]},
9238             Parse::RecDescent::_tracefirst($text),
9239             q{sysibm_function}, $tracelevel
9240             ) if defined $::RD_TRACE;
9241 0         0 $lastsep = "";
9242 0         0 $expectation->is(q{})->at($text);
9243              
9244 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
9245             and $text =~ s/\A(?:SMALLINT)//i) {
9246              
9247 0         0 $expectation->failed();
9248 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
9249             if defined $::RD_TRACE;
9250              
9251 0         0 last;
9252             }
9253 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
9254             Parse::RecDescent::_tracefirst($text))
9255             if defined $::RD_TRACE;
9256 0         0 push @item, $item{__PATTERN1__} = $&;
9257              
9258 0 0       0 Parse::RecDescent::_trace(
9259             q{>>Matched production: [/SMALLINT/i]<<},
9260             Parse::RecDescent::_tracefirst($text),
9261             q{sysibm_function}, $tracelevel
9262             ) if defined $::RD_TRACE;
9263 0         0 $_matched = 1;
9264 0         0 last;
9265             }
9266              
9267 0   0     0 while (!$_matched && !$commit) {
9268              
9269 0 0       0 Parse::RecDescent::_trace(
9270             q{Trying production: [/STDDEV/i]},
9271             Parse::RecDescent::_tracefirst($_[1]),
9272             q{sysibm_function}, $tracelevel
9273             ) if defined $::RD_TRACE;
9274 0         0 my $thisprod = $thisrule->{"prods"}[71];
9275 0         0 $text = $_[1];
9276 0         0 my $_savetext;
9277 0         0 @item = (q{sysibm_function});
9278 0         0 %item = (__RULE__ => q{sysibm_function});
9279 0         0 my $repcount = 0;
9280              
9281 0 0       0 Parse::RecDescent::_trace(
9282             q{Trying terminal: [/STDDEV/i]},
9283             Parse::RecDescent::_tracefirst($text),
9284             q{sysibm_function}, $tracelevel
9285             ) if defined $::RD_TRACE;
9286 0         0 $lastsep = "";
9287 0         0 $expectation->is(q{})->at($text);
9288              
9289 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
9290             and $text =~ s/\A(?:STDDEV)//i) {
9291              
9292 0         0 $expectation->failed();
9293 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
9294             if defined $::RD_TRACE;
9295              
9296 0         0 last;
9297             }
9298 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
9299             Parse::RecDescent::_tracefirst($text))
9300             if defined $::RD_TRACE;
9301 0         0 push @item, $item{__PATTERN1__} = $&;
9302              
9303 0 0       0 Parse::RecDescent::_trace(
9304             q{>>Matched production: [/STDDEV/i]<<},
9305             Parse::RecDescent::_tracefirst($text),
9306             q{sysibm_function}, $tracelevel
9307             ) if defined $::RD_TRACE;
9308 0         0 $_matched = 1;
9309 0         0 last;
9310             }
9311              
9312 0   0     0 while (!$_matched && !$commit) {
9313              
9314 0 0       0 Parse::RecDescent::_trace(
9315             q{Trying production: [/SUBSTR/i]},
9316             Parse::RecDescent::_tracefirst($_[1]),
9317             q{sysibm_function}, $tracelevel
9318             ) if defined $::RD_TRACE;
9319 0         0 my $thisprod = $thisrule->{"prods"}[72];
9320 0         0 $text = $_[1];
9321 0         0 my $_savetext;
9322 0         0 @item = (q{sysibm_function});
9323 0         0 %item = (__RULE__ => q{sysibm_function});
9324 0         0 my $repcount = 0;
9325              
9326 0 0       0 Parse::RecDescent::_trace(
9327             q{Trying terminal: [/SUBSTR/i]},
9328             Parse::RecDescent::_tracefirst($text),
9329             q{sysibm_function}, $tracelevel
9330             ) if defined $::RD_TRACE;
9331 0         0 $lastsep = "";
9332 0         0 $expectation->is(q{})->at($text);
9333              
9334 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
9335             and $text =~ s/\A(?:SUBSTR)//i) {
9336              
9337 0         0 $expectation->failed();
9338 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
9339             if defined $::RD_TRACE;
9340              
9341 0         0 last;
9342             }
9343 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
9344             Parse::RecDescent::_tracefirst($text))
9345             if defined $::RD_TRACE;
9346 0         0 push @item, $item{__PATTERN1__} = $&;
9347              
9348 0 0       0 Parse::RecDescent::_trace(
9349             q{>>Matched production: [/SUBSTR/i]<<},
9350             Parse::RecDescent::_tracefirst($text),
9351             q{sysibm_function}, $tracelevel
9352             ) if defined $::RD_TRACE;
9353 0         0 $_matched = 1;
9354 0         0 last;
9355             }
9356              
9357 0   0     0 while (!$_matched && !$commit) {
9358              
9359 0 0       0 Parse::RecDescent::_trace(
9360             q{Trying production: [/SUM/i]},
9361             Parse::RecDescent::_tracefirst($_[1]),
9362             q{sysibm_function}, $tracelevel
9363             ) if defined $::RD_TRACE;
9364 0         0 my $thisprod = $thisrule->{"prods"}[73];
9365 0         0 $text = $_[1];
9366 0         0 my $_savetext;
9367 0         0 @item = (q{sysibm_function});
9368 0         0 %item = (__RULE__ => q{sysibm_function});
9369 0         0 my $repcount = 0;
9370              
9371 0 0       0 Parse::RecDescent::_trace(
9372             q{Trying terminal: [/SUM/i]},
9373             Parse::RecDescent::_tracefirst($text),
9374             q{sysibm_function}, $tracelevel
9375             ) if defined $::RD_TRACE;
9376 0         0 $lastsep = "";
9377 0         0 $expectation->is(q{})->at($text);
9378              
9379 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
9380             and $text =~ s/\A(?:SUM)//i) {
9381              
9382 0         0 $expectation->failed();
9383 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
9384             if defined $::RD_TRACE;
9385              
9386 0         0 last;
9387             }
9388 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
9389             Parse::RecDescent::_tracefirst($text))
9390             if defined $::RD_TRACE;
9391 0         0 push @item, $item{__PATTERN1__} = $&;
9392              
9393 0 0       0 Parse::RecDescent::_trace(
9394             q{>>Matched production: [/SUM/i]<<},
9395             Parse::RecDescent::_tracefirst($text),
9396             q{sysibm_function}, $tracelevel
9397             ) if defined $::RD_TRACE;
9398 0         0 $_matched = 1;
9399 0         0 last;
9400             }
9401              
9402 0   0     0 while (!$_matched && !$commit) {
9403              
9404 0 0       0 Parse::RecDescent::_trace(
9405             q{Trying production: [/TABLE_NAME/i]},
9406             Parse::RecDescent::_tracefirst($_[1]),
9407             q{sysibm_function}, $tracelevel
9408             ) if defined $::RD_TRACE;
9409 0         0 my $thisprod = $thisrule->{"prods"}[74];
9410 0         0 $text = $_[1];
9411 0         0 my $_savetext;
9412 0         0 @item = (q{sysibm_function});
9413 0         0 %item = (__RULE__ => q{sysibm_function});
9414 0         0 my $repcount = 0;
9415              
9416 0 0       0 Parse::RecDescent::_trace(
9417             q{Trying terminal: [/TABLE_NAME/i]},
9418             Parse::RecDescent::_tracefirst($text),
9419             q{sysibm_function}, $tracelevel
9420             ) if defined $::RD_TRACE;
9421 0         0 $lastsep = "";
9422 0         0 $expectation->is(q{})->at($text);
9423              
9424 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
9425             and $text =~ s/\A(?:TABLE_NAME)//i) {
9426              
9427 0         0 $expectation->failed();
9428 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
9429             if defined $::RD_TRACE;
9430              
9431 0         0 last;
9432             }
9433 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
9434             Parse::RecDescent::_tracefirst($text))
9435             if defined $::RD_TRACE;
9436 0         0 push @item, $item{__PATTERN1__} = $&;
9437              
9438 0 0       0 Parse::RecDescent::_trace(
9439             q{>>Matched production: [/TABLE_NAME/i]<<},
9440             Parse::RecDescent::_tracefirst($text),
9441             q{sysibm_function}, $tracelevel
9442             ) if defined $::RD_TRACE;
9443 0         0 $_matched = 1;
9444 0         0 last;
9445             }
9446              
9447 0   0     0 while (!$_matched && !$commit) {
9448              
9449 0 0       0 Parse::RecDescent::_trace(
9450             q{Trying production: [/TABLE_SCHEMA/i]},
9451             Parse::RecDescent::_tracefirst($_[1]),
9452             q{sysibm_function}, $tracelevel
9453             ) if defined $::RD_TRACE;
9454 0         0 my $thisprod = $thisrule->{"prods"}[75];
9455 0         0 $text = $_[1];
9456 0         0 my $_savetext;
9457 0         0 @item = (q{sysibm_function});
9458 0         0 %item = (__RULE__ => q{sysibm_function});
9459 0         0 my $repcount = 0;
9460              
9461 0 0       0 Parse::RecDescent::_trace(
9462             q{Trying terminal: [/TABLE_SCHEMA/i]},
9463             Parse::RecDescent::_tracefirst($text),
9464             q{sysibm_function}, $tracelevel
9465             ) if defined $::RD_TRACE;
9466 0         0 $lastsep = "";
9467 0         0 $expectation->is(q{})->at($text);
9468              
9469 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
9470             and $text =~ s/\A(?:TABLE_SCHEMA)//i) {
9471              
9472 0         0 $expectation->failed();
9473 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
9474             if defined $::RD_TRACE;
9475              
9476 0         0 last;
9477             }
9478 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
9479             Parse::RecDescent::_tracefirst($text))
9480             if defined $::RD_TRACE;
9481 0         0 push @item, $item{__PATTERN1__} = $&;
9482              
9483 0 0       0 Parse::RecDescent::_trace(
9484             q{>>Matched production: [/TABLE_SCHEMA/i]<<},
9485             Parse::RecDescent::_tracefirst($text),
9486             q{sysibm_function}, $tracelevel
9487             ) if defined $::RD_TRACE;
9488 0         0 $_matched = 1;
9489 0         0 last;
9490             }
9491              
9492 0   0     0 while (!$_matched && !$commit) {
9493              
9494 0 0       0 Parse::RecDescent::_trace(
9495             q{Trying production: [/TIME/i]},
9496             Parse::RecDescent::_tracefirst($_[1]),
9497             q{sysibm_function}, $tracelevel
9498             ) if defined $::RD_TRACE;
9499 0         0 my $thisprod = $thisrule->{"prods"}[76];
9500 0         0 $text = $_[1];
9501 0         0 my $_savetext;
9502 0         0 @item = (q{sysibm_function});
9503 0         0 %item = (__RULE__ => q{sysibm_function});
9504 0         0 my $repcount = 0;
9505              
9506 0 0       0 Parse::RecDescent::_trace(
9507             q{Trying terminal: [/TIME/i]},
9508             Parse::RecDescent::_tracefirst($text),
9509             q{sysibm_function}, $tracelevel
9510             ) if defined $::RD_TRACE;
9511 0         0 $lastsep = "";
9512 0         0 $expectation->is(q{})->at($text);
9513              
9514 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
9515             and $text =~ s/\A(?:TIME)//i) {
9516              
9517 0         0 $expectation->failed();
9518 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
9519             if defined $::RD_TRACE;
9520              
9521 0         0 last;
9522             }
9523 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
9524             Parse::RecDescent::_tracefirst($text))
9525             if defined $::RD_TRACE;
9526 0         0 push @item, $item{__PATTERN1__} = $&;
9527              
9528 0 0       0 Parse::RecDescent::_trace(
9529             q{>>Matched production: [/TIME/i]<<},
9530             Parse::RecDescent::_tracefirst($text),
9531             q{sysibm_function}, $tracelevel
9532             ) if defined $::RD_TRACE;
9533 0         0 $_matched = 1;
9534 0         0 last;
9535             }
9536              
9537 0   0     0 while (!$_matched && !$commit) {
9538              
9539 0 0       0 Parse::RecDescent::_trace(
9540             q{Trying production: [/TIMESTAMP/i]},
9541             Parse::RecDescent::_tracefirst($_[1]),
9542             q{sysibm_function}, $tracelevel
9543             ) if defined $::RD_TRACE;
9544 0         0 my $thisprod = $thisrule->{"prods"}[77];
9545 0         0 $text = $_[1];
9546 0         0 my $_savetext;
9547 0         0 @item = (q{sysibm_function});
9548 0         0 %item = (__RULE__ => q{sysibm_function});
9549 0         0 my $repcount = 0;
9550              
9551 0 0       0 Parse::RecDescent::_trace(
9552             q{Trying terminal: [/TIMESTAMP/i]},
9553             Parse::RecDescent::_tracefirst($text),
9554             q{sysibm_function}, $tracelevel
9555             ) if defined $::RD_TRACE;
9556 0         0 $lastsep = "";
9557 0         0 $expectation->is(q{})->at($text);
9558              
9559 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
9560             and $text =~ s/\A(?:TIMESTAMP)//i) {
9561              
9562 0         0 $expectation->failed();
9563 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
9564             if defined $::RD_TRACE;
9565              
9566 0         0 last;
9567             }
9568 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
9569             Parse::RecDescent::_tracefirst($text))
9570             if defined $::RD_TRACE;
9571 0         0 push @item, $item{__PATTERN1__} = $&;
9572              
9573 0 0       0 Parse::RecDescent::_trace(
9574             q{>>Matched production: [/TIMESTAMP/i]<<},
9575             Parse::RecDescent::_tracefirst($text),
9576             q{sysibm_function}, $tracelevel
9577             ) if defined $::RD_TRACE;
9578 0         0 $_matched = 1;
9579 0         0 last;
9580             }
9581              
9582 0   0     0 while (!$_matched && !$commit) {
9583              
9584 0 0       0 Parse::RecDescent::_trace(
9585             q{Trying production: [/TRANSLATE/i]},
9586             Parse::RecDescent::_tracefirst($_[1]),
9587             q{sysibm_function}, $tracelevel
9588             ) if defined $::RD_TRACE;
9589 0         0 my $thisprod = $thisrule->{"prods"}[78];
9590 0         0 $text = $_[1];
9591 0         0 my $_savetext;
9592 0         0 @item = (q{sysibm_function});
9593 0         0 %item = (__RULE__ => q{sysibm_function});
9594 0         0 my $repcount = 0;
9595              
9596 0 0       0 Parse::RecDescent::_trace(
9597             q{Trying terminal: [/TRANSLATE/i]},
9598             Parse::RecDescent::_tracefirst($text),
9599             q{sysibm_function}, $tracelevel
9600             ) if defined $::RD_TRACE;
9601 0         0 $lastsep = "";
9602 0         0 $expectation->is(q{})->at($text);
9603              
9604 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
9605             and $text =~ s/\A(?:TRANSLATE)//i) {
9606              
9607 0         0 $expectation->failed();
9608 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
9609             if defined $::RD_TRACE;
9610              
9611 0         0 last;
9612             }
9613 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
9614             Parse::RecDescent::_tracefirst($text))
9615             if defined $::RD_TRACE;
9616 0         0 push @item, $item{__PATTERN1__} = $&;
9617              
9618 0 0       0 Parse::RecDescent::_trace(
9619             q{>>Matched production: [/TRANSLATE/i]<<},
9620             Parse::RecDescent::_tracefirst($text),
9621             q{sysibm_function}, $tracelevel
9622             ) if defined $::RD_TRACE;
9623 0         0 $_matched = 1;
9624 0         0 last;
9625             }
9626              
9627 0   0     0 while (!$_matched && !$commit) {
9628              
9629 0 0       0 Parse::RecDescent::_trace(
9630             q{Trying production: [/TYPE_ID/i]},
9631             Parse::RecDescent::_tracefirst($_[1]),
9632             q{sysibm_function}, $tracelevel
9633             ) if defined $::RD_TRACE;
9634 0         0 my $thisprod = $thisrule->{"prods"}[79];
9635 0         0 $text = $_[1];
9636 0         0 my $_savetext;
9637 0         0 @item = (q{sysibm_function});
9638 0         0 %item = (__RULE__ => q{sysibm_function});
9639 0         0 my $repcount = 0;
9640              
9641 0 0       0 Parse::RecDescent::_trace(
9642             q{Trying terminal: [/TYPE_ID/i]},
9643             Parse::RecDescent::_tracefirst($text),
9644             q{sysibm_function}, $tracelevel
9645             ) if defined $::RD_TRACE;
9646 0         0 $lastsep = "";
9647 0         0 $expectation->is(q{})->at($text);
9648              
9649 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
9650             and $text =~ s/\A(?:TYPE_ID)//i) {
9651              
9652 0         0 $expectation->failed();
9653 0 0       0 Parse::RecDescent::_trace(q{<>}, 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: [} . $& . q{])},
9659             Parse::RecDescent::_tracefirst($text))
9660             if defined $::RD_TRACE;
9661 0         0 push @item, $item{__PATTERN1__} = $&;
9662              
9663 0 0       0 Parse::RecDescent::_trace(
9664             q{>>Matched production: [/TYPE_ID/i]<<},
9665             Parse::RecDescent::_tracefirst($text),
9666             q{sysibm_function}, $tracelevel
9667             ) if defined $::RD_TRACE;
9668 0         0 $_matched = 1;
9669 0         0 last;
9670             }
9671              
9672 0   0     0 while (!$_matched && !$commit) {
9673              
9674 0 0       0 Parse::RecDescent::_trace(
9675             q{Trying production: [/TYPE_NAME/i]},
9676             Parse::RecDescent::_tracefirst($_[1]),
9677             q{sysibm_function}, $tracelevel
9678             ) if defined $::RD_TRACE;
9679 0         0 my $thisprod = $thisrule->{"prods"}[80];
9680 0         0 $text = $_[1];
9681 0         0 my $_savetext;
9682 0         0 @item = (q{sysibm_function});
9683 0         0 %item = (__RULE__ => q{sysibm_function});
9684 0         0 my $repcount = 0;
9685              
9686 0 0       0 Parse::RecDescent::_trace(
9687             q{Trying terminal: [/TYPE_NAME/i]},
9688             Parse::RecDescent::_tracefirst($text),
9689             q{sysibm_function}, $tracelevel
9690             ) if defined $::RD_TRACE;
9691 0         0 $lastsep = "";
9692 0         0 $expectation->is(q{})->at($text);
9693              
9694 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
9695             and $text =~ s/\A(?:TYPE_NAME)//i) {
9696              
9697 0         0 $expectation->failed();
9698 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
9699             if defined $::RD_TRACE;
9700              
9701 0         0 last;
9702             }
9703 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
9704             Parse::RecDescent::_tracefirst($text))
9705             if defined $::RD_TRACE;
9706 0         0 push @item, $item{__PATTERN1__} = $&;
9707              
9708 0 0       0 Parse::RecDescent::_trace(
9709             q{>>Matched production: [/TYPE_NAME/i]<<},
9710             Parse::RecDescent::_tracefirst($text),
9711             q{sysibm_function}, $tracelevel
9712             ) if defined $::RD_TRACE;
9713 0         0 $_matched = 1;
9714 0         0 last;
9715             }
9716              
9717 0   0     0 while (!$_matched && !$commit) {
9718              
9719 0 0       0 Parse::RecDescent::_trace(
9720             q{Trying production: [/TYPE_SCHEMA/i]},
9721             Parse::RecDescent::_tracefirst($_[1]),
9722             q{sysibm_function}, $tracelevel
9723             ) if defined $::RD_TRACE;
9724 0         0 my $thisprod = $thisrule->{"prods"}[81];
9725 0         0 $text = $_[1];
9726 0         0 my $_savetext;
9727 0         0 @item = (q{sysibm_function});
9728 0         0 %item = (__RULE__ => q{sysibm_function});
9729 0         0 my $repcount = 0;
9730              
9731 0 0       0 Parse::RecDescent::_trace(
9732             q{Trying terminal: [/TYPE_SCHEMA/i]},
9733             Parse::RecDescent::_tracefirst($text),
9734             q{sysibm_function}, $tracelevel
9735             ) if defined $::RD_TRACE;
9736 0         0 $lastsep = "";
9737 0         0 $expectation->is(q{})->at($text);
9738              
9739 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
9740             and $text =~ s/\A(?:TYPE_SCHEMA)//i) {
9741              
9742 0         0 $expectation->failed();
9743 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
9744             if defined $::RD_TRACE;
9745              
9746 0         0 last;
9747             }
9748 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
9749             Parse::RecDescent::_tracefirst($text))
9750             if defined $::RD_TRACE;
9751 0         0 push @item, $item{__PATTERN1__} = $&;
9752              
9753 0 0       0 Parse::RecDescent::_trace(
9754             q{>>Matched production: [/TYPE_SCHEMA/i]<<},
9755             Parse::RecDescent::_tracefirst($text),
9756             q{sysibm_function}, $tracelevel
9757             ) if defined $::RD_TRACE;
9758 0         0 $_matched = 1;
9759 0         0 last;
9760             }
9761              
9762 0   0     0 while (!$_matched && !$commit) {
9763              
9764 0 0       0 Parse::RecDescent::_trace(
9765             q{Trying production: [/UCASE/i, or /UPPER/i]},
9766             Parse::RecDescent::_tracefirst($_[1]),
9767             q{sysibm_function}, $tracelevel
9768             ) if defined $::RD_TRACE;
9769 0         0 my $thisprod = $thisrule->{"prods"}[82];
9770 0         0 $text = $_[1];
9771 0         0 my $_savetext;
9772 0         0 @item = (q{sysibm_function});
9773 0         0 %item = (__RULE__ => q{sysibm_function});
9774 0         0 my $repcount = 0;
9775              
9776 0 0       0 Parse::RecDescent::_trace(
9777             q{Trying subrule: [_alternation_1_of_production_83_of_rule_sysibm_function]},
9778             Parse::RecDescent::_tracefirst($text),
9779             q{sysibm_function}, $tracelevel
9780             ) if defined $::RD_TRACE;
9781 0         0 if (1) {
9782 1     1   16 no strict qw{refs};
  1         4  
  1         3354  
9783 0         0 $expectation->is(q{})->at($text);
9784 0 0       0 unless (defined(
9785             $_tok
9786             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_83_of_rule_sysibm_function(
9787 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
9788             )
9789             )) {
9790              
9791 0 0       0 Parse::RecDescent::_trace(
9792             q{<>},
9793             Parse::RecDescent::_tracefirst($text),
9794             q{sysibm_function}, $tracelevel
9795             ) if defined $::RD_TRACE;
9796 0         0 $expectation->failed();
9797 0         0 last;
9798             }
9799             Parse::RecDescent::_trace(
9800 0 0       0 q{>>Matched subrule: [_alternation_1_of_production_83_of_rule_sysibm_function]<< (return value: [}
9801             . $_tok . q{]},
9802              
9803             Parse::RecDescent::_tracefirst($text),
9804             q{sysibm_function},
9805             $tracelevel
9806             ) if defined $::RD_TRACE;
9807 0         0 $item{q{_alternation_1_of_production_83_of_rule_sysibm_function}} = $_tok;
9808 0         0 push @item, $_tok;
9809              
9810             }
9811              
9812             Parse::RecDescent::_trace(
9813 0 0       0 q{>>Matched production: [/UCASE/i, or /UPPER/i]<<},
9814             Parse::RecDescent::_tracefirst($text),
9815             q{sysibm_function}, $tracelevel
9816             ) if defined $::RD_TRACE;
9817 0         0 $_matched = 1;
9818 0         0 last;
9819             }
9820              
9821 0   0     0 while (!$_matched && !$commit) {
9822              
9823 0 0       0 Parse::RecDescent::_trace(
9824             q{Trying production: [/VALUE/i]},
9825             Parse::RecDescent::_tracefirst($_[1]),
9826             q{sysibm_function}, $tracelevel
9827             ) if defined $::RD_TRACE;
9828 0         0 my $thisprod = $thisrule->{"prods"}[83];
9829 0         0 $text = $_[1];
9830 0         0 my $_savetext;
9831 0         0 @item = (q{sysibm_function});
9832 0         0 %item = (__RULE__ => q{sysibm_function});
9833 0         0 my $repcount = 0;
9834              
9835 0 0       0 Parse::RecDescent::_trace(
9836             q{Trying terminal: [/VALUE/i]},
9837             Parse::RecDescent::_tracefirst($text),
9838             q{sysibm_function}, $tracelevel
9839             ) if defined $::RD_TRACE;
9840 0         0 $lastsep = "";
9841 0         0 $expectation->is(q{})->at($text);
9842              
9843 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
9844             and $text =~ s/\A(?:VALUE)//i) {
9845              
9846 0         0 $expectation->failed();
9847 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
9848             if defined $::RD_TRACE;
9849              
9850 0         0 last;
9851             }
9852 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
9853             Parse::RecDescent::_tracefirst($text))
9854             if defined $::RD_TRACE;
9855 0         0 push @item, $item{__PATTERN1__} = $&;
9856              
9857 0 0       0 Parse::RecDescent::_trace(
9858             q{>>Matched production: [/VALUE/i]<<},
9859             Parse::RecDescent::_tracefirst($text),
9860             q{sysibm_function}, $tracelevel
9861             ) if defined $::RD_TRACE;
9862 0         0 $_matched = 1;
9863 0         0 last;
9864             }
9865              
9866 0   0     0 while (!$_matched && !$commit) {
9867              
9868 0 0       0 Parse::RecDescent::_trace(
9869             q{Trying production: [/VARCHAR/i]},
9870             Parse::RecDescent::_tracefirst($_[1]),
9871             q{sysibm_function}, $tracelevel
9872             ) if defined $::RD_TRACE;
9873 0         0 my $thisprod = $thisrule->{"prods"}[84];
9874 0         0 $text = $_[1];
9875 0         0 my $_savetext;
9876 0         0 @item = (q{sysibm_function});
9877 0         0 %item = (__RULE__ => q{sysibm_function});
9878 0         0 my $repcount = 0;
9879              
9880 0 0       0 Parse::RecDescent::_trace(
9881             q{Trying terminal: [/VARCHAR/i]},
9882             Parse::RecDescent::_tracefirst($text),
9883             q{sysibm_function}, $tracelevel
9884             ) if defined $::RD_TRACE;
9885 0         0 $lastsep = "";
9886 0         0 $expectation->is(q{})->at($text);
9887              
9888 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
9889             and $text =~ s/\A(?:VARCHAR)//i) {
9890              
9891 0         0 $expectation->failed();
9892 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
9893             if defined $::RD_TRACE;
9894              
9895 0         0 last;
9896             }
9897 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
9898             Parse::RecDescent::_tracefirst($text))
9899             if defined $::RD_TRACE;
9900 0         0 push @item, $item{__PATTERN1__} = $&;
9901              
9902 0 0       0 Parse::RecDescent::_trace(
9903             q{>>Matched production: [/VARCHAR/i]<<},
9904             Parse::RecDescent::_tracefirst($text),
9905             q{sysibm_function}, $tracelevel
9906             ) if defined $::RD_TRACE;
9907 0         0 $_matched = 1;
9908 0         0 last;
9909             }
9910              
9911 0   0     0 while (!$_matched && !$commit) {
9912              
9913 0 0       0 Parse::RecDescent::_trace(
9914             q{Trying production: [/VARGRAPHIC/i]},
9915             Parse::RecDescent::_tracefirst($_[1]),
9916             q{sysibm_function}, $tracelevel
9917             ) if defined $::RD_TRACE;
9918 0         0 my $thisprod = $thisrule->{"prods"}[85];
9919 0         0 $text = $_[1];
9920 0         0 my $_savetext;
9921 0         0 @item = (q{sysibm_function});
9922 0         0 %item = (__RULE__ => q{sysibm_function});
9923 0         0 my $repcount = 0;
9924              
9925 0 0       0 Parse::RecDescent::_trace(
9926             q{Trying terminal: [/VARGRAPHIC/i]},
9927             Parse::RecDescent::_tracefirst($text),
9928             q{sysibm_function}, $tracelevel
9929             ) if defined $::RD_TRACE;
9930 0         0 $lastsep = "";
9931 0         0 $expectation->is(q{})->at($text);
9932              
9933 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
9934             and $text =~ s/\A(?:VARGRAPHIC)//i) {
9935              
9936 0         0 $expectation->failed();
9937 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
9938             if defined $::RD_TRACE;
9939              
9940 0         0 last;
9941             }
9942 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
9943             Parse::RecDescent::_tracefirst($text))
9944             if defined $::RD_TRACE;
9945 0         0 push @item, $item{__PATTERN1__} = $&;
9946              
9947 0 0       0 Parse::RecDescent::_trace(
9948             q{>>Matched production: [/VARGRAPHIC/i]<<},
9949             Parse::RecDescent::_tracefirst($text),
9950             q{sysibm_function}, $tracelevel
9951             ) if defined $::RD_TRACE;
9952 0         0 $_matched = 1;
9953 0         0 last;
9954             }
9955              
9956 0   0     0 while (!$_matched && !$commit) {
9957              
9958 0 0       0 Parse::RecDescent::_trace(
9959             q{Trying production: [/VARIANCE/i, or /VAR/i]},
9960             Parse::RecDescent::_tracefirst($_[1]),
9961             q{sysibm_function}, $tracelevel
9962             ) if defined $::RD_TRACE;
9963 0         0 my $thisprod = $thisrule->{"prods"}[86];
9964 0         0 $text = $_[1];
9965 0         0 my $_savetext;
9966 0         0 @item = (q{sysibm_function});
9967 0         0 %item = (__RULE__ => q{sysibm_function});
9968 0         0 my $repcount = 0;
9969              
9970 0 0       0 Parse::RecDescent::_trace(
9971             q{Trying subrule: [_alternation_1_of_production_87_of_rule_sysibm_function]},
9972             Parse::RecDescent::_tracefirst($text),
9973             q{sysibm_function}, $tracelevel
9974             ) if defined $::RD_TRACE;
9975 0         0 if (1) {
9976 1     1   12 no strict qw{refs};
  1         4  
  1         4631  
9977 0         0 $expectation->is(q{})->at($text);
9978 0 0       0 unless (defined(
9979             $_tok
9980             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_87_of_rule_sysibm_function(
9981 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
9982             )
9983             )) {
9984              
9985 0 0       0 Parse::RecDescent::_trace(
9986             q{<>},
9987             Parse::RecDescent::_tracefirst($text),
9988             q{sysibm_function}, $tracelevel
9989             ) if defined $::RD_TRACE;
9990 0         0 $expectation->failed();
9991 0         0 last;
9992             }
9993             Parse::RecDescent::_trace(
9994 0 0       0 q{>>Matched subrule: [_alternation_1_of_production_87_of_rule_sysibm_function]<< (return value: [}
9995             . $_tok . q{]},
9996              
9997             Parse::RecDescent::_tracefirst($text),
9998             q{sysibm_function},
9999             $tracelevel
10000             ) if defined $::RD_TRACE;
10001 0         0 $item{q{_alternation_1_of_production_87_of_rule_sysibm_function}} = $_tok;
10002 0         0 push @item, $_tok;
10003              
10004             }
10005              
10006             Parse::RecDescent::_trace(
10007 0 0       0 q{>>Matched production: [/VARIANCE/i, or /VAR/i]<<},
10008             Parse::RecDescent::_tracefirst($text),
10009             q{sysibm_function}, $tracelevel
10010             ) if defined $::RD_TRACE;
10011 0         0 $_matched = 1;
10012 0         0 last;
10013             }
10014              
10015 0   0     0 while (!$_matched && !$commit) {
10016              
10017 0 0       0 Parse::RecDescent::_trace(
10018             q{Trying production: [/YEAR/i]},
10019             Parse::RecDescent::_tracefirst($_[1]),
10020             q{sysibm_function}, $tracelevel
10021             ) if defined $::RD_TRACE;
10022 0         0 my $thisprod = $thisrule->{"prods"}[87];
10023 0         0 $text = $_[1];
10024 0         0 my $_savetext;
10025 0         0 @item = (q{sysibm_function});
10026 0         0 %item = (__RULE__ => q{sysibm_function});
10027 0         0 my $repcount = 0;
10028              
10029 0 0       0 Parse::RecDescent::_trace(
10030             q{Trying terminal: [/YEAR/i]},
10031             Parse::RecDescent::_tracefirst($text),
10032             q{sysibm_function}, $tracelevel
10033             ) if defined $::RD_TRACE;
10034 0         0 $lastsep = "";
10035 0         0 $expectation->is(q{})->at($text);
10036              
10037 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
10038             and $text =~ s/\A(?:YEAR)//i) {
10039              
10040 0         0 $expectation->failed();
10041 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
10042             if defined $::RD_TRACE;
10043              
10044 0         0 last;
10045             }
10046 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
10047             Parse::RecDescent::_tracefirst($text))
10048             if defined $::RD_TRACE;
10049 0         0 push @item, $item{__PATTERN1__} = $&;
10050              
10051 0 0       0 Parse::RecDescent::_trace(
10052             q{>>Matched production: [/YEAR/i]<<},
10053             Parse::RecDescent::_tracefirst($text),
10054             q{sysibm_function}, $tracelevel
10055             ) if defined $::RD_TRACE;
10056 0         0 $_matched = 1;
10057 0         0 last;
10058             }
10059              
10060 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
10061              
10062 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
10063 0 0       0 Parse::RecDescent::_trace(
10064             q{<>},
10065             Parse::RecDescent::_tracefirst($_[1]),
10066             q{sysibm_function}, $tracelevel
10067             ) if defined $::RD_TRACE;
10068 0         0 return undef;
10069             }
10070 0 0 0     0 if (!defined($return) && defined($score)) {
10071 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{sysibm_function}, $tracelevel)
10072             if defined $::RD_TRACE;
10073 0         0 $return = $score_return;
10074             }
10075 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
10076 0 0       0 $return = $item[$#item] unless defined $return;
10077 0 0       0 if (defined $::RD_TRACE) {
10078 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
10079             "", q{sysibm_function}, $tracelevel);
10080 0         0 Parse::RecDescent::_trace(
10081             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
10082             Parse::RecDescent::_tracefirst($text),
10083             , q{sysibm_function}, $tracelevel
10084             );
10085             }
10086 0         0 $_[1] = $text;
10087 0         0 return $return;
10088             }
10089              
10090             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
10091             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_partition_clause {
10092 0     0   0 my $thisparser = $_[0];
10093 1     1   12 use vars q{$tracelevel};
  1         3  
  1         844  
10094 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
10095 0         0 $ERRORS = 0;
10096 0         0 my $thisrule = $thisparser->{"rules"}{"window_partition_clause"};
10097              
10098 0 0       0 Parse::RecDescent::_trace(
10099             q{Trying rule: [window_partition_clause]},
10100             Parse::RecDescent::_tracefirst($_[1]),
10101             q{window_partition_clause}, $tracelevel
10102             ) if defined $::RD_TRACE;
10103              
10104 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
10105              
10106 0         0 my $score;
10107             my $score_return;
10108 0         0 my $_tok;
10109 0         0 my $return = undef;
10110 0         0 my $_matched = 0;
10111 0         0 my $commit = 0;
10112 0         0 my @item = ();
10113 0         0 my %item = ();
10114 0   0     0 my $repeating = defined($_[2]) && $_[2];
10115 0   0     0 my $_noactions = defined($_[3]) && $_[3];
10116 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
10117 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
10118 0         0 my $text;
10119 0         0 my $lastsep = "";
10120 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
10121 0         0 $expectation->at($_[1]);
10122              
10123 0         0 my $thisline;
10124 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
10125              
10126 0   0     0 while (!$_matched && !$commit) {
10127              
10128 0 0       0 Parse::RecDescent::_trace(
10129             q{Trying production: [/PARTITION\\s+BY/i ]},
10130             Parse::RecDescent::_tracefirst($_[1]),
10131             q{window_partition_clause}, $tracelevel
10132             ) if defined $::RD_TRACE;
10133 0         0 my $thisprod = $thisrule->{"prods"}[0];
10134 0         0 $text = $_[1];
10135 0         0 my $_savetext;
10136 0         0 @item = (q{window_partition_clause});
10137 0         0 %item = (__RULE__ => q{window_partition_clause});
10138 0         0 my $repcount = 0;
10139              
10140 0 0       0 Parse::RecDescent::_trace(
10141             q{Trying terminal: [/PARTITION\\s+BY/i]},
10142             Parse::RecDescent::_tracefirst($text),
10143             q{window_partition_clause}, $tracelevel
10144             ) if defined $::RD_TRACE;
10145 0         0 $lastsep = "";
10146 0         0 $expectation->is(q{})->at($text);
10147              
10148 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
10149             and $text =~ s/\A(?:PARTITION\s+BY)//i) {
10150              
10151 0         0 $expectation->failed();
10152 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
10153             if defined $::RD_TRACE;
10154              
10155 0         0 last;
10156             }
10157 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
10158             Parse::RecDescent::_tracefirst($text))
10159             if defined $::RD_TRACE;
10160 0         0 push @item, $item{__PATTERN1__} = $&;
10161              
10162 0 0       0 Parse::RecDescent::_trace(
10163             q{Trying operator: []},
10164             Parse::RecDescent::_tracefirst($text),
10165             q{window_partition_clause}, $tracelevel
10166             ) if defined $::RD_TRACE;
10167 0         0 $expectation->is(
10168             q{}
10169             )->at($text);
10170              
10171 0         0 $_tok = undef;
10172 0         0 OPLOOP: while (1) {
10173 0         0 $repcount = 0;
10174 0         0 my @item;
10175              
10176             # MATCH LEFTARG
10177              
10178 0 0       0 Parse::RecDescent::_trace(
10179             q{Trying subrule: [partitioning_expression]},
10180             Parse::RecDescent::_tracefirst($text),
10181             q{window_partition_clause}, $tracelevel
10182             ) if defined $::RD_TRACE;
10183 0         0 if (1) {
10184 1     1   12 no strict qw{refs};
  1         5  
  1         587  
10185 0         0 $expectation->is(q{partitioning_expression})->at($text);
10186 0 0       0 unless (defined(
10187             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::partitioning_expression(
10188 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
10189             )
10190             )) {
10191              
10192 0 0       0 Parse::RecDescent::_trace(
10193             q{<>},
10194             Parse::RecDescent::_tracefirst($text),
10195             q{window_partition_clause}, $tracelevel
10196             ) if defined $::RD_TRACE;
10197 0         0 $expectation->failed();
10198 0         0 last;
10199             }
10200             Parse::RecDescent::_trace(
10201 0 0       0 q{>>Matched subrule: [partitioning_expression]<< (return value: [} . $_tok . q{]},
10202              
10203             Parse::RecDescent::_tracefirst($text),
10204             q{window_partition_clause},
10205             $tracelevel
10206             ) if defined $::RD_TRACE;
10207 0         0 $item{q{partitioning_expression}} = $_tok;
10208 0         0 push @item, $_tok;
10209              
10210             }
10211              
10212 0         0 $repcount++;
10213              
10214 0         0 my $savetext = $text;
10215 0         0 my $backtrack;
10216              
10217             # MATCH (OP RIGHTARG)(s)
10218 0         0 while ($repcount < 100000000) {
10219 0         0 $backtrack = 0;
10220              
10221 0 0       0 Parse::RecDescent::_trace(
10222             q{Trying terminal: [/,/]},
10223             Parse::RecDescent::_tracefirst($text),
10224             q{window_partition_clause}, $tracelevel
10225             ) if defined $::RD_TRACE;
10226 0         0 $lastsep = "";
10227 0         0 $expectation->is(q{/,/})->at($text);
10228              
10229 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
10230             and $text =~ s/\A(?:,)//) {
10231              
10232 0         0 $expectation->failed();
10233 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
10234             if defined $::RD_TRACE;
10235              
10236 0         0 last;
10237             }
10238 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
10239             Parse::RecDescent::_tracefirst($text))
10240             if defined $::RD_TRACE;
10241 0         0 push @item, $item{__PATTERN2__} = $&;
10242              
10243 0         0 pop @item;
10244 0 0       0 if (defined $1) {
10245 0         0 push @item, $item{'partitioning_expression(s)'} = $1;
10246 0         0 $backtrack = 1;
10247             }
10248              
10249             Parse::RecDescent::_trace(
10250 0 0       0 q{Trying subrule: [partitioning_expression]},
10251             Parse::RecDescent::_tracefirst($text),
10252             q{window_partition_clause}, $tracelevel
10253             ) if defined $::RD_TRACE;
10254 0         0 if (1) {
10255 1     1   12 no strict qw{refs};
  1         4  
  1         990  
10256 0         0 $expectation->is(q{partitioning_expression})->at($text);
10257 0 0       0 unless (defined(
10258             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::partitioning_expression(
10259 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
10260             )
10261             )) {
10262              
10263 0 0       0 Parse::RecDescent::_trace(
10264             q{<>},
10265             Parse::RecDescent::_tracefirst($text),
10266             q{window_partition_clause}, $tracelevel
10267             ) if defined $::RD_TRACE;
10268 0         0 $expectation->failed();
10269 0         0 last;
10270             }
10271             Parse::RecDescent::_trace(
10272 0 0       0 q{>>Matched subrule: [partitioning_expression]<< (return value: [} . $_tok . q{]},
10273              
10274             Parse::RecDescent::_tracefirst($text),
10275             q{window_partition_clause},
10276             $tracelevel
10277             ) if defined $::RD_TRACE;
10278 0         0 $item{q{partitioning_expression}} = $_tok;
10279 0         0 push @item, $_tok;
10280              
10281             }
10282              
10283 0         0 $savetext = $text;
10284 0         0 $repcount++;
10285             }
10286 0         0 $text = $savetext;
10287 0 0       0 pop @item if $backtrack;
10288              
10289 0 0       0 unless (@item) { undef $_tok; last }
  0         0  
  0         0  
10290 0         0 $_tok = [@item];
10291 0         0 last;
10292             }
10293              
10294 0 0       0 unless ($repcount >= 1) {
10295 0 0       0 Parse::RecDescent::_trace(
10296             q{<]>>},
10297             Parse::RecDescent::_tracefirst($text),
10298             q{window_partition_clause}, $tracelevel
10299             ) if defined $::RD_TRACE;
10300 0         0 $expectation->failed();
10301 0         0 last;
10302             }
10303             Parse::RecDescent::_trace(
10304 0 0       0 q{>>Matched operator: []<< (return value: [}
10305 0 0       0 . qq{@{$_tok||[]}} . q{]},
10306             Parse::RecDescent::_tracefirst($text), q{window_partition_clause}, $tracelevel
10307             ) if defined $::RD_TRACE;
10308              
10309 0   0     0 push @item, $item{'partitioning_expression(s)'} = $_tok || [];
10310              
10311 0 0       0 Parse::RecDescent::_trace(
10312             q{>>Matched production: [/PARTITION\\s+BY/i ]<<},
10313             Parse::RecDescent::_tracefirst($text), q{window_partition_clause}, $tracelevel
10314             ) if defined $::RD_TRACE;
10315 0         0 $_matched = 1;
10316 0         0 last;
10317             }
10318              
10319 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
10320              
10321 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
10322 0 0       0 Parse::RecDescent::_trace(
10323             q{<>},
10324             Parse::RecDescent::_tracefirst($_[1]),
10325             q{window_partition_clause}, $tracelevel
10326             ) if defined $::RD_TRACE;
10327 0         0 return undef;
10328             }
10329 0 0 0     0 if (!defined($return) && defined($score)) {
10330 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{window_partition_clause}, $tracelevel)
10331             if defined $::RD_TRACE;
10332 0         0 $return = $score_return;
10333             }
10334 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
10335 0 0       0 $return = $item[$#item] unless defined $return;
10336 0 0       0 if (defined $::RD_TRACE) {
10337 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
10338             "", q{window_partition_clause}, $tracelevel);
10339 0         0 Parse::RecDescent::_trace(
10340             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
10341             Parse::RecDescent::_tracefirst($text),
10342             , q{window_partition_clause}, $tracelevel
10343             );
10344             }
10345 0         0 $_[1] = $text;
10346 0         0 return $return;
10347             }
10348              
10349             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
10350             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::WHERE {
10351 0     0   0 my $thisparser = $_[0];
10352 1     1   11 use vars q{$tracelevel};
  1         5  
  1         1150  
10353 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
10354 0         0 $ERRORS = 0;
10355 0         0 my $thisrule = $thisparser->{"rules"}{"WHERE"};
10356              
10357 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [WHERE]}, Parse::RecDescent::_tracefirst($_[1]), q{WHERE}, $tracelevel)
10358             if defined $::RD_TRACE;
10359              
10360 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
10361              
10362 0         0 my $score;
10363             my $score_return;
10364 0         0 my $_tok;
10365 0         0 my $return = undef;
10366 0         0 my $_matched = 0;
10367 0         0 my $commit = 0;
10368 0         0 my @item = ();
10369 0         0 my %item = ();
10370 0   0     0 my $repeating = defined($_[2]) && $_[2];
10371 0   0     0 my $_noactions = defined($_[3]) && $_[3];
10372 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
10373 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
10374 0         0 my $text;
10375 0         0 my $lastsep = "";
10376 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
10377 0         0 $expectation->at($_[1]);
10378              
10379 0         0 my $thisline;
10380 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
10381              
10382 0   0     0 while (!$_matched && !$commit) {
10383              
10384 0 0       0 Parse::RecDescent::_trace(
10385             q{Trying production: [/where/i]},
10386             Parse::RecDescent::_tracefirst($_[1]),
10387             q{WHERE}, $tracelevel
10388             ) if defined $::RD_TRACE;
10389 0         0 my $thisprod = $thisrule->{"prods"}[0];
10390 0         0 $text = $_[1];
10391 0         0 my $_savetext;
10392 0         0 @item = (q{WHERE});
10393 0         0 %item = (__RULE__ => q{WHERE});
10394 0         0 my $repcount = 0;
10395              
10396 0 0       0 Parse::RecDescent::_trace(
10397             q{Trying terminal: [/where/i]},
10398             Parse::RecDescent::_tracefirst($text),
10399             q{WHERE}, $tracelevel
10400             ) if defined $::RD_TRACE;
10401 0         0 $lastsep = "";
10402 0         0 $expectation->is(q{})->at($text);
10403              
10404 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
10405             and $text =~ s/\A(?:where)//i) {
10406              
10407 0         0 $expectation->failed();
10408 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
10409             if defined $::RD_TRACE;
10410              
10411 0         0 last;
10412             }
10413 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
10414             Parse::RecDescent::_tracefirst($text))
10415             if defined $::RD_TRACE;
10416 0         0 push @item, $item{__PATTERN1__} = $&;
10417              
10418 0 0       0 Parse::RecDescent::_trace(
10419             q{>>Matched production: [/where/i]<<},
10420             Parse::RecDescent::_tracefirst($text),
10421             q{WHERE}, $tracelevel
10422             ) if defined $::RD_TRACE;
10423 0         0 $_matched = 1;
10424 0         0 last;
10425             }
10426              
10427 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
10428              
10429 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
10430 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{WHERE}, $tracelevel)
10431             if defined $::RD_TRACE;
10432 0         0 return undef;
10433             }
10434 0 0 0     0 if (!defined($return) && defined($score)) {
10435 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{WHERE}, $tracelevel)
10436             if defined $::RD_TRACE;
10437 0         0 $return = $score_return;
10438             }
10439 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
10440 0 0       0 $return = $item[$#item] unless defined $return;
10441 0 0       0 if (defined $::RD_TRACE) {
10442 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{WHERE}, $tracelevel);
10443 0         0 Parse::RecDescent::_trace(
10444             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
10445             Parse::RecDescent::_tracefirst($text),
10446             , q{WHERE}, $tracelevel
10447             );
10448             }
10449 0         0 $_[1] = $text;
10450 0         0 return $return;
10451             }
10452              
10453             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
10454             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::CREATE {
10455 3     3   7 my $thisparser = $_[0];
10456 1     1   9 use vars q{$tracelevel};
  1         5374  
  1         1207  
10457 3   50     13 local $tracelevel = ($tracelevel || 0) + 1;
10458 3         7 $ERRORS = 0;
10459 3         10 my $thisrule = $thisparser->{"rules"}{"CREATE"};
10460              
10461 3 50       9 Parse::RecDescent::_trace(q{Trying rule: [CREATE]}, Parse::RecDescent::_tracefirst($_[1]), q{CREATE}, $tracelevel)
10462             if defined $::RD_TRACE;
10463              
10464 3         7 my $err_at = @{ $thisparser->{errors} };
  3         20  
10465              
10466 3         10 my $score;
10467             my $score_return;
10468 3         0 my $_tok;
10469 3         6 my $return = undef;
10470 3         6 my $_matched = 0;
10471 3         6 my $commit = 0;
10472 3         7 my @item = ();
10473 3         6 my %item = ();
10474 3   33     16 my $repeating = defined($_[2]) && $_[2];
10475 3   33     15 my $_noactions = defined($_[3]) && $_[3];
10476 3 50       9 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  3         6  
  3         9  
10477 3 50       8 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
10478 3         6 my $text;
10479 3         7 my $lastsep = "";
10480 3         15 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
10481 3         172 $expectation->at($_[1]);
10482              
10483 3         16 my $thisline;
10484 3         19 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
10485              
10486 3   33     40 while (!$_matched && !$commit) {
10487              
10488 3 50       9 Parse::RecDescent::_trace(
10489             q{Trying production: [/create/i]},
10490             Parse::RecDescent::_tracefirst($_[1]),
10491             q{CREATE}, $tracelevel
10492             ) if defined $::RD_TRACE;
10493 3         9 my $thisprod = $thisrule->{"prods"}[0];
10494 3         23 $text = $_[1];
10495 3         17 my $_savetext;
10496 3         10 @item = (q{CREATE});
10497 3         9 %item = (__RULE__ => q{CREATE});
10498 3         7 my $repcount = 0;
10499              
10500 3 50       9 Parse::RecDescent::_trace(
10501             q{Trying terminal: [/create/i]},
10502             Parse::RecDescent::_tracefirst($text),
10503             q{CREATE}, $tracelevel
10504             ) if defined $::RD_TRACE;
10505 3         7 $lastsep = "";
10506 3         12 $expectation->is(q{})->at($text);
10507              
10508 3 50 33     88 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  3 50       42  
10509             and $text =~ s/\A(?:create)//i) {
10510              
10511 3         13 $expectation->failed();
10512 3 50       19 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
10513             if defined $::RD_TRACE;
10514              
10515 3         34 last;
10516             }
10517 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
10518             Parse::RecDescent::_tracefirst($text))
10519             if defined $::RD_TRACE;
10520 0         0 push @item, $item{__PATTERN1__} = $&;
10521              
10522 0 0       0 Parse::RecDescent::_trace(
10523             q{>>Matched production: [/create/i]<<},
10524             Parse::RecDescent::_tracefirst($text),
10525             q{CREATE}, $tracelevel
10526             ) if defined $::RD_TRACE;
10527 0         0 $_matched = 1;
10528 0         0 last;
10529             }
10530              
10531 3 50 33     26 unless ($_matched || defined($return) || defined($score)) {
      33        
10532              
10533 3         19 $_[1] = $text; # NOT SURE THIS IS NEEDED
10534 3 50       9 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{CREATE}, $tracelevel)
10535             if defined $::RD_TRACE;
10536 3         38 return undef;
10537             }
10538 0 0 0     0 if (!defined($return) && defined($score)) {
10539 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{CREATE}, $tracelevel)
10540             if defined $::RD_TRACE;
10541 0         0 $return = $score_return;
10542             }
10543 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
10544 0 0       0 $return = $item[$#item] unless defined $return;
10545 0 0       0 if (defined $::RD_TRACE) {
10546 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{CREATE}, $tracelevel);
10547 0         0 Parse::RecDescent::_trace(
10548             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
10549             Parse::RecDescent::_tracefirst($text),
10550             , q{CREATE}, $tracelevel
10551             );
10552             }
10553 0         0 $_[1] = $text;
10554 0         0 return $return;
10555             }
10556              
10557             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
10558             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_sysfun {
10559 0     0   0 my $thisparser = $_[0];
10560 1     1   11 use vars q{$tracelevel};
  1         3  
  1         1563  
10561 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
10562 0         0 $ERRORS = 0;
10563 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_sysfun"};
10564              
10565 0 0       0 Parse::RecDescent::_trace(
10566             q{Trying rule: [_alternation_1_of_production_1_of_rule_sysfun]},
10567             Parse::RecDescent::_tracefirst($_[1]),
10568             q{_alternation_1_of_production_1_of_rule_sysfun}, $tracelevel
10569             ) if defined $::RD_TRACE;
10570              
10571 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
10572              
10573 0         0 my $score;
10574             my $score_return;
10575 0         0 my $_tok;
10576 0         0 my $return = undef;
10577 0         0 my $_matched = 0;
10578 0         0 my $commit = 0;
10579 0         0 my @item = ();
10580 0         0 my %item = ();
10581 0   0     0 my $repeating = defined($_[2]) && $_[2];
10582 0   0     0 my $_noactions = defined($_[3]) && $_[3];
10583 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
10584 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
10585 0         0 my $text;
10586 0         0 my $lastsep = "";
10587 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
10588 0         0 $expectation->at($_[1]);
10589              
10590 0         0 my $thisline;
10591 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
10592              
10593 0   0     0 while (!$_matched && !$commit) {
10594              
10595 0 0       0 Parse::RecDescent::_trace(
10596             q{Trying production: [/ABS/i]},
10597             Parse::RecDescent::_tracefirst($_[1]),
10598             q{_alternation_1_of_production_1_of_rule_sysfun}, $tracelevel
10599             ) if defined $::RD_TRACE;
10600 0         0 my $thisprod = $thisrule->{"prods"}[0];
10601 0         0 $text = $_[1];
10602 0         0 my $_savetext;
10603 0         0 @item = (q{_alternation_1_of_production_1_of_rule_sysfun});
10604 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_sysfun});
10605 0         0 my $repcount = 0;
10606              
10607 0 0       0 Parse::RecDescent::_trace(
10608             q{Trying terminal: [/ABS/i]},
10609             Parse::RecDescent::_tracefirst($text),
10610             q{_alternation_1_of_production_1_of_rule_sysfun}, $tracelevel
10611             ) if defined $::RD_TRACE;
10612 0         0 $lastsep = "";
10613 0         0 $expectation->is(q{})->at($text);
10614              
10615 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
10616             and $text =~ s/\A(?:ABS)//i) {
10617              
10618 0         0 $expectation->failed();
10619 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
10620             if defined $::RD_TRACE;
10621              
10622 0         0 last;
10623             }
10624 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
10625             Parse::RecDescent::_tracefirst($text))
10626             if defined $::RD_TRACE;
10627 0         0 push @item, $item{__PATTERN1__} = $&;
10628              
10629 0 0       0 Parse::RecDescent::_trace(
10630             q{>>Matched production: [/ABS/i]<<},
10631             Parse::RecDescent::_tracefirst($text),
10632             q{_alternation_1_of_production_1_of_rule_sysfun}, $tracelevel
10633             ) if defined $::RD_TRACE;
10634 0         0 $_matched = 1;
10635 0         0 last;
10636             }
10637              
10638 0   0     0 while (!$_matched && !$commit) {
10639              
10640 0 0       0 Parse::RecDescent::_trace(
10641             q{Trying production: [/ABSVAL/i]},
10642             Parse::RecDescent::_tracefirst($_[1]),
10643             q{_alternation_1_of_production_1_of_rule_sysfun}, $tracelevel
10644             ) if defined $::RD_TRACE;
10645 0         0 my $thisprod = $thisrule->{"prods"}[1];
10646 0         0 $text = $_[1];
10647 0         0 my $_savetext;
10648 0         0 @item = (q{_alternation_1_of_production_1_of_rule_sysfun});
10649 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_sysfun});
10650 0         0 my $repcount = 0;
10651              
10652 0 0       0 Parse::RecDescent::_trace(
10653             q{Trying terminal: [/ABSVAL/i]},
10654             Parse::RecDescent::_tracefirst($text),
10655             q{_alternation_1_of_production_1_of_rule_sysfun}, $tracelevel
10656             ) if defined $::RD_TRACE;
10657 0         0 $lastsep = "";
10658 0         0 $expectation->is(q{})->at($text);
10659              
10660 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
10661             and $text =~ s/\A(?:ABSVAL)//i) {
10662              
10663 0         0 $expectation->failed();
10664 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
10665             if defined $::RD_TRACE;
10666              
10667 0         0 last;
10668             }
10669 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
10670             Parse::RecDescent::_tracefirst($text))
10671             if defined $::RD_TRACE;
10672 0         0 push @item, $item{__PATTERN1__} = $&;
10673              
10674 0 0       0 Parse::RecDescent::_trace(
10675             q{>>Matched production: [/ABSVAL/i]<<},
10676             Parse::RecDescent::_tracefirst($text),
10677             q{_alternation_1_of_production_1_of_rule_sysfun}, $tracelevel
10678             ) if defined $::RD_TRACE;
10679 0         0 $_matched = 1;
10680 0         0 last;
10681             }
10682              
10683 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
10684              
10685 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
10686 0 0       0 Parse::RecDescent::_trace(
10687             q{<>},
10688             Parse::RecDescent::_tracefirst($_[1]),
10689             q{_alternation_1_of_production_1_of_rule_sysfun}, $tracelevel
10690             ) if defined $::RD_TRACE;
10691 0         0 return undef;
10692             }
10693 0 0 0     0 if (!defined($return) && defined($score)) {
10694 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
10695             "", q{_alternation_1_of_production_1_of_rule_sysfun}, $tracelevel)
10696             if defined $::RD_TRACE;
10697 0         0 $return = $score_return;
10698             }
10699 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
10700 0 0       0 $return = $item[$#item] unless defined $return;
10701 0 0       0 if (defined $::RD_TRACE) {
10702 0         0 Parse::RecDescent::_trace(
10703             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
10704             q{_alternation_1_of_production_1_of_rule_sysfun}, $tracelevel
10705             );
10706 0         0 Parse::RecDescent::_trace(
10707             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
10708             Parse::RecDescent::_tracefirst($text),
10709             , q{_alternation_1_of_production_1_of_rule_sysfun}, $tracelevel
10710             );
10711             }
10712 0         0 $_[1] = $text;
10713 0         0 return $return;
10714             }
10715              
10716             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
10717             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_function {
10718 0     0   0 my $thisparser = $_[0];
10719 1     1   11 use vars q{$tracelevel};
  1         3  
  1         779  
10720 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
10721 0         0 $ERRORS = 0;
10722 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_function"};
10723              
10724 0 0       0 Parse::RecDescent::_trace(
10725             q{Trying rule: [_alternation_1_of_production_1_of_rule_function]},
10726             Parse::RecDescent::_tracefirst($_[1]),
10727             q{_alternation_1_of_production_1_of_rule_function}, $tracelevel
10728             ) if defined $::RD_TRACE;
10729              
10730 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
10731              
10732 0         0 my $score;
10733             my $score_return;
10734 0         0 my $_tok;
10735 0         0 my $return = undef;
10736 0         0 my $_matched = 0;
10737 0         0 my $commit = 0;
10738 0         0 my @item = ();
10739 0         0 my %item = ();
10740 0   0     0 my $repeating = defined($_[2]) && $_[2];
10741 0   0     0 my $_noactions = defined($_[3]) && $_[3];
10742 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
10743 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
10744 0         0 my $text;
10745 0         0 my $lastsep = "";
10746 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
10747 0         0 $expectation->at($_[1]);
10748              
10749 0         0 my $thisline;
10750 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
10751              
10752 0   0     0 while (!$_matched && !$commit) {
10753              
10754 0 0       0 Parse::RecDescent::_trace(
10755             q{Trying production: [/SYSIBM\\.|/i sysibm_function]},
10756             Parse::RecDescent::_tracefirst($_[1]),
10757             q{_alternation_1_of_production_1_of_rule_function}, $tracelevel
10758             ) if defined $::RD_TRACE;
10759 0         0 my $thisprod = $thisrule->{"prods"}[0];
10760 0         0 $text = $_[1];
10761 0         0 my $_savetext;
10762 0         0 @item = (q{_alternation_1_of_production_1_of_rule_function});
10763 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_function});
10764 0         0 my $repcount = 0;
10765              
10766 0 0       0 Parse::RecDescent::_trace(
10767             q{Trying terminal: [/SYSIBM\\.|/i]},
10768             Parse::RecDescent::_tracefirst($text),
10769             q{_alternation_1_of_production_1_of_rule_function}, $tracelevel
10770             ) if defined $::RD_TRACE;
10771 0         0 $lastsep = "";
10772 0         0 $expectation->is(q{})->at($text);
10773              
10774 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
10775             and $text =~ s/\A(?:SYSIBM\.|)//i) {
10776              
10777 0         0 $expectation->failed();
10778 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
10779             if defined $::RD_TRACE;
10780              
10781 0         0 last;
10782             }
10783 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
10784             Parse::RecDescent::_tracefirst($text))
10785             if defined $::RD_TRACE;
10786 0         0 push @item, $item{__PATTERN1__} = $&;
10787              
10788 0 0       0 Parse::RecDescent::_trace(
10789             q{Trying subrule: [sysibm_function]},
10790             Parse::RecDescent::_tracefirst($text),
10791             q{_alternation_1_of_production_1_of_rule_function}, $tracelevel
10792             ) if defined $::RD_TRACE;
10793 0         0 if (1) {
10794 1     1   12 no strict qw{refs};
  1         3  
  1         657  
10795 0         0 $expectation->is(q{sysibm_function})->at($text);
10796 0 0       0 unless (defined(
10797             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sysibm_function(
10798 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
10799             )
10800             )) {
10801              
10802 0 0       0 Parse::RecDescent::_trace(
10803             q{<>},
10804             Parse::RecDescent::_tracefirst($text),
10805             q{_alternation_1_of_production_1_of_rule_function}, $tracelevel
10806             ) if defined $::RD_TRACE;
10807 0         0 $expectation->failed();
10808 0         0 last;
10809             }
10810             Parse::RecDescent::_trace(
10811 0 0       0 q{>>Matched subrule: [sysibm_function]<< (return value: [} . $_tok . q{]},
10812              
10813             Parse::RecDescent::_tracefirst($text),
10814             q{_alternation_1_of_production_1_of_rule_function},
10815             $tracelevel
10816             ) if defined $::RD_TRACE;
10817 0         0 $item{q{sysibm_function}} = $_tok;
10818 0         0 push @item, $_tok;
10819              
10820             }
10821              
10822             Parse::RecDescent::_trace(
10823 0 0       0 q{>>Matched production: [/SYSIBM\\.|/i sysibm_function]<<},
10824             Parse::RecDescent::_tracefirst($text),
10825             q{_alternation_1_of_production_1_of_rule_function}, $tracelevel
10826             ) if defined $::RD_TRACE;
10827 0         0 $_matched = 1;
10828 0         0 last;
10829             }
10830              
10831 0   0     0 while (!$_matched && !$commit) {
10832              
10833 0 0       0 Parse::RecDescent::_trace(
10834             q{Trying production: [/SYSFUN\\.|/i sysfun_function]},
10835             Parse::RecDescent::_tracefirst($_[1]),
10836             q{_alternation_1_of_production_1_of_rule_function}, $tracelevel
10837             ) if defined $::RD_TRACE;
10838 0         0 my $thisprod = $thisrule->{"prods"}[1];
10839 0         0 $text = $_[1];
10840 0         0 my $_savetext;
10841 0         0 @item = (q{_alternation_1_of_production_1_of_rule_function});
10842 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_function});
10843 0         0 my $repcount = 0;
10844              
10845 0 0       0 Parse::RecDescent::_trace(
10846             q{Trying terminal: [/SYSFUN\\.|/i]},
10847             Parse::RecDescent::_tracefirst($text),
10848             q{_alternation_1_of_production_1_of_rule_function}, $tracelevel
10849             ) if defined $::RD_TRACE;
10850 0         0 $lastsep = "";
10851 0         0 $expectation->is(q{})->at($text);
10852              
10853 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
10854             and $text =~ s/\A(?:SYSFUN\.|)//i) {
10855              
10856 0         0 $expectation->failed();
10857 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
10858             if defined $::RD_TRACE;
10859              
10860 0         0 last;
10861             }
10862 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
10863             Parse::RecDescent::_tracefirst($text))
10864             if defined $::RD_TRACE;
10865 0         0 push @item, $item{__PATTERN1__} = $&;
10866              
10867 0 0       0 Parse::RecDescent::_trace(
10868             q{Trying subrule: [sysfun_function]},
10869             Parse::RecDescent::_tracefirst($text),
10870             q{_alternation_1_of_production_1_of_rule_function}, $tracelevel
10871             ) if defined $::RD_TRACE;
10872 0         0 if (1) {
10873 1     1   36 no strict qw{refs};
  1         5  
  1         424  
10874 0         0 $expectation->is(q{sysfun_function})->at($text);
10875 0 0       0 unless (defined(
10876             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sysfun_function(
10877 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
10878             )
10879             )) {
10880              
10881 0 0       0 Parse::RecDescent::_trace(
10882             q{<>},
10883             Parse::RecDescent::_tracefirst($text),
10884             q{_alternation_1_of_production_1_of_rule_function}, $tracelevel
10885             ) if defined $::RD_TRACE;
10886 0         0 $expectation->failed();
10887 0         0 last;
10888             }
10889             Parse::RecDescent::_trace(
10890 0 0       0 q{>>Matched subrule: [sysfun_function]<< (return value: [} . $_tok . q{]},
10891              
10892             Parse::RecDescent::_tracefirst($text),
10893             q{_alternation_1_of_production_1_of_rule_function},
10894             $tracelevel
10895             ) if defined $::RD_TRACE;
10896 0         0 $item{q{sysfun_function}} = $_tok;
10897 0         0 push @item, $_tok;
10898              
10899             }
10900              
10901             Parse::RecDescent::_trace(
10902 0 0       0 q{>>Matched production: [/SYSFUN\\.|/i sysfun_function]<<},
10903             Parse::RecDescent::_tracefirst($text),
10904             q{_alternation_1_of_production_1_of_rule_function}, $tracelevel
10905             ) if defined $::RD_TRACE;
10906 0         0 $_matched = 1;
10907 0         0 last;
10908             }
10909              
10910 0   0     0 while (!$_matched && !$commit) {
10911              
10912 0 0       0 Parse::RecDescent::_trace(
10913             q{Trying production: [userdefined_function]},
10914             Parse::RecDescent::_tracefirst($_[1]),
10915             q{_alternation_1_of_production_1_of_rule_function}, $tracelevel
10916             ) if defined $::RD_TRACE;
10917 0         0 my $thisprod = $thisrule->{"prods"}[2];
10918 0         0 $text = $_[1];
10919 0         0 my $_savetext;
10920 0         0 @item = (q{_alternation_1_of_production_1_of_rule_function});
10921 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_function});
10922 0         0 my $repcount = 0;
10923              
10924 0 0       0 Parse::RecDescent::_trace(
10925             q{Trying subrule: [userdefined_function]},
10926             Parse::RecDescent::_tracefirst($text),
10927             q{_alternation_1_of_production_1_of_rule_function}, $tracelevel
10928             ) if defined $::RD_TRACE;
10929 0         0 if (1) {
10930 1     1   12 no strict qw{refs};
  1         3  
  1         842  
10931 0         0 $expectation->is(q{})->at($text);
10932 0 0       0 unless (defined(
10933             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::userdefined_function(
10934 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
10935             )
10936             )) {
10937              
10938 0 0       0 Parse::RecDescent::_trace(
10939             q{<>}, Parse::RecDescent::_tracefirst($text),
10940             q{_alternation_1_of_production_1_of_rule_function}, $tracelevel
10941             ) if defined $::RD_TRACE;
10942 0         0 $expectation->failed();
10943 0         0 last;
10944             }
10945             Parse::RecDescent::_trace(
10946 0 0       0 q{>>Matched subrule: [userdefined_function]<< (return value: [} . $_tok . q{]},
10947              
10948             Parse::RecDescent::_tracefirst($text),
10949             q{_alternation_1_of_production_1_of_rule_function},
10950             $tracelevel
10951             ) if defined $::RD_TRACE;
10952 0         0 $item{q{userdefined_function}} = $_tok;
10953 0         0 push @item, $_tok;
10954              
10955             }
10956              
10957             Parse::RecDescent::_trace(
10958 0 0       0 q{>>Matched production: [userdefined_function]<<}, Parse::RecDescent::_tracefirst($text),
10959             q{_alternation_1_of_production_1_of_rule_function}, $tracelevel
10960             ) if defined $::RD_TRACE;
10961 0         0 $_matched = 1;
10962 0         0 last;
10963             }
10964              
10965 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
10966              
10967 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
10968 0 0       0 Parse::RecDescent::_trace(
10969             q{<>},
10970             Parse::RecDescent::_tracefirst($_[1]),
10971             q{_alternation_1_of_production_1_of_rule_function}, $tracelevel
10972             ) if defined $::RD_TRACE;
10973 0         0 return undef;
10974             }
10975 0 0 0     0 if (!defined($return) && defined($score)) {
10976 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
10977             "", q{_alternation_1_of_production_1_of_rule_function}, $tracelevel)
10978             if defined $::RD_TRACE;
10979 0         0 $return = $score_return;
10980             }
10981 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
10982 0 0       0 $return = $item[$#item] unless defined $return;
10983 0 0       0 if (defined $::RD_TRACE) {
10984 0         0 Parse::RecDescent::_trace(
10985             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
10986             q{_alternation_1_of_production_1_of_rule_function}, $tracelevel
10987             );
10988 0         0 Parse::RecDescent::_trace(
10989             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
10990             Parse::RecDescent::_tracefirst($text),
10991             , q{_alternation_1_of_production_1_of_rule_function}, $tracelevel
10992             );
10993             }
10994 0         0 $_[1] = $text;
10995 0         0 return $return;
10996             }
10997              
10998             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
10999             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::identifier {
11000 0     0   0 my $thisparser = $_[0];
11001 1     1   10 use vars q{$tracelevel};
  1         3  
  1         506  
11002 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
11003 0         0 $ERRORS = 0;
11004 0         0 my $thisrule = $thisparser->{"rules"}{"identifier"};
11005              
11006 0 0       0 Parse::RecDescent::_trace(
11007             q{Trying rule: [identifier]},
11008             Parse::RecDescent::_tracefirst($_[1]),
11009             q{identifier}, $tracelevel
11010             ) if defined $::RD_TRACE;
11011              
11012 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
11013              
11014 0         0 my $score;
11015             my $score_return;
11016 0         0 my $_tok;
11017 0         0 my $return = undef;
11018 0         0 my $_matched = 0;
11019 0         0 my $commit = 0;
11020 0         0 my @item = ();
11021 0         0 my %item = ();
11022 0   0     0 my $repeating = defined($_[2]) && $_[2];
11023 0   0     0 my $_noactions = defined($_[3]) && $_[3];
11024 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
11025 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
11026 0         0 my $text;
11027 0         0 my $lastsep = "";
11028 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
11029 0         0 $expectation->at($_[1]);
11030              
11031 0         0 my $thisline;
11032 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
11033              
11034 0   0     0 while (!$_matched && !$commit) {
11035              
11036 0 0       0 Parse::RecDescent::_trace(
11037             q{Trying production: [NAME]},
11038             Parse::RecDescent::_tracefirst($_[1]),
11039             q{identifier}, $tracelevel
11040             ) if defined $::RD_TRACE;
11041 0         0 my $thisprod = $thisrule->{"prods"}[0];
11042 0         0 $text = $_[1];
11043 0         0 my $_savetext;
11044 0         0 @item = (q{identifier});
11045 0         0 %item = (__RULE__ => q{identifier});
11046 0         0 my $repcount = 0;
11047              
11048 0 0       0 Parse::RecDescent::_trace(
11049             q{Trying subrule: [NAME]},
11050             Parse::RecDescent::_tracefirst($text),
11051             q{identifier}, $tracelevel
11052             ) if defined $::RD_TRACE;
11053 0         0 if (1) {
11054 1     1   28 no strict qw{refs};
  1         3  
  1         653  
11055 0         0 $expectation->is(q{})->at($text);
11056 0 0       0 unless (defined(
11057             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME(
11058 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
11059             )
11060             )) {
11061              
11062 0 0       0 Parse::RecDescent::_trace(
11063             q{<>},
11064             Parse::RecDescent::_tracefirst($text),
11065             q{identifier}, $tracelevel
11066             ) if defined $::RD_TRACE;
11067 0         0 $expectation->failed();
11068 0         0 last;
11069             }
11070             Parse::RecDescent::_trace(
11071 0 0       0 q{>>Matched subrule: [NAME]<< (return value: [} . $_tok . q{]},
11072              
11073             Parse::RecDescent::_tracefirst($text),
11074             q{identifier},
11075             $tracelevel
11076             ) if defined $::RD_TRACE;
11077 0         0 $item{q{NAME}} = $_tok;
11078 0         0 push @item, $_tok;
11079              
11080             }
11081              
11082             Parse::RecDescent::_trace(
11083 0 0       0 q{>>Matched production: [NAME]<<},
11084             Parse::RecDescent::_tracefirst($text),
11085             q{identifier}, $tracelevel
11086             ) if defined $::RD_TRACE;
11087 0         0 $_matched = 1;
11088 0         0 last;
11089             }
11090              
11091 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
11092              
11093 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
11094 0 0       0 Parse::RecDescent::_trace(
11095             q{<>},
11096             Parse::RecDescent::_tracefirst($_[1]),
11097             q{identifier}, $tracelevel
11098             ) if defined $::RD_TRACE;
11099 0         0 return undef;
11100             }
11101 0 0 0     0 if (!defined($return) && defined($score)) {
11102 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{identifier}, $tracelevel)
11103             if defined $::RD_TRACE;
11104 0         0 $return = $score_return;
11105             }
11106 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
11107 0 0       0 $return = $item[$#item] unless defined $return;
11108 0 0       0 if (defined $::RD_TRACE) {
11109 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{identifier}, $tracelevel);
11110 0         0 Parse::RecDescent::_trace(
11111             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
11112             Parse::RecDescent::_tracefirst($text),
11113             , q{identifier}, $tracelevel
11114             );
11115             }
11116 0         0 $_[1] = $text;
11117 0         0 return $return;
11118             }
11119              
11120             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
11121             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
11122             {
11123 0     0   0 my $thisparser = $_[0];
11124 1     1   13 use vars q{$tracelevel};
  1         4  
  1         544  
11125 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
11126 0         0 $ERRORS = 0;
11127             my $thisrule = $thisparser->{"rules"}
11128 0         0 {"_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause"};
11129              
11130 0 0       0 Parse::RecDescent::_trace(
11131             q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause]},
11132             Parse::RecDescent::_tracefirst($_[1]),
11133             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
11134             $tracelevel
11135             ) if defined $::RD_TRACE;
11136              
11137 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
11138              
11139 0         0 my $score;
11140             my $score_return;
11141 0         0 my $_tok;
11142 0         0 my $return = undef;
11143 0         0 my $_matched = 0;
11144 0         0 my $commit = 0;
11145 0         0 my @item = ();
11146 0         0 my %item = ();
11147 0   0     0 my $repeating = defined($_[2]) && $_[2];
11148 0   0     0 my $_noactions = defined($_[3]) && $_[3];
11149 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
11150 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
11151 0         0 my $text;
11152 0         0 my $lastsep = "";
11153 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
11154 0         0 $expectation->at($_[1]);
11155              
11156 0         0 my $thisline;
11157 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
11158              
11159 0   0     0 while (!$_matched && !$commit) {
11160              
11161 0 0       0 Parse::RecDescent::_trace(
11162             q{Trying production: [asc_option]},
11163             Parse::RecDescent::_tracefirst($_[1]),
11164             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
11165             $tracelevel
11166             ) if defined $::RD_TRACE;
11167 0         0 my $thisprod = $thisrule->{"prods"}[0];
11168 0         0 $text = $_[1];
11169 0         0 my $_savetext;
11170 0         0 @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause});
11171 0         0 %item = (__RULE__ =>
11172             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause});
11173 0         0 my $repcount = 0;
11174              
11175 0 0       0 Parse::RecDescent::_trace(
11176             q{Trying subrule: [asc_option]},
11177             Parse::RecDescent::_tracefirst($text),
11178             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
11179             $tracelevel
11180             ) if defined $::RD_TRACE;
11181 0         0 if (1) {
11182 1     1   11 no strict qw{refs};
  1         2  
  1         473  
11183 0         0 $expectation->is(q{})->at($text);
11184 0 0       0 unless (defined(
11185             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::asc_option(
11186 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
11187             )
11188             )) {
11189              
11190 0 0       0 Parse::RecDescent::_trace(
11191             q{<>},
11192             Parse::RecDescent::_tracefirst($text),
11193             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
11194             $tracelevel
11195             ) if defined $::RD_TRACE;
11196 0         0 $expectation->failed();
11197 0         0 last;
11198             }
11199             Parse::RecDescent::_trace(
11200 0 0       0 q{>>Matched subrule: [asc_option]<< (return value: [} . $_tok . q{]},
11201              
11202             Parse::RecDescent::_tracefirst($text),
11203             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
11204             $tracelevel
11205             ) if defined $::RD_TRACE;
11206 0         0 $item{q{asc_option}} = $_tok;
11207 0         0 push @item, $_tok;
11208              
11209             }
11210              
11211             Parse::RecDescent::_trace(
11212 0 0       0 q{>>Matched production: [asc_option]<<},
11213             Parse::RecDescent::_tracefirst($text),
11214             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
11215             $tracelevel
11216             ) if defined $::RD_TRACE;
11217 0         0 $_matched = 1;
11218 0         0 last;
11219             }
11220              
11221 0   0     0 while (!$_matched && !$commit) {
11222              
11223 0 0       0 Parse::RecDescent::_trace(
11224             q{Trying production: [desc_option]},
11225             Parse::RecDescent::_tracefirst($_[1]),
11226             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
11227             $tracelevel
11228             ) if defined $::RD_TRACE;
11229 0         0 my $thisprod = $thisrule->{"prods"}[1];
11230 0         0 $text = $_[1];
11231 0         0 my $_savetext;
11232 0         0 @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause});
11233 0         0 %item = (__RULE__ =>
11234             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause});
11235 0         0 my $repcount = 0;
11236              
11237 0 0       0 Parse::RecDescent::_trace(
11238             q{Trying subrule: [desc_option]},
11239             Parse::RecDescent::_tracefirst($text),
11240             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
11241             $tracelevel
11242             ) if defined $::RD_TRACE;
11243 0         0 if (1) {
11244 1     1   10 no strict qw{refs};
  1         3  
  1         763  
11245 0         0 $expectation->is(q{})->at($text);
11246 0 0       0 unless (defined(
11247             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::desc_option(
11248 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
11249             )
11250             )) {
11251              
11252 0 0       0 Parse::RecDescent::_trace(
11253             q{<>},
11254             Parse::RecDescent::_tracefirst($text),
11255             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
11256             $tracelevel
11257             ) if defined $::RD_TRACE;
11258 0         0 $expectation->failed();
11259 0         0 last;
11260             }
11261             Parse::RecDescent::_trace(
11262 0 0       0 q{>>Matched subrule: [desc_option]<< (return value: [} . $_tok . q{]},
11263              
11264             Parse::RecDescent::_tracefirst($text),
11265             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
11266             $tracelevel
11267             ) if defined $::RD_TRACE;
11268 0         0 $item{q{desc_option}} = $_tok;
11269 0         0 push @item, $_tok;
11270              
11271             }
11272              
11273             Parse::RecDescent::_trace(
11274 0 0       0 q{>>Matched production: [desc_option]<<},
11275             Parse::RecDescent::_tracefirst($text),
11276             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
11277             $tracelevel
11278             ) if defined $::RD_TRACE;
11279 0         0 $_matched = 1;
11280 0         0 last;
11281             }
11282              
11283 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
11284              
11285 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
11286 0 0       0 Parse::RecDescent::_trace(
11287             q{<>},
11288             Parse::RecDescent::_tracefirst($_[1]),
11289             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
11290             $tracelevel
11291             ) if defined $::RD_TRACE;
11292 0         0 return undef;
11293             }
11294 0 0 0     0 if (!defined($return) && defined($score)) {
11295 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
11296             "", q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
11297             $tracelevel)
11298             if defined $::RD_TRACE;
11299 0         0 $return = $score_return;
11300             }
11301 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
11302 0 0       0 $return = $item[$#item] unless defined $return;
11303 0 0       0 if (defined $::RD_TRACE) {
11304 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
11305             "", q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
11306             $tracelevel);
11307 0         0 Parse::RecDescent::_trace(
11308             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
11309             Parse::RecDescent::_tracefirst($text),
11310             ,
11311             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
11312             $tracelevel
11313             );
11314             }
11315 0         0 $_[1] = $text;
11316 0         0 return $return;
11317             }
11318              
11319             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
11320             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::result_expression {
11321 0     0   0 my $thisparser = $_[0];
11322 1     1   12 use vars q{$tracelevel};
  1         3  
  1         446  
11323 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
11324 0         0 $ERRORS = 0;
11325 0         0 my $thisrule = $thisparser->{"rules"}{"result_expression"};
11326              
11327 0 0       0 Parse::RecDescent::_trace(
11328             q{Trying rule: [result_expression]},
11329             Parse::RecDescent::_tracefirst($_[1]),
11330             q{result_expression}, $tracelevel
11331             ) if defined $::RD_TRACE;
11332              
11333 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
11334              
11335 0         0 my $score;
11336             my $score_return;
11337 0         0 my $_tok;
11338 0         0 my $return = undef;
11339 0         0 my $_matched = 0;
11340 0         0 my $commit = 0;
11341 0         0 my @item = ();
11342 0         0 my %item = ();
11343 0   0     0 my $repeating = defined($_[2]) && $_[2];
11344 0   0     0 my $_noactions = defined($_[3]) && $_[3];
11345 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
11346 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
11347 0         0 my $text;
11348 0         0 my $lastsep = "";
11349 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
11350 0         0 $expectation->at($_[1]);
11351              
11352 0         0 my $thisline;
11353 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
11354              
11355 0   0     0 while (!$_matched && !$commit) {
11356              
11357 0 0       0 Parse::RecDescent::_trace(
11358             q{Trying production: [expression]},
11359             Parse::RecDescent::_tracefirst($_[1]),
11360             q{result_expression}, $tracelevel
11361             ) if defined $::RD_TRACE;
11362 0         0 my $thisprod = $thisrule->{"prods"}[0];
11363 0         0 $text = $_[1];
11364 0         0 my $_savetext;
11365 0         0 @item = (q{result_expression});
11366 0         0 %item = (__RULE__ => q{result_expression});
11367 0         0 my $repcount = 0;
11368              
11369 0 0       0 Parse::RecDescent::_trace(
11370             q{Trying subrule: [expression]},
11371             Parse::RecDescent::_tracefirst($text),
11372             q{result_expression}, $tracelevel
11373             ) if defined $::RD_TRACE;
11374 0         0 if (1) {
11375 1     1   9 no strict qw{refs};
  1         3  
  1         678  
11376 0         0 $expectation->is(q{})->at($text);
11377 0 0       0 unless (defined(
11378             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression(
11379 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
11380             )
11381             )) {
11382              
11383 0 0       0 Parse::RecDescent::_trace(
11384             q{<>},
11385             Parse::RecDescent::_tracefirst($text),
11386             q{result_expression}, $tracelevel
11387             ) if defined $::RD_TRACE;
11388 0         0 $expectation->failed();
11389 0         0 last;
11390             }
11391             Parse::RecDescent::_trace(
11392 0 0       0 q{>>Matched subrule: [expression]<< (return value: [} . $_tok . q{]},
11393              
11394             Parse::RecDescent::_tracefirst($text),
11395             q{result_expression},
11396             $tracelevel
11397             ) if defined $::RD_TRACE;
11398 0         0 $item{q{expression}} = $_tok;
11399 0         0 push @item, $_tok;
11400              
11401             }
11402              
11403             Parse::RecDescent::_trace(
11404 0 0       0 q{>>Matched production: [expression]<<},
11405             Parse::RecDescent::_tracefirst($text),
11406             q{result_expression}, $tracelevel
11407             ) if defined $::RD_TRACE;
11408 0         0 $_matched = 1;
11409 0         0 last;
11410             }
11411              
11412 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
11413              
11414 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
11415 0 0       0 Parse::RecDescent::_trace(
11416             q{<>},
11417             Parse::RecDescent::_tracefirst($_[1]),
11418             q{result_expression}, $tracelevel
11419             ) if defined $::RD_TRACE;
11420 0         0 return undef;
11421             }
11422 0 0 0     0 if (!defined($return) && defined($score)) {
11423 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{result_expression}, $tracelevel)
11424             if defined $::RD_TRACE;
11425 0         0 $return = $score_return;
11426             }
11427 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
11428 0 0       0 $return = $item[$#item] unless defined $return;
11429 0 0       0 if (defined $::RD_TRACE) {
11430 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
11431             "", q{result_expression}, $tracelevel);
11432 0         0 Parse::RecDescent::_trace(
11433             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
11434             Parse::RecDescent::_tracefirst($text),
11435             , q{result_expression}, $tracelevel
11436             );
11437             }
11438 0         0 $_[1] = $text;
11439 0         0 return $return;
11440             }
11441              
11442             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
11443             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::scoped_reference_expression {
11444 0     0   0 my $thisparser = $_[0];
11445 1     1   10 use vars q{$tracelevel};
  1         3  
  1         467  
11446 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
11447 0         0 $ERRORS = 0;
11448 0         0 my $thisrule = $thisparser->{"rules"}{"scoped_reference_expression"};
11449              
11450 0 0       0 Parse::RecDescent::_trace(
11451             q{Trying rule: [scoped_reference_expression]},
11452             Parse::RecDescent::_tracefirst($_[1]),
11453             q{scoped_reference_expression}, $tracelevel
11454             ) if defined $::RD_TRACE;
11455              
11456 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
11457              
11458 0         0 my $score;
11459             my $score_return;
11460 0         0 my $_tok;
11461 0         0 my $return = undef;
11462 0         0 my $_matched = 0;
11463 0         0 my $commit = 0;
11464 0         0 my @item = ();
11465 0         0 my %item = ();
11466 0   0     0 my $repeating = defined($_[2]) && $_[2];
11467 0   0     0 my $_noactions = defined($_[3]) && $_[3];
11468 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
11469 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
11470 0         0 my $text;
11471 0         0 my $lastsep = "";
11472 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
11473 0         0 $expectation->at($_[1]);
11474              
11475 0         0 my $thisline;
11476 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
11477              
11478 0   0     0 while (!$_matched && !$commit) {
11479              
11480 0 0       0 Parse::RecDescent::_trace(
11481             q{Trying production: [expression]},
11482             Parse::RecDescent::_tracefirst($_[1]),
11483             q{scoped_reference_expression}, $tracelevel
11484             ) if defined $::RD_TRACE;
11485 0         0 my $thisprod = $thisrule->{"prods"}[0];
11486 0         0 $text = $_[1];
11487 0         0 my $_savetext;
11488 0         0 @item = (q{scoped_reference_expression});
11489 0         0 %item = (__RULE__ => q{scoped_reference_expression});
11490 0         0 my $repcount = 0;
11491              
11492 0 0       0 Parse::RecDescent::_trace(
11493             q{Trying subrule: [expression]},
11494             Parse::RecDescent::_tracefirst($text),
11495             q{scoped_reference_expression}, $tracelevel
11496             ) if defined $::RD_TRACE;
11497 0         0 if (1) {
11498 1     1   9 no strict qw{refs};
  1         2  
  1         768  
11499 0         0 $expectation->is(q{})->at($text);
11500 0 0       0 unless (defined(
11501             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression(
11502 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
11503             )
11504             )) {
11505              
11506 0 0       0 Parse::RecDescent::_trace(
11507             q{<>},
11508             Parse::RecDescent::_tracefirst($text),
11509             q{scoped_reference_expression}, $tracelevel
11510             ) if defined $::RD_TRACE;
11511 0         0 $expectation->failed();
11512 0         0 last;
11513             }
11514             Parse::RecDescent::_trace(
11515 0 0       0 q{>>Matched subrule: [expression]<< (return value: [} . $_tok . q{]},
11516              
11517             Parse::RecDescent::_tracefirst($text),
11518             q{scoped_reference_expression},
11519             $tracelevel
11520             ) if defined $::RD_TRACE;
11521 0         0 $item{q{expression}} = $_tok;
11522 0         0 push @item, $_tok;
11523              
11524             }
11525              
11526             Parse::RecDescent::_trace(
11527 0 0       0 q{Trying action},
11528             Parse::RecDescent::_tracefirst($text),
11529             q{scoped_reference_expression}, $tracelevel
11530             ) if defined $::RD_TRACE;
11531              
11532 0 0       0 $_tok = ($_noactions) ? 0 : do { # scoped, reference
11533             };
11534 0 0       0 unless (defined $_tok) {
11535 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
11536             if defined $::RD_TRACE;
11537 0         0 last;
11538             }
11539 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])},
11540             Parse::RecDescent::_tracefirst($text))
11541             if defined $::RD_TRACE;
11542 0         0 push @item, $_tok;
11543 0         0 $item{__ACTION1__} = $_tok;
11544              
11545 0 0       0 Parse::RecDescent::_trace(
11546             q{>>Matched production: [expression]<<},
11547             Parse::RecDescent::_tracefirst($text),
11548             q{scoped_reference_expression}, $tracelevel
11549             ) if defined $::RD_TRACE;
11550 0         0 $_matched = 1;
11551 0         0 last;
11552             }
11553              
11554 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
11555              
11556 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
11557 0 0       0 Parse::RecDescent::_trace(
11558             q{<>},
11559             Parse::RecDescent::_tracefirst($_[1]),
11560             q{scoped_reference_expression}, $tracelevel
11561             ) if defined $::RD_TRACE;
11562 0         0 return undef;
11563             }
11564 0 0 0     0 if (!defined($return) && defined($score)) {
11565 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{scoped_reference_expression}, $tracelevel)
11566             if defined $::RD_TRACE;
11567 0         0 $return = $score_return;
11568             }
11569 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
11570 0 0       0 $return = $item[$#item] unless defined $return;
11571 0 0       0 if (defined $::RD_TRACE) {
11572 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
11573             "", q{scoped_reference_expression}, $tracelevel);
11574 0         0 Parse::RecDescent::_trace(
11575             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
11576             Parse::RecDescent::_tracefirst($text),
11577             , q{scoped_reference_expression}, $tracelevel
11578             );
11579             }
11580 0         0 $_[1] = $text;
11581 0         0 return $return;
11582             }
11583              
11584             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
11585             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification
11586             {
11587 0     0   0 my $thisparser = $_[0];
11588 1     1   10 use vars q{$tracelevel};
  1         3  
  1         565  
11589 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
11590 0         0 $ERRORS = 0;
11591             my $thisrule = $thisparser->{"rules"}
11592 0         0 {"_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification"};
11593              
11594 0 0       0 Parse::RecDescent::_trace(
11595             q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification]},
11596             Parse::RecDescent::_tracefirst($_[1]),
11597             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
11598             $tracelevel
11599             ) if defined $::RD_TRACE;
11600              
11601 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
11602              
11603 0         0 my $score;
11604             my $score_return;
11605 0         0 my $_tok;
11606 0         0 my $return = undef;
11607 0         0 my $_matched = 0;
11608 0         0 my $commit = 0;
11609 0         0 my @item = ();
11610 0         0 my %item = ();
11611 0   0     0 my $repeating = defined($_[2]) && $_[2];
11612 0   0     0 my $_noactions = defined($_[3]) && $_[3];
11613 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
11614 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
11615 0         0 my $text;
11616 0         0 my $lastsep = "";
11617 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
11618 0         0 $expectation->at($_[1]);
11619              
11620 0         0 my $thisline;
11621 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
11622              
11623 0   0     0 while (!$_matched && !$commit) {
11624              
11625 0 0       0 Parse::RecDescent::_trace(
11626             q{Trying production: [typed_table_name]},
11627             Parse::RecDescent::_tracefirst($_[1]),
11628             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
11629             $tracelevel
11630             ) if defined $::RD_TRACE;
11631 0         0 my $thisprod = $thisrule->{"prods"}[0];
11632 0         0 $text = $_[1];
11633 0         0 my $_savetext;
11634 0         0 @item = (q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification});
11635 0         0 %item = (__RULE__ =>
11636             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification});
11637 0         0 my $repcount = 0;
11638              
11639 0 0       0 Parse::RecDescent::_trace(
11640             q{Trying subrule: [typed_table_name]},
11641             Parse::RecDescent::_tracefirst($text),
11642             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
11643             $tracelevel
11644             ) if defined $::RD_TRACE;
11645 0         0 if (1) {
11646 1     1   10 no strict qw{refs};
  1         2  
  1         447  
11647 0         0 $expectation->is(q{})->at($text);
11648 0 0       0 unless (defined(
11649             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::typed_table_name(
11650 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
11651             )
11652             )) {
11653              
11654 0 0       0 Parse::RecDescent::_trace(
11655             q{<>},
11656             Parse::RecDescent::_tracefirst($text),
11657             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
11658             $tracelevel
11659             ) if defined $::RD_TRACE;
11660 0         0 $expectation->failed();
11661 0         0 last;
11662             }
11663             Parse::RecDescent::_trace(
11664 0 0       0 q{>>Matched subrule: [typed_table_name]<< (return value: [} . $_tok . q{]},
11665              
11666             Parse::RecDescent::_tracefirst($text),
11667             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
11668             $tracelevel
11669             ) if defined $::RD_TRACE;
11670 0         0 $item{q{typed_table_name}} = $_tok;
11671 0         0 push @item, $_tok;
11672              
11673             }
11674              
11675             Parse::RecDescent::_trace(
11676 0 0       0 q{>>Matched production: [typed_table_name]<<},
11677             Parse::RecDescent::_tracefirst($text),
11678             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
11679             $tracelevel
11680             ) if defined $::RD_TRACE;
11681 0         0 $_matched = 1;
11682 0         0 last;
11683             }
11684              
11685 0   0     0 while (!$_matched && !$commit) {
11686              
11687 0 0       0 Parse::RecDescent::_trace(
11688             q{Trying production: [typed_view_name]},
11689             Parse::RecDescent::_tracefirst($_[1]),
11690             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
11691             $tracelevel
11692             ) if defined $::RD_TRACE;
11693 0         0 my $thisprod = $thisrule->{"prods"}[1];
11694 0         0 $text = $_[1];
11695 0         0 my $_savetext;
11696 0         0 @item = (q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification});
11697 0         0 %item = (__RULE__ =>
11698             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification});
11699 0         0 my $repcount = 0;
11700              
11701 0 0       0 Parse::RecDescent::_trace(
11702             q{Trying subrule: [typed_view_name]},
11703             Parse::RecDescent::_tracefirst($text),
11704             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
11705             $tracelevel
11706             ) if defined $::RD_TRACE;
11707 0         0 if (1) {
11708 1     1   9 no strict qw{refs};
  1         4  
  1         770  
11709 0         0 $expectation->is(q{})->at($text);
11710 0 0       0 unless (defined(
11711             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::typed_view_name(
11712 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
11713             )
11714             )) {
11715              
11716 0 0       0 Parse::RecDescent::_trace(
11717             q{<>},
11718             Parse::RecDescent::_tracefirst($text),
11719             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
11720             $tracelevel
11721             ) if defined $::RD_TRACE;
11722 0         0 $expectation->failed();
11723 0         0 last;
11724             }
11725             Parse::RecDescent::_trace(
11726 0 0       0 q{>>Matched subrule: [typed_view_name]<< (return value: [} . $_tok . q{]},
11727              
11728             Parse::RecDescent::_tracefirst($text),
11729             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
11730             $tracelevel
11731             ) if defined $::RD_TRACE;
11732 0         0 $item{q{typed_view_name}} = $_tok;
11733 0         0 push @item, $_tok;
11734              
11735             }
11736              
11737             Parse::RecDescent::_trace(
11738 0 0       0 q{>>Matched production: [typed_view_name]<<},
11739             Parse::RecDescent::_tracefirst($text),
11740             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
11741             $tracelevel
11742             ) if defined $::RD_TRACE;
11743 0         0 $_matched = 1;
11744 0         0 last;
11745             }
11746              
11747 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
11748              
11749 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
11750 0 0       0 Parse::RecDescent::_trace(
11751             q{<>},
11752             Parse::RecDescent::_tracefirst($_[1]),
11753             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
11754             $tracelevel
11755             ) if defined $::RD_TRACE;
11756 0         0 return undef;
11757             }
11758 0 0 0     0 if (!defined($return) && defined($score)) {
11759 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
11760             "", q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
11761             $tracelevel)
11762             if defined $::RD_TRACE;
11763 0         0 $return = $score_return;
11764             }
11765 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
11766 0 0       0 $return = $item[$#item] unless defined $return;
11767 0 0       0 if (defined $::RD_TRACE) {
11768 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
11769             "", q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
11770             $tracelevel);
11771 0         0 Parse::RecDescent::_trace(
11772             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
11773             Parse::RecDescent::_tracefirst($text),
11774             ,
11775             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
11776             $tracelevel
11777             );
11778             }
11779 0         0 $_[1] = $text;
11780 0         0 return $return;
11781             }
11782              
11783             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
11784             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::when_clause {
11785 0     0   0 my $thisparser = $_[0];
11786 1     1   10 use vars q{$tracelevel};
  1         3  
  1         1003  
11787 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
11788 0         0 $ERRORS = 0;
11789 0         0 my $thisrule = $thisparser->{"rules"}{"when_clause"};
11790              
11791 0 0       0 Parse::RecDescent::_trace(
11792             q{Trying rule: [when_clause]},
11793             Parse::RecDescent::_tracefirst($_[1]),
11794             q{when_clause}, $tracelevel
11795             ) if defined $::RD_TRACE;
11796              
11797 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
11798              
11799 0         0 my $score;
11800             my $score_return;
11801 0         0 my $_tok;
11802 0         0 my $return = undef;
11803 0         0 my $_matched = 0;
11804 0         0 my $commit = 0;
11805 0         0 my @item = ();
11806 0         0 my %item = ();
11807 0   0     0 my $repeating = defined($_[2]) && $_[2];
11808 0   0     0 my $_noactions = defined($_[3]) && $_[3];
11809 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
11810 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
11811 0         0 my $text;
11812 0         0 my $lastsep = "";
11813 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
11814 0         0 $expectation->at($_[1]);
11815              
11816 0         0 my $thisline;
11817 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
11818              
11819 0   0     0 while (!$_matched && !$commit) {
11820              
11821 0 0       0 Parse::RecDescent::_trace(
11822             q{Trying production: [/WHEN/i '(' search_condition ')']},
11823             Parse::RecDescent::_tracefirst($_[1]),
11824             q{when_clause}, $tracelevel
11825             ) if defined $::RD_TRACE;
11826 0         0 my $thisprod = $thisrule->{"prods"}[0];
11827 0         0 $text = $_[1];
11828 0         0 my $_savetext;
11829 0         0 @item = (q{when_clause});
11830 0         0 %item = (__RULE__ => q{when_clause});
11831 0         0 my $repcount = 0;
11832              
11833 0 0       0 Parse::RecDescent::_trace(
11834             q{Trying terminal: [/WHEN/i]},
11835             Parse::RecDescent::_tracefirst($text),
11836             q{when_clause}, $tracelevel
11837             ) if defined $::RD_TRACE;
11838 0         0 $lastsep = "";
11839 0         0 $expectation->is(q{})->at($text);
11840              
11841 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
11842             and $text =~ s/\A(?:WHEN)//i) {
11843              
11844 0         0 $expectation->failed();
11845 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
11846             if defined $::RD_TRACE;
11847              
11848 0         0 last;
11849             }
11850 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
11851             Parse::RecDescent::_tracefirst($text))
11852             if defined $::RD_TRACE;
11853 0         0 push @item, $item{__PATTERN1__} = $&;
11854              
11855 0 0       0 Parse::RecDescent::_trace(
11856             q{Trying terminal: ['(']},
11857             Parse::RecDescent::_tracefirst($text),
11858             q{when_clause}, $tracelevel
11859             ) if defined $::RD_TRACE;
11860 0         0 $lastsep = "";
11861 0         0 $expectation->is(q{'('})->at($text);
11862              
11863 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
11864             and $text =~ s/\A\(//) {
11865              
11866 0         0 $expectation->failed();
11867 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
11868             if defined $::RD_TRACE;
11869 0         0 last;
11870             }
11871 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
11872             Parse::RecDescent::_tracefirst($text))
11873             if defined $::RD_TRACE;
11874 0         0 push @item, $item{__STRING1__} = $&;
11875              
11876 0 0       0 Parse::RecDescent::_trace(
11877             q{Trying subrule: [search_condition]},
11878             Parse::RecDescent::_tracefirst($text),
11879             q{when_clause}, $tracelevel
11880             ) if defined $::RD_TRACE;
11881 0         0 if (1) {
11882 1     1   11 no strict qw{refs};
  1         3  
  1         1065  
11883 0         0 $expectation->is(q{search_condition})->at($text);
11884 0 0       0 unless (defined(
11885             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition(
11886 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
11887             )
11888             )) {
11889              
11890 0 0       0 Parse::RecDescent::_trace(
11891             q{<>},
11892             Parse::RecDescent::_tracefirst($text),
11893             q{when_clause}, $tracelevel
11894             ) if defined $::RD_TRACE;
11895 0         0 $expectation->failed();
11896 0         0 last;
11897             }
11898             Parse::RecDescent::_trace(
11899 0 0       0 q{>>Matched subrule: [search_condition]<< (return value: [} . $_tok . q{]},
11900              
11901             Parse::RecDescent::_tracefirst($text),
11902             q{when_clause},
11903             $tracelevel
11904             ) if defined $::RD_TRACE;
11905 0         0 $item{q{search_condition}} = $_tok;
11906 0         0 push @item, $_tok;
11907              
11908             }
11909              
11910             Parse::RecDescent::_trace(
11911 0 0       0 q{Trying terminal: [')']},
11912             Parse::RecDescent::_tracefirst($text),
11913             q{when_clause}, $tracelevel
11914             ) if defined $::RD_TRACE;
11915 0         0 $lastsep = "";
11916 0         0 $expectation->is(q{')'})->at($text);
11917              
11918 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
11919             and $text =~ s/\A\)//) {
11920              
11921 0         0 $expectation->failed();
11922 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
11923             if defined $::RD_TRACE;
11924 0         0 last;
11925             }
11926 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
11927             Parse::RecDescent::_tracefirst($text))
11928             if defined $::RD_TRACE;
11929 0         0 push @item, $item{__STRING2__} = $&;
11930              
11931 0 0       0 Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{when_clause}, $tracelevel)
11932             if defined $::RD_TRACE;
11933              
11934 0 0       0 $_tok = ($_noactions) ? 0 : do { $return = $item[3] };
  0         0  
11935 0 0       0 unless (defined $_tok) {
11936 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
11937             if defined $::RD_TRACE;
11938 0         0 last;
11939             }
11940 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])},
11941             Parse::RecDescent::_tracefirst($text))
11942             if defined $::RD_TRACE;
11943 0         0 push @item, $_tok;
11944 0         0 $item{__ACTION1__} = $_tok;
11945              
11946 0 0       0 Parse::RecDescent::_trace(
11947             q{>>Matched production: [/WHEN/i '(' search_condition ')']<<},
11948             Parse::RecDescent::_tracefirst($text),
11949             q{when_clause}, $tracelevel
11950             ) if defined $::RD_TRACE;
11951 0         0 $_matched = 1;
11952 0         0 last;
11953             }
11954              
11955 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
11956              
11957 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
11958 0 0       0 Parse::RecDescent::_trace(
11959             q{<>},
11960             Parse::RecDescent::_tracefirst($_[1]),
11961             q{when_clause}, $tracelevel
11962             ) if defined $::RD_TRACE;
11963 0         0 return undef;
11964             }
11965 0 0 0     0 if (!defined($return) && defined($score)) {
11966 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{when_clause}, $tracelevel)
11967             if defined $::RD_TRACE;
11968 0         0 $return = $score_return;
11969             }
11970 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
11971 0 0       0 $return = $item[$#item] unless defined $return;
11972 0 0       0 if (defined $::RD_TRACE) {
11973 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{when_clause},
11974             $tracelevel);
11975 0         0 Parse::RecDescent::_trace(
11976             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
11977             Parse::RecDescent::_tracefirst($text),
11978             , q{when_clause}, $tracelevel
11979             );
11980             }
11981 0         0 $_[1] = $text;
11982 0         0 return $return;
11983             }
11984              
11985             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
11986             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_asc_option {
11987 0     0   0 my $thisparser = $_[0];
11988 1     1   11 use vars q{$tracelevel};
  1         3  
  1         1614  
11989 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
11990 0         0 $ERRORS = 0;
11991 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_asc_option"};
11992              
11993 0 0       0 Parse::RecDescent::_trace(
11994             q{Trying rule: [_alternation_1_of_production_1_of_rule_asc_option]},
11995             Parse::RecDescent::_tracefirst($_[1]),
11996             q{_alternation_1_of_production_1_of_rule_asc_option}, $tracelevel
11997             ) if defined $::RD_TRACE;
11998              
11999 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
12000              
12001 0         0 my $score;
12002             my $score_return;
12003 0         0 my $_tok;
12004 0         0 my $return = undef;
12005 0         0 my $_matched = 0;
12006 0         0 my $commit = 0;
12007 0         0 my @item = ();
12008 0         0 my %item = ();
12009 0   0     0 my $repeating = defined($_[2]) && $_[2];
12010 0   0     0 my $_noactions = defined($_[3]) && $_[3];
12011 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
12012 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
12013 0         0 my $text;
12014 0         0 my $lastsep = "";
12015 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
12016 0         0 $expectation->at($_[1]);
12017              
12018 0         0 my $thisline;
12019 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
12020              
12021 0   0     0 while (!$_matched && !$commit) {
12022              
12023 0 0       0 Parse::RecDescent::_trace(
12024             q{Trying production: [/NULLS\\s+FIRST/i]},
12025             Parse::RecDescent::_tracefirst($_[1]),
12026             q{_alternation_1_of_production_1_of_rule_asc_option}, $tracelevel
12027             ) if defined $::RD_TRACE;
12028 0         0 my $thisprod = $thisrule->{"prods"}[0];
12029 0         0 $text = $_[1];
12030 0         0 my $_savetext;
12031 0         0 @item = (q{_alternation_1_of_production_1_of_rule_asc_option});
12032 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_asc_option});
12033 0         0 my $repcount = 0;
12034              
12035 0 0       0 Parse::RecDescent::_trace(
12036             q{Trying terminal: [/NULLS\\s+FIRST/i]},
12037             Parse::RecDescent::_tracefirst($text),
12038             q{_alternation_1_of_production_1_of_rule_asc_option}, $tracelevel
12039             ) if defined $::RD_TRACE;
12040 0         0 $lastsep = "";
12041 0         0 $expectation->is(q{})->at($text);
12042              
12043 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
12044             and $text =~ s/\A(?:NULLS\s+FIRST)//i) {
12045              
12046 0         0 $expectation->failed();
12047 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
12048             if defined $::RD_TRACE;
12049              
12050 0         0 last;
12051             }
12052 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
12053             Parse::RecDescent::_tracefirst($text))
12054             if defined $::RD_TRACE;
12055 0         0 push @item, $item{__PATTERN1__} = $&;
12056              
12057 0 0       0 Parse::RecDescent::_trace(
12058             q{>>Matched production: [/NULLS\\s+FIRST/i]<<},
12059             Parse::RecDescent::_tracefirst($text),
12060             q{_alternation_1_of_production_1_of_rule_asc_option}, $tracelevel
12061             ) if defined $::RD_TRACE;
12062 0         0 $_matched = 1;
12063 0         0 last;
12064             }
12065              
12066 0   0     0 while (!$_matched && !$commit) {
12067              
12068 0 0       0 Parse::RecDescent::_trace(
12069             q{Trying production: [/NULLS\\s+LAST/i]},
12070             Parse::RecDescent::_tracefirst($_[1]),
12071             q{_alternation_1_of_production_1_of_rule_asc_option}, $tracelevel
12072             ) if defined $::RD_TRACE;
12073 0         0 my $thisprod = $thisrule->{"prods"}[1];
12074 0         0 $text = $_[1];
12075 0         0 my $_savetext;
12076 0         0 @item = (q{_alternation_1_of_production_1_of_rule_asc_option});
12077 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_asc_option});
12078 0         0 my $repcount = 0;
12079              
12080 0 0       0 Parse::RecDescent::_trace(
12081             q{Trying terminal: [/NULLS\\s+LAST/i]},
12082             Parse::RecDescent::_tracefirst($text),
12083             q{_alternation_1_of_production_1_of_rule_asc_option}, $tracelevel
12084             ) if defined $::RD_TRACE;
12085 0         0 $lastsep = "";
12086 0         0 $expectation->is(q{})->at($text);
12087              
12088 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
12089             and $text =~ s/\A(?:NULLS\s+LAST)//i) {
12090              
12091 0         0 $expectation->failed();
12092 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
12093             if defined $::RD_TRACE;
12094              
12095 0         0 last;
12096             }
12097 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
12098             Parse::RecDescent::_tracefirst($text))
12099             if defined $::RD_TRACE;
12100 0         0 push @item, $item{__PATTERN1__} = $&;
12101              
12102 0 0       0 Parse::RecDescent::_trace(
12103             q{>>Matched production: [/NULLS\\s+LAST/i]<<},
12104             Parse::RecDescent::_tracefirst($text),
12105             q{_alternation_1_of_production_1_of_rule_asc_option}, $tracelevel
12106             ) if defined $::RD_TRACE;
12107 0         0 $_matched = 1;
12108 0         0 last;
12109             }
12110              
12111 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
12112              
12113 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
12114 0 0       0 Parse::RecDescent::_trace(
12115             q{<>},
12116             Parse::RecDescent::_tracefirst($_[1]),
12117             q{_alternation_1_of_production_1_of_rule_asc_option}, $tracelevel
12118             ) if defined $::RD_TRACE;
12119 0         0 return undef;
12120             }
12121 0 0 0     0 if (!defined($return) && defined($score)) {
12122 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
12123             "", q{_alternation_1_of_production_1_of_rule_asc_option}, $tracelevel)
12124             if defined $::RD_TRACE;
12125 0         0 $return = $score_return;
12126             }
12127 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
12128 0 0       0 $return = $item[$#item] unless defined $return;
12129 0 0       0 if (defined $::RD_TRACE) {
12130 0         0 Parse::RecDescent::_trace(
12131             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
12132             q{_alternation_1_of_production_1_of_rule_asc_option}, $tracelevel
12133             );
12134 0         0 Parse::RecDescent::_trace(
12135             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
12136             Parse::RecDescent::_tracefirst($text),
12137             , q{_alternation_1_of_production_1_of_rule_asc_option}, $tracelevel
12138             );
12139             }
12140 0         0 $_[1] = $text;
12141 0         0 return $return;
12142             }
12143              
12144             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
12145             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sequence_name {
12146 0     0   0 my $thisparser = $_[0];
12147 1     1   12 use vars q{$tracelevel};
  1         2  
  1         451  
12148 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
12149 0         0 $ERRORS = 0;
12150 0         0 my $thisrule = $thisparser->{"rules"}{"sequence_name"};
12151              
12152 0 0       0 Parse::RecDescent::_trace(
12153             q{Trying rule: [sequence_name]},
12154             Parse::RecDescent::_tracefirst($_[1]),
12155             q{sequence_name}, $tracelevel
12156             ) if defined $::RD_TRACE;
12157              
12158 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
12159              
12160 0         0 my $score;
12161             my $score_return;
12162 0         0 my $_tok;
12163 0         0 my $return = undef;
12164 0         0 my $_matched = 0;
12165 0         0 my $commit = 0;
12166 0         0 my @item = ();
12167 0         0 my %item = ();
12168 0   0     0 my $repeating = defined($_[2]) && $_[2];
12169 0   0     0 my $_noactions = defined($_[3]) && $_[3];
12170 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
12171 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
12172 0         0 my $text;
12173 0         0 my $lastsep = "";
12174 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
12175 0         0 $expectation->at($_[1]);
12176              
12177 0         0 my $thisline;
12178 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
12179              
12180 0   0     0 while (!$_matched && !$commit) {
12181              
12182 0 0       0 Parse::RecDescent::_trace(
12183             q{Trying production: [NAME]},
12184             Parse::RecDescent::_tracefirst($_[1]),
12185             q{sequence_name}, $tracelevel
12186             ) if defined $::RD_TRACE;
12187 0         0 my $thisprod = $thisrule->{"prods"}[0];
12188 0         0 $text = $_[1];
12189 0         0 my $_savetext;
12190 0         0 @item = (q{sequence_name});
12191 0         0 %item = (__RULE__ => q{sequence_name});
12192 0         0 my $repcount = 0;
12193              
12194 0 0       0 Parse::RecDescent::_trace(
12195             q{Trying subrule: [NAME]},
12196             Parse::RecDescent::_tracefirst($text),
12197             q{sequence_name}, $tracelevel
12198             ) if defined $::RD_TRACE;
12199 0         0 if (1) {
12200 1     1   9 no strict qw{refs};
  1         2  
  1         663  
12201 0         0 $expectation->is(q{})->at($text);
12202 0 0       0 unless (defined(
12203             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME(
12204 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
12205             )
12206             )) {
12207              
12208 0 0       0 Parse::RecDescent::_trace(
12209             q{<>},
12210             Parse::RecDescent::_tracefirst($text),
12211             q{sequence_name}, $tracelevel
12212             ) if defined $::RD_TRACE;
12213 0         0 $expectation->failed();
12214 0         0 last;
12215             }
12216             Parse::RecDescent::_trace(
12217 0 0       0 q{>>Matched subrule: [NAME]<< (return value: [} . $_tok . q{]},
12218              
12219             Parse::RecDescent::_tracefirst($text),
12220             q{sequence_name},
12221             $tracelevel
12222             ) if defined $::RD_TRACE;
12223 0         0 $item{q{NAME}} = $_tok;
12224 0         0 push @item, $_tok;
12225              
12226             }
12227              
12228             Parse::RecDescent::_trace(
12229 0 0       0 q{>>Matched production: [NAME]<<},
12230             Parse::RecDescent::_tracefirst($text),
12231             q{sequence_name}, $tracelevel
12232             ) if defined $::RD_TRACE;
12233 0         0 $_matched = 1;
12234 0         0 last;
12235             }
12236              
12237 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
12238              
12239 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
12240 0 0       0 Parse::RecDescent::_trace(
12241             q{<>},
12242             Parse::RecDescent::_tracefirst($_[1]),
12243             q{sequence_name}, $tracelevel
12244             ) if defined $::RD_TRACE;
12245 0         0 return undef;
12246             }
12247 0 0 0     0 if (!defined($return) && defined($score)) {
12248 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{sequence_name}, $tracelevel)
12249             if defined $::RD_TRACE;
12250 0         0 $return = $score_return;
12251             }
12252 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
12253 0 0       0 $return = $item[$#item] unless defined $return;
12254 0 0       0 if (defined $::RD_TRACE) {
12255 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
12256             "", q{sequence_name}, $tracelevel);
12257 0         0 Parse::RecDescent::_trace(
12258             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
12259             Parse::RecDescent::_tracefirst($text),
12260             , q{sequence_name}, $tracelevel
12261             );
12262             }
12263 0         0 $_[1] = $text;
12264 0         0 return $return;
12265             }
12266              
12267             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
12268             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ld_duration {
12269 0     0   0 my $thisparser = $_[0];
12270 1     1   10 use vars q{$tracelevel};
  1         4  
  1         3450  
12271 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
12272 0         0 $ERRORS = 0;
12273 0         0 my $thisrule = $thisparser->{"rules"}{"ld_duration"};
12274              
12275 0 0       0 Parse::RecDescent::_trace(
12276             q{Trying rule: [ld_duration]},
12277             Parse::RecDescent::_tracefirst($_[1]),
12278             q{ld_duration}, $tracelevel
12279             ) if defined $::RD_TRACE;
12280              
12281 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
12282              
12283 0         0 my $score;
12284             my $score_return;
12285 0         0 my $_tok;
12286 0         0 my $return = undef;
12287 0         0 my $_matched = 0;
12288 0         0 my $commit = 0;
12289 0         0 my @item = ();
12290 0         0 my %item = ();
12291 0   0     0 my $repeating = defined($_[2]) && $_[2];
12292 0   0     0 my $_noactions = defined($_[3]) && $_[3];
12293 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
12294 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
12295 0         0 my $text;
12296 0         0 my $lastsep = "";
12297 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
12298 0         0 $expectation->at($_[1]);
12299              
12300 0         0 my $thisline;
12301 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
12302              
12303 0   0     0 while (!$_matched && !$commit) {
12304              
12305 0 0       0 Parse::RecDescent::_trace(
12306             q{Trying production: [/YEARS?/i]},
12307             Parse::RecDescent::_tracefirst($_[1]),
12308             q{ld_duration}, $tracelevel
12309             ) if defined $::RD_TRACE;
12310 0         0 my $thisprod = $thisrule->{"prods"}[0];
12311 0         0 $text = $_[1];
12312 0         0 my $_savetext;
12313 0         0 @item = (q{ld_duration});
12314 0         0 %item = (__RULE__ => q{ld_duration});
12315 0         0 my $repcount = 0;
12316              
12317 0 0       0 Parse::RecDescent::_trace(
12318             q{Trying terminal: [/YEARS?/i]},
12319             Parse::RecDescent::_tracefirst($text),
12320             q{ld_duration}, $tracelevel
12321             ) if defined $::RD_TRACE;
12322 0         0 $lastsep = "";
12323 0         0 $expectation->is(q{})->at($text);
12324              
12325 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
12326             and $text =~ s/\A(?:YEARS?)//i) {
12327              
12328 0         0 $expectation->failed();
12329 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
12330             if defined $::RD_TRACE;
12331              
12332 0         0 last;
12333             }
12334 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
12335             Parse::RecDescent::_tracefirst($text))
12336             if defined $::RD_TRACE;
12337 0         0 push @item, $item{__PATTERN1__} = $&;
12338              
12339 0 0       0 Parse::RecDescent::_trace(
12340             q{>>Matched production: [/YEARS?/i]<<},
12341             Parse::RecDescent::_tracefirst($text),
12342             q{ld_duration}, $tracelevel
12343             ) if defined $::RD_TRACE;
12344 0         0 $_matched = 1;
12345 0         0 last;
12346             }
12347              
12348 0   0     0 while (!$_matched && !$commit) {
12349              
12350 0 0       0 Parse::RecDescent::_trace(
12351             q{Trying production: [/MONTHS?/i]},
12352             Parse::RecDescent::_tracefirst($_[1]),
12353             q{ld_duration}, $tracelevel
12354             ) if defined $::RD_TRACE;
12355 0         0 my $thisprod = $thisrule->{"prods"}[1];
12356 0         0 $text = $_[1];
12357 0         0 my $_savetext;
12358 0         0 @item = (q{ld_duration});
12359 0         0 %item = (__RULE__ => q{ld_duration});
12360 0         0 my $repcount = 0;
12361              
12362 0 0       0 Parse::RecDescent::_trace(
12363             q{Trying terminal: [/MONTHS?/i]},
12364             Parse::RecDescent::_tracefirst($text),
12365             q{ld_duration}, $tracelevel
12366             ) if defined $::RD_TRACE;
12367 0         0 $lastsep = "";
12368 0         0 $expectation->is(q{})->at($text);
12369              
12370 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
12371             and $text =~ s/\A(?:MONTHS?)//i) {
12372              
12373 0         0 $expectation->failed();
12374 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
12375             if defined $::RD_TRACE;
12376              
12377 0         0 last;
12378             }
12379 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
12380             Parse::RecDescent::_tracefirst($text))
12381             if defined $::RD_TRACE;
12382 0         0 push @item, $item{__PATTERN1__} = $&;
12383              
12384 0 0       0 Parse::RecDescent::_trace(
12385             q{>>Matched production: [/MONTHS?/i]<<},
12386             Parse::RecDescent::_tracefirst($text),
12387             q{ld_duration}, $tracelevel
12388             ) if defined $::RD_TRACE;
12389 0         0 $_matched = 1;
12390 0         0 last;
12391             }
12392              
12393 0   0     0 while (!$_matched && !$commit) {
12394              
12395 0 0       0 Parse::RecDescent::_trace(
12396             q{Trying production: [/DAYS?/i]},
12397             Parse::RecDescent::_tracefirst($_[1]),
12398             q{ld_duration}, $tracelevel
12399             ) if defined $::RD_TRACE;
12400 0         0 my $thisprod = $thisrule->{"prods"}[2];
12401 0         0 $text = $_[1];
12402 0         0 my $_savetext;
12403 0         0 @item = (q{ld_duration});
12404 0         0 %item = (__RULE__ => q{ld_duration});
12405 0         0 my $repcount = 0;
12406              
12407 0 0       0 Parse::RecDescent::_trace(
12408             q{Trying terminal: [/DAYS?/i]},
12409             Parse::RecDescent::_tracefirst($text),
12410             q{ld_duration}, $tracelevel
12411             ) if defined $::RD_TRACE;
12412 0         0 $lastsep = "";
12413 0         0 $expectation->is(q{})->at($text);
12414              
12415 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
12416             and $text =~ s/\A(?:DAYS?)//i) {
12417              
12418 0         0 $expectation->failed();
12419 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
12420             if defined $::RD_TRACE;
12421              
12422 0         0 last;
12423             }
12424 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
12425             Parse::RecDescent::_tracefirst($text))
12426             if defined $::RD_TRACE;
12427 0         0 push @item, $item{__PATTERN1__} = $&;
12428              
12429 0 0       0 Parse::RecDescent::_trace(
12430             q{>>Matched production: [/DAYS?/i]<<},
12431             Parse::RecDescent::_tracefirst($text),
12432             q{ld_duration}, $tracelevel
12433             ) if defined $::RD_TRACE;
12434 0         0 $_matched = 1;
12435 0         0 last;
12436             }
12437              
12438 0   0     0 while (!$_matched && !$commit) {
12439              
12440 0 0       0 Parse::RecDescent::_trace(
12441             q{Trying production: [/HOURS?/i]},
12442             Parse::RecDescent::_tracefirst($_[1]),
12443             q{ld_duration}, $tracelevel
12444             ) if defined $::RD_TRACE;
12445 0         0 my $thisprod = $thisrule->{"prods"}[3];
12446 0         0 $text = $_[1];
12447 0         0 my $_savetext;
12448 0         0 @item = (q{ld_duration});
12449 0         0 %item = (__RULE__ => q{ld_duration});
12450 0         0 my $repcount = 0;
12451              
12452 0 0       0 Parse::RecDescent::_trace(
12453             q{Trying terminal: [/HOURS?/i]},
12454             Parse::RecDescent::_tracefirst($text),
12455             q{ld_duration}, $tracelevel
12456             ) if defined $::RD_TRACE;
12457 0         0 $lastsep = "";
12458 0         0 $expectation->is(q{})->at($text);
12459              
12460 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
12461             and $text =~ s/\A(?:HOURS?)//i) {
12462              
12463 0         0 $expectation->failed();
12464 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
12465             if defined $::RD_TRACE;
12466              
12467 0         0 last;
12468             }
12469 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
12470             Parse::RecDescent::_tracefirst($text))
12471             if defined $::RD_TRACE;
12472 0         0 push @item, $item{__PATTERN1__} = $&;
12473              
12474 0 0       0 Parse::RecDescent::_trace(
12475             q{>>Matched production: [/HOURS?/i]<<},
12476             Parse::RecDescent::_tracefirst($text),
12477             q{ld_duration}, $tracelevel
12478             ) if defined $::RD_TRACE;
12479 0         0 $_matched = 1;
12480 0         0 last;
12481             }
12482              
12483 0   0     0 while (!$_matched && !$commit) {
12484              
12485 0 0       0 Parse::RecDescent::_trace(
12486             q{Trying production: [/MINUTES?/i]},
12487             Parse::RecDescent::_tracefirst($_[1]),
12488             q{ld_duration}, $tracelevel
12489             ) if defined $::RD_TRACE;
12490 0         0 my $thisprod = $thisrule->{"prods"}[4];
12491 0         0 $text = $_[1];
12492 0         0 my $_savetext;
12493 0         0 @item = (q{ld_duration});
12494 0         0 %item = (__RULE__ => q{ld_duration});
12495 0         0 my $repcount = 0;
12496              
12497 0 0       0 Parse::RecDescent::_trace(
12498             q{Trying terminal: [/MINUTES?/i]},
12499             Parse::RecDescent::_tracefirst($text),
12500             q{ld_duration}, $tracelevel
12501             ) if defined $::RD_TRACE;
12502 0         0 $lastsep = "";
12503 0         0 $expectation->is(q{})->at($text);
12504              
12505 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
12506             and $text =~ s/\A(?:MINUTES?)//i) {
12507              
12508 0         0 $expectation->failed();
12509 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
12510             if defined $::RD_TRACE;
12511              
12512 0         0 last;
12513             }
12514 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
12515             Parse::RecDescent::_tracefirst($text))
12516             if defined $::RD_TRACE;
12517 0         0 push @item, $item{__PATTERN1__} = $&;
12518              
12519 0 0       0 Parse::RecDescent::_trace(
12520             q{>>Matched production: [/MINUTES?/i]<<},
12521             Parse::RecDescent::_tracefirst($text),
12522             q{ld_duration}, $tracelevel
12523             ) if defined $::RD_TRACE;
12524 0         0 $_matched = 1;
12525 0         0 last;
12526             }
12527              
12528 0   0     0 while (!$_matched && !$commit) {
12529              
12530 0 0       0 Parse::RecDescent::_trace(
12531             q{Trying production: [/SECONDS?/i]},
12532             Parse::RecDescent::_tracefirst($_[1]),
12533             q{ld_duration}, $tracelevel
12534             ) if defined $::RD_TRACE;
12535 0         0 my $thisprod = $thisrule->{"prods"}[5];
12536 0         0 $text = $_[1];
12537 0         0 my $_savetext;
12538 0         0 @item = (q{ld_duration});
12539 0         0 %item = (__RULE__ => q{ld_duration});
12540 0         0 my $repcount = 0;
12541              
12542 0 0       0 Parse::RecDescent::_trace(
12543             q{Trying terminal: [/SECONDS?/i]},
12544             Parse::RecDescent::_tracefirst($text),
12545             q{ld_duration}, $tracelevel
12546             ) if defined $::RD_TRACE;
12547 0         0 $lastsep = "";
12548 0         0 $expectation->is(q{})->at($text);
12549              
12550 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
12551             and $text =~ s/\A(?:SECONDS?)//i) {
12552              
12553 0         0 $expectation->failed();
12554 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
12555             if defined $::RD_TRACE;
12556              
12557 0         0 last;
12558             }
12559 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
12560             Parse::RecDescent::_tracefirst($text))
12561             if defined $::RD_TRACE;
12562 0         0 push @item, $item{__PATTERN1__} = $&;
12563              
12564 0 0       0 Parse::RecDescent::_trace(
12565             q{>>Matched production: [/SECONDS?/i]<<},
12566             Parse::RecDescent::_tracefirst($text),
12567             q{ld_duration}, $tracelevel
12568             ) if defined $::RD_TRACE;
12569 0         0 $_matched = 1;
12570 0         0 last;
12571             }
12572              
12573 0   0     0 while (!$_matched && !$commit) {
12574              
12575 0 0       0 Parse::RecDescent::_trace(
12576             q{Trying production: [/MICROSECONDS?/i]},
12577             Parse::RecDescent::_tracefirst($_[1]),
12578             q{ld_duration}, $tracelevel
12579             ) if defined $::RD_TRACE;
12580 0         0 my $thisprod = $thisrule->{"prods"}[6];
12581 0         0 $text = $_[1];
12582 0         0 my $_savetext;
12583 0         0 @item = (q{ld_duration});
12584 0         0 %item = (__RULE__ => q{ld_duration});
12585 0         0 my $repcount = 0;
12586              
12587 0 0       0 Parse::RecDescent::_trace(
12588             q{Trying terminal: [/MICROSECONDS?/i]},
12589             Parse::RecDescent::_tracefirst($text),
12590             q{ld_duration}, $tracelevel
12591             ) if defined $::RD_TRACE;
12592 0         0 $lastsep = "";
12593 0         0 $expectation->is(q{})->at($text);
12594              
12595 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
12596             and $text =~ s/\A(?:MICROSECONDS?)//i) {
12597              
12598 0         0 $expectation->failed();
12599 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
12600             if defined $::RD_TRACE;
12601              
12602 0         0 last;
12603             }
12604 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
12605             Parse::RecDescent::_tracefirst($text))
12606             if defined $::RD_TRACE;
12607 0         0 push @item, $item{__PATTERN1__} = $&;
12608              
12609 0 0       0 Parse::RecDescent::_trace(
12610             q{>>Matched production: [/MICROSECONDS?/i]<<},
12611             Parse::RecDescent::_tracefirst($text),
12612             q{ld_duration}, $tracelevel
12613             ) if defined $::RD_TRACE;
12614 0         0 $_matched = 1;
12615 0         0 last;
12616             }
12617              
12618 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
12619              
12620 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
12621 0 0       0 Parse::RecDescent::_trace(
12622             q{<>},
12623             Parse::RecDescent::_tracefirst($_[1]),
12624             q{ld_duration}, $tracelevel
12625             ) if defined $::RD_TRACE;
12626 0         0 return undef;
12627             }
12628 0 0 0     0 if (!defined($return) && defined($score)) {
12629 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{ld_duration}, $tracelevel)
12630             if defined $::RD_TRACE;
12631 0         0 $return = $score_return;
12632             }
12633 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
12634 0 0       0 $return = $item[$#item] unless defined $return;
12635 0 0       0 if (defined $::RD_TRACE) {
12636 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{ld_duration},
12637             $tracelevel);
12638 0         0 Parse::RecDescent::_trace(
12639             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
12640             Parse::RecDescent::_tracefirst($text),
12641             , q{ld_duration}, $tracelevel
12642             );
12643             }
12644 0         0 $_[1] = $text;
12645 0         0 return $return;
12646             }
12647              
12648             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
12649             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::reference_a {
12650 0     0   0 my $thisparser = $_[0];
12651 1     1   13 use vars q{$tracelevel};
  1         3  
  1         1679  
12652 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
12653 0         0 $ERRORS = 0;
12654 0         0 my $thisrule = $thisparser->{"rules"}{"reference_a"};
12655              
12656 0 0       0 Parse::RecDescent::_trace(
12657             q{Trying rule: [reference_a]},
12658             Parse::RecDescent::_tracefirst($_[1]),
12659             q{reference_a}, $tracelevel
12660             ) if defined $::RD_TRACE;
12661              
12662 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
12663              
12664 0         0 my $score;
12665             my $score_return;
12666 0         0 my $_tok;
12667 0         0 my $return = undef;
12668 0         0 my $_matched = 0;
12669 0         0 my $commit = 0;
12670 0         0 my @item = ();
12671 0         0 my %item = ();
12672 0   0     0 my $repeating = defined($_[2]) && $_[2];
12673 0   0     0 my $_noactions = defined($_[3]) && $_[3];
12674 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
12675 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
12676 0         0 my $text;
12677 0         0 my $lastsep = "";
12678 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
12679 0         0 $expectation->at($_[1]);
12680              
12681 0         0 my $thisline;
12682 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
12683              
12684 0   0     0 while (!$_matched && !$commit) {
12685              
12686 0 0       0 Parse::RecDescent::_trace(
12687             q{Trying production: [/REFERENCING/i old_new_corr old_new_table]},
12688             Parse::RecDescent::_tracefirst($_[1]),
12689             q{reference_a}, $tracelevel
12690             ) if defined $::RD_TRACE;
12691 0         0 my $thisprod = $thisrule->{"prods"}[0];
12692 0         0 $text = $_[1];
12693 0         0 my $_savetext;
12694 0         0 @item = (q{reference_a});
12695 0         0 %item = (__RULE__ => q{reference_a});
12696 0         0 my $repcount = 0;
12697              
12698 0 0       0 Parse::RecDescent::_trace(
12699             q{Trying terminal: [/REFERENCING/i]},
12700             Parse::RecDescent::_tracefirst($text),
12701             q{reference_a}, $tracelevel
12702             ) if defined $::RD_TRACE;
12703 0         0 $lastsep = "";
12704 0         0 $expectation->is(q{})->at($text);
12705              
12706 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
12707             and $text =~ s/\A(?:REFERENCING)//i) {
12708              
12709 0         0 $expectation->failed();
12710 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
12711             if defined $::RD_TRACE;
12712              
12713 0         0 last;
12714             }
12715 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
12716             Parse::RecDescent::_tracefirst($text))
12717             if defined $::RD_TRACE;
12718 0         0 push @item, $item{__PATTERN1__} = $&;
12719              
12720 0 0       0 Parse::RecDescent::_trace(
12721             q{Trying repeated subrule: [old_new_corr]},
12722             Parse::RecDescent::_tracefirst($text),
12723             q{reference_a}, $tracelevel
12724             ) if defined $::RD_TRACE;
12725 0         0 $expectation->is(q{old_new_corr})->at($text);
12726              
12727 0 0       0 unless (defined(
12728             $_tok = $thisparser->_parserepeat(
12729             $text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::old_new_corr,
12730             0, 2, $_noactions, $expectation, undef
12731             )
12732             )) {
12733 0 0       0 Parse::RecDescent::_trace(
12734             q{<>},
12735             Parse::RecDescent::_tracefirst($text),
12736             q{reference_a}, $tracelevel
12737             ) if defined $::RD_TRACE;
12738 0         0 last;
12739             }
12740             Parse::RecDescent::_trace(
12741 0 0       0 q{>>Matched repeated subrule: [old_new_corr]<< (} . @$_tok . q{ times)},
12742              
12743             Parse::RecDescent::_tracefirst($text),
12744             q{reference_a},
12745             $tracelevel
12746             ) if defined $::RD_TRACE;
12747 0         0 $item{q{old_new_corr(0..2)}} = $_tok;
12748 0         0 push @item, $_tok;
12749              
12750 0 0       0 Parse::RecDescent::_trace(
12751             q{Trying repeated subrule: [old_new_table]},
12752             Parse::RecDescent::_tracefirst($text),
12753             q{reference_a}, $tracelevel
12754             ) if defined $::RD_TRACE;
12755 0         0 $expectation->is(q{old_new_table})->at($text);
12756              
12757 0 0       0 unless (defined(
12758             $_tok = $thisparser->_parserepeat(
12759             $text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::old_new_table,
12760             0, 2, $_noactions, $expectation, undef
12761             )
12762             )) {
12763 0 0       0 Parse::RecDescent::_trace(
12764             q{<>},
12765             Parse::RecDescent::_tracefirst($text),
12766             q{reference_a}, $tracelevel
12767             ) if defined $::RD_TRACE;
12768 0         0 last;
12769             }
12770             Parse::RecDescent::_trace(
12771 0 0       0 q{>>Matched repeated subrule: [old_new_table]<< (} . @$_tok . q{ times)},
12772              
12773             Parse::RecDescent::_tracefirst($text),
12774             q{reference_a},
12775             $tracelevel
12776             ) if defined $::RD_TRACE;
12777 0         0 $item{q{old_new_table(0..2)}} = $_tok;
12778 0         0 push @item, $_tok;
12779              
12780 0 0       0 Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{reference_a}, $tracelevel)
12781             if defined $::RD_TRACE;
12782              
12783 0 0       0 $_tok = ($_noactions) ? 0 : do {
12784 0         0 $return = join(' ', $item[1], join(' ', @{ $item[2] }), join(' ', @{ $item[3] }));
  0         0  
  0         0  
12785             };
12786 0 0       0 unless (defined $_tok) {
12787 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
12788             if defined $::RD_TRACE;
12789 0         0 last;
12790             }
12791 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])},
12792             Parse::RecDescent::_tracefirst($text))
12793             if defined $::RD_TRACE;
12794 0         0 push @item, $_tok;
12795 0         0 $item{__ACTION1__} = $_tok;
12796              
12797 0 0       0 Parse::RecDescent::_trace(
12798             q{>>Matched production: [/REFERENCING/i old_new_corr old_new_table]<<},
12799             Parse::RecDescent::_tracefirst($text),
12800             q{reference_a}, $tracelevel
12801             ) if defined $::RD_TRACE;
12802 0         0 $_matched = 1;
12803 0         0 last;
12804             }
12805              
12806 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
12807              
12808 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
12809 0 0       0 Parse::RecDescent::_trace(
12810             q{<>},
12811             Parse::RecDescent::_tracefirst($_[1]),
12812             q{reference_a}, $tracelevel
12813             ) if defined $::RD_TRACE;
12814 0         0 return undef;
12815             }
12816 0 0 0     0 if (!defined($return) && defined($score)) {
12817 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{reference_a}, $tracelevel)
12818             if defined $::RD_TRACE;
12819 0         0 $return = $score_return;
12820             }
12821 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
12822 0 0       0 $return = $item[$#item] unless defined $return;
12823 0 0       0 if (defined $::RD_TRACE) {
12824 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{reference_a},
12825             $tracelevel);
12826 0         0 Parse::RecDescent::_trace(
12827             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
12828             Parse::RecDescent::_tracefirst($text),
12829             , q{reference_a}, $tracelevel
12830             );
12831             }
12832 0         0 $_[1] = $text;
12833 0         0 return $return;
12834             }
12835              
12836             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
12837             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::cast_specification {
12838 0     0   0 my $thisparser = $_[0];
12839 1     1   11 use vars q{$tracelevel};
  1         3  
  1         941  
12840 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
12841 0         0 $ERRORS = 0;
12842 0         0 my $thisrule = $thisparser->{"rules"}{"cast_specification"};
12843              
12844 0 0       0 Parse::RecDescent::_trace(
12845             q{Trying rule: [cast_specification]},
12846             Parse::RecDescent::_tracefirst($_[1]),
12847             q{cast_specification}, $tracelevel
12848             ) if defined $::RD_TRACE;
12849              
12850 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
12851              
12852 0         0 my $score;
12853             my $score_return;
12854 0         0 my $_tok;
12855 0         0 my $return = undef;
12856 0         0 my $_matched = 0;
12857 0         0 my $commit = 0;
12858 0         0 my @item = ();
12859 0         0 my %item = ();
12860 0   0     0 my $repeating = defined($_[2]) && $_[2];
12861 0   0     0 my $_noactions = defined($_[3]) && $_[3];
12862 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
12863 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
12864 0         0 my $text;
12865 0         0 my $lastsep = "";
12866 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
12867 0         0 $expectation->at($_[1]);
12868              
12869 0         0 my $thisline;
12870 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
12871              
12872 0   0     0 while (!$_matched && !$commit) {
12873              
12874 0 0       0 Parse::RecDescent::_trace(
12875             q{Trying production: [/CAST/i '(' expression, or /NULL/i, or parameter_marker /AS/i data_type /SCOPE/ ')']},
12876             Parse::RecDescent::_tracefirst($_[1]), q{cast_specification}, $tracelevel
12877             ) if defined $::RD_TRACE;
12878 0         0 my $thisprod = $thisrule->{"prods"}[0];
12879 0         0 $text = $_[1];
12880 0         0 my $_savetext;
12881 0         0 @item = (q{cast_specification});
12882 0         0 %item = (__RULE__ => q{cast_specification});
12883 0         0 my $repcount = 0;
12884              
12885 0 0       0 Parse::RecDescent::_trace(
12886             q{Trying terminal: [/CAST/i]},
12887             Parse::RecDescent::_tracefirst($text),
12888             q{cast_specification}, $tracelevel
12889             ) if defined $::RD_TRACE;
12890 0         0 $lastsep = "";
12891 0         0 $expectation->is(q{})->at($text);
12892              
12893 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
12894             and $text =~ s/\A(?:CAST)//i) {
12895              
12896 0         0 $expectation->failed();
12897 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
12898             if defined $::RD_TRACE;
12899              
12900 0         0 last;
12901             }
12902 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
12903             Parse::RecDescent::_tracefirst($text))
12904             if defined $::RD_TRACE;
12905 0         0 push @item, $item{__PATTERN1__} = $&;
12906              
12907 0 0       0 Parse::RecDescent::_trace(
12908             q{Trying terminal: ['(']},
12909             Parse::RecDescent::_tracefirst($text),
12910             q{cast_specification}, $tracelevel
12911             ) if defined $::RD_TRACE;
12912 0         0 $lastsep = "";
12913 0         0 $expectation->is(q{'('})->at($text);
12914              
12915 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
12916             and $text =~ s/\A\(//) {
12917              
12918 0         0 $expectation->failed();
12919 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
12920             if defined $::RD_TRACE;
12921 0         0 last;
12922             }
12923 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
12924             Parse::RecDescent::_tracefirst($text))
12925             if defined $::RD_TRACE;
12926 0         0 push @item, $item{__STRING1__} = $&;
12927              
12928 0 0       0 Parse::RecDescent::_trace(
12929             q{Trying subrule: [_alternation_1_of_production_1_of_rule_cast_specification]},
12930             Parse::RecDescent::_tracefirst($text),
12931             q{cast_specification}, $tracelevel
12932             ) if defined $::RD_TRACE;
12933 0         0 if (1) {
12934 1     1   10 no strict qw{refs};
  1         3  
  1         544  
12935 0         0 $expectation->is(q{expression, or /NULL/i, or parameter_marker})
12936             ->at($text);
12937 0 0       0 unless (defined(
12938             $_tok
12939             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_cast_specification(
12940 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
12941             )
12942             )) {
12943              
12944 0 0       0 Parse::RecDescent::_trace(
12945             q{<>},
12946             Parse::RecDescent::_tracefirst($text),
12947             q{cast_specification}, $tracelevel
12948             ) if defined $::RD_TRACE;
12949 0         0 $expectation->failed();
12950 0         0 last;
12951             }
12952             Parse::RecDescent::_trace(
12953 0 0       0 q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_cast_specification]<< (return value: [}
12954             . $_tok . q{]},
12955              
12956             Parse::RecDescent::_tracefirst($text),
12957             q{cast_specification},
12958             $tracelevel
12959             ) if defined $::RD_TRACE;
12960 0         0 $item{q{_alternation_1_of_production_1_of_rule_cast_specification}} = $_tok;
12961 0         0 push @item, $_tok;
12962              
12963             }
12964              
12965             Parse::RecDescent::_trace(
12966 0 0       0 q{Trying terminal: [/AS/i]},
12967             Parse::RecDescent::_tracefirst($text),
12968             q{cast_specification}, $tracelevel
12969             ) if defined $::RD_TRACE;
12970 0         0 $lastsep = "";
12971 0         0 $expectation->is(q{/AS/i})->at($text);
12972              
12973 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
12974             and $text =~ s/\A(?:AS)//i) {
12975              
12976 0         0 $expectation->failed();
12977 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
12978             if defined $::RD_TRACE;
12979              
12980 0         0 last;
12981             }
12982 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
12983             Parse::RecDescent::_tracefirst($text))
12984             if defined $::RD_TRACE;
12985 0         0 push @item, $item{__PATTERN2__} = $&;
12986              
12987 0 0       0 Parse::RecDescent::_trace(
12988             q{Trying subrule: [data_type]},
12989             Parse::RecDescent::_tracefirst($text),
12990             q{cast_specification}, $tracelevel
12991             ) if defined $::RD_TRACE;
12992 0         0 if (1) {
12993 1     1   10 no strict qw{refs};
  1         5  
  1         1149  
12994 0         0 $expectation->is(q{data_type})->at($text);
12995 0 0       0 unless (defined(
12996             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::data_type(
12997 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
12998             )
12999             )) {
13000              
13001 0 0       0 Parse::RecDescent::_trace(
13002             q{<>},
13003             Parse::RecDescent::_tracefirst($text),
13004             q{cast_specification}, $tracelevel
13005             ) if defined $::RD_TRACE;
13006 0         0 $expectation->failed();
13007 0         0 last;
13008             }
13009             Parse::RecDescent::_trace(
13010 0 0       0 q{>>Matched subrule: [data_type]<< (return value: [} . $_tok . q{]},
13011              
13012             Parse::RecDescent::_tracefirst($text),
13013             q{cast_specification},
13014             $tracelevel
13015             ) if defined $::RD_TRACE;
13016 0         0 $item{q{data_type}} = $_tok;
13017 0         0 push @item, $_tok;
13018              
13019             }
13020              
13021             Parse::RecDescent::_trace(
13022 0 0       0 q{Trying repeated subrule: [/SCOPE/]},
13023             Parse::RecDescent::_tracefirst($text),
13024             q{cast_specification}, $tracelevel
13025             ) if defined $::RD_TRACE;
13026 0         0 $expectation->is(q{/SCOPE/})->at($text);
13027              
13028 0 0       0 unless (defined(
13029             $_tok = $thisparser->_parserepeat(
13030             $text,
13031             \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_cast_specification,
13032             0,
13033             1,
13034             $_noactions,
13035             $expectation,
13036             undef
13037             )
13038             )) {
13039 0 0       0 Parse::RecDescent::_trace(
13040             q{<>},
13041             Parse::RecDescent::_tracefirst($text),
13042             q{cast_specification}, $tracelevel
13043             ) if defined $::RD_TRACE;
13044 0         0 last;
13045             }
13046             Parse::RecDescent::_trace(
13047 0 0       0 q{>>Matched repeated subrule: [_alternation_2_of_production_1_of_rule_cast_specification]<< (}
13048             . @$_tok
13049             . q{ times)},
13050              
13051             Parse::RecDescent::_tracefirst($text),
13052             q{cast_specification},
13053             $tracelevel
13054             ) if defined $::RD_TRACE;
13055 0         0 $item{q{_alternation_2_of_production_1_of_rule_cast_specification(?)}} = $_tok;
13056 0         0 push @item, $_tok;
13057              
13058 0 0       0 Parse::RecDescent::_trace(
13059             q{Trying terminal: [')']},
13060             Parse::RecDescent::_tracefirst($text),
13061             q{cast_specification}, $tracelevel
13062             ) if defined $::RD_TRACE;
13063 0         0 $lastsep = "";
13064 0         0 $expectation->is(q{')'})->at($text);
13065              
13066 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
13067             and $text =~ s/\A\)//) {
13068              
13069 0         0 $expectation->failed();
13070 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
13071             if defined $::RD_TRACE;
13072 0         0 last;
13073             }
13074 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
13075             Parse::RecDescent::_tracefirst($text))
13076             if defined $::RD_TRACE;
13077 0         0 push @item, $item{__STRING2__} = $&;
13078              
13079 0 0       0 Parse::RecDescent::_trace(
13080             q{>>Matched production: [/CAST/i '(' expression, or /NULL/i, or parameter_marker /AS/i data_type /SCOPE/ ')']<<},
13081             Parse::RecDescent::_tracefirst($text), q{cast_specification}, $tracelevel
13082             ) if defined $::RD_TRACE;
13083 0         0 $_matched = 1;
13084 0         0 last;
13085             }
13086              
13087 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
13088              
13089 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
13090 0 0       0 Parse::RecDescent::_trace(
13091             q{<>},
13092             Parse::RecDescent::_tracefirst($_[1]),
13093             q{cast_specification}, $tracelevel
13094             ) if defined $::RD_TRACE;
13095 0         0 return undef;
13096             }
13097 0 0 0     0 if (!defined($return) && defined($score)) {
13098 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{cast_specification}, $tracelevel)
13099             if defined $::RD_TRACE;
13100 0         0 $return = $score_return;
13101             }
13102 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
13103 0 0       0 $return = $item[$#item] unless defined $return;
13104 0 0       0 if (defined $::RD_TRACE) {
13105 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
13106             "", q{cast_specification}, $tracelevel);
13107 0         0 Parse::RecDescent::_trace(
13108             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
13109             Parse::RecDescent::_tracefirst($text),
13110             , q{cast_specification}, $tracelevel
13111             );
13112             }
13113 0         0 $_[1] = $text;
13114 0         0 return $return;
13115             }
13116              
13117             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
13118             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::type {
13119 0     0   0 my $thisparser = $_[0];
13120 1     1   10 use vars q{$tracelevel};
  1         3  
  1         1029  
13121 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
13122 0         0 $ERRORS = 0;
13123 0         0 my $thisrule = $thisparser->{"rules"}{"type"};
13124              
13125 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [type]}, Parse::RecDescent::_tracefirst($_[1]), q{type}, $tracelevel)
13126             if defined $::RD_TRACE;
13127              
13128 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
13129              
13130 0         0 my $score;
13131             my $score_return;
13132 0         0 my $_tok;
13133 0         0 my $return = undef;
13134 0         0 my $_matched = 0;
13135 0         0 my $commit = 0;
13136 0         0 my @item = ();
13137 0         0 my %item = ();
13138 0   0     0 my $repeating = defined($_[2]) && $_[2];
13139 0   0     0 my $_noactions = defined($_[3]) && $_[3];
13140 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
13141 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
13142 0         0 my $text;
13143 0         0 my $lastsep = "";
13144 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
13145 0         0 $expectation->at($_[1]);
13146              
13147 0         0 my $thisline;
13148 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
13149              
13150 0   0     0 while (!$_matched && !$commit) {
13151              
13152 0 0       0 Parse::RecDescent::_trace(
13153             q{Trying production: [/UPDATE/i /OF/i ]},
13154             Parse::RecDescent::_tracefirst($_[1]),
13155             q{type}, $tracelevel
13156             ) if defined $::RD_TRACE;
13157 0         0 my $thisprod = $thisrule->{"prods"}[0];
13158 0         0 $text = $_[1];
13159 0         0 my $_savetext;
13160 0         0 @item = (q{type});
13161 0         0 %item = (__RULE__ => q{type});
13162 0         0 my $repcount = 0;
13163              
13164 0 0       0 Parse::RecDescent::_trace(
13165             q{Trying terminal: [/UPDATE/i]},
13166             Parse::RecDescent::_tracefirst($text),
13167             q{type}, $tracelevel
13168             ) if defined $::RD_TRACE;
13169 0         0 $lastsep = "";
13170 0         0 $expectation->is(q{})->at($text);
13171              
13172 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
13173             and $text =~ s/\A(?:UPDATE)//i) {
13174              
13175 0         0 $expectation->failed();
13176 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
13177             if defined $::RD_TRACE;
13178              
13179 0         0 last;
13180             }
13181 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
13182             Parse::RecDescent::_tracefirst($text))
13183             if defined $::RD_TRACE;
13184 0         0 push @item, $item{__PATTERN1__} = $&;
13185              
13186 0 0       0 Parse::RecDescent::_trace(
13187             q{Trying terminal: [/OF/i]},
13188             Parse::RecDescent::_tracefirst($text),
13189             q{type}, $tracelevel
13190             ) if defined $::RD_TRACE;
13191 0         0 $lastsep = "";
13192 0         0 $expectation->is(q{/OF/i})->at($text);
13193              
13194 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
13195             and $text =~ s/\A(?:OF)//i) {
13196              
13197 0         0 $expectation->failed();
13198 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
13199             if defined $::RD_TRACE;
13200              
13201 0         0 last;
13202             }
13203 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
13204             Parse::RecDescent::_tracefirst($text))
13205             if defined $::RD_TRACE;
13206 0         0 push @item, $item{__PATTERN2__} = $&;
13207              
13208 0 0       0 Parse::RecDescent::_trace(
13209             q{Trying operator: []},
13210             Parse::RecDescent::_tracefirst($text),
13211             q{type}, $tracelevel
13212             ) if defined $::RD_TRACE;
13213 0         0 $expectation->is(q{})
13214             ->at($text);
13215              
13216 0         0 $_tok = undef;
13217 0         0 OPLOOP: while (1) {
13218 0         0 $repcount = 0;
13219 0         0 my @item;
13220              
13221             # MATCH LEFTARG
13222              
13223 0 0       0 Parse::RecDescent::_trace(
13224             q{Trying subrule: [column_name]},
13225             Parse::RecDescent::_tracefirst($text),
13226             q{type}, $tracelevel
13227             ) if defined $::RD_TRACE;
13228 0         0 if (1) {
13229 1     1   12 no strict qw{refs};
  1         4  
  1         536  
13230 0         0 $expectation->is(q{column_name})->at($text);
13231 0 0       0 unless (defined(
13232             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name(
13233 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
13234             )
13235             )) {
13236              
13237 0 0       0 Parse::RecDescent::_trace(
13238             q{<>},
13239             Parse::RecDescent::_tracefirst($text),
13240             q{type}, $tracelevel
13241             ) if defined $::RD_TRACE;
13242 0         0 $expectation->failed();
13243 0         0 last;
13244             }
13245             Parse::RecDescent::_trace(
13246 0 0       0 q{>>Matched subrule: [column_name]<< (return value: [} . $_tok . q{]},
13247              
13248             Parse::RecDescent::_tracefirst($text),
13249             q{type},
13250             $tracelevel
13251             ) if defined $::RD_TRACE;
13252 0         0 $item{q{column_name}} = $_tok;
13253 0         0 push @item, $_tok;
13254              
13255             }
13256              
13257 0         0 $repcount++;
13258              
13259 0         0 my $savetext = $text;
13260 0         0 my $backtrack;
13261              
13262             # MATCH (OP RIGHTARG)(s)
13263 0         0 while ($repcount < 100000000) {
13264 0         0 $backtrack = 0;
13265              
13266 0 0       0 Parse::RecDescent::_trace(
13267             q{Trying terminal: [/,/]},
13268             Parse::RecDescent::_tracefirst($text),
13269             q{type}, $tracelevel
13270             ) if defined $::RD_TRACE;
13271 0         0 $lastsep = "";
13272 0         0 $expectation->is(q{/,/})->at($text);
13273              
13274 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
13275             and $text =~ s/\A(?:,)//) {
13276              
13277 0         0 $expectation->failed();
13278 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
13279             if defined $::RD_TRACE;
13280              
13281 0         0 last;
13282             }
13283 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
13284             Parse::RecDescent::_tracefirst($text))
13285             if defined $::RD_TRACE;
13286 0         0 push @item, $item{__PATTERN3__} = $&;
13287              
13288 0         0 pop @item;
13289 0 0       0 if (defined $1) {
13290 0         0 push @item, $item{'column_name(s)'} = $1;
13291 0         0 $backtrack = 1;
13292             }
13293              
13294             Parse::RecDescent::_trace(
13295 0 0       0 q{Trying subrule: [column_name]},
13296             Parse::RecDescent::_tracefirst($text),
13297             q{type}, $tracelevel
13298             ) if defined $::RD_TRACE;
13299 0         0 if (1) {
13300 1     1   11 no strict qw{refs};
  1         4  
  1         798  
13301 0         0 $expectation->is(q{column_name})->at($text);
13302 0 0       0 unless (defined(
13303             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name(
13304 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
13305             )
13306             )) {
13307              
13308 0 0       0 Parse::RecDescent::_trace(
13309             q{<>},
13310             Parse::RecDescent::_tracefirst($text),
13311             q{type}, $tracelevel
13312             ) if defined $::RD_TRACE;
13313 0         0 $expectation->failed();
13314 0         0 last;
13315             }
13316             Parse::RecDescent::_trace(
13317 0 0       0 q{>>Matched subrule: [column_name]<< (return value: [} . $_tok . q{]},
13318              
13319             Parse::RecDescent::_tracefirst($text),
13320             q{type},
13321             $tracelevel
13322             ) if defined $::RD_TRACE;
13323 0         0 $item{q{column_name}} = $_tok;
13324 0         0 push @item, $_tok;
13325              
13326             }
13327              
13328 0         0 $savetext = $text;
13329 0         0 $repcount++;
13330             }
13331 0         0 $text = $savetext;
13332 0 0       0 pop @item if $backtrack;
13333              
13334 0 0       0 unless (@item) { undef $_tok; last }
  0         0  
  0         0  
13335 0         0 $_tok = [@item];
13336 0         0 last;
13337             }
13338              
13339 0 0       0 unless ($repcount >= 1) {
13340 0 0       0 Parse::RecDescent::_trace(
13341             q{<]>>},
13342             Parse::RecDescent::_tracefirst($text),
13343             q{type}, $tracelevel
13344             ) if defined $::RD_TRACE;
13345 0         0 $expectation->failed();
13346 0         0 last;
13347             }
13348             Parse::RecDescent::_trace(
13349 0 0       0 q{>>Matched operator: []<< (return value: [} . qq{@{$_tok||[]}} . q{]},
  0 0       0  
13350             Parse::RecDescent::_tracefirst($text), q{type}, $tracelevel
13351             ) if defined $::RD_TRACE;
13352              
13353 0   0     0 push @item, $item{'column_name(s)'} = $_tok || [];
13354              
13355 0 0       0 Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{type}, $tracelevel)
13356             if defined $::RD_TRACE;
13357              
13358 0 0       0 $_tok = ($_noactions) ? 0 : do {
13359 0         0 $return = {
13360             event => 'update_on',
13361             fields => $item[3]
13362             };
13363             };
13364 0 0       0 unless (defined $_tok) {
13365 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
13366             if defined $::RD_TRACE;
13367 0         0 last;
13368             }
13369 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])},
13370             Parse::RecDescent::_tracefirst($text))
13371             if defined $::RD_TRACE;
13372 0         0 push @item, $_tok;
13373 0         0 $item{__ACTION1__} = $_tok;
13374              
13375 0 0       0 Parse::RecDescent::_trace(
13376             q{>>Matched production: [/UPDATE/i /OF/i ]<<},
13377             Parse::RecDescent::_tracefirst($text),
13378             q{type}, $tracelevel
13379             ) if defined $::RD_TRACE;
13380 0         0 $_matched = 1;
13381 0         0 last;
13382             }
13383              
13384 0   0     0 while (!$_matched && !$commit) {
13385              
13386 0 0       0 Parse::RecDescent::_trace(
13387             q{Trying production: [/INSERT/i, or /DELETE/i, or /UPDATE/i]},
13388             Parse::RecDescent::_tracefirst($_[1]),
13389             q{type}, $tracelevel
13390             ) if defined $::RD_TRACE;
13391 0         0 my $thisprod = $thisrule->{"prods"}[1];
13392 0         0 $text = $_[1];
13393 0         0 my $_savetext;
13394 0         0 @item = (q{type});
13395 0         0 %item = (__RULE__ => q{type});
13396 0         0 my $repcount = 0;
13397              
13398 0 0       0 Parse::RecDescent::_trace(
13399             q{Trying subrule: [_alternation_1_of_production_2_of_rule_type]},
13400             Parse::RecDescent::_tracefirst($text),
13401             q{type}, $tracelevel
13402             ) if defined $::RD_TRACE;
13403 0         0 if (1) {
13404 1     1   10 no strict qw{refs};
  1         4  
  1         971  
13405 0         0 $expectation->is(q{})->at($text);
13406 0 0       0 unless (defined(
13407             $_tok
13408             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_2_of_rule_type(
13409 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
13410             )
13411             )) {
13412              
13413 0 0       0 Parse::RecDescent::_trace(
13414             q{<>},
13415             Parse::RecDescent::_tracefirst($text),
13416             q{type}, $tracelevel
13417             ) if defined $::RD_TRACE;
13418 0         0 $expectation->failed();
13419 0         0 last;
13420             }
13421             Parse::RecDescent::_trace(
13422 0 0       0 q{>>Matched subrule: [_alternation_1_of_production_2_of_rule_type]<< (return value: [} . $_tok . q{]},
13423              
13424             Parse::RecDescent::_tracefirst($text),
13425             q{type},
13426             $tracelevel
13427             ) if defined $::RD_TRACE;
13428 0         0 $item{q{_alternation_1_of_production_2_of_rule_type}} = $_tok;
13429 0         0 push @item, $_tok;
13430              
13431             }
13432              
13433 0 0       0 Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{type}, $tracelevel)
13434             if defined $::RD_TRACE;
13435              
13436 0 0       0 $_tok = ($_noactions) ? 0 : do { $return = { event => $item[1] } };
  0         0  
13437 0 0       0 unless (defined $_tok) {
13438 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
13439             if defined $::RD_TRACE;
13440 0         0 last;
13441             }
13442 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])},
13443             Parse::RecDescent::_tracefirst($text))
13444             if defined $::RD_TRACE;
13445 0         0 push @item, $_tok;
13446 0         0 $item{__ACTION1__} = $_tok;
13447              
13448 0 0       0 Parse::RecDescent::_trace(
13449             q{>>Matched production: [/INSERT/i, or /DELETE/i, or /UPDATE/i]<<},
13450             Parse::RecDescent::_tracefirst($text),
13451             q{type}, $tracelevel
13452             ) if defined $::RD_TRACE;
13453 0         0 $_matched = 1;
13454 0         0 last;
13455             }
13456              
13457 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
13458              
13459 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
13460 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{type}, $tracelevel)
13461             if defined $::RD_TRACE;
13462 0         0 return undef;
13463             }
13464 0 0 0     0 if (!defined($return) && defined($score)) {
13465 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{type}, $tracelevel)
13466             if defined $::RD_TRACE;
13467 0         0 $return = $score_return;
13468             }
13469 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
13470 0 0       0 $return = $item[$#item] unless defined $return;
13471 0 0       0 if (defined $::RD_TRACE) {
13472 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{type}, $tracelevel);
13473 0         0 Parse::RecDescent::_trace(
13474             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
13475             Parse::RecDescent::_tracefirst($text),
13476             , q{type}, $tracelevel
13477             );
13478             }
13479 0         0 $_[1] = $text;
13480 0         0 return $return;
13481             }
13482              
13483             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
13484             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_12_of_rule_sysibm_function
13485             {
13486 0     0   0 my $thisparser = $_[0];
13487 1     1   11 use vars q{$tracelevel};
  1         2  
  1         1593  
13488 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
13489 0         0 $ERRORS = 0;
13490 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_12_of_rule_sysibm_function"};
13491              
13492 0 0       0 Parse::RecDescent::_trace(
13493             q{Trying rule: [_alternation_1_of_production_12_of_rule_sysibm_function]},
13494             Parse::RecDescent::_tracefirst($_[1]),
13495             q{_alternation_1_of_production_12_of_rule_sysibm_function}, $tracelevel
13496             ) if defined $::RD_TRACE;
13497              
13498 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
13499              
13500 0         0 my $score;
13501             my $score_return;
13502 0         0 my $_tok;
13503 0         0 my $return = undef;
13504 0         0 my $_matched = 0;
13505 0         0 my $commit = 0;
13506 0         0 my @item = ();
13507 0         0 my %item = ();
13508 0   0     0 my $repeating = defined($_[2]) && $_[2];
13509 0   0     0 my $_noactions = defined($_[3]) && $_[3];
13510 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
13511 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
13512 0         0 my $text;
13513 0         0 my $lastsep = "";
13514 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
13515 0         0 $expectation->at($_[1]);
13516              
13517 0         0 my $thisline;
13518 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
13519              
13520 0   0     0 while (!$_matched && !$commit) {
13521              
13522 0 0       0 Parse::RecDescent::_trace(
13523             q{Trying production: [/COVARIANCE/i]},
13524             Parse::RecDescent::_tracefirst($_[1]),
13525             q{_alternation_1_of_production_12_of_rule_sysibm_function}, $tracelevel
13526             ) if defined $::RD_TRACE;
13527 0         0 my $thisprod = $thisrule->{"prods"}[0];
13528 0         0 $text = $_[1];
13529 0         0 my $_savetext;
13530 0         0 @item = (q{_alternation_1_of_production_12_of_rule_sysibm_function});
13531 0         0 %item = (__RULE__ => q{_alternation_1_of_production_12_of_rule_sysibm_function});
13532 0         0 my $repcount = 0;
13533              
13534 0 0       0 Parse::RecDescent::_trace(
13535             q{Trying terminal: [/COVARIANCE/i]},
13536             Parse::RecDescent::_tracefirst($text),
13537             q{_alternation_1_of_production_12_of_rule_sysibm_function}, $tracelevel
13538             ) if defined $::RD_TRACE;
13539 0         0 $lastsep = "";
13540 0         0 $expectation->is(q{})->at($text);
13541              
13542 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
13543             and $text =~ s/\A(?:COVARIANCE)//i) {
13544              
13545 0         0 $expectation->failed();
13546 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
13547             if defined $::RD_TRACE;
13548              
13549 0         0 last;
13550             }
13551 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
13552             Parse::RecDescent::_tracefirst($text))
13553             if defined $::RD_TRACE;
13554 0         0 push @item, $item{__PATTERN1__} = $&;
13555              
13556 0 0       0 Parse::RecDescent::_trace(
13557             q{>>Matched production: [/COVARIANCE/i]<<},
13558             Parse::RecDescent::_tracefirst($text),
13559             q{_alternation_1_of_production_12_of_rule_sysibm_function}, $tracelevel
13560             ) if defined $::RD_TRACE;
13561 0         0 $_matched = 1;
13562 0         0 last;
13563             }
13564              
13565 0   0     0 while (!$_matched && !$commit) {
13566              
13567 0 0       0 Parse::RecDescent::_trace(
13568             q{Trying production: [/COVAR/i]},
13569             Parse::RecDescent::_tracefirst($_[1]),
13570             q{_alternation_1_of_production_12_of_rule_sysibm_function}, $tracelevel
13571             ) if defined $::RD_TRACE;
13572 0         0 my $thisprod = $thisrule->{"prods"}[1];
13573 0         0 $text = $_[1];
13574 0         0 my $_savetext;
13575 0         0 @item = (q{_alternation_1_of_production_12_of_rule_sysibm_function});
13576 0         0 %item = (__RULE__ => q{_alternation_1_of_production_12_of_rule_sysibm_function});
13577 0         0 my $repcount = 0;
13578              
13579 0 0       0 Parse::RecDescent::_trace(
13580             q{Trying terminal: [/COVAR/i]},
13581             Parse::RecDescent::_tracefirst($text),
13582             q{_alternation_1_of_production_12_of_rule_sysibm_function}, $tracelevel
13583             ) if defined $::RD_TRACE;
13584 0         0 $lastsep = "";
13585 0         0 $expectation->is(q{})->at($text);
13586              
13587 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
13588             and $text =~ s/\A(?:COVAR)//i) {
13589              
13590 0         0 $expectation->failed();
13591 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
13592             if defined $::RD_TRACE;
13593              
13594 0         0 last;
13595             }
13596 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
13597             Parse::RecDescent::_tracefirst($text))
13598             if defined $::RD_TRACE;
13599 0         0 push @item, $item{__PATTERN1__} = $&;
13600              
13601 0 0       0 Parse::RecDescent::_trace(
13602             q{>>Matched production: [/COVAR/i]<<},
13603             Parse::RecDescent::_tracefirst($text),
13604             q{_alternation_1_of_production_12_of_rule_sysibm_function}, $tracelevel
13605             ) if defined $::RD_TRACE;
13606 0         0 $_matched = 1;
13607 0         0 last;
13608             }
13609              
13610 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
13611              
13612 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
13613 0 0       0 Parse::RecDescent::_trace(
13614             q{<>},
13615             Parse::RecDescent::_tracefirst($_[1]),
13616             q{_alternation_1_of_production_12_of_rule_sysibm_function}, $tracelevel
13617             ) if defined $::RD_TRACE;
13618 0         0 return undef;
13619             }
13620 0 0 0     0 if (!defined($return) && defined($score)) {
13621 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
13622             "", q{_alternation_1_of_production_12_of_rule_sysibm_function}, $tracelevel)
13623             if defined $::RD_TRACE;
13624 0         0 $return = $score_return;
13625             }
13626 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
13627 0 0       0 $return = $item[$#item] unless defined $return;
13628 0 0       0 if (defined $::RD_TRACE) {
13629 0         0 Parse::RecDescent::_trace(
13630             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
13631             q{_alternation_1_of_production_12_of_rule_sysibm_function}, $tracelevel
13632             );
13633 0         0 Parse::RecDescent::_trace(
13634             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
13635             Parse::RecDescent::_tracefirst($text),
13636             , q{_alternation_1_of_production_12_of_rule_sysibm_function}, $tracelevel
13637             );
13638             }
13639 0         0 $_[1] = $text;
13640 0         0 return $return;
13641             }
13642              
13643             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
13644             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::scalar_fullselect {
13645 0     0   0 my $thisparser = $_[0];
13646 1     1   12 use vars q{$tracelevel};
  1         2  
  1         673  
13647 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
13648 0         0 $ERRORS = 0;
13649 0         0 my $thisrule = $thisparser->{"rules"}{"scalar_fullselect"};
13650              
13651 0 0       0 Parse::RecDescent::_trace(
13652             q{Trying rule: [scalar_fullselect]},
13653             Parse::RecDescent::_tracefirst($_[1]),
13654             q{scalar_fullselect}, $tracelevel
13655             ) if defined $::RD_TRACE;
13656              
13657 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
13658              
13659 0         0 my $score;
13660             my $score_return;
13661 0         0 my $_tok;
13662 0         0 my $return = undef;
13663 0         0 my $_matched = 0;
13664 0         0 my $commit = 0;
13665 0         0 my @item = ();
13666 0         0 my %item = ();
13667 0   0     0 my $repeating = defined($_[2]) && $_[2];
13668 0   0     0 my $_noactions = defined($_[3]) && $_[3];
13669 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
13670 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
13671 0         0 my $text;
13672 0         0 my $lastsep = "";
13673 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
13674 0         0 $expectation->at($_[1]);
13675              
13676 0         0 my $thisline;
13677 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
13678              
13679 0   0     0 while (!$_matched && !$commit) {
13680              
13681 0 0       0 Parse::RecDescent::_trace(
13682             q{Trying production: ['(' fullselect ')']},
13683             Parse::RecDescent::_tracefirst($_[1]),
13684             q{scalar_fullselect}, $tracelevel
13685             ) if defined $::RD_TRACE;
13686 0         0 my $thisprod = $thisrule->{"prods"}[0];
13687 0         0 $text = $_[1];
13688 0         0 my $_savetext;
13689 0         0 @item = (q{scalar_fullselect});
13690 0         0 %item = (__RULE__ => q{scalar_fullselect});
13691 0         0 my $repcount = 0;
13692              
13693 0 0       0 Parse::RecDescent::_trace(
13694             q{Trying terminal: ['(']},
13695             Parse::RecDescent::_tracefirst($text),
13696             q{scalar_fullselect}, $tracelevel
13697             ) if defined $::RD_TRACE;
13698 0         0 $lastsep = "";
13699 0         0 $expectation->is(q{})->at($text);
13700              
13701 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
13702             and $text =~ s/\A\(//) {
13703              
13704 0         0 $expectation->failed();
13705 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
13706             if defined $::RD_TRACE;
13707 0         0 last;
13708             }
13709 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
13710             Parse::RecDescent::_tracefirst($text))
13711             if defined $::RD_TRACE;
13712 0         0 push @item, $item{__STRING1__} = $&;
13713              
13714 0 0       0 Parse::RecDescent::_trace(
13715             q{Trying subrule: [fullselect]},
13716             Parse::RecDescent::_tracefirst($text),
13717             q{scalar_fullselect}, $tracelevel
13718             ) if defined $::RD_TRACE;
13719 0         0 if (1) {
13720 1     1   14 no strict qw{refs};
  1         3  
  1         999  
13721 0         0 $expectation->is(q{fullselect})->at($text);
13722 0 0       0 unless (defined(
13723             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::fullselect(
13724 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
13725             )
13726             )) {
13727              
13728 0 0       0 Parse::RecDescent::_trace(
13729             q{<>},
13730             Parse::RecDescent::_tracefirst($text),
13731             q{scalar_fullselect}, $tracelevel
13732             ) if defined $::RD_TRACE;
13733 0         0 $expectation->failed();
13734 0         0 last;
13735             }
13736             Parse::RecDescent::_trace(
13737 0 0       0 q{>>Matched subrule: [fullselect]<< (return value: [} . $_tok . q{]},
13738              
13739             Parse::RecDescent::_tracefirst($text),
13740             q{scalar_fullselect},
13741             $tracelevel
13742             ) if defined $::RD_TRACE;
13743 0         0 $item{q{fullselect}} = $_tok;
13744 0         0 push @item, $_tok;
13745              
13746             }
13747              
13748             Parse::RecDescent::_trace(
13749 0 0       0 q{Trying terminal: [')']},
13750             Parse::RecDescent::_tracefirst($text),
13751             q{scalar_fullselect}, $tracelevel
13752             ) if defined $::RD_TRACE;
13753 0         0 $lastsep = "";
13754 0         0 $expectation->is(q{')'})->at($text);
13755              
13756 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
13757             and $text =~ s/\A\)//) {
13758              
13759 0         0 $expectation->failed();
13760 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
13761             if defined $::RD_TRACE;
13762 0         0 last;
13763             }
13764 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
13765             Parse::RecDescent::_tracefirst($text))
13766             if defined $::RD_TRACE;
13767 0         0 push @item, $item{__STRING2__} = $&;
13768              
13769 0 0       0 Parse::RecDescent::_trace(
13770             q{>>Matched production: ['(' fullselect ')']<<},
13771             Parse::RecDescent::_tracefirst($text),
13772             q{scalar_fullselect}, $tracelevel
13773             ) if defined $::RD_TRACE;
13774 0         0 $_matched = 1;
13775 0         0 last;
13776             }
13777              
13778 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
13779              
13780 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
13781 0 0       0 Parse::RecDescent::_trace(
13782             q{<>},
13783             Parse::RecDescent::_tracefirst($_[1]),
13784             q{scalar_fullselect}, $tracelevel
13785             ) if defined $::RD_TRACE;
13786 0         0 return undef;
13787             }
13788 0 0 0     0 if (!defined($return) && defined($score)) {
13789 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{scalar_fullselect}, $tracelevel)
13790             if defined $::RD_TRACE;
13791 0         0 $return = $score_return;
13792             }
13793 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
13794 0 0       0 $return = $item[$#item] unless defined $return;
13795 0 0       0 if (defined $::RD_TRACE) {
13796 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
13797             "", q{scalar_fullselect}, $tracelevel);
13798 0         0 Parse::RecDescent::_trace(
13799             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
13800             Parse::RecDescent::_tracefirst($text),
13801             , q{scalar_fullselect}, $tracelevel
13802             );
13803             }
13804 0         0 $_[1] = $text;
13805 0         0 return $return;
13806             }
13807              
13808             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
13809             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_options {
13810 0     0   0 my $thisparser = $_[0];
13811 1     1   11 use vars q{$tracelevel};
  1         2  
  1         1450  
13812 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
13813 0         0 $ERRORS = 0;
13814 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_options"};
13815              
13816 0 0       0 Parse::RecDescent::_trace(
13817             q{Trying rule: [_alternation_1_of_production_1_of_rule_options]},
13818             Parse::RecDescent::_tracefirst($_[1]),
13819             q{_alternation_1_of_production_1_of_rule_options}, $tracelevel
13820             ) if defined $::RD_TRACE;
13821              
13822 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
13823              
13824 0         0 my $score;
13825             my $score_return;
13826 0         0 my $_tok;
13827 0         0 my $return = undef;
13828 0         0 my $_matched = 0;
13829 0         0 my $commit = 0;
13830 0         0 my @item = ();
13831 0         0 my %item = ();
13832 0   0     0 my $repeating = defined($_[2]) && $_[2];
13833 0   0     0 my $_noactions = defined($_[3]) && $_[3];
13834 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
13835 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
13836 0         0 my $text;
13837 0         0 my $lastsep = "";
13838 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
13839 0         0 $expectation->at($_[1]);
13840              
13841 0         0 my $thisline;
13842 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
13843              
13844 0   0     0 while (!$_matched && !$commit) {
13845              
13846 0 0       0 Parse::RecDescent::_trace(
13847             q{Trying production: [/CASCADED/i]},
13848             Parse::RecDescent::_tracefirst($_[1]),
13849             q{_alternation_1_of_production_1_of_rule_options}, $tracelevel
13850             ) if defined $::RD_TRACE;
13851 0         0 my $thisprod = $thisrule->{"prods"}[0];
13852 0         0 $text = $_[1];
13853 0         0 my $_savetext;
13854 0         0 @item = (q{_alternation_1_of_production_1_of_rule_options});
13855 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_options});
13856 0         0 my $repcount = 0;
13857              
13858 0 0       0 Parse::RecDescent::_trace(
13859             q{Trying terminal: [/CASCADED/i]},
13860             Parse::RecDescent::_tracefirst($text),
13861             q{_alternation_1_of_production_1_of_rule_options}, $tracelevel
13862             ) if defined $::RD_TRACE;
13863 0         0 $lastsep = "";
13864 0         0 $expectation->is(q{})->at($text);
13865              
13866 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
13867             and $text =~ s/\A(?:CASCADED)//i) {
13868              
13869 0         0 $expectation->failed();
13870 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
13871             if defined $::RD_TRACE;
13872              
13873 0         0 last;
13874             }
13875 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
13876             Parse::RecDescent::_tracefirst($text))
13877             if defined $::RD_TRACE;
13878 0         0 push @item, $item{__PATTERN1__} = $&;
13879              
13880 0 0       0 Parse::RecDescent::_trace(
13881             q{>>Matched production: [/CASCADED/i]<<},
13882             Parse::RecDescent::_tracefirst($text),
13883             q{_alternation_1_of_production_1_of_rule_options}, $tracelevel
13884             ) if defined $::RD_TRACE;
13885 0         0 $_matched = 1;
13886 0         0 last;
13887             }
13888              
13889 0   0     0 while (!$_matched && !$commit) {
13890              
13891 0 0       0 Parse::RecDescent::_trace(
13892             q{Trying production: [/LOCAL/i]},
13893             Parse::RecDescent::_tracefirst($_[1]),
13894             q{_alternation_1_of_production_1_of_rule_options}, $tracelevel
13895             ) if defined $::RD_TRACE;
13896 0         0 my $thisprod = $thisrule->{"prods"}[1];
13897 0         0 $text = $_[1];
13898 0         0 my $_savetext;
13899 0         0 @item = (q{_alternation_1_of_production_1_of_rule_options});
13900 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_options});
13901 0         0 my $repcount = 0;
13902              
13903 0 0       0 Parse::RecDescent::_trace(
13904             q{Trying terminal: [/LOCAL/i]},
13905             Parse::RecDescent::_tracefirst($text),
13906             q{_alternation_1_of_production_1_of_rule_options}, $tracelevel
13907             ) if defined $::RD_TRACE;
13908 0         0 $lastsep = "";
13909 0         0 $expectation->is(q{})->at($text);
13910              
13911 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
13912             and $text =~ s/\A(?:LOCAL)//i) {
13913              
13914 0         0 $expectation->failed();
13915 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
13916             if defined $::RD_TRACE;
13917              
13918 0         0 last;
13919             }
13920 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
13921             Parse::RecDescent::_tracefirst($text))
13922             if defined $::RD_TRACE;
13923 0         0 push @item, $item{__PATTERN1__} = $&;
13924              
13925 0 0       0 Parse::RecDescent::_trace(
13926             q{>>Matched production: [/LOCAL/i]<<},
13927             Parse::RecDescent::_tracefirst($text),
13928             q{_alternation_1_of_production_1_of_rule_options}, $tracelevel
13929             ) if defined $::RD_TRACE;
13930 0         0 $_matched = 1;
13931 0         0 last;
13932             }
13933              
13934 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
13935              
13936 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
13937 0 0       0 Parse::RecDescent::_trace(
13938             q{<>},
13939             Parse::RecDescent::_tracefirst($_[1]),
13940             q{_alternation_1_of_production_1_of_rule_options}, $tracelevel
13941             ) if defined $::RD_TRACE;
13942 0         0 return undef;
13943             }
13944 0 0 0     0 if (!defined($return) && defined($score)) {
13945 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
13946             "", q{_alternation_1_of_production_1_of_rule_options}, $tracelevel)
13947             if defined $::RD_TRACE;
13948 0         0 $return = $score_return;
13949             }
13950 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
13951 0 0       0 $return = $item[$#item] unless defined $return;
13952 0 0       0 if (defined $::RD_TRACE) {
13953 0         0 Parse::RecDescent::_trace(
13954             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
13955             q{_alternation_1_of_production_1_of_rule_options}, $tracelevel
13956             );
13957 0         0 Parse::RecDescent::_trace(
13958             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
13959             Parse::RecDescent::_tracefirst($text),
13960             , q{_alternation_1_of_production_1_of_rule_options}, $tracelevel
13961             );
13962             }
13963 0         0 $_[1] = $text;
13964 0         0 return $return;
13965             }
13966              
13967             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
13968             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::func_args {
13969 0     0   0 my $thisparser = $_[0];
13970 1     1   10 use vars q{$tracelevel};
  1         4  
  1         491  
13971 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
13972 0         0 $ERRORS = 0;
13973 0         0 my $thisrule = $thisparser->{"rules"}{"func_args"};
13974              
13975 0 0       0 Parse::RecDescent::_trace(
13976             q{Trying rule: [func_args]},
13977             Parse::RecDescent::_tracefirst($_[1]),
13978             q{func_args}, $tracelevel
13979             ) if defined $::RD_TRACE;
13980              
13981 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
13982              
13983 0         0 my $score;
13984             my $score_return;
13985 0         0 my $_tok;
13986 0         0 my $return = undef;
13987 0         0 my $_matched = 0;
13988 0         0 my $commit = 0;
13989 0         0 my @item = ();
13990 0         0 my %item = ();
13991 0   0     0 my $repeating = defined($_[2]) && $_[2];
13992 0   0     0 my $_noactions = defined($_[3]) && $_[3];
13993 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
13994 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
13995 0         0 my $text;
13996 0         0 my $lastsep = "";
13997 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
13998 0         0 $expectation->at($_[1]);
13999              
14000 0         0 my $thisline;
14001 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
14002              
14003 0   0     0 while (!$_matched && !$commit) {
14004              
14005 0 0       0 Parse::RecDescent::_trace(
14006             q{Trying production: [expression]},
14007             Parse::RecDescent::_tracefirst($_[1]),
14008             q{func_args}, $tracelevel
14009             ) if defined $::RD_TRACE;
14010 0         0 my $thisprod = $thisrule->{"prods"}[0];
14011 0         0 $text = $_[1];
14012 0         0 my $_savetext;
14013 0         0 @item = (q{func_args});
14014 0         0 %item = (__RULE__ => q{func_args});
14015 0         0 my $repcount = 0;
14016              
14017 0 0       0 Parse::RecDescent::_trace(
14018             q{Trying subrule: [expression]},
14019             Parse::RecDescent::_tracefirst($text),
14020             q{func_args}, $tracelevel
14021             ) if defined $::RD_TRACE;
14022 0         0 if (1) {
14023 1     1   9 no strict qw{refs};
  1         4  
  1         673  
14024 0         0 $expectation->is(q{})->at($text);
14025 0 0       0 unless (defined(
14026             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression(
14027 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
14028             )
14029             )) {
14030              
14031 0 0       0 Parse::RecDescent::_trace(
14032             q{<>},
14033             Parse::RecDescent::_tracefirst($text),
14034             q{func_args}, $tracelevel
14035             ) if defined $::RD_TRACE;
14036 0         0 $expectation->failed();
14037 0         0 last;
14038             }
14039             Parse::RecDescent::_trace(
14040 0 0       0 q{>>Matched subrule: [expression]<< (return value: [} . $_tok . q{]},
14041              
14042             Parse::RecDescent::_tracefirst($text),
14043             q{func_args},
14044             $tracelevel
14045             ) if defined $::RD_TRACE;
14046 0         0 $item{q{expression}} = $_tok;
14047 0         0 push @item, $_tok;
14048              
14049             }
14050              
14051             Parse::RecDescent::_trace(
14052 0 0       0 q{>>Matched production: [expression]<<},
14053             Parse::RecDescent::_tracefirst($text),
14054             q{func_args}, $tracelevel
14055             ) if defined $::RD_TRACE;
14056 0         0 $_matched = 1;
14057 0         0 last;
14058             }
14059              
14060 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
14061              
14062 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
14063 0 0       0 Parse::RecDescent::_trace(
14064             q{<>},
14065             Parse::RecDescent::_tracefirst($_[1]),
14066             q{func_args}, $tracelevel
14067             ) if defined $::RD_TRACE;
14068 0         0 return undef;
14069             }
14070 0 0 0     0 if (!defined($return) && defined($score)) {
14071 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{func_args}, $tracelevel)
14072             if defined $::RD_TRACE;
14073 0         0 $return = $score_return;
14074             }
14075 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
14076 0 0       0 $return = $item[$#item] unless defined $return;
14077 0 0       0 if (defined $::RD_TRACE) {
14078 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{func_args}, $tracelevel);
14079 0         0 Parse::RecDescent::_trace(
14080             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
14081             Parse::RecDescent::_tracefirst($text),
14082             , q{func_args}, $tracelevel
14083             );
14084             }
14085 0         0 $_[1] = $text;
14086 0         0 return $return;
14087             }
14088              
14089             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
14090             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::trigger_name {
14091 0     0   0 my $thisparser = $_[0];
14092 1     1   12 use vars q{$tracelevel};
  1         5  
  1         541  
14093 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
14094 0         0 $ERRORS = 0;
14095 0         0 my $thisrule = $thisparser->{"rules"}{"trigger_name"};
14096              
14097 0 0       0 Parse::RecDescent::_trace(
14098             q{Trying rule: [trigger_name]},
14099             Parse::RecDescent::_tracefirst($_[1]),
14100             q{trigger_name}, $tracelevel
14101             ) if defined $::RD_TRACE;
14102              
14103 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
14104              
14105 0         0 my $score;
14106             my $score_return;
14107 0         0 my $_tok;
14108 0         0 my $return = undef;
14109 0         0 my $_matched = 0;
14110 0         0 my $commit = 0;
14111 0         0 my @item = ();
14112 0         0 my %item = ();
14113 0   0     0 my $repeating = defined($_[2]) && $_[2];
14114 0   0     0 my $_noactions = defined($_[3]) && $_[3];
14115 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
14116 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
14117 0         0 my $text;
14118 0         0 my $lastsep = "";
14119 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
14120 0         0 $expectation->at($_[1]);
14121              
14122 0         0 my $thisline;
14123 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
14124              
14125 0   0     0 while (!$_matched && !$commit) {
14126              
14127 0 0       0 Parse::RecDescent::_trace(
14128             q{Trying production: [SCHEMA '.' NAME]},
14129             Parse::RecDescent::_tracefirst($_[1]),
14130             q{trigger_name}, $tracelevel
14131             ) if defined $::RD_TRACE;
14132 0         0 my $thisprod = $thisrule->{"prods"}[0];
14133 0         0 $text = $_[1];
14134 0         0 my $_savetext;
14135 0         0 @item = (q{trigger_name});
14136 0         0 %item = (__RULE__ => q{trigger_name});
14137 0         0 my $repcount = 0;
14138              
14139 0 0       0 Parse::RecDescent::_trace(
14140             q{Trying subrule: [SCHEMA]},
14141             Parse::RecDescent::_tracefirst($text),
14142             q{trigger_name}, $tracelevel
14143             ) if defined $::RD_TRACE;
14144 0         0 if (1) {
14145 1     1   12 no strict qw{refs};
  1         2  
  1         460  
14146 0         0 $expectation->is(q{})->at($text);
14147 0 0       0 unless (defined(
14148             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SCHEMA(
14149 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
14150             )
14151             )) {
14152              
14153 0 0       0 Parse::RecDescent::_trace(
14154             q{<>},
14155             Parse::RecDescent::_tracefirst($text),
14156             q{trigger_name}, $tracelevel
14157             ) if defined $::RD_TRACE;
14158 0         0 $expectation->failed();
14159 0         0 last;
14160             }
14161             Parse::RecDescent::_trace(
14162 0 0       0 q{>>Matched subrule: [SCHEMA]<< (return value: [} . $_tok . q{]},
14163              
14164             Parse::RecDescent::_tracefirst($text),
14165             q{trigger_name},
14166             $tracelevel
14167             ) if defined $::RD_TRACE;
14168 0         0 $item{q{SCHEMA}} = $_tok;
14169 0         0 push @item, $_tok;
14170              
14171             }
14172              
14173             Parse::RecDescent::_trace(
14174 0 0       0 q{Trying terminal: ['.']},
14175             Parse::RecDescent::_tracefirst($text),
14176             q{trigger_name}, $tracelevel
14177             ) if defined $::RD_TRACE;
14178 0         0 $lastsep = "";
14179 0         0 $expectation->is(q{'.'})->at($text);
14180              
14181 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
14182             and $text =~ s/\A\.//) {
14183              
14184 0         0 $expectation->failed();
14185 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
14186             if defined $::RD_TRACE;
14187 0         0 last;
14188             }
14189 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
14190             Parse::RecDescent::_tracefirst($text))
14191             if defined $::RD_TRACE;
14192 0         0 push @item, $item{__STRING1__} = $&;
14193              
14194 0 0       0 Parse::RecDescent::_trace(
14195             q{Trying subrule: [NAME]},
14196             Parse::RecDescent::_tracefirst($text),
14197             q{trigger_name}, $tracelevel
14198             ) if defined $::RD_TRACE;
14199 0         0 if (1) {
14200 1     1   10 no strict qw{refs};
  1         3  
  1         567  
14201 0         0 $expectation->is(q{NAME})->at($text);
14202 0 0       0 unless (defined(
14203             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME(
14204 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
14205             )
14206             )) {
14207              
14208 0 0       0 Parse::RecDescent::_trace(
14209             q{<>},
14210             Parse::RecDescent::_tracefirst($text),
14211             q{trigger_name}, $tracelevel
14212             ) if defined $::RD_TRACE;
14213 0         0 $expectation->failed();
14214 0         0 last;
14215             }
14216             Parse::RecDescent::_trace(
14217 0 0       0 q{>>Matched subrule: [NAME]<< (return value: [} . $_tok . q{]},
14218              
14219             Parse::RecDescent::_tracefirst($text),
14220             q{trigger_name},
14221             $tracelevel
14222             ) if defined $::RD_TRACE;
14223 0         0 $item{q{NAME}} = $_tok;
14224 0         0 push @item, $_tok;
14225              
14226             }
14227              
14228 0 0       0 Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{trigger_name}, $tracelevel)
14229             if defined $::RD_TRACE;
14230              
14231             $_tok
14232             = ($_noactions)
14233             ? 0
14234 0 0       0 : do { $return = { schema => $item[1], name => $item[3] } };
  0         0  
14235 0 0       0 unless (defined $_tok) {
14236 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
14237             if defined $::RD_TRACE;
14238 0         0 last;
14239             }
14240 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])},
14241             Parse::RecDescent::_tracefirst($text))
14242             if defined $::RD_TRACE;
14243 0         0 push @item, $_tok;
14244 0         0 $item{__ACTION1__} = $_tok;
14245              
14246 0 0       0 Parse::RecDescent::_trace(
14247             q{>>Matched production: [SCHEMA '.' NAME]<<},
14248             Parse::RecDescent::_tracefirst($text),
14249             q{trigger_name}, $tracelevel
14250             ) if defined $::RD_TRACE;
14251 0         0 $_matched = 1;
14252 0         0 last;
14253             }
14254              
14255 0   0     0 while (!$_matched && !$commit) {
14256              
14257 0 0       0 Parse::RecDescent::_trace(
14258             q{Trying production: [NAME]},
14259             Parse::RecDescent::_tracefirst($_[1]),
14260             q{trigger_name}, $tracelevel
14261             ) if defined $::RD_TRACE;
14262 0         0 my $thisprod = $thisrule->{"prods"}[1];
14263 0         0 $text = $_[1];
14264 0         0 my $_savetext;
14265 0         0 @item = (q{trigger_name});
14266 0         0 %item = (__RULE__ => q{trigger_name});
14267 0         0 my $repcount = 0;
14268              
14269 0 0       0 Parse::RecDescent::_trace(
14270             q{Trying subrule: [NAME]},
14271             Parse::RecDescent::_tracefirst($text),
14272             q{trigger_name}, $tracelevel
14273             ) if defined $::RD_TRACE;
14274 0         0 if (1) {
14275 1     1   10 no strict qw{refs};
  1         2  
  1         888  
14276 0         0 $expectation->is(q{})->at($text);
14277 0 0       0 unless (defined(
14278             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME(
14279 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
14280             )
14281             )) {
14282              
14283 0 0       0 Parse::RecDescent::_trace(
14284             q{<>},
14285             Parse::RecDescent::_tracefirst($text),
14286             q{trigger_name}, $tracelevel
14287             ) if defined $::RD_TRACE;
14288 0         0 $expectation->failed();
14289 0         0 last;
14290             }
14291             Parse::RecDescent::_trace(
14292 0 0       0 q{>>Matched subrule: [NAME]<< (return value: [} . $_tok . q{]},
14293              
14294             Parse::RecDescent::_tracefirst($text),
14295             q{trigger_name},
14296             $tracelevel
14297             ) if defined $::RD_TRACE;
14298 0         0 $item{q{NAME}} = $_tok;
14299 0         0 push @item, $_tok;
14300              
14301             }
14302              
14303 0 0       0 Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{trigger_name}, $tracelevel)
14304             if defined $::RD_TRACE;
14305              
14306 0 0       0 $_tok = ($_noactions) ? 0 : do { $return = { name => $item[1] } };
  0         0  
14307 0 0       0 unless (defined $_tok) {
14308 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
14309             if defined $::RD_TRACE;
14310 0         0 last;
14311             }
14312 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])},
14313             Parse::RecDescent::_tracefirst($text))
14314             if defined $::RD_TRACE;
14315 0         0 push @item, $_tok;
14316 0         0 $item{__ACTION1__} = $_tok;
14317              
14318 0 0       0 Parse::RecDescent::_trace(
14319             q{>>Matched production: [NAME]<<},
14320             Parse::RecDescent::_tracefirst($text),
14321             q{trigger_name}, $tracelevel
14322             ) if defined $::RD_TRACE;
14323 0         0 $_matched = 1;
14324 0         0 last;
14325             }
14326              
14327 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
14328              
14329 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
14330 0 0       0 Parse::RecDescent::_trace(
14331             q{<>},
14332             Parse::RecDescent::_tracefirst($_[1]),
14333             q{trigger_name}, $tracelevel
14334             ) if defined $::RD_TRACE;
14335 0         0 return undef;
14336             }
14337 0 0 0     0 if (!defined($return) && defined($score)) {
14338 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{trigger_name}, $tracelevel)
14339             if defined $::RD_TRACE;
14340 0         0 $return = $score_return;
14341             }
14342 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
14343 0 0       0 $return = $item[$#item] unless defined $return;
14344 0 0       0 if (defined $::RD_TRACE) {
14345 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
14346             "", q{trigger_name}, $tracelevel);
14347 0         0 Parse::RecDescent::_trace(
14348             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
14349             Parse::RecDescent::_tracefirst($text),
14350             , q{trigger_name}, $tracelevel
14351             );
14352             }
14353 0         0 $_[1] = $text;
14354 0         0 return $return;
14355             }
14356              
14357             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
14358             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_numbering_function
14359             {
14360 0     0   0 my $thisparser = $_[0];
14361 1     1   12 use vars q{$tracelevel};
  1         5  
  1         1053  
14362 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
14363 0         0 $ERRORS = 0;
14364 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_2_of_production_1_of_rule_numbering_function"};
14365              
14366 0 0       0 Parse::RecDescent::_trace(
14367             q{Trying rule: [_alternation_2_of_production_1_of_rule_numbering_function]},
14368             Parse::RecDescent::_tracefirst($_[1]),
14369             q{_alternation_2_of_production_1_of_rule_numbering_function}, $tracelevel
14370             ) if defined $::RD_TRACE;
14371              
14372 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
14373              
14374 0         0 my $score;
14375             my $score_return;
14376 0         0 my $_tok;
14377 0         0 my $return = undef;
14378 0         0 my $_matched = 0;
14379 0         0 my $commit = 0;
14380 0         0 my @item = ();
14381 0         0 my %item = ();
14382 0   0     0 my $repeating = defined($_[2]) && $_[2];
14383 0   0     0 my $_noactions = defined($_[3]) && $_[3];
14384 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
14385 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
14386 0         0 my $text;
14387 0         0 my $lastsep = "";
14388 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
14389 0         0 $expectation->at($_[1]);
14390              
14391 0         0 my $thisline;
14392 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
14393              
14394 0   0     0 while (!$_matched && !$commit) {
14395              
14396 0 0       0 Parse::RecDescent::_trace(
14397             q{Trying production: [/RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i]},
14398             Parse::RecDescent::_tracefirst($_[1]),
14399             q{_alternation_2_of_production_1_of_rule_numbering_function},
14400             $tracelevel
14401             ) if defined $::RD_TRACE;
14402 0         0 my $thisprod = $thisrule->{"prods"}[0];
14403 0         0 $text = $_[1];
14404 0         0 my $_savetext;
14405 0         0 @item = (q{_alternation_2_of_production_1_of_rule_numbering_function});
14406 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_numbering_function});
14407 0         0 my $repcount = 0;
14408              
14409 0 0       0 Parse::RecDescent::_trace(
14410             q{Trying terminal: [/RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i]},
14411             Parse::RecDescent::_tracefirst($text),
14412             q{_alternation_2_of_production_1_of_rule_numbering_function},
14413             $tracelevel
14414             ) if defined $::RD_TRACE;
14415 0         0 $lastsep = "";
14416 0         0 $expectation->is(q{})->at($text);
14417              
14418 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
14419             and $text =~ s/\A(?:RANGE\s+BETWEEN\s+UNBOUNDED\s+PRECEDING\s+AND\s+UNBBOUNDED\s+FOLLOWING)//i) {
14420              
14421 0         0 $expectation->failed();
14422 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
14423             if defined $::RD_TRACE;
14424              
14425 0         0 last;
14426             }
14427 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
14428             Parse::RecDescent::_tracefirst($text))
14429             if defined $::RD_TRACE;
14430 0         0 push @item, $item{__PATTERN1__} = $&;
14431              
14432 0 0       0 Parse::RecDescent::_trace(
14433             q{>>Matched production: [/RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i]<<},
14434             Parse::RecDescent::_tracefirst($text),
14435             q{_alternation_2_of_production_1_of_rule_numbering_function},
14436             $tracelevel
14437             ) if defined $::RD_TRACE;
14438 0         0 $_matched = 1;
14439 0         0 last;
14440             }
14441              
14442 0   0     0 while (!$_matched && !$commit) {
14443              
14444 0 0       0 Parse::RecDescent::_trace(
14445             q{Trying production: [window_aggregation_group_clause]},
14446             Parse::RecDescent::_tracefirst($_[1]),
14447             q{_alternation_2_of_production_1_of_rule_numbering_function}, $tracelevel
14448             ) if defined $::RD_TRACE;
14449 0         0 my $thisprod = $thisrule->{"prods"}[1];
14450 0         0 $text = $_[1];
14451 0         0 my $_savetext;
14452 0         0 @item = (q{_alternation_2_of_production_1_of_rule_numbering_function});
14453 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_numbering_function});
14454 0         0 my $repcount = 0;
14455              
14456 0 0       0 Parse::RecDescent::_trace(
14457             q{Trying subrule: [window_aggregation_group_clause]},
14458             Parse::RecDescent::_tracefirst($text),
14459             q{_alternation_2_of_production_1_of_rule_numbering_function}, $tracelevel
14460             ) if defined $::RD_TRACE;
14461 0         0 if (1) {
14462 1     1   12 no strict qw{refs};
  1         3  
  1         719  
14463 0         0 $expectation->is(q{})->at($text);
14464 0 0       0 unless (defined(
14465             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_aggregation_group_clause(
14466 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
14467             )
14468             )) {
14469              
14470 0 0       0 Parse::RecDescent::_trace(
14471             q{<>}, Parse::RecDescent::_tracefirst($text),
14472             q{_alternation_2_of_production_1_of_rule_numbering_function}, $tracelevel
14473             ) if defined $::RD_TRACE;
14474 0         0 $expectation->failed();
14475 0         0 last;
14476             }
14477             Parse::RecDescent::_trace(
14478 0 0       0 q{>>Matched subrule: [window_aggregation_group_clause]<< (return value: [} . $_tok . q{]},
14479              
14480             Parse::RecDescent::_tracefirst($text),
14481             q{_alternation_2_of_production_1_of_rule_numbering_function},
14482             $tracelevel
14483             ) if defined $::RD_TRACE;
14484 0         0 $item{q{window_aggregation_group_clause}} = $_tok;
14485 0         0 push @item, $_tok;
14486              
14487             }
14488              
14489             Parse::RecDescent::_trace(
14490 0 0       0 q{>>Matched production: [window_aggregation_group_clause]<<}, Parse::RecDescent::_tracefirst($text),
14491             q{_alternation_2_of_production_1_of_rule_numbering_function}, $tracelevel
14492             ) if defined $::RD_TRACE;
14493 0         0 $_matched = 1;
14494 0         0 last;
14495             }
14496              
14497 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
14498              
14499 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
14500 0 0       0 Parse::RecDescent::_trace(
14501             q{<>},
14502             Parse::RecDescent::_tracefirst($_[1]),
14503             q{_alternation_2_of_production_1_of_rule_numbering_function}, $tracelevel
14504             ) if defined $::RD_TRACE;
14505 0         0 return undef;
14506             }
14507 0 0 0     0 if (!defined($return) && defined($score)) {
14508 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
14509             "", q{_alternation_2_of_production_1_of_rule_numbering_function}, $tracelevel)
14510             if defined $::RD_TRACE;
14511 0         0 $return = $score_return;
14512             }
14513 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
14514 0 0       0 $return = $item[$#item] unless defined $return;
14515 0 0       0 if (defined $::RD_TRACE) {
14516 0         0 Parse::RecDescent::_trace(
14517             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
14518             q{_alternation_2_of_production_1_of_rule_numbering_function}, $tracelevel
14519             );
14520 0         0 Parse::RecDescent::_trace(
14521             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
14522             Parse::RecDescent::_tracefirst($text),
14523             , q{_alternation_2_of_production_1_of_rule_numbering_function}, $tracelevel
14524             );
14525             }
14526 0         0 $_[1] = $text;
14527 0         0 return $return;
14528             }
14529              
14530             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
14531             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::method_name {
14532 0     0   0 my $thisparser = $_[0];
14533 1     1   10 use vars q{$tracelevel};
  1         3  
  1         518  
14534 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
14535 0         0 $ERRORS = 0;
14536 0         0 my $thisrule = $thisparser->{"rules"}{"method_name"};
14537              
14538 0 0       0 Parse::RecDescent::_trace(
14539             q{Trying rule: [method_name]},
14540             Parse::RecDescent::_tracefirst($_[1]),
14541             q{method_name}, $tracelevel
14542             ) if defined $::RD_TRACE;
14543              
14544 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
14545              
14546 0         0 my $score;
14547             my $score_return;
14548 0         0 my $_tok;
14549 0         0 my $return = undef;
14550 0         0 my $_matched = 0;
14551 0         0 my $commit = 0;
14552 0         0 my @item = ();
14553 0         0 my %item = ();
14554 0   0     0 my $repeating = defined($_[2]) && $_[2];
14555 0   0     0 my $_noactions = defined($_[3]) && $_[3];
14556 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
14557 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
14558 0         0 my $text;
14559 0         0 my $lastsep = "";
14560 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
14561 0         0 $expectation->at($_[1]);
14562              
14563 0         0 my $thisline;
14564 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
14565              
14566 0   0     0 while (!$_matched && !$commit) {
14567              
14568 0 0       0 Parse::RecDescent::_trace(
14569             q{Trying production: [NAME]},
14570             Parse::RecDescent::_tracefirst($_[1]),
14571             q{method_name}, $tracelevel
14572             ) if defined $::RD_TRACE;
14573 0         0 my $thisprod = $thisrule->{"prods"}[0];
14574 0         0 $text = $_[1];
14575 0         0 my $_savetext;
14576 0         0 @item = (q{method_name});
14577 0         0 %item = (__RULE__ => q{method_name});
14578 0         0 my $repcount = 0;
14579              
14580 0 0       0 Parse::RecDescent::_trace(
14581             q{Trying subrule: [NAME]},
14582             Parse::RecDescent::_tracefirst($text),
14583             q{method_name}, $tracelevel
14584             ) if defined $::RD_TRACE;
14585 0         0 if (1) {
14586 1     1   9 no strict qw{refs};
  1         3  
  1         812  
14587 0         0 $expectation->is(q{})->at($text);
14588 0 0       0 unless (defined(
14589             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME(
14590 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
14591             )
14592             )) {
14593              
14594 0 0       0 Parse::RecDescent::_trace(
14595             q{<>},
14596             Parse::RecDescent::_tracefirst($text),
14597             q{method_name}, $tracelevel
14598             ) if defined $::RD_TRACE;
14599 0         0 $expectation->failed();
14600 0         0 last;
14601             }
14602             Parse::RecDescent::_trace(
14603 0 0       0 q{>>Matched subrule: [NAME]<< (return value: [} . $_tok . q{]},
14604              
14605             Parse::RecDescent::_tracefirst($text),
14606             q{method_name},
14607             $tracelevel
14608             ) if defined $::RD_TRACE;
14609 0         0 $item{q{NAME}} = $_tok;
14610 0         0 push @item, $_tok;
14611              
14612             }
14613              
14614 0 0       0 Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{method_name}, $tracelevel)
14615             if defined $::RD_TRACE;
14616              
14617 0 0       0 $_tok = ($_noactions) ? 0 : do { # must be a method of subject_expression
14618             };
14619 0 0       0 unless (defined $_tok) {
14620 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
14621             if defined $::RD_TRACE;
14622 0         0 last;
14623             }
14624 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])},
14625             Parse::RecDescent::_tracefirst($text))
14626             if defined $::RD_TRACE;
14627 0         0 push @item, $_tok;
14628 0         0 $item{__ACTION1__} = $_tok;
14629              
14630 0 0       0 Parse::RecDescent::_trace(
14631             q{>>Matched production: [NAME]<<},
14632             Parse::RecDescent::_tracefirst($text),
14633             q{method_name}, $tracelevel
14634             ) if defined $::RD_TRACE;
14635 0         0 $_matched = 1;
14636 0         0 last;
14637             }
14638              
14639 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
14640              
14641 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
14642 0 0       0 Parse::RecDescent::_trace(
14643             q{<>},
14644             Parse::RecDescent::_tracefirst($_[1]),
14645             q{method_name}, $tracelevel
14646             ) if defined $::RD_TRACE;
14647 0         0 return undef;
14648             }
14649 0 0 0     0 if (!defined($return) && defined($score)) {
14650 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{method_name}, $tracelevel)
14651             if defined $::RD_TRACE;
14652 0         0 $return = $score_return;
14653             }
14654 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
14655 0 0       0 $return = $item[$#item] unless defined $return;
14656 0 0       0 if (defined $::RD_TRACE) {
14657 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{method_name},
14658             $tracelevel);
14659 0         0 Parse::RecDescent::_trace(
14660             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
14661             Parse::RecDescent::_tracefirst($text),
14662             , q{method_name}, $tracelevel
14663             );
14664             }
14665 0         0 $_[1] = $text;
14666 0         0 return $return;
14667             }
14668              
14669             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
14670             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::quantified_p {
14671 0     0   0 my $thisparser = $_[0];
14672 1     1   23 use vars q{$tracelevel};
  1         3  
  1         490  
14673 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
14674 0         0 $ERRORS = 0;
14675 0         0 my $thisrule = $thisparser->{"rules"}{"quantified_p"};
14676              
14677 0 0       0 Parse::RecDescent::_trace(
14678             q{Trying rule: [quantified_p]},
14679             Parse::RecDescent::_tracefirst($_[1]),
14680             q{quantified_p}, $tracelevel
14681             ) if defined $::RD_TRACE;
14682              
14683 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
14684              
14685 0         0 my $score;
14686             my $score_return;
14687 0         0 my $_tok;
14688 0         0 my $return = undef;
14689 0         0 my $_matched = 0;
14690 0         0 my $commit = 0;
14691 0         0 my @item = ();
14692 0         0 my %item = ();
14693 0   0     0 my $repeating = defined($_[2]) && $_[2];
14694 0   0     0 my $_noactions = defined($_[3]) && $_[3];
14695 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
14696 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
14697 0         0 my $text;
14698 0         0 my $lastsep = "";
14699 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
14700 0         0 $expectation->at($_[1]);
14701              
14702 0         0 my $thisline;
14703 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
14704              
14705 0   0     0 while (!$_matched && !$commit) {
14706              
14707 0 0       0 Parse::RecDescent::_trace(
14708             q{Trying production: [expression1 /(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/ /SOME|ANY|ALL/i '(' fullselect ')']},
14709             Parse::RecDescent::_tracefirst($_[1]), q{quantified_p}, $tracelevel
14710             ) if defined $::RD_TRACE;
14711 0         0 my $thisprod = $thisrule->{"prods"}[0];
14712 0         0 $text = $_[1];
14713 0         0 my $_savetext;
14714 0         0 @item = (q{quantified_p});
14715 0         0 %item = (__RULE__ => q{quantified_p});
14716 0         0 my $repcount = 0;
14717              
14718 0 0       0 Parse::RecDescent::_trace(
14719             q{Trying subrule: [expression1]},
14720             Parse::RecDescent::_tracefirst($text),
14721             q{quantified_p}, $tracelevel
14722             ) if defined $::RD_TRACE;
14723 0         0 if (1) {
14724 1     1   12 no strict qw{refs};
  1         4  
  1         948  
14725 0         0 $expectation->is(q{})->at($text);
14726 0 0       0 unless (defined(
14727             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression1(
14728 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
14729             )
14730             )) {
14731              
14732 0 0       0 Parse::RecDescent::_trace(
14733             q{<>},
14734             Parse::RecDescent::_tracefirst($text),
14735             q{quantified_p}, $tracelevel
14736             ) if defined $::RD_TRACE;
14737 0         0 $expectation->failed();
14738 0         0 last;
14739             }
14740             Parse::RecDescent::_trace(
14741 0 0       0 q{>>Matched subrule: [expression1]<< (return value: [} . $_tok . q{]},
14742              
14743             Parse::RecDescent::_tracefirst($text),
14744             q{quantified_p},
14745             $tracelevel
14746             ) if defined $::RD_TRACE;
14747 0         0 $item{q{expression1}} = $_tok;
14748 0         0 push @item, $_tok;
14749              
14750             }
14751              
14752             Parse::RecDescent::_trace(
14753 0 0       0 q{Trying terminal: [/(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/]},
14754             Parse::RecDescent::_tracefirst($text),
14755             q{quantified_p}, $tracelevel
14756             ) if defined $::RD_TRACE;
14757 0         0 $lastsep = "";
14758 0         0 $expectation->is(q{/(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/})
14759             ->at($text);
14760              
14761 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
14762             and $text =~ s/\A(?:(=|<>|<|>|<=|=>|\^=|\^<|\^>|\!=))//) {
14763              
14764 0         0 $expectation->failed();
14765 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
14766             if defined $::RD_TRACE;
14767              
14768 0         0 last;
14769             }
14770 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
14771             Parse::RecDescent::_tracefirst($text))
14772             if defined $::RD_TRACE;
14773 0         0 push @item, $item{__PATTERN1__} = $&;
14774              
14775 0 0       0 Parse::RecDescent::_trace(
14776             q{Trying terminal: [/SOME|ANY|ALL/i]},
14777             Parse::RecDescent::_tracefirst($text),
14778             q{quantified_p}, $tracelevel
14779             ) if defined $::RD_TRACE;
14780 0         0 $lastsep = "";
14781 0         0 $expectation->is(q{/SOME|ANY|ALL/i})->at($text);
14782              
14783 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
14784             and $text =~ s/\A(?:SOME|ANY|ALL)//i) {
14785              
14786 0         0 $expectation->failed();
14787 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
14788             if defined $::RD_TRACE;
14789              
14790 0         0 last;
14791             }
14792 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
14793             Parse::RecDescent::_tracefirst($text))
14794             if defined $::RD_TRACE;
14795 0         0 push @item, $item{__PATTERN2__} = $&;
14796              
14797 0 0       0 Parse::RecDescent::_trace(
14798             q{Trying terminal: ['(']},
14799             Parse::RecDescent::_tracefirst($text),
14800             q{quantified_p}, $tracelevel
14801             ) if defined $::RD_TRACE;
14802 0         0 $lastsep = "";
14803 0         0 $expectation->is(q{'('})->at($text);
14804              
14805 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
14806             and $text =~ s/\A\(//) {
14807              
14808 0         0 $expectation->failed();
14809 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
14810             if defined $::RD_TRACE;
14811 0         0 last;
14812             }
14813 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
14814             Parse::RecDescent::_tracefirst($text))
14815             if defined $::RD_TRACE;
14816 0         0 push @item, $item{__STRING1__} = $&;
14817              
14818 0 0       0 Parse::RecDescent::_trace(
14819             q{Trying subrule: [fullselect]},
14820             Parse::RecDescent::_tracefirst($text),
14821             q{quantified_p}, $tracelevel
14822             ) if defined $::RD_TRACE;
14823 0         0 if (1) {
14824 1     1   11 no strict qw{refs};
  1         3  
  1         903  
14825 0         0 $expectation->is(q{fullselect})->at($text);
14826 0 0       0 unless (defined(
14827             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::fullselect(
14828 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
14829             )
14830             )) {
14831              
14832 0 0       0 Parse::RecDescent::_trace(
14833             q{<>},
14834             Parse::RecDescent::_tracefirst($text),
14835             q{quantified_p}, $tracelevel
14836             ) if defined $::RD_TRACE;
14837 0         0 $expectation->failed();
14838 0         0 last;
14839             }
14840             Parse::RecDescent::_trace(
14841 0 0       0 q{>>Matched subrule: [fullselect]<< (return value: [} . $_tok . q{]},
14842              
14843             Parse::RecDescent::_tracefirst($text),
14844             q{quantified_p},
14845             $tracelevel
14846             ) if defined $::RD_TRACE;
14847 0         0 $item{q{fullselect}} = $_tok;
14848 0         0 push @item, $_tok;
14849              
14850             }
14851              
14852             Parse::RecDescent::_trace(
14853 0 0       0 q{Trying terminal: [')']},
14854             Parse::RecDescent::_tracefirst($text),
14855             q{quantified_p}, $tracelevel
14856             ) if defined $::RD_TRACE;
14857 0         0 $lastsep = "";
14858 0         0 $expectation->is(q{')'})->at($text);
14859              
14860 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
14861             and $text =~ s/\A\)//) {
14862              
14863 0         0 $expectation->failed();
14864 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
14865             if defined $::RD_TRACE;
14866 0         0 last;
14867             }
14868 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
14869             Parse::RecDescent::_tracefirst($text))
14870             if defined $::RD_TRACE;
14871 0         0 push @item, $item{__STRING2__} = $&;
14872              
14873 0 0       0 Parse::RecDescent::_trace(
14874             q{>>Matched production: [expression1 /(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/ /SOME|ANY|ALL/i '(' fullselect ')']<<},
14875             Parse::RecDescent::_tracefirst($text), q{quantified_p}, $tracelevel
14876             ) if defined $::RD_TRACE;
14877 0         0 $_matched = 1;
14878 0         0 last;
14879             }
14880              
14881 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
14882              
14883 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
14884 0 0       0 Parse::RecDescent::_trace(
14885             q{<>},
14886             Parse::RecDescent::_tracefirst($_[1]),
14887             q{quantified_p}, $tracelevel
14888             ) if defined $::RD_TRACE;
14889 0         0 return undef;
14890             }
14891 0 0 0     0 if (!defined($return) && defined($score)) {
14892 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{quantified_p}, $tracelevel)
14893             if defined $::RD_TRACE;
14894 0         0 $return = $score_return;
14895             }
14896 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
14897 0 0       0 $return = $item[$#item] unless defined $return;
14898 0 0       0 if (defined $::RD_TRACE) {
14899 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
14900             "", q{quantified_p}, $tracelevel);
14901 0         0 Parse::RecDescent::_trace(
14902             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
14903             Parse::RecDescent::_tracefirst($text),
14904             , q{quantified_p}, $tracelevel
14905             );
14906             }
14907 0         0 $_[1] = $text;
14908 0         0 return $return;
14909             }
14910              
14911             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
14912             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::common_table_expression {
14913 0     0   0 my $thisparser = $_[0];
14914 1     1   10 use vars q{$tracelevel};
  1         4  
  1         581  
14915 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
14916 0         0 $ERRORS = 0;
14917 0         0 my $thisrule = $thisparser->{"rules"}{"common_table_expression"};
14918              
14919 0 0       0 Parse::RecDescent::_trace(
14920             q{Trying rule: [common_table_expression]},
14921             Parse::RecDescent::_tracefirst($_[1]),
14922             q{common_table_expression}, $tracelevel
14923             ) if defined $::RD_TRACE;
14924              
14925 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
14926              
14927 0         0 my $score;
14928             my $score_return;
14929 0         0 my $_tok;
14930 0         0 my $return = undef;
14931 0         0 my $_matched = 0;
14932 0         0 my $commit = 0;
14933 0         0 my @item = ();
14934 0         0 my %item = ();
14935 0   0     0 my $repeating = defined($_[2]) && $_[2];
14936 0   0     0 my $_noactions = defined($_[3]) && $_[3];
14937 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
14938 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
14939 0         0 my $text;
14940 0         0 my $lastsep = "";
14941 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
14942 0         0 $expectation->at($_[1]);
14943              
14944 0         0 my $thisline;
14945 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
14946              
14947 0   0     0 while (!$_matched && !$commit) {
14948              
14949 0 0       0 Parse::RecDescent::_trace(
14950             q{Trying production: [table_name column_list /AS/i get_bracketed]},
14951             Parse::RecDescent::_tracefirst($_[1]),
14952             q{common_table_expression}, $tracelevel
14953             ) if defined $::RD_TRACE;
14954 0         0 my $thisprod = $thisrule->{"prods"}[0];
14955 0         0 $text = $_[1];
14956 0         0 my $_savetext;
14957 0         0 @item = (q{common_table_expression});
14958 0         0 %item = (__RULE__ => q{common_table_expression});
14959 0         0 my $repcount = 0;
14960              
14961 0 0       0 Parse::RecDescent::_trace(
14962             q{Trying subrule: [table_name]},
14963             Parse::RecDescent::_tracefirst($text),
14964             q{common_table_expression}, $tracelevel
14965             ) if defined $::RD_TRACE;
14966 0         0 if (1) {
14967 1     1   11 no strict qw{refs};
  1         2  
  1         230  
14968 0         0 $expectation->is(q{})->at($text);
14969 0 0       0 unless (defined(
14970             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::table_name(
14971 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
14972             )
14973             )) {
14974              
14975 0 0       0 Parse::RecDescent::_trace(
14976             q{<>},
14977             Parse::RecDescent::_tracefirst($text),
14978             q{common_table_expression}, $tracelevel
14979             ) if defined $::RD_TRACE;
14980 0         0 $expectation->failed();
14981 0         0 last;
14982             }
14983             Parse::RecDescent::_trace(
14984 0 0       0 q{>>Matched subrule: [table_name]<< (return value: [} . $_tok . q{]},
14985              
14986             Parse::RecDescent::_tracefirst($text),
14987             q{common_table_expression},
14988             $tracelevel
14989             ) if defined $::RD_TRACE;
14990 0         0 $item{q{table_name}} = $_tok;
14991 0         0 push @item, $_tok;
14992              
14993             }
14994              
14995             Parse::RecDescent::_trace(
14996 0 0       0 q{Trying subrule: [column_list]},
14997             Parse::RecDescent::_tracefirst($text),
14998             q{common_table_expression}, $tracelevel
14999             ) if defined $::RD_TRACE;
15000 0         0 if (1) {
15001 1     1   7 no strict qw{refs};
  1         3  
  1         441  
15002 0         0 $expectation->is(q{column_list})->at($text);
15003 0 0       0 unless (defined(
15004             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_list(
15005 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
15006             )
15007             )) {
15008              
15009 0 0       0 Parse::RecDescent::_trace(
15010             q{<>},
15011             Parse::RecDescent::_tracefirst($text),
15012             q{common_table_expression}, $tracelevel
15013             ) if defined $::RD_TRACE;
15014 0         0 $expectation->failed();
15015 0         0 last;
15016             }
15017             Parse::RecDescent::_trace(
15018 0 0       0 q{>>Matched subrule: [column_list]<< (return value: [} . $_tok . q{]},
15019              
15020             Parse::RecDescent::_tracefirst($text),
15021             q{common_table_expression},
15022             $tracelevel
15023             ) if defined $::RD_TRACE;
15024 0         0 $item{q{column_list}} = $_tok;
15025 0         0 push @item, $_tok;
15026              
15027             }
15028              
15029             Parse::RecDescent::_trace(
15030 0 0       0 q{Trying terminal: [/AS/i]},
15031             Parse::RecDescent::_tracefirst($text),
15032             q{common_table_expression}, $tracelevel
15033             ) if defined $::RD_TRACE;
15034 0         0 $lastsep = "";
15035 0         0 $expectation->is(q{/AS/i})->at($text);
15036              
15037 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
15038             and $text =~ s/\A(?:AS)//i) {
15039              
15040 0         0 $expectation->failed();
15041 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
15042             if defined $::RD_TRACE;
15043              
15044 0         0 last;
15045             }
15046 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
15047             Parse::RecDescent::_tracefirst($text))
15048             if defined $::RD_TRACE;
15049 0         0 push @item, $item{__PATTERN1__} = $&;
15050              
15051 0 0       0 Parse::RecDescent::_trace(
15052             q{Trying subrule: [get_bracketed]},
15053             Parse::RecDescent::_tracefirst($text),
15054             q{common_table_expression}, $tracelevel
15055             ) if defined $::RD_TRACE;
15056 0         0 if (1) {
15057 1     1   9 no strict qw{refs};
  1         4  
  1         562  
15058 0         0 $expectation->is(q{get_bracketed})->at($text);
15059 0 0       0 unless (defined(
15060             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::get_bracketed(
15061 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
15062             )
15063             )) {
15064              
15065 0 0       0 Parse::RecDescent::_trace(
15066             q{<>},
15067             Parse::RecDescent::_tracefirst($text),
15068             q{common_table_expression}, $tracelevel
15069             ) if defined $::RD_TRACE;
15070 0         0 $expectation->failed();
15071 0         0 last;
15072             }
15073             Parse::RecDescent::_trace(
15074 0 0       0 q{>>Matched subrule: [get_bracketed]<< (return value: [} . $_tok . q{]},
15075              
15076             Parse::RecDescent::_tracefirst($text),
15077             q{common_table_expression},
15078             $tracelevel
15079             ) if defined $::RD_TRACE;
15080 0         0 $item{q{get_bracketed}} = $_tok;
15081 0         0 push @item, $_tok;
15082              
15083             }
15084              
15085             Parse::RecDescent::_trace(
15086 0 0       0 q{Trying action},
15087             Parse::RecDescent::_tracefirst($text),
15088             q{common_table_expression}, $tracelevel
15089             ) if defined $::RD_TRACE;
15090              
15091 0 0       0 $_tok = ($_noactions) ? 0 : do {
15092             $return = {
15093             name => $item{table_name}{name},
15094 0         0 query => $item[4]
15095             };
15096             };
15097 0 0       0 unless (defined $_tok) {
15098 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
15099             if defined $::RD_TRACE;
15100 0         0 last;
15101             }
15102 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])},
15103             Parse::RecDescent::_tracefirst($text))
15104             if defined $::RD_TRACE;
15105 0         0 push @item, $_tok;
15106 0         0 $item{__ACTION1__} = $_tok;
15107              
15108 0 0       0 Parse::RecDescent::_trace(
15109             q{>>Matched production: [table_name column_list /AS/i get_bracketed]<<},
15110             Parse::RecDescent::_tracefirst($text),
15111             q{common_table_expression}, $tracelevel
15112             ) if defined $::RD_TRACE;
15113 0         0 $_matched = 1;
15114 0         0 last;
15115             }
15116              
15117 0   0     0 while (!$_matched && !$commit) {
15118              
15119 0 0       0 Parse::RecDescent::_trace(
15120             q{Trying production: [table_name column_list /AS/i '(' fullselect ')']},
15121             Parse::RecDescent::_tracefirst($_[1]),
15122             q{common_table_expression}, $tracelevel
15123             ) if defined $::RD_TRACE;
15124 0         0 my $thisprod = $thisrule->{"prods"}[1];
15125 0         0 $text = $_[1];
15126 0         0 my $_savetext;
15127 0         0 @item = (q{common_table_expression});
15128 0         0 %item = (__RULE__ => q{common_table_expression});
15129 0         0 my $repcount = 0;
15130              
15131 0 0       0 Parse::RecDescent::_trace(
15132             q{Trying subrule: [table_name]},
15133             Parse::RecDescent::_tracefirst($text),
15134             q{common_table_expression}, $tracelevel
15135             ) if defined $::RD_TRACE;
15136 0         0 if (1) {
15137 1     1   12 no strict qw{refs};
  1         2  
  1         292  
15138 0         0 $expectation->is(q{})->at($text);
15139 0 0       0 unless (defined(
15140             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::table_name(
15141 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
15142             )
15143             )) {
15144              
15145 0 0       0 Parse::RecDescent::_trace(
15146             q{<>},
15147             Parse::RecDescent::_tracefirst($text),
15148             q{common_table_expression}, $tracelevel
15149             ) if defined $::RD_TRACE;
15150 0         0 $expectation->failed();
15151 0         0 last;
15152             }
15153             Parse::RecDescent::_trace(
15154 0 0       0 q{>>Matched subrule: [table_name]<< (return value: [} . $_tok . q{]},
15155              
15156             Parse::RecDescent::_tracefirst($text),
15157             q{common_table_expression},
15158             $tracelevel
15159             ) if defined $::RD_TRACE;
15160 0         0 $item{q{table_name}} = $_tok;
15161 0         0 push @item, $_tok;
15162              
15163             }
15164              
15165             Parse::RecDescent::_trace(
15166 0 0       0 q{Trying subrule: [column_list]},
15167             Parse::RecDescent::_tracefirst($text),
15168             q{common_table_expression}, $tracelevel
15169             ) if defined $::RD_TRACE;
15170 0         0 if (1) {
15171 1     1   10 no strict qw{refs};
  1         3  
  1         769  
15172 0         0 $expectation->is(q{column_list})->at($text);
15173 0 0       0 unless (defined(
15174             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_list(
15175 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
15176             )
15177             )) {
15178              
15179 0 0       0 Parse::RecDescent::_trace(
15180             q{<>},
15181             Parse::RecDescent::_tracefirst($text),
15182             q{common_table_expression}, $tracelevel
15183             ) if defined $::RD_TRACE;
15184 0         0 $expectation->failed();
15185 0         0 last;
15186             }
15187             Parse::RecDescent::_trace(
15188 0 0       0 q{>>Matched subrule: [column_list]<< (return value: [} . $_tok . q{]},
15189              
15190             Parse::RecDescent::_tracefirst($text),
15191             q{common_table_expression},
15192             $tracelevel
15193             ) if defined $::RD_TRACE;
15194 0         0 $item{q{column_list}} = $_tok;
15195 0         0 push @item, $_tok;
15196              
15197             }
15198              
15199             Parse::RecDescent::_trace(
15200 0 0       0 q{Trying terminal: [/AS/i]},
15201             Parse::RecDescent::_tracefirst($text),
15202             q{common_table_expression}, $tracelevel
15203             ) if defined $::RD_TRACE;
15204 0         0 $lastsep = "";
15205 0         0 $expectation->is(q{/AS/i})->at($text);
15206              
15207 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
15208             and $text =~ s/\A(?:AS)//i) {
15209              
15210 0         0 $expectation->failed();
15211 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
15212             if defined $::RD_TRACE;
15213              
15214 0         0 last;
15215             }
15216 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
15217             Parse::RecDescent::_tracefirst($text))
15218             if defined $::RD_TRACE;
15219 0         0 push @item, $item{__PATTERN1__} = $&;
15220              
15221 0 0       0 Parse::RecDescent::_trace(
15222             q{Trying terminal: ['(']},
15223             Parse::RecDescent::_tracefirst($text),
15224             q{common_table_expression}, $tracelevel
15225             ) if defined $::RD_TRACE;
15226 0         0 $lastsep = "";
15227 0         0 $expectation->is(q{'('})->at($text);
15228              
15229 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
15230             and $text =~ s/\A\(//) {
15231              
15232 0         0 $expectation->failed();
15233 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
15234             if defined $::RD_TRACE;
15235 0         0 last;
15236             }
15237 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
15238             Parse::RecDescent::_tracefirst($text))
15239             if defined $::RD_TRACE;
15240 0         0 push @item, $item{__STRING1__} = $&;
15241              
15242 0 0       0 Parse::RecDescent::_trace(
15243             q{Trying subrule: [fullselect]},
15244             Parse::RecDescent::_tracefirst($text),
15245             q{common_table_expression}, $tracelevel
15246             ) if defined $::RD_TRACE;
15247 0         0 if (1) {
15248 1     1   11 no strict qw{refs};
  1         3  
  1         1068  
15249 0         0 $expectation->is(q{fullselect})->at($text);
15250 0 0       0 unless (defined(
15251             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::fullselect(
15252 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
15253             )
15254             )) {
15255              
15256 0 0       0 Parse::RecDescent::_trace(
15257             q{<>},
15258             Parse::RecDescent::_tracefirst($text),
15259             q{common_table_expression}, $tracelevel
15260             ) if defined $::RD_TRACE;
15261 0         0 $expectation->failed();
15262 0         0 last;
15263             }
15264             Parse::RecDescent::_trace(
15265 0 0       0 q{>>Matched subrule: [fullselect]<< (return value: [} . $_tok . q{]},
15266              
15267             Parse::RecDescent::_tracefirst($text),
15268             q{common_table_expression},
15269             $tracelevel
15270             ) if defined $::RD_TRACE;
15271 0         0 $item{q{fullselect}} = $_tok;
15272 0         0 push @item, $_tok;
15273              
15274             }
15275              
15276             Parse::RecDescent::_trace(
15277 0 0       0 q{Trying terminal: [')']},
15278             Parse::RecDescent::_tracefirst($text),
15279             q{common_table_expression}, $tracelevel
15280             ) if defined $::RD_TRACE;
15281 0         0 $lastsep = "";
15282 0         0 $expectation->is(q{')'})->at($text);
15283              
15284 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
15285             and $text =~ s/\A\)//) {
15286              
15287 0         0 $expectation->failed();
15288 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
15289             if defined $::RD_TRACE;
15290 0         0 last;
15291             }
15292 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
15293             Parse::RecDescent::_tracefirst($text))
15294             if defined $::RD_TRACE;
15295 0         0 push @item, $item{__STRING2__} = $&;
15296              
15297 0 0       0 Parse::RecDescent::_trace(
15298             q{>>Matched production: [table_name column_list /AS/i '(' fullselect ')']<<},
15299             Parse::RecDescent::_tracefirst($text),
15300             q{common_table_expression}, $tracelevel
15301             ) if defined $::RD_TRACE;
15302 0         0 $_matched = 1;
15303 0         0 last;
15304             }
15305              
15306 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
15307              
15308 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
15309 0 0       0 Parse::RecDescent::_trace(
15310             q{<>},
15311             Parse::RecDescent::_tracefirst($_[1]),
15312             q{common_table_expression}, $tracelevel
15313             ) if defined $::RD_TRACE;
15314 0         0 return undef;
15315             }
15316 0 0 0     0 if (!defined($return) && defined($score)) {
15317 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{common_table_expression}, $tracelevel)
15318             if defined $::RD_TRACE;
15319 0         0 $return = $score_return;
15320             }
15321 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
15322 0 0       0 $return = $item[$#item] unless defined $return;
15323 0 0       0 if (defined $::RD_TRACE) {
15324 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
15325             "", q{common_table_expression}, $tracelevel);
15326 0         0 Parse::RecDescent::_trace(
15327             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
15328             Parse::RecDescent::_tracefirst($text),
15329             , q{common_table_expression}, $tracelevel
15330             );
15331             }
15332 0         0 $_[1] = $text;
15333 0         0 return $return;
15334             }
15335              
15336             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
15337             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::after {
15338 0     0   0 my $thisparser = $_[0];
15339 1     1   11 use vars q{$tracelevel};
  1         3  
  1         1124  
15340 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
15341 0         0 $ERRORS = 0;
15342 0         0 my $thisrule = $thisparser->{"rules"}{"after"};
15343              
15344 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [after]}, Parse::RecDescent::_tracefirst($_[1]), q{after}, $tracelevel)
15345             if defined $::RD_TRACE;
15346              
15347 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
15348              
15349 0         0 my $score;
15350             my $score_return;
15351 0         0 my $_tok;
15352 0         0 my $return = undef;
15353 0         0 my $_matched = 0;
15354 0         0 my $commit = 0;
15355 0         0 my @item = ();
15356 0         0 my %item = ();
15357 0   0     0 my $repeating = defined($_[2]) && $_[2];
15358 0   0     0 my $_noactions = defined($_[3]) && $_[3];
15359 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
15360 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
15361 0         0 my $text;
15362 0         0 my $lastsep = "";
15363 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
15364 0         0 $expectation->at($_[1]);
15365              
15366 0         0 my $thisline;
15367 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
15368              
15369 0   0     0 while (!$_matched && !$commit) {
15370              
15371 0 0       0 Parse::RecDescent::_trace(
15372             q{Trying production: [/AFTER/i]},
15373             Parse::RecDescent::_tracefirst($_[1]),
15374             q{after}, $tracelevel
15375             ) if defined $::RD_TRACE;
15376 0         0 my $thisprod = $thisrule->{"prods"}[0];
15377 0         0 $text = $_[1];
15378 0         0 my $_savetext;
15379 0         0 @item = (q{after});
15380 0         0 %item = (__RULE__ => q{after});
15381 0         0 my $repcount = 0;
15382              
15383 0 0       0 Parse::RecDescent::_trace(
15384             q{Trying terminal: [/AFTER/i]},
15385             Parse::RecDescent::_tracefirst($text),
15386             q{after}, $tracelevel
15387             ) if defined $::RD_TRACE;
15388 0         0 $lastsep = "";
15389 0         0 $expectation->is(q{})->at($text);
15390              
15391 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
15392             and $text =~ s/\A(?:AFTER)//i) {
15393              
15394 0         0 $expectation->failed();
15395 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
15396             if defined $::RD_TRACE;
15397              
15398 0         0 last;
15399             }
15400 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
15401             Parse::RecDescent::_tracefirst($text))
15402             if defined $::RD_TRACE;
15403 0         0 push @item, $item{__PATTERN1__} = $&;
15404              
15405 0 0       0 Parse::RecDescent::_trace(
15406             q{>>Matched production: [/AFTER/i]<<},
15407             Parse::RecDescent::_tracefirst($text),
15408             q{after}, $tracelevel
15409             ) if defined $::RD_TRACE;
15410 0         0 $_matched = 1;
15411 0         0 last;
15412             }
15413              
15414 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
15415              
15416 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
15417 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{after}, $tracelevel)
15418             if defined $::RD_TRACE;
15419 0         0 return undef;
15420             }
15421 0 0 0     0 if (!defined($return) && defined($score)) {
15422 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{after}, $tracelevel)
15423             if defined $::RD_TRACE;
15424 0         0 $return = $score_return;
15425             }
15426 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
15427 0 0       0 $return = $item[$#item] unless defined $return;
15428 0 0       0 if (defined $::RD_TRACE) {
15429 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{after}, $tracelevel);
15430 0         0 Parse::RecDescent::_trace(
15431             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
15432             Parse::RecDescent::_tracefirst($text),
15433             , q{after}, $tracelevel
15434             );
15435             }
15436 0         0 $_[1] = $text;
15437 0         0 return $return;
15438             }
15439              
15440             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
15441             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::predicate {
15442 0     0   0 my $thisparser = $_[0];
15443 1     1   10 use vars q{$tracelevel};
  1         4  
  1         574  
15444 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
15445 0         0 $ERRORS = 0;
15446 0         0 my $thisrule = $thisparser->{"rules"}{"predicate"};
15447              
15448 0 0       0 Parse::RecDescent::_trace(
15449             q{Trying rule: [predicate]},
15450             Parse::RecDescent::_tracefirst($_[1]),
15451             q{predicate}, $tracelevel
15452             ) if defined $::RD_TRACE;
15453              
15454 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
15455              
15456 0         0 my $score;
15457             my $score_return;
15458 0         0 my $_tok;
15459 0         0 my $return = undef;
15460 0         0 my $_matched = 0;
15461 0         0 my $commit = 0;
15462 0         0 my @item = ();
15463 0         0 my %item = ();
15464 0   0     0 my $repeating = defined($_[2]) && $_[2];
15465 0   0     0 my $_noactions = defined($_[3]) && $_[3];
15466 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
15467 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
15468 0         0 my $text;
15469 0         0 my $lastsep = "";
15470 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
15471 0         0 $expectation->at($_[1]);
15472              
15473 0         0 my $thisline;
15474 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
15475              
15476 0   0     0 while (!$_matched && !$commit) {
15477              
15478 0 0       0 Parse::RecDescent::_trace(
15479             q{Trying production: [basic_p]},
15480             Parse::RecDescent::_tracefirst($_[1]),
15481             q{predicate}, $tracelevel
15482             ) if defined $::RD_TRACE;
15483 0         0 my $thisprod = $thisrule->{"prods"}[0];
15484 0         0 $text = $_[1];
15485 0         0 my $_savetext;
15486 0         0 @item = (q{predicate});
15487 0         0 %item = (__RULE__ => q{predicate});
15488 0         0 my $repcount = 0;
15489              
15490 0 0       0 Parse::RecDescent::_trace(
15491             q{Trying subrule: [basic_p]},
15492             Parse::RecDescent::_tracefirst($text),
15493             q{predicate}, $tracelevel
15494             ) if defined $::RD_TRACE;
15495 0         0 if (1) {
15496 1     1   10 no strict qw{refs};
  1         3  
  1         412  
15497 0         0 $expectation->is(q{})->at($text);
15498 0 0       0 unless (defined(
15499             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::basic_p(
15500 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
15501             )
15502             )) {
15503              
15504 0 0       0 Parse::RecDescent::_trace(
15505             q{<>},
15506             Parse::RecDescent::_tracefirst($text),
15507             q{predicate}, $tracelevel
15508             ) if defined $::RD_TRACE;
15509 0         0 $expectation->failed();
15510 0         0 last;
15511             }
15512             Parse::RecDescent::_trace(
15513 0 0       0 q{>>Matched subrule: [basic_p]<< (return value: [} . $_tok . q{]},
15514              
15515             Parse::RecDescent::_tracefirst($text),
15516             q{predicate},
15517             $tracelevel
15518             ) if defined $::RD_TRACE;
15519 0         0 $item{q{basic_p}} = $_tok;
15520 0         0 push @item, $_tok;
15521              
15522             }
15523              
15524             Parse::RecDescent::_trace(
15525 0 0       0 q{>>Matched production: [basic_p]<<},
15526             Parse::RecDescent::_tracefirst($text),
15527             q{predicate}, $tracelevel
15528             ) if defined $::RD_TRACE;
15529 0         0 $_matched = 1;
15530 0         0 last;
15531             }
15532              
15533 0   0     0 while (!$_matched && !$commit) {
15534              
15535 0 0       0 Parse::RecDescent::_trace(
15536             q{Trying production: [quantified_p]},
15537             Parse::RecDescent::_tracefirst($_[1]),
15538             q{predicate}, $tracelevel
15539             ) if defined $::RD_TRACE;
15540 0         0 my $thisprod = $thisrule->{"prods"}[1];
15541 0         0 $text = $_[1];
15542 0         0 my $_savetext;
15543 0         0 @item = (q{predicate});
15544 0         0 %item = (__RULE__ => q{predicate});
15545 0         0 my $repcount = 0;
15546              
15547 0 0       0 Parse::RecDescent::_trace(
15548             q{Trying subrule: [quantified_p]},
15549             Parse::RecDescent::_tracefirst($text),
15550             q{predicate}, $tracelevel
15551             ) if defined $::RD_TRACE;
15552 0         0 if (1) {
15553 1     1   9 no strict qw{refs};
  1         3  
  1         430  
15554 0         0 $expectation->is(q{})->at($text);
15555 0 0       0 unless (defined(
15556             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::quantified_p(
15557 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
15558             )
15559             )) {
15560              
15561 0 0       0 Parse::RecDescent::_trace(
15562             q{<>},
15563             Parse::RecDescent::_tracefirst($text),
15564             q{predicate}, $tracelevel
15565             ) if defined $::RD_TRACE;
15566 0         0 $expectation->failed();
15567 0         0 last;
15568             }
15569             Parse::RecDescent::_trace(
15570 0 0       0 q{>>Matched subrule: [quantified_p]<< (return value: [} . $_tok . q{]},
15571              
15572             Parse::RecDescent::_tracefirst($text),
15573             q{predicate},
15574             $tracelevel
15575             ) if defined $::RD_TRACE;
15576 0         0 $item{q{quantified_p}} = $_tok;
15577 0         0 push @item, $_tok;
15578              
15579             }
15580              
15581             Parse::RecDescent::_trace(
15582 0 0       0 q{>>Matched production: [quantified_p]<<},
15583             Parse::RecDescent::_tracefirst($text),
15584             q{predicate}, $tracelevel
15585             ) if defined $::RD_TRACE;
15586 0         0 $_matched = 1;
15587 0         0 last;
15588             }
15589              
15590 0   0     0 while (!$_matched && !$commit) {
15591              
15592 0 0       0 Parse::RecDescent::_trace(
15593             q{Trying production: [between_p]},
15594             Parse::RecDescent::_tracefirst($_[1]),
15595             q{predicate}, $tracelevel
15596             ) if defined $::RD_TRACE;
15597 0         0 my $thisprod = $thisrule->{"prods"}[2];
15598 0         0 $text = $_[1];
15599 0         0 my $_savetext;
15600 0         0 @item = (q{predicate});
15601 0         0 %item = (__RULE__ => q{predicate});
15602 0         0 my $repcount = 0;
15603              
15604 0 0       0 Parse::RecDescent::_trace(
15605             q{Trying subrule: [between_p]},
15606             Parse::RecDescent::_tracefirst($text),
15607             q{predicate}, $tracelevel
15608             ) if defined $::RD_TRACE;
15609 0         0 if (1) {
15610 1     1   10 no strict qw{refs};
  1         3  
  1         392  
15611 0         0 $expectation->is(q{})->at($text);
15612 0 0       0 unless (defined(
15613             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::between_p(
15614 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
15615             )
15616             )) {
15617              
15618 0 0       0 Parse::RecDescent::_trace(
15619             q{<>},
15620             Parse::RecDescent::_tracefirst($text),
15621             q{predicate}, $tracelevel
15622             ) if defined $::RD_TRACE;
15623 0         0 $expectation->failed();
15624 0         0 last;
15625             }
15626             Parse::RecDescent::_trace(
15627 0 0       0 q{>>Matched subrule: [between_p]<< (return value: [} . $_tok . q{]},
15628              
15629             Parse::RecDescent::_tracefirst($text),
15630             q{predicate},
15631             $tracelevel
15632             ) if defined $::RD_TRACE;
15633 0         0 $item{q{between_p}} = $_tok;
15634 0         0 push @item, $_tok;
15635              
15636             }
15637              
15638             Parse::RecDescent::_trace(
15639 0 0       0 q{>>Matched production: [between_p]<<},
15640             Parse::RecDescent::_tracefirst($text),
15641             q{predicate}, $tracelevel
15642             ) if defined $::RD_TRACE;
15643 0         0 $_matched = 1;
15644 0         0 last;
15645             }
15646              
15647 0   0     0 while (!$_matched && !$commit) {
15648              
15649 0 0       0 Parse::RecDescent::_trace(
15650             q{Trying production: [exists_p]},
15651             Parse::RecDescent::_tracefirst($_[1]),
15652             q{predicate}, $tracelevel
15653             ) if defined $::RD_TRACE;
15654 0         0 my $thisprod = $thisrule->{"prods"}[3];
15655 0         0 $text = $_[1];
15656 0         0 my $_savetext;
15657 0         0 @item = (q{predicate});
15658 0         0 %item = (__RULE__ => q{predicate});
15659 0         0 my $repcount = 0;
15660              
15661 0 0       0 Parse::RecDescent::_trace(
15662             q{Trying subrule: [exists_p]},
15663             Parse::RecDescent::_tracefirst($text),
15664             q{predicate}, $tracelevel
15665             ) if defined $::RD_TRACE;
15666 0         0 if (1) {
15667 1     1   9 no strict qw{refs};
  1         15  
  1         460  
15668 0         0 $expectation->is(q{})->at($text);
15669 0 0       0 unless (defined(
15670             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::exists_p(
15671 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
15672             )
15673             )) {
15674              
15675 0 0       0 Parse::RecDescent::_trace(
15676             q{<>},
15677             Parse::RecDescent::_tracefirst($text),
15678             q{predicate}, $tracelevel
15679             ) if defined $::RD_TRACE;
15680 0         0 $expectation->failed();
15681 0         0 last;
15682             }
15683             Parse::RecDescent::_trace(
15684 0 0       0 q{>>Matched subrule: [exists_p]<< (return value: [} . $_tok . q{]},
15685              
15686             Parse::RecDescent::_tracefirst($text),
15687             q{predicate},
15688             $tracelevel
15689             ) if defined $::RD_TRACE;
15690 0         0 $item{q{exists_p}} = $_tok;
15691 0         0 push @item, $_tok;
15692              
15693             }
15694              
15695             Parse::RecDescent::_trace(
15696 0 0       0 q{>>Matched production: [exists_p]<<},
15697             Parse::RecDescent::_tracefirst($text),
15698             q{predicate}, $tracelevel
15699             ) if defined $::RD_TRACE;
15700 0         0 $_matched = 1;
15701 0         0 last;
15702             }
15703              
15704 0   0     0 while (!$_matched && !$commit) {
15705              
15706 0 0       0 Parse::RecDescent::_trace(
15707             q{Trying production: [in_p]},
15708             Parse::RecDescent::_tracefirst($_[1]),
15709             q{predicate}, $tracelevel
15710             ) if defined $::RD_TRACE;
15711 0         0 my $thisprod = $thisrule->{"prods"}[4];
15712 0         0 $text = $_[1];
15713 0         0 my $_savetext;
15714 0         0 @item = (q{predicate});
15715 0         0 %item = (__RULE__ => q{predicate});
15716 0         0 my $repcount = 0;
15717              
15718 0 0       0 Parse::RecDescent::_trace(
15719             q{Trying subrule: [in_p]},
15720             Parse::RecDescent::_tracefirst($text),
15721             q{predicate}, $tracelevel
15722             ) if defined $::RD_TRACE;
15723 0         0 if (1) {
15724 1     1   10 no strict qw{refs};
  1         4  
  1         405  
15725 0         0 $expectation->is(q{})->at($text);
15726 0 0       0 unless (defined(
15727             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::in_p(
15728 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
15729             )
15730             )) {
15731              
15732 0 0       0 Parse::RecDescent::_trace(
15733             q{<>},
15734             Parse::RecDescent::_tracefirst($text),
15735             q{predicate}, $tracelevel
15736             ) if defined $::RD_TRACE;
15737 0         0 $expectation->failed();
15738 0         0 last;
15739             }
15740             Parse::RecDescent::_trace(
15741 0 0       0 q{>>Matched subrule: [in_p]<< (return value: [} . $_tok . q{]},
15742              
15743             Parse::RecDescent::_tracefirst($text),
15744             q{predicate},
15745             $tracelevel
15746             ) if defined $::RD_TRACE;
15747 0         0 $item{q{in_p}} = $_tok;
15748 0         0 push @item, $_tok;
15749              
15750             }
15751              
15752             Parse::RecDescent::_trace(
15753 0 0       0 q{>>Matched production: [in_p]<<},
15754             Parse::RecDescent::_tracefirst($text),
15755             q{predicate}, $tracelevel
15756             ) if defined $::RD_TRACE;
15757 0         0 $_matched = 1;
15758 0         0 last;
15759             }
15760              
15761 0   0     0 while (!$_matched && !$commit) {
15762              
15763 0 0       0 Parse::RecDescent::_trace(
15764             q{Trying production: [like_p]},
15765             Parse::RecDescent::_tracefirst($_[1]),
15766             q{predicate}, $tracelevel
15767             ) if defined $::RD_TRACE;
15768 0         0 my $thisprod = $thisrule->{"prods"}[5];
15769 0         0 $text = $_[1];
15770 0         0 my $_savetext;
15771 0         0 @item = (q{predicate});
15772 0         0 %item = (__RULE__ => q{predicate});
15773 0         0 my $repcount = 0;
15774              
15775 0 0       0 Parse::RecDescent::_trace(
15776             q{Trying subrule: [like_p]},
15777             Parse::RecDescent::_tracefirst($text),
15778             q{predicate}, $tracelevel
15779             ) if defined $::RD_TRACE;
15780 0         0 if (1) {
15781 1     1   10 no strict qw{refs};
  1         2  
  1         479  
15782 0         0 $expectation->is(q{})->at($text);
15783 0 0       0 unless (defined(
15784             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::like_p(
15785 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
15786             )
15787             )) {
15788              
15789 0 0       0 Parse::RecDescent::_trace(
15790             q{<>},
15791             Parse::RecDescent::_tracefirst($text),
15792             q{predicate}, $tracelevel
15793             ) if defined $::RD_TRACE;
15794 0         0 $expectation->failed();
15795 0         0 last;
15796             }
15797             Parse::RecDescent::_trace(
15798 0 0       0 q{>>Matched subrule: [like_p]<< (return value: [} . $_tok . q{]},
15799              
15800             Parse::RecDescent::_tracefirst($text),
15801             q{predicate},
15802             $tracelevel
15803             ) if defined $::RD_TRACE;
15804 0         0 $item{q{like_p}} = $_tok;
15805 0         0 push @item, $_tok;
15806              
15807             }
15808              
15809             Parse::RecDescent::_trace(
15810 0 0       0 q{>>Matched production: [like_p]<<},
15811             Parse::RecDescent::_tracefirst($text),
15812             q{predicate}, $tracelevel
15813             ) if defined $::RD_TRACE;
15814 0         0 $_matched = 1;
15815 0         0 last;
15816             }
15817              
15818 0   0     0 while (!$_matched && !$commit) {
15819              
15820 0 0       0 Parse::RecDescent::_trace(
15821             q{Trying production: [null_p]},
15822             Parse::RecDescent::_tracefirst($_[1]),
15823             q{predicate}, $tracelevel
15824             ) if defined $::RD_TRACE;
15825 0         0 my $thisprod = $thisrule->{"prods"}[6];
15826 0         0 $text = $_[1];
15827 0         0 my $_savetext;
15828 0         0 @item = (q{predicate});
15829 0         0 %item = (__RULE__ => q{predicate});
15830 0         0 my $repcount = 0;
15831              
15832 0 0       0 Parse::RecDescent::_trace(
15833             q{Trying subrule: [null_p]},
15834             Parse::RecDescent::_tracefirst($text),
15835             q{predicate}, $tracelevel
15836             ) if defined $::RD_TRACE;
15837 0         0 if (1) {
15838 1     1   10 no strict qw{refs};
  1         3  
  1         417  
15839 0         0 $expectation->is(q{})->at($text);
15840 0 0       0 unless (defined(
15841             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::null_p(
15842 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
15843             )
15844             )) {
15845              
15846 0 0       0 Parse::RecDescent::_trace(
15847             q{<>},
15848             Parse::RecDescent::_tracefirst($text),
15849             q{predicate}, $tracelevel
15850             ) if defined $::RD_TRACE;
15851 0         0 $expectation->failed();
15852 0         0 last;
15853             }
15854             Parse::RecDescent::_trace(
15855 0 0       0 q{>>Matched subrule: [null_p]<< (return value: [} . $_tok . q{]},
15856              
15857             Parse::RecDescent::_tracefirst($text),
15858             q{predicate},
15859             $tracelevel
15860             ) if defined $::RD_TRACE;
15861 0         0 $item{q{null_p}} = $_tok;
15862 0         0 push @item, $_tok;
15863              
15864             }
15865              
15866             Parse::RecDescent::_trace(
15867 0 0       0 q{>>Matched production: [null_p]<<},
15868             Parse::RecDescent::_tracefirst($text),
15869             q{predicate}, $tracelevel
15870             ) if defined $::RD_TRACE;
15871 0         0 $_matched = 1;
15872 0         0 last;
15873             }
15874              
15875 0   0     0 while (!$_matched && !$commit) {
15876              
15877 0 0       0 Parse::RecDescent::_trace(
15878             q{Trying production: [type_p]},
15879             Parse::RecDescent::_tracefirst($_[1]),
15880             q{predicate}, $tracelevel
15881             ) if defined $::RD_TRACE;
15882 0         0 my $thisprod = $thisrule->{"prods"}[7];
15883 0         0 $text = $_[1];
15884 0         0 my $_savetext;
15885 0         0 @item = (q{predicate});
15886 0         0 %item = (__RULE__ => q{predicate});
15887 0         0 my $repcount = 0;
15888              
15889 0 0       0 Parse::RecDescent::_trace(
15890             q{Trying subrule: [type_p]},
15891             Parse::RecDescent::_tracefirst($text),
15892             q{predicate}, $tracelevel
15893             ) if defined $::RD_TRACE;
15894 0         0 if (1) {
15895 1     1   12 no strict qw{refs};
  1         3  
  1         863  
15896 0         0 $expectation->is(q{})->at($text);
15897 0 0       0 unless (defined(
15898             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::type_p(
15899 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
15900             )
15901             )) {
15902              
15903 0 0       0 Parse::RecDescent::_trace(
15904             q{<>},
15905             Parse::RecDescent::_tracefirst($text),
15906             q{predicate}, $tracelevel
15907             ) if defined $::RD_TRACE;
15908 0         0 $expectation->failed();
15909 0         0 last;
15910             }
15911             Parse::RecDescent::_trace(
15912 0 0       0 q{>>Matched subrule: [type_p]<< (return value: [} . $_tok . q{]},
15913              
15914             Parse::RecDescent::_tracefirst($text),
15915             q{predicate},
15916             $tracelevel
15917             ) if defined $::RD_TRACE;
15918 0         0 $item{q{type_p}} = $_tok;
15919 0         0 push @item, $_tok;
15920              
15921             }
15922              
15923             Parse::RecDescent::_trace(
15924 0 0       0 q{>>Matched production: [type_p]<<},
15925             Parse::RecDescent::_tracefirst($text),
15926             q{predicate}, $tracelevel
15927             ) if defined $::RD_TRACE;
15928 0         0 $_matched = 1;
15929 0         0 last;
15930             }
15931              
15932 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
15933              
15934 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
15935 0 0       0 Parse::RecDescent::_trace(
15936             q{<>},
15937             Parse::RecDescent::_tracefirst($_[1]),
15938             q{predicate}, $tracelevel
15939             ) if defined $::RD_TRACE;
15940 0         0 return undef;
15941             }
15942 0 0 0     0 if (!defined($return) && defined($score)) {
15943 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{predicate}, $tracelevel)
15944             if defined $::RD_TRACE;
15945 0         0 $return = $score_return;
15946             }
15947 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
15948 0 0       0 $return = $item[$#item] unless defined $return;
15949 0 0       0 if (defined $::RD_TRACE) {
15950 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{predicate}, $tracelevel);
15951 0         0 Parse::RecDescent::_trace(
15952             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
15953             Parse::RecDescent::_tracefirst($text),
15954             , q{predicate}, $tracelevel
15955             );
15956             }
15957 0         0 $_[1] = $text;
15958 0         0 return $return;
15959             }
15960              
15961             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
15962             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name {
15963 0     0   0 my $thisparser = $_[0];
15964 1     1   10 use vars q{$tracelevel};
  1         2  
  1         506  
15965 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
15966 0         0 $ERRORS = 0;
15967 0         0 my $thisrule = $thisparser->{"rules"}{"column_name"};
15968              
15969 0 0       0 Parse::RecDescent::_trace(
15970             q{Trying rule: [column_name]},
15971             Parse::RecDescent::_tracefirst($_[1]),
15972             q{column_name}, $tracelevel
15973             ) if defined $::RD_TRACE;
15974              
15975 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
15976              
15977 0         0 my $score;
15978             my $score_return;
15979 0         0 my $_tok;
15980 0         0 my $return = undef;
15981 0         0 my $_matched = 0;
15982 0         0 my $commit = 0;
15983 0         0 my @item = ();
15984 0         0 my %item = ();
15985 0   0     0 my $repeating = defined($_[2]) && $_[2];
15986 0   0     0 my $_noactions = defined($_[3]) && $_[3];
15987 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
15988 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
15989 0         0 my $text;
15990 0         0 my $lastsep = "";
15991 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
15992 0         0 $expectation->at($_[1]);
15993              
15994 0         0 my $thisline;
15995 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
15996              
15997 0   0     0 while (!$_matched && !$commit) {
15998              
15999 0 0       0 Parse::RecDescent::_trace(
16000             q{Trying production: [NAME]},
16001             Parse::RecDescent::_tracefirst($_[1]),
16002             q{column_name}, $tracelevel
16003             ) if defined $::RD_TRACE;
16004 0         0 my $thisprod = $thisrule->{"prods"}[0];
16005 0         0 $text = $_[1];
16006 0         0 my $_savetext;
16007 0         0 @item = (q{column_name});
16008 0         0 %item = (__RULE__ => q{column_name});
16009 0         0 my $repcount = 0;
16010              
16011 0 0       0 Parse::RecDescent::_trace(
16012             q{Trying subrule: [NAME]},
16013             Parse::RecDescent::_tracefirst($text),
16014             q{column_name}, $tracelevel
16015             ) if defined $::RD_TRACE;
16016 0         0 if (1) {
16017 1     1   10 no strict qw{refs};
  1         3  
  1         647  
16018 0         0 $expectation->is(q{})->at($text);
16019 0 0       0 unless (defined(
16020             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME(
16021 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
16022             )
16023             )) {
16024              
16025 0 0       0 Parse::RecDescent::_trace(
16026             q{<>},
16027             Parse::RecDescent::_tracefirst($text),
16028             q{column_name}, $tracelevel
16029             ) if defined $::RD_TRACE;
16030 0         0 $expectation->failed();
16031 0         0 last;
16032             }
16033             Parse::RecDescent::_trace(
16034 0 0       0 q{>>Matched subrule: [NAME]<< (return value: [} . $_tok . q{]},
16035              
16036             Parse::RecDescent::_tracefirst($text),
16037             q{column_name},
16038             $tracelevel
16039             ) if defined $::RD_TRACE;
16040 0         0 $item{q{NAME}} = $_tok;
16041 0         0 push @item, $_tok;
16042              
16043             }
16044              
16045             Parse::RecDescent::_trace(
16046 0 0       0 q{>>Matched production: [NAME]<<},
16047             Parse::RecDescent::_tracefirst($text),
16048             q{column_name}, $tracelevel
16049             ) if defined $::RD_TRACE;
16050 0         0 $_matched = 1;
16051 0         0 last;
16052             }
16053              
16054 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
16055              
16056 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
16057 0 0       0 Parse::RecDescent::_trace(
16058             q{<>},
16059             Parse::RecDescent::_tracefirst($_[1]),
16060             q{column_name}, $tracelevel
16061             ) if defined $::RD_TRACE;
16062 0         0 return undef;
16063             }
16064 0 0 0     0 if (!defined($return) && defined($score)) {
16065 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{column_name}, $tracelevel)
16066             if defined $::RD_TRACE;
16067 0         0 $return = $score_return;
16068             }
16069 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
16070 0 0       0 $return = $item[$#item] unless defined $return;
16071 0 0       0 if (defined $::RD_TRACE) {
16072 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{column_name},
16073             $tracelevel);
16074 0         0 Parse::RecDescent::_trace(
16075             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
16076             Parse::RecDescent::_tracefirst($text),
16077             , q{column_name}, $tracelevel
16078             );
16079             }
16080 0         0 $_[1] = $text;
16081 0         0 return $return;
16082             }
16083              
16084             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
16085             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::method_invocation {
16086 0     0   0 my $thisparser = $_[0];
16087 1     1   10 use vars q{$tracelevel};
  1         2  
  1         562  
16088 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
16089 0         0 $ERRORS = 0;
16090 0         0 my $thisrule = $thisparser->{"rules"}{"method_invocation"};
16091              
16092 0 0       0 Parse::RecDescent::_trace(
16093             q{Trying rule: [method_invocation]},
16094             Parse::RecDescent::_tracefirst($_[1]),
16095             q{method_invocation}, $tracelevel
16096             ) if defined $::RD_TRACE;
16097              
16098 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
16099              
16100 0         0 my $score;
16101             my $score_return;
16102 0         0 my $_tok;
16103 0         0 my $return = undef;
16104 0         0 my $_matched = 0;
16105 0         0 my $commit = 0;
16106 0         0 my @item = ();
16107 0         0 my %item = ();
16108 0   0     0 my $repeating = defined($_[2]) && $_[2];
16109 0   0     0 my $_noactions = defined($_[3]) && $_[3];
16110 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
16111 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
16112 0         0 my $text;
16113 0         0 my $lastsep = "";
16114 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
16115 0         0 $expectation->at($_[1]);
16116              
16117 0         0 my $thisline;
16118 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
16119              
16120 0   0     0 while (!$_matched && !$commit) {
16121              
16122 0 0       0 Parse::RecDescent::_trace(
16123             q{Trying production: [subject_expression '..' method_name '(']},
16124             Parse::RecDescent::_tracefirst($_[1]),
16125             q{method_invocation}, $tracelevel
16126             ) if defined $::RD_TRACE;
16127 0         0 my $thisprod = $thisrule->{"prods"}[0];
16128 0         0 $text = $_[1];
16129 0         0 my $_savetext;
16130 0         0 @item = (q{method_invocation});
16131 0         0 %item = (__RULE__ => q{method_invocation});
16132 0         0 my $repcount = 0;
16133              
16134 0 0       0 Parse::RecDescent::_trace(
16135             q{Trying subrule: [subject_expression]},
16136             Parse::RecDescent::_tracefirst($text),
16137             q{method_invocation}, $tracelevel
16138             ) if defined $::RD_TRACE;
16139 0         0 if (1) {
16140 1     1   11 no strict qw{refs};
  1         3  
  1         451  
16141 0         0 $expectation->is(q{})->at($text);
16142 0 0       0 unless (defined(
16143             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::subject_expression(
16144 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
16145             )
16146             )) {
16147              
16148 0 0       0 Parse::RecDescent::_trace(
16149             q{<>},
16150             Parse::RecDescent::_tracefirst($text),
16151             q{method_invocation}, $tracelevel
16152             ) if defined $::RD_TRACE;
16153 0         0 $expectation->failed();
16154 0         0 last;
16155             }
16156             Parse::RecDescent::_trace(
16157 0 0       0 q{>>Matched subrule: [subject_expression]<< (return value: [} . $_tok . q{]},
16158              
16159             Parse::RecDescent::_tracefirst($text),
16160             q{method_invocation},
16161             $tracelevel
16162             ) if defined $::RD_TRACE;
16163 0         0 $item{q{subject_expression}} = $_tok;
16164 0         0 push @item, $_tok;
16165              
16166             }
16167              
16168             Parse::RecDescent::_trace(
16169 0 0       0 q{Trying terminal: ['..']},
16170             Parse::RecDescent::_tracefirst($text),
16171             q{method_invocation}, $tracelevel
16172             ) if defined $::RD_TRACE;
16173 0         0 $lastsep = "";
16174 0         0 $expectation->is(q{'..'})->at($text);
16175              
16176 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
16177             and $text =~ s/\A\.\.//) {
16178              
16179 0         0 $expectation->failed();
16180 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
16181             if defined $::RD_TRACE;
16182 0         0 last;
16183             }
16184 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
16185             Parse::RecDescent::_tracefirst($text))
16186             if defined $::RD_TRACE;
16187 0         0 push @item, $item{__STRING1__} = $&;
16188              
16189 0 0       0 Parse::RecDescent::_trace(
16190             q{Trying subrule: [method_name]},
16191             Parse::RecDescent::_tracefirst($text),
16192             q{method_invocation}, $tracelevel
16193             ) if defined $::RD_TRACE;
16194 0         0 if (1) {
16195 1     1   11 no strict qw{refs};
  1         5  
  1         899  
16196 0         0 $expectation->is(q{method_name})->at($text);
16197 0 0       0 unless (defined(
16198             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::method_name(
16199 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
16200             )
16201             )) {
16202              
16203 0 0       0 Parse::RecDescent::_trace(
16204             q{<>},
16205             Parse::RecDescent::_tracefirst($text),
16206             q{method_invocation}, $tracelevel
16207             ) if defined $::RD_TRACE;
16208 0         0 $expectation->failed();
16209 0         0 last;
16210             }
16211             Parse::RecDescent::_trace(
16212 0 0       0 q{>>Matched subrule: [method_name]<< (return value: [} . $_tok . q{]},
16213              
16214             Parse::RecDescent::_tracefirst($text),
16215             q{method_invocation},
16216             $tracelevel
16217             ) if defined $::RD_TRACE;
16218 0         0 $item{q{method_name}} = $_tok;
16219 0         0 push @item, $_tok;
16220              
16221             }
16222              
16223             Parse::RecDescent::_trace(
16224 0 0       0 q{Trying repeated subrule: ['(']},
16225             Parse::RecDescent::_tracefirst($text),
16226             q{method_invocation}, $tracelevel
16227             ) if defined $::RD_TRACE;
16228 0         0 $expectation->is(q{'('})->at($text);
16229              
16230 0 0       0 unless (defined(
16231             $_tok = $thisparser->_parserepeat(
16232             $text,
16233             \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_method_invocation,
16234             0,
16235             1,
16236             $_noactions,
16237             $expectation,
16238             undef
16239             )
16240             )) {
16241 0 0       0 Parse::RecDescent::_trace(
16242             q{<>},
16243             Parse::RecDescent::_tracefirst($text),
16244             q{method_invocation}, $tracelevel
16245             ) if defined $::RD_TRACE;
16246 0         0 last;
16247             }
16248             Parse::RecDescent::_trace(
16249 0 0       0 q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_method_invocation]<< (}
16250             . @$_tok
16251             . q{ times)},
16252              
16253             Parse::RecDescent::_tracefirst($text),
16254             q{method_invocation},
16255             $tracelevel
16256             ) if defined $::RD_TRACE;
16257 0         0 $item{q{_alternation_1_of_production_1_of_rule_method_invocation(?)}} = $_tok;
16258 0         0 push @item, $_tok;
16259              
16260 0 0       0 Parse::RecDescent::_trace(
16261             q{>>Matched production: [subject_expression '..' method_name '(']<<},
16262             Parse::RecDescent::_tracefirst($text),
16263             q{method_invocation}, $tracelevel
16264             ) if defined $::RD_TRACE;
16265 0         0 $_matched = 1;
16266 0         0 last;
16267             }
16268              
16269 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
16270              
16271 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
16272 0 0       0 Parse::RecDescent::_trace(
16273             q{<>},
16274             Parse::RecDescent::_tracefirst($_[1]),
16275             q{method_invocation}, $tracelevel
16276             ) if defined $::RD_TRACE;
16277 0         0 return undef;
16278             }
16279 0 0 0     0 if (!defined($return) && defined($score)) {
16280 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{method_invocation}, $tracelevel)
16281             if defined $::RD_TRACE;
16282 0         0 $return = $score_return;
16283             }
16284 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
16285 0 0       0 $return = $item[$#item] unless defined $return;
16286 0 0       0 if (defined $::RD_TRACE) {
16287 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
16288             "", q{method_invocation}, $tracelevel);
16289 0         0 Parse::RecDescent::_trace(
16290             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
16291             Parse::RecDescent::_tracefirst($text),
16292             , q{method_invocation}, $tracelevel
16293             );
16294             }
16295 0         0 $_[1] = $text;
16296 0         0 return $return;
16297             }
16298              
16299             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
16300             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_dereference_operation
16301             {
16302 0     0   0 my $thisparser = $_[0];
16303 1     1   11 use vars q{$tracelevel};
  1         4  
  1         1642  
16304 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
16305 0         0 $ERRORS = 0;
16306 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_dereference_operation"};
16307              
16308 0 0       0 Parse::RecDescent::_trace(
16309             q{Trying rule: [_alternation_1_of_production_1_of_rule_dereference_operation]},
16310             Parse::RecDescent::_tracefirst($_[1]),
16311             q{_alternation_1_of_production_1_of_rule_dereference_operation}, $tracelevel
16312             ) if defined $::RD_TRACE;
16313              
16314 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
16315              
16316 0         0 my $score;
16317             my $score_return;
16318 0         0 my $_tok;
16319 0         0 my $return = undef;
16320 0         0 my $_matched = 0;
16321 0         0 my $commit = 0;
16322 0         0 my @item = ();
16323 0         0 my %item = ();
16324 0   0     0 my $repeating = defined($_[2]) && $_[2];
16325 0   0     0 my $_noactions = defined($_[3]) && $_[3];
16326 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
16327 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
16328 0         0 my $text;
16329 0         0 my $lastsep = "";
16330 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
16331 0         0 $expectation->at($_[1]);
16332              
16333 0         0 my $thisline;
16334 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
16335              
16336 0   0     0 while (!$_matched && !$commit) {
16337              
16338 0 0       0 Parse::RecDescent::_trace(
16339             q{Trying production: ['(' expression ')']},
16340             Parse::RecDescent::_tracefirst($_[1]),
16341             q{_alternation_1_of_production_1_of_rule_dereference_operation}, $tracelevel
16342             ) if defined $::RD_TRACE;
16343 0         0 my $thisprod = $thisrule->{"prods"}[0];
16344 0         0 $text = $_[1];
16345 0         0 my $_savetext;
16346 0         0 @item = (q{_alternation_1_of_production_1_of_rule_dereference_operation});
16347 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_dereference_operation});
16348 0         0 my $repcount = 0;
16349              
16350 0 0       0 Parse::RecDescent::_trace(
16351             q{Trying terminal: ['(']},
16352             Parse::RecDescent::_tracefirst($text),
16353             q{_alternation_1_of_production_1_of_rule_dereference_operation}, $tracelevel
16354             ) if defined $::RD_TRACE;
16355 0         0 $lastsep = "";
16356 0         0 $expectation->is(q{})->at($text);
16357              
16358 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
16359             and $text =~ s/\A\(//) {
16360              
16361 0         0 $expectation->failed();
16362 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
16363             if defined $::RD_TRACE;
16364 0         0 last;
16365             }
16366 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
16367             Parse::RecDescent::_tracefirst($text))
16368             if defined $::RD_TRACE;
16369 0         0 push @item, $item{__STRING1__} = $&;
16370              
16371 0 0       0 Parse::RecDescent::_trace(
16372             q{Trying repeated subrule: [expression]},
16373             Parse::RecDescent::_tracefirst($text),
16374             q{_alternation_1_of_production_1_of_rule_dereference_operation}, $tracelevel
16375             ) if defined $::RD_TRACE;
16376 0         0 $expectation->is(q{expression})->at($text);
16377              
16378 0 0       0 unless (defined(
16379             $_tok = $thisparser->_parserepeat(
16380             $text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression,
16381             1, 100000000, $_noactions, $expectation, undef
16382             )
16383             )) {
16384 0 0       0 Parse::RecDescent::_trace(
16385             q{<>},
16386             Parse::RecDescent::_tracefirst($text),
16387             q{_alternation_1_of_production_1_of_rule_dereference_operation}, $tracelevel
16388             ) if defined $::RD_TRACE;
16389 0         0 last;
16390             }
16391             Parse::RecDescent::_trace(
16392 0 0       0 q{>>Matched repeated subrule: [expression]<< (} . @$_tok . q{ times)},
16393              
16394             Parse::RecDescent::_tracefirst($text),
16395             q{_alternation_1_of_production_1_of_rule_dereference_operation},
16396             $tracelevel
16397             ) if defined $::RD_TRACE;
16398 0         0 $item{q{expression(s)}} = $_tok;
16399 0         0 push @item, $_tok;
16400              
16401 0 0       0 Parse::RecDescent::_trace(
16402             q{Trying terminal: [')']},
16403             Parse::RecDescent::_tracefirst($text),
16404             q{_alternation_1_of_production_1_of_rule_dereference_operation}, $tracelevel
16405             ) if defined $::RD_TRACE;
16406 0         0 $lastsep = "";
16407 0         0 $expectation->is(q{')'})->at($text);
16408              
16409 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
16410             and $text =~ s/\A\)//) {
16411              
16412 0         0 $expectation->failed();
16413 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
16414             if defined $::RD_TRACE;
16415 0         0 last;
16416             }
16417 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
16418             Parse::RecDescent::_tracefirst($text))
16419             if defined $::RD_TRACE;
16420 0         0 push @item, $item{__STRING2__} = $&;
16421              
16422 0 0       0 Parse::RecDescent::_trace(
16423             q{>>Matched production: ['(' expression ')']<<},
16424             Parse::RecDescent::_tracefirst($text),
16425             q{_alternation_1_of_production_1_of_rule_dereference_operation}, $tracelevel
16426             ) if defined $::RD_TRACE;
16427 0         0 $_matched = 1;
16428 0         0 last;
16429             }
16430              
16431 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
16432              
16433 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
16434 0 0       0 Parse::RecDescent::_trace(
16435             q{<>},
16436             Parse::RecDescent::_tracefirst($_[1]),
16437             q{_alternation_1_of_production_1_of_rule_dereference_operation}, $tracelevel
16438             ) if defined $::RD_TRACE;
16439 0         0 return undef;
16440             }
16441 0 0 0     0 if (!defined($return) && defined($score)) {
16442 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
16443             "", q{_alternation_1_of_production_1_of_rule_dereference_operation}, $tracelevel)
16444             if defined $::RD_TRACE;
16445 0         0 $return = $score_return;
16446             }
16447 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
16448 0 0       0 $return = $item[$#item] unless defined $return;
16449 0 0       0 if (defined $::RD_TRACE) {
16450 0         0 Parse::RecDescent::_trace(
16451             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
16452             q{_alternation_1_of_production_1_of_rule_dereference_operation}, $tracelevel
16453             );
16454 0         0 Parse::RecDescent::_trace(
16455             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
16456             Parse::RecDescent::_tracefirst($text),
16457             , q{_alternation_1_of_production_1_of_rule_dereference_operation}, $tracelevel
16458             );
16459             }
16460 0         0 $_[1] = $text;
16461 0         0 return $return;
16462             }
16463              
16464             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
16465             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_searched_when_clause
16466             {
16467 0     0   0 my $thisparser = $_[0];
16468 1     1   12 use vars q{$tracelevel};
  1         4  
  1         669  
16469 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
16470 0         0 $ERRORS = 0;
16471 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_searched_when_clause"};
16472              
16473 0 0       0 Parse::RecDescent::_trace(
16474             q{Trying rule: [_alternation_1_of_production_1_of_rule_searched_when_clause]},
16475             Parse::RecDescent::_tracefirst($_[1]),
16476             q{_alternation_1_of_production_1_of_rule_searched_when_clause}, $tracelevel
16477             ) if defined $::RD_TRACE;
16478              
16479 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
16480              
16481 0         0 my $score;
16482             my $score_return;
16483 0         0 my $_tok;
16484 0         0 my $return = undef;
16485 0         0 my $_matched = 0;
16486 0         0 my $commit = 0;
16487 0         0 my @item = ();
16488 0         0 my %item = ();
16489 0   0     0 my $repeating = defined($_[2]) && $_[2];
16490 0   0     0 my $_noactions = defined($_[3]) && $_[3];
16491 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
16492 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
16493 0         0 my $text;
16494 0         0 my $lastsep = "";
16495 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
16496 0         0 $expectation->at($_[1]);
16497              
16498 0         0 my $thisline;
16499 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
16500              
16501 0   0     0 while (!$_matched && !$commit) {
16502              
16503 0 0       0 Parse::RecDescent::_trace(
16504             q{Trying production: [/WHEN/i search_condition /THEN/i result_expression, or /NULL/i]},
16505             Parse::RecDescent::_tracefirst($_[1]),
16506             q{_alternation_1_of_production_1_of_rule_searched_when_clause}, $tracelevel
16507             ) if defined $::RD_TRACE;
16508 0         0 my $thisprod = $thisrule->{"prods"}[0];
16509 0         0 $text = $_[1];
16510 0         0 my $_savetext;
16511 0         0 @item = (q{_alternation_1_of_production_1_of_rule_searched_when_clause});
16512 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_searched_when_clause});
16513 0         0 my $repcount = 0;
16514              
16515 0 0       0 Parse::RecDescent::_trace(
16516             q{Trying terminal: [/WHEN/i]},
16517             Parse::RecDescent::_tracefirst($text),
16518             q{_alternation_1_of_production_1_of_rule_searched_when_clause}, $tracelevel
16519             ) if defined $::RD_TRACE;
16520 0         0 $lastsep = "";
16521 0         0 $expectation->is(q{})->at($text);
16522              
16523 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
16524             and $text =~ s/\A(?:WHEN)//i) {
16525              
16526 0         0 $expectation->failed();
16527 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
16528             if defined $::RD_TRACE;
16529              
16530 0         0 last;
16531             }
16532 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
16533             Parse::RecDescent::_tracefirst($text))
16534             if defined $::RD_TRACE;
16535 0         0 push @item, $item{__PATTERN1__} = $&;
16536              
16537 0 0       0 Parse::RecDescent::_trace(
16538             q{Trying subrule: [search_condition]},
16539             Parse::RecDescent::_tracefirst($text),
16540             q{_alternation_1_of_production_1_of_rule_searched_when_clause}, $tracelevel
16541             ) if defined $::RD_TRACE;
16542 0         0 if (1) {
16543 1     1   11 no strict qw{refs};
  1         3  
  1         495  
16544 0         0 $expectation->is(q{search_condition})->at($text);
16545 0 0       0 unless (defined(
16546             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition(
16547 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
16548             )
16549             )) {
16550              
16551 0 0       0 Parse::RecDescent::_trace(
16552             q{<>},
16553             Parse::RecDescent::_tracefirst($text),
16554             q{_alternation_1_of_production_1_of_rule_searched_when_clause}, $tracelevel
16555             ) if defined $::RD_TRACE;
16556 0         0 $expectation->failed();
16557 0         0 last;
16558             }
16559             Parse::RecDescent::_trace(
16560 0 0       0 q{>>Matched subrule: [search_condition]<< (return value: [} . $_tok . q{]},
16561              
16562             Parse::RecDescent::_tracefirst($text),
16563             q{_alternation_1_of_production_1_of_rule_searched_when_clause},
16564             $tracelevel
16565             ) if defined $::RD_TRACE;
16566 0         0 $item{q{search_condition}} = $_tok;
16567 0         0 push @item, $_tok;
16568              
16569             }
16570              
16571             Parse::RecDescent::_trace(
16572 0 0       0 q{Trying terminal: [/THEN/i]},
16573             Parse::RecDescent::_tracefirst($text),
16574             q{_alternation_1_of_production_1_of_rule_searched_when_clause}, $tracelevel
16575             ) if defined $::RD_TRACE;
16576 0         0 $lastsep = "";
16577 0         0 $expectation->is(q{/THEN/i})->at($text);
16578              
16579 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
16580             and $text =~ s/\A(?:THEN)//i) {
16581              
16582 0         0 $expectation->failed();
16583 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
16584             if defined $::RD_TRACE;
16585              
16586 0         0 last;
16587             }
16588 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
16589             Parse::RecDescent::_tracefirst($text))
16590             if defined $::RD_TRACE;
16591 0         0 push @item, $item{__PATTERN2__} = $&;
16592              
16593 0 0       0 Parse::RecDescent::_trace(
16594             q{Trying subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause]},
16595             Parse::RecDescent::_tracefirst($text),
16596             q{_alternation_1_of_production_1_of_rule_searched_when_clause},
16597             $tracelevel
16598             ) if defined $::RD_TRACE;
16599 0         0 if (1) {
16600 1     1   10 no strict qw{refs};
  1         4  
  1         796  
16601 0         0 $expectation->is(q{result_expression, or /NULL/i})->at($text);
16602 0 0       0 unless (defined(
16603             $_tok
16604             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause(
16605 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
16606             )
16607             )) {
16608              
16609 0 0       0 Parse::RecDescent::_trace(
16610             q{<>},
16611             Parse::RecDescent::_tracefirst($text),
16612             q{_alternation_1_of_production_1_of_rule_searched_when_clause},
16613             $tracelevel
16614             ) if defined $::RD_TRACE;
16615 0         0 $expectation->failed();
16616 0         0 last;
16617             }
16618             Parse::RecDescent::_trace(
16619 0 0       0 q{>>Matched subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause]<< (return value: [}
16620             . $_tok . q{]},
16621              
16622             Parse::RecDescent::_tracefirst($text),
16623             q{_alternation_1_of_production_1_of_rule_searched_when_clause},
16624             $tracelevel
16625             ) if defined $::RD_TRACE;
16626 0         0 $item{q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause}}
16627             = $_tok;
16628 0         0 push @item, $_tok;
16629              
16630             }
16631              
16632             Parse::RecDescent::_trace(
16633 0 0       0 q{>>Matched production: [/WHEN/i search_condition /THEN/i result_expression, or /NULL/i]<<},
16634             Parse::RecDescent::_tracefirst($text),
16635             q{_alternation_1_of_production_1_of_rule_searched_when_clause}, $tracelevel
16636             ) if defined $::RD_TRACE;
16637 0         0 $_matched = 1;
16638 0         0 last;
16639             }
16640              
16641 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
16642              
16643 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
16644 0 0       0 Parse::RecDescent::_trace(
16645             q{<>},
16646             Parse::RecDescent::_tracefirst($_[1]),
16647             q{_alternation_1_of_production_1_of_rule_searched_when_clause}, $tracelevel
16648             ) if defined $::RD_TRACE;
16649 0         0 return undef;
16650             }
16651 0 0 0     0 if (!defined($return) && defined($score)) {
16652 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
16653             "", q{_alternation_1_of_production_1_of_rule_searched_when_clause}, $tracelevel)
16654             if defined $::RD_TRACE;
16655 0         0 $return = $score_return;
16656             }
16657 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
16658 0 0       0 $return = $item[$#item] unless defined $return;
16659 0 0       0 if (defined $::RD_TRACE) {
16660 0         0 Parse::RecDescent::_trace(
16661             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
16662             q{_alternation_1_of_production_1_of_rule_searched_when_clause}, $tracelevel
16663             );
16664 0         0 Parse::RecDescent::_trace(
16665             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
16666             Parse::RecDescent::_tracefirst($text),
16667             , q{_alternation_1_of_production_1_of_rule_searched_when_clause}, $tracelevel
16668             );
16669             }
16670 0         0 $_[1] = $text;
16671 0         0 return $return;
16672             }
16673              
16674             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
16675             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_bound2 {
16676 0     0   0 my $thisparser = $_[0];
16677 1     1   11 use vars q{$tracelevel};
  1         4  
  1         911  
16678 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
16679 0         0 $ERRORS = 0;
16680 0         0 my $thisrule = $thisparser->{"rules"}{"group_bound2"};
16681              
16682 0 0       0 Parse::RecDescent::_trace(
16683             q{Trying rule: [group_bound2]},
16684             Parse::RecDescent::_tracefirst($_[1]),
16685             q{group_bound2}, $tracelevel
16686             ) if defined $::RD_TRACE;
16687              
16688 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
16689              
16690 0         0 my $score;
16691             my $score_return;
16692 0         0 my $_tok;
16693 0         0 my $return = undef;
16694 0         0 my $_matched = 0;
16695 0         0 my $commit = 0;
16696 0         0 my @item = ();
16697 0         0 my %item = ();
16698 0   0     0 my $repeating = defined($_[2]) && $_[2];
16699 0   0     0 my $_noactions = defined($_[3]) && $_[3];
16700 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
16701 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
16702 0         0 my $text;
16703 0         0 my $lastsep = "";
16704 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
16705 0         0 $expectation->at($_[1]);
16706              
16707 0         0 my $thisline;
16708 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
16709              
16710 0   0     0 while (!$_matched && !$commit) {
16711              
16712 0 0       0 Parse::RecDescent::_trace(
16713             q{Trying production: [/UNBOUNDED\\s+PRECEDING/i]},
16714             Parse::RecDescent::_tracefirst($_[1]),
16715             q{group_bound2}, $tracelevel
16716             ) if defined $::RD_TRACE;
16717 0         0 my $thisprod = $thisrule->{"prods"}[0];
16718 0         0 $text = $_[1];
16719 0         0 my $_savetext;
16720 0         0 @item = (q{group_bound2});
16721 0         0 %item = (__RULE__ => q{group_bound2});
16722 0         0 my $repcount = 0;
16723              
16724 0 0       0 Parse::RecDescent::_trace(
16725             q{Trying terminal: [/UNBOUNDED\\s+PRECEDING/i]},
16726             Parse::RecDescent::_tracefirst($text),
16727             q{group_bound2}, $tracelevel
16728             ) if defined $::RD_TRACE;
16729 0         0 $lastsep = "";
16730 0         0 $expectation->is(q{})->at($text);
16731              
16732 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
16733             and $text =~ s/\A(?:UNBOUNDED\s+PRECEDING)//i) {
16734              
16735 0         0 $expectation->failed();
16736 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
16737             if defined $::RD_TRACE;
16738              
16739 0         0 last;
16740             }
16741 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
16742             Parse::RecDescent::_tracefirst($text))
16743             if defined $::RD_TRACE;
16744 0         0 push @item, $item{__PATTERN1__} = $&;
16745              
16746 0 0       0 Parse::RecDescent::_trace(
16747             q{>>Matched production: [/UNBOUNDED\\s+PRECEDING/i]<<},
16748             Parse::RecDescent::_tracefirst($text),
16749             q{group_bound2}, $tracelevel
16750             ) if defined $::RD_TRACE;
16751 0         0 $_matched = 1;
16752 0         0 last;
16753             }
16754              
16755 0   0     0 while (!$_matched && !$commit) {
16756              
16757 0 0       0 Parse::RecDescent::_trace(
16758             q{Trying production: [unsigned_constant /PRECEDING/i]},
16759             Parse::RecDescent::_tracefirst($_[1]),
16760             q{group_bound2}, $tracelevel
16761             ) if defined $::RD_TRACE;
16762 0         0 my $thisprod = $thisrule->{"prods"}[1];
16763 0         0 $text = $_[1];
16764 0         0 my $_savetext;
16765 0         0 @item = (q{group_bound2});
16766 0         0 %item = (__RULE__ => q{group_bound2});
16767 0         0 my $repcount = 0;
16768              
16769 0 0       0 Parse::RecDescent::_trace(
16770             q{Trying subrule: [unsigned_constant]},
16771             Parse::RecDescent::_tracefirst($text),
16772             q{group_bound2}, $tracelevel
16773             ) if defined $::RD_TRACE;
16774 0         0 if (1) {
16775 1     1   9 no strict qw{refs};
  1         3  
  1         598  
16776 0         0 $expectation->is(q{})->at($text);
16777 0 0       0 unless (defined(
16778             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::unsigned_constant(
16779 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
16780             )
16781             )) {
16782              
16783 0 0       0 Parse::RecDescent::_trace(
16784             q{<>},
16785             Parse::RecDescent::_tracefirst($text),
16786             q{group_bound2}, $tracelevel
16787             ) if defined $::RD_TRACE;
16788 0         0 $expectation->failed();
16789 0         0 last;
16790             }
16791             Parse::RecDescent::_trace(
16792 0 0       0 q{>>Matched subrule: [unsigned_constant]<< (return value: [} . $_tok . q{]},
16793              
16794             Parse::RecDescent::_tracefirst($text),
16795             q{group_bound2},
16796             $tracelevel
16797             ) if defined $::RD_TRACE;
16798 0         0 $item{q{unsigned_constant}} = $_tok;
16799 0         0 push @item, $_tok;
16800              
16801             }
16802              
16803             Parse::RecDescent::_trace(
16804 0 0       0 q{Trying terminal: [/PRECEDING/i]},
16805             Parse::RecDescent::_tracefirst($text),
16806             q{group_bound2}, $tracelevel
16807             ) if defined $::RD_TRACE;
16808 0         0 $lastsep = "";
16809 0         0 $expectation->is(q{/PRECEDING/i})->at($text);
16810              
16811 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
16812             and $text =~ s/\A(?:PRECEDING)//i) {
16813              
16814 0         0 $expectation->failed();
16815 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
16816             if defined $::RD_TRACE;
16817              
16818 0         0 last;
16819             }
16820 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
16821             Parse::RecDescent::_tracefirst($text))
16822             if defined $::RD_TRACE;
16823 0         0 push @item, $item{__PATTERN1__} = $&;
16824              
16825 0 0       0 Parse::RecDescent::_trace(
16826             q{>>Matched production: [unsigned_constant /PRECEDING/i]<<},
16827             Parse::RecDescent::_tracefirst($text),
16828             q{group_bound2}, $tracelevel
16829             ) if defined $::RD_TRACE;
16830 0         0 $_matched = 1;
16831 0         0 last;
16832             }
16833              
16834 0   0     0 while (!$_matched && !$commit) {
16835              
16836 0 0       0 Parse::RecDescent::_trace(
16837             q{Trying production: [unsigned_constant /FOLLOWING/i]},
16838             Parse::RecDescent::_tracefirst($_[1]),
16839             q{group_bound2}, $tracelevel
16840             ) if defined $::RD_TRACE;
16841 0         0 my $thisprod = $thisrule->{"prods"}[2];
16842 0         0 $text = $_[1];
16843 0         0 my $_savetext;
16844 0         0 @item = (q{group_bound2});
16845 0         0 %item = (__RULE__ => q{group_bound2});
16846 0         0 my $repcount = 0;
16847              
16848 0 0       0 Parse::RecDescent::_trace(
16849             q{Trying subrule: [unsigned_constant]},
16850             Parse::RecDescent::_tracefirst($text),
16851             q{group_bound2}, $tracelevel
16852             ) if defined $::RD_TRACE;
16853 0         0 if (1) {
16854 1     1   9 no strict qw{refs};
  1         4  
  1         1491  
16855 0         0 $expectation->is(q{})->at($text);
16856 0 0       0 unless (defined(
16857             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::unsigned_constant(
16858 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
16859             )
16860             )) {
16861              
16862 0 0       0 Parse::RecDescent::_trace(
16863             q{<>},
16864             Parse::RecDescent::_tracefirst($text),
16865             q{group_bound2}, $tracelevel
16866             ) if defined $::RD_TRACE;
16867 0         0 $expectation->failed();
16868 0         0 last;
16869             }
16870             Parse::RecDescent::_trace(
16871 0 0       0 q{>>Matched subrule: [unsigned_constant]<< (return value: [} . $_tok . q{]},
16872              
16873             Parse::RecDescent::_tracefirst($text),
16874             q{group_bound2},
16875             $tracelevel
16876             ) if defined $::RD_TRACE;
16877 0         0 $item{q{unsigned_constant}} = $_tok;
16878 0         0 push @item, $_tok;
16879              
16880             }
16881              
16882             Parse::RecDescent::_trace(
16883 0 0       0 q{Trying terminal: [/FOLLOWING/i]},
16884             Parse::RecDescent::_tracefirst($text),
16885             q{group_bound2}, $tracelevel
16886             ) if defined $::RD_TRACE;
16887 0         0 $lastsep = "";
16888 0         0 $expectation->is(q{/FOLLOWING/i})->at($text);
16889              
16890 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
16891             and $text =~ s/\A(?:FOLLOWING)//i) {
16892              
16893 0         0 $expectation->failed();
16894 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
16895             if defined $::RD_TRACE;
16896              
16897 0         0 last;
16898             }
16899 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
16900             Parse::RecDescent::_tracefirst($text))
16901             if defined $::RD_TRACE;
16902 0         0 push @item, $item{__PATTERN1__} = $&;
16903              
16904 0 0       0 Parse::RecDescent::_trace(
16905             q{>>Matched production: [unsigned_constant /FOLLOWING/i]<<},
16906             Parse::RecDescent::_tracefirst($text),
16907             q{group_bound2}, $tracelevel
16908             ) if defined $::RD_TRACE;
16909 0         0 $_matched = 1;
16910 0         0 last;
16911             }
16912              
16913 0   0     0 while (!$_matched && !$commit) {
16914              
16915 0 0       0 Parse::RecDescent::_trace(
16916             q{Trying production: [/CURRENT\\s+ROW/i]},
16917             Parse::RecDescent::_tracefirst($_[1]),
16918             q{group_bound2}, $tracelevel
16919             ) if defined $::RD_TRACE;
16920 0         0 my $thisprod = $thisrule->{"prods"}[3];
16921 0         0 $text = $_[1];
16922 0         0 my $_savetext;
16923 0         0 @item = (q{group_bound2});
16924 0         0 %item = (__RULE__ => q{group_bound2});
16925 0         0 my $repcount = 0;
16926              
16927 0 0       0 Parse::RecDescent::_trace(
16928             q{Trying terminal: [/CURRENT\\s+ROW/i]},
16929             Parse::RecDescent::_tracefirst($text),
16930             q{group_bound2}, $tracelevel
16931             ) if defined $::RD_TRACE;
16932 0         0 $lastsep = "";
16933 0         0 $expectation->is(q{})->at($text);
16934              
16935 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
16936             and $text =~ s/\A(?:CURRENT\s+ROW)//i) {
16937              
16938 0         0 $expectation->failed();
16939 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
16940             if defined $::RD_TRACE;
16941              
16942 0         0 last;
16943             }
16944 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
16945             Parse::RecDescent::_tracefirst($text))
16946             if defined $::RD_TRACE;
16947 0         0 push @item, $item{__PATTERN1__} = $&;
16948              
16949 0 0       0 Parse::RecDescent::_trace(
16950             q{>>Matched production: [/CURRENT\\s+ROW/i]<<},
16951             Parse::RecDescent::_tracefirst($text),
16952             q{group_bound2}, $tracelevel
16953             ) if defined $::RD_TRACE;
16954 0         0 $_matched = 1;
16955 0         0 last;
16956             }
16957              
16958 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
16959              
16960 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
16961 0 0       0 Parse::RecDescent::_trace(
16962             q{<>},
16963             Parse::RecDescent::_tracefirst($_[1]),
16964             q{group_bound2}, $tracelevel
16965             ) if defined $::RD_TRACE;
16966 0         0 return undef;
16967             }
16968 0 0 0     0 if (!defined($return) && defined($score)) {
16969 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{group_bound2}, $tracelevel)
16970             if defined $::RD_TRACE;
16971 0         0 $return = $score_return;
16972             }
16973 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
16974 0 0       0 $return = $item[$#item] unless defined $return;
16975 0 0       0 if (defined $::RD_TRACE) {
16976 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
16977             "", q{group_bound2}, $tracelevel);
16978 0         0 Parse::RecDescent::_trace(
16979             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
16980             Parse::RecDescent::_tracefirst($text),
16981             , q{group_bound2}, $tracelevel
16982             );
16983             }
16984 0         0 $_[1] = $text;
16985 0         0 return $return;
16986             }
16987              
16988             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
16989             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::searched_when_clause {
16990 0     0   0 my $thisparser = $_[0];
16991 1     1   10 use vars q{$tracelevel};
  1         2  
  1         1052  
16992 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
16993 0         0 $ERRORS = 0;
16994 0         0 my $thisrule = $thisparser->{"rules"}{"searched_when_clause"};
16995              
16996 0 0       0 Parse::RecDescent::_trace(
16997             q{Trying rule: [searched_when_clause]},
16998             Parse::RecDescent::_tracefirst($_[1]),
16999             q{searched_when_clause}, $tracelevel
17000             ) if defined $::RD_TRACE;
17001              
17002 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
17003              
17004 0         0 my $score;
17005             my $score_return;
17006 0         0 my $_tok;
17007 0         0 my $return = undef;
17008 0         0 my $_matched = 0;
17009 0         0 my $commit = 0;
17010 0         0 my @item = ();
17011 0         0 my %item = ();
17012 0   0     0 my $repeating = defined($_[2]) && $_[2];
17013 0   0     0 my $_noactions = defined($_[3]) && $_[3];
17014 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
17015 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
17016 0         0 my $text;
17017 0         0 my $lastsep = "";
17018 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
17019 0         0 $expectation->at($_[1]);
17020              
17021 0         0 my $thisline;
17022 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
17023              
17024 0   0     0 while (!$_matched && !$commit) {
17025              
17026 0 0       0 Parse::RecDescent::_trace(
17027             q{Trying production: [/WHEN/i]},
17028             Parse::RecDescent::_tracefirst($_[1]),
17029             q{searched_when_clause}, $tracelevel
17030             ) if defined $::RD_TRACE;
17031 0         0 my $thisprod = $thisrule->{"prods"}[0];
17032 0         0 $text = $_[1];
17033 0         0 my $_savetext;
17034 0         0 @item = (q{searched_when_clause});
17035 0         0 %item = (__RULE__ => q{searched_when_clause});
17036 0         0 my $repcount = 0;
17037              
17038 0 0       0 Parse::RecDescent::_trace(
17039             q{Trying repeated subrule: [/WHEN/i]},
17040             Parse::RecDescent::_tracefirst($text),
17041             q{searched_when_clause}, $tracelevel
17042             ) if defined $::RD_TRACE;
17043 0         0 $expectation->is(q{})->at($text);
17044              
17045 0 0       0 unless (defined(
17046             $_tok = $thisparser->_parserepeat(
17047             $text,
17048             \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_searched_when_clause,
17049             1,
17050             100000000,
17051             $_noactions,
17052             $expectation,
17053             undef
17054             )
17055             )) {
17056 0 0       0 Parse::RecDescent::_trace(
17057             q{<>},
17058             Parse::RecDescent::_tracefirst($text),
17059             q{searched_when_clause}, $tracelevel
17060             ) if defined $::RD_TRACE;
17061 0         0 last;
17062             }
17063             Parse::RecDescent::_trace(
17064 0 0       0 q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_searched_when_clause]<< (}
17065             . @$_tok
17066             . q{ times)},
17067              
17068             Parse::RecDescent::_tracefirst($text),
17069             q{searched_when_clause},
17070             $tracelevel
17071             ) if defined $::RD_TRACE;
17072 0         0 $item{q{_alternation_1_of_production_1_of_rule_searched_when_clause(s)}} = $_tok;
17073 0         0 push @item, $_tok;
17074              
17075 0 0       0 Parse::RecDescent::_trace(
17076             q{>>Matched production: [/WHEN/i]<<},
17077             Parse::RecDescent::_tracefirst($text),
17078             q{searched_when_clause}, $tracelevel
17079             ) if defined $::RD_TRACE;
17080 0         0 $_matched = 1;
17081 0         0 last;
17082             }
17083              
17084 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
17085              
17086 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
17087 0 0       0 Parse::RecDescent::_trace(
17088             q{<>},
17089             Parse::RecDescent::_tracefirst($_[1]),
17090             q{searched_when_clause}, $tracelevel
17091             ) if defined $::RD_TRACE;
17092 0         0 return undef;
17093             }
17094 0 0 0     0 if (!defined($return) && defined($score)) {
17095 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{searched_when_clause}, $tracelevel)
17096             if defined $::RD_TRACE;
17097 0         0 $return = $score_return;
17098             }
17099 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
17100 0 0       0 $return = $item[$#item] unless defined $return;
17101 0 0       0 if (defined $::RD_TRACE) {
17102 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
17103             "", q{searched_when_clause}, $tracelevel);
17104 0         0 Parse::RecDescent::_trace(
17105             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
17106             Parse::RecDescent::_tracefirst($text),
17107             , q{searched_when_clause}, $tracelevel
17108             );
17109             }
17110 0         0 $_[1] = $text;
17111 0         0 return $return;
17112             }
17113              
17114             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
17115             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::basic_p {
17116 0     0   0 my $thisparser = $_[0];
17117 1     1   11 use vars q{$tracelevel};
  1         3  
  1         527  
17118 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
17119 0         0 $ERRORS = 0;
17120 0         0 my $thisrule = $thisparser->{"rules"}{"basic_p"};
17121              
17122 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [basic_p]}, Parse::RecDescent::_tracefirst($_[1]), q{basic_p}, $tracelevel)
17123             if defined $::RD_TRACE;
17124              
17125 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
17126              
17127 0         0 my $score;
17128             my $score_return;
17129 0         0 my $_tok;
17130 0         0 my $return = undef;
17131 0         0 my $_matched = 0;
17132 0         0 my $commit = 0;
17133 0         0 my @item = ();
17134 0         0 my %item = ();
17135 0   0     0 my $repeating = defined($_[2]) && $_[2];
17136 0   0     0 my $_noactions = defined($_[3]) && $_[3];
17137 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
17138 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
17139 0         0 my $text;
17140 0         0 my $lastsep = "";
17141 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
17142 0         0 $expectation->at($_[1]);
17143              
17144 0         0 my $thisline;
17145 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
17146              
17147 0   0     0 while (!$_matched && !$commit) {
17148              
17149 0 0       0 Parse::RecDescent::_trace(
17150             q{Trying production: [expression /(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/ expression]},
17151             Parse::RecDescent::_tracefirst($_[1]),
17152             q{basic_p}, $tracelevel
17153             ) if defined $::RD_TRACE;
17154 0         0 my $thisprod = $thisrule->{"prods"}[0];
17155 0         0 $text = $_[1];
17156 0         0 my $_savetext;
17157 0         0 @item = (q{basic_p});
17158 0         0 %item = (__RULE__ => q{basic_p});
17159 0         0 my $repcount = 0;
17160              
17161 0 0       0 Parse::RecDescent::_trace(
17162             q{Trying subrule: [expression]},
17163             Parse::RecDescent::_tracefirst($text),
17164             q{basic_p}, $tracelevel
17165             ) if defined $::RD_TRACE;
17166 0         0 if (1) {
17167 1     1   12 no strict qw{refs};
  1         3  
  1         551  
17168 0         0 $expectation->is(q{})->at($text);
17169 0 0       0 unless (defined(
17170             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression(
17171 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
17172             )
17173             )) {
17174              
17175 0 0       0 Parse::RecDescent::_trace(
17176             q{<>},
17177             Parse::RecDescent::_tracefirst($text),
17178             q{basic_p}, $tracelevel
17179             ) if defined $::RD_TRACE;
17180 0         0 $expectation->failed();
17181 0         0 last;
17182             }
17183             Parse::RecDescent::_trace(
17184 0 0       0 q{>>Matched subrule: [expression]<< (return value: [} . $_tok . q{]},
17185              
17186             Parse::RecDescent::_tracefirst($text),
17187             q{basic_p},
17188             $tracelevel
17189             ) if defined $::RD_TRACE;
17190 0         0 $item{q{expression}} = $_tok;
17191 0         0 push @item, $_tok;
17192              
17193             }
17194              
17195             Parse::RecDescent::_trace(
17196 0 0       0 q{Trying terminal: [/(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/]},
17197             Parse::RecDescent::_tracefirst($text),
17198             q{basic_p}, $tracelevel
17199             ) if defined $::RD_TRACE;
17200 0         0 $lastsep = "";
17201 0         0 $expectation->is(q{/(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/})
17202             ->at($text);
17203              
17204 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
17205             and $text =~ s/\A(?:(=|<>|<|>|<=|=>|\^=|\^<|\^>|\!=))//) {
17206              
17207 0         0 $expectation->failed();
17208 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
17209             if defined $::RD_TRACE;
17210              
17211 0         0 last;
17212             }
17213 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
17214             Parse::RecDescent::_tracefirst($text))
17215             if defined $::RD_TRACE;
17216 0         0 push @item, $item{__PATTERN1__} = $&;
17217              
17218 0 0       0 Parse::RecDescent::_trace(
17219             q{Trying subrule: [expression]},
17220             Parse::RecDescent::_tracefirst($text),
17221             q{basic_p}, $tracelevel
17222             ) if defined $::RD_TRACE;
17223 0         0 if (1) {
17224 1     1   11 no strict qw{refs};
  1         3  
  1         744  
17225 0         0 $expectation->is(q{expression})->at($text);
17226 0 0       0 unless (defined(
17227             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression(
17228 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
17229             )
17230             )) {
17231              
17232 0 0       0 Parse::RecDescent::_trace(
17233             q{<>},
17234             Parse::RecDescent::_tracefirst($text),
17235             q{basic_p}, $tracelevel
17236             ) if defined $::RD_TRACE;
17237 0         0 $expectation->failed();
17238 0         0 last;
17239             }
17240             Parse::RecDescent::_trace(
17241 0 0       0 q{>>Matched subrule: [expression]<< (return value: [} . $_tok . q{]},
17242              
17243             Parse::RecDescent::_tracefirst($text),
17244             q{basic_p},
17245             $tracelevel
17246             ) if defined $::RD_TRACE;
17247 0         0 $item{q{expression}} = $_tok;
17248 0         0 push @item, $_tok;
17249              
17250             }
17251              
17252             Parse::RecDescent::_trace(
17253 0 0       0 q{>>Matched production: [expression /(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/ expression]<<},
17254             Parse::RecDescent::_tracefirst($text),
17255             q{basic_p}, $tracelevel
17256             ) if defined $::RD_TRACE;
17257 0         0 $_matched = 1;
17258 0         0 last;
17259             }
17260              
17261 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
17262              
17263 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
17264 0 0       0 Parse::RecDescent::_trace(
17265             q{<>},
17266             Parse::RecDescent::_tracefirst($_[1]),
17267             q{basic_p}, $tracelevel
17268             ) if defined $::RD_TRACE;
17269 0         0 return undef;
17270             }
17271 0 0 0     0 if (!defined($return) && defined($score)) {
17272 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{basic_p}, $tracelevel)
17273             if defined $::RD_TRACE;
17274 0         0 $return = $score_return;
17275             }
17276 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
17277 0 0       0 $return = $item[$#item] unless defined $return;
17278 0 0       0 if (defined $::RD_TRACE) {
17279 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{basic_p}, $tracelevel);
17280 0         0 Parse::RecDescent::_trace(
17281             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
17282             Parse::RecDescent::_tracefirst($text),
17283             , q{basic_p}, $tracelevel
17284             );
17285             }
17286 0         0 $_[1] = $text;
17287 0         0 return $return;
17288             }
17289              
17290             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
17291             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::asc_option {
17292 0     0   0 my $thisparser = $_[0];
17293 1     1   10 use vars q{$tracelevel};
  1         3  
  1         1232  
17294 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
17295 0         0 $ERRORS = 0;
17296 0         0 my $thisrule = $thisparser->{"rules"}{"asc_option"};
17297              
17298 0 0       0 Parse::RecDescent::_trace(
17299             q{Trying rule: [asc_option]},
17300             Parse::RecDescent::_tracefirst($_[1]),
17301             q{asc_option}, $tracelevel
17302             ) if defined $::RD_TRACE;
17303              
17304 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
17305              
17306 0         0 my $score;
17307             my $score_return;
17308 0         0 my $_tok;
17309 0         0 my $return = undef;
17310 0         0 my $_matched = 0;
17311 0         0 my $commit = 0;
17312 0         0 my @item = ();
17313 0         0 my %item = ();
17314 0   0     0 my $repeating = defined($_[2]) && $_[2];
17315 0   0     0 my $_noactions = defined($_[3]) && $_[3];
17316 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
17317 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
17318 0         0 my $text;
17319 0         0 my $lastsep = "";
17320 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
17321 0         0 $expectation->at($_[1]);
17322              
17323 0         0 my $thisline;
17324 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
17325              
17326 0   0     0 while (!$_matched && !$commit) {
17327              
17328 0 0       0 Parse::RecDescent::_trace(
17329             q{Trying production: [/ASC/i /NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]},
17330             Parse::RecDescent::_tracefirst($_[1]),
17331             q{asc_option}, $tracelevel
17332             ) if defined $::RD_TRACE;
17333 0         0 my $thisprod = $thisrule->{"prods"}[0];
17334 0         0 $text = $_[1];
17335 0         0 my $_savetext;
17336 0         0 @item = (q{asc_option});
17337 0         0 %item = (__RULE__ => q{asc_option});
17338 0         0 my $repcount = 0;
17339              
17340 0 0       0 Parse::RecDescent::_trace(
17341             q{Trying terminal: [/ASC/i]},
17342             Parse::RecDescent::_tracefirst($text),
17343             q{asc_option}, $tracelevel
17344             ) if defined $::RD_TRACE;
17345 0         0 $lastsep = "";
17346 0         0 $expectation->is(q{})->at($text);
17347              
17348 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
17349             and $text =~ s/\A(?:ASC)//i) {
17350              
17351 0         0 $expectation->failed();
17352 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
17353             if defined $::RD_TRACE;
17354              
17355 0         0 last;
17356             }
17357 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
17358             Parse::RecDescent::_tracefirst($text))
17359             if defined $::RD_TRACE;
17360 0         0 push @item, $item{__PATTERN1__} = $&;
17361              
17362 0 0       0 Parse::RecDescent::_trace(
17363             q{Trying repeated subrule: [/NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]},
17364             Parse::RecDescent::_tracefirst($text),
17365             q{asc_option}, $tracelevel
17366             ) if defined $::RD_TRACE;
17367 0         0 $expectation->is(q{/NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i})
17368             ->at($text);
17369              
17370 0 0       0 unless (defined(
17371             $_tok = $thisparser->_parserepeat(
17372             $text,
17373             \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_asc_option,
17374             0,
17375             1,
17376             $_noactions,
17377             $expectation,
17378             undef
17379             )
17380             )) {
17381 0 0       0 Parse::RecDescent::_trace(
17382             q{<>},
17383             Parse::RecDescent::_tracefirst($text),
17384             q{asc_option}, $tracelevel
17385             ) if defined $::RD_TRACE;
17386 0         0 last;
17387             }
17388             Parse::RecDescent::_trace(
17389 0 0       0 q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_asc_option]<< (}
17390             . @$_tok
17391             . q{ times)},
17392              
17393             Parse::RecDescent::_tracefirst($text),
17394             q{asc_option},
17395             $tracelevel
17396             ) if defined $::RD_TRACE;
17397 0         0 $item{q{_alternation_1_of_production_1_of_rule_asc_option(?)}} = $_tok;
17398 0         0 push @item, $_tok;
17399              
17400 0 0       0 Parse::RecDescent::_trace(
17401             q{>>Matched production: [/ASC/i /NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]<<},
17402             Parse::RecDescent::_tracefirst($text),
17403             q{asc_option}, $tracelevel
17404             ) if defined $::RD_TRACE;
17405 0         0 $_matched = 1;
17406 0         0 last;
17407             }
17408              
17409 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
17410              
17411 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
17412 0 0       0 Parse::RecDescent::_trace(
17413             q{<>},
17414             Parse::RecDescent::_tracefirst($_[1]),
17415             q{asc_option}, $tracelevel
17416             ) if defined $::RD_TRACE;
17417 0         0 return undef;
17418             }
17419 0 0 0     0 if (!defined($return) && defined($score)) {
17420 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{asc_option}, $tracelevel)
17421             if defined $::RD_TRACE;
17422 0         0 $return = $score_return;
17423             }
17424 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
17425 0 0       0 $return = $item[$#item] unless defined $return;
17426 0 0       0 if (defined $::RD_TRACE) {
17427 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{asc_option}, $tracelevel);
17428 0         0 Parse::RecDescent::_trace(
17429             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
17430             Parse::RecDescent::_tracefirst($text),
17431             , q{asc_option}, $tracelevel
17432             );
17433             }
17434 0         0 $_[1] = $text;
17435 0         0 return $return;
17436             }
17437              
17438             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
17439             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition {
17440 0     0   0 my $thisparser = $_[0];
17441 1     1   10 use vars q{$tracelevel};
  1         4  
  1         1151  
17442 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
17443 0         0 $ERRORS = 0;
17444 0         0 my $thisrule = $thisparser->{"rules"}{"search_condition"};
17445              
17446 0 0       0 Parse::RecDescent::_trace(
17447             q{Trying rule: [search_condition]},
17448             Parse::RecDescent::_tracefirst($_[1]),
17449             q{search_condition}, $tracelevel
17450             ) if defined $::RD_TRACE;
17451              
17452 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
17453              
17454 0         0 my $score;
17455             my $score_return;
17456 0         0 my $_tok;
17457 0         0 my $return = undef;
17458 0         0 my $_matched = 0;
17459 0         0 my $commit = 0;
17460 0         0 my @item = ();
17461 0         0 my %item = ();
17462 0   0     0 my $repeating = defined($_[2]) && $_[2];
17463 0   0     0 my $_noactions = defined($_[3]) && $_[3];
17464 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
17465 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
17466 0         0 my $text;
17467 0         0 my $lastsep = "";
17468 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
17469 0         0 $expectation->at($_[1]);
17470              
17471 0         0 my $thisline;
17472 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
17473              
17474 0   0     0 while (!$_matched && !$commit) {
17475              
17476 0 0       0 Parse::RecDescent::_trace(
17477             q{Trying production: [/[^)]+/]},
17478             Parse::RecDescent::_tracefirst($_[1]),
17479             q{search_condition}, $tracelevel
17480             ) if defined $::RD_TRACE;
17481 0         0 my $thisprod = $thisrule->{"prods"}[0];
17482 0         0 $text = $_[1];
17483 0         0 my $_savetext;
17484 0         0 @item = (q{search_condition});
17485 0         0 %item = (__RULE__ => q{search_condition});
17486 0         0 my $repcount = 0;
17487              
17488 0 0       0 Parse::RecDescent::_trace(
17489             q{Trying terminal: [/[^)]+/]},
17490             Parse::RecDescent::_tracefirst($text),
17491             q{search_condition}, $tracelevel
17492             ) if defined $::RD_TRACE;
17493 0         0 $lastsep = "";
17494 0         0 $expectation->is(q{})->at($text);
17495              
17496 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
17497             and $text =~ s/\A(?:[^)]+)//) {
17498              
17499 0         0 $expectation->failed();
17500 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
17501             if defined $::RD_TRACE;
17502              
17503 0         0 last;
17504             }
17505 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
17506             Parse::RecDescent::_tracefirst($text))
17507             if defined $::RD_TRACE;
17508 0         0 push @item, $item{__PATTERN1__} = $&;
17509              
17510 0 0       0 Parse::RecDescent::_trace(
17511             q{>>Matched production: [/[^)]+/]<<},
17512             Parse::RecDescent::_tracefirst($text),
17513             q{search_condition}, $tracelevel
17514             ) if defined $::RD_TRACE;
17515 0         0 $_matched = 1;
17516 0         0 last;
17517             }
17518              
17519 0   0     0 while (!$_matched && !$commit) {
17520              
17521 0 0       0 Parse::RecDescent::_trace(
17522             q{Trying production: [/NOT|/i predicate, or '(' cond]},
17523             Parse::RecDescent::_tracefirst($_[1]),
17524             q{search_condition}, $tracelevel
17525             ) if defined $::RD_TRACE;
17526 0         0 my $thisprod = $thisrule->{"prods"}[1];
17527 0         0 $text = $_[1];
17528 0         0 my $_savetext;
17529 0         0 @item = (q{search_condition});
17530 0         0 %item = (__RULE__ => q{search_condition});
17531 0         0 my $repcount = 0;
17532              
17533 0 0       0 Parse::RecDescent::_trace(
17534             q{Trying terminal: [/NOT|/i]},
17535             Parse::RecDescent::_tracefirst($text),
17536             q{search_condition}, $tracelevel
17537             ) if defined $::RD_TRACE;
17538 0         0 $lastsep = "";
17539 0         0 $expectation->is(q{})->at($text);
17540              
17541 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
17542             and $text =~ s/\A(?:NOT|)//i) {
17543              
17544 0         0 $expectation->failed();
17545 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
17546             if defined $::RD_TRACE;
17547              
17548 0         0 last;
17549             }
17550 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
17551             Parse::RecDescent::_tracefirst($text))
17552             if defined $::RD_TRACE;
17553 0         0 push @item, $item{__PATTERN1__} = $&;
17554              
17555 0 0       0 Parse::RecDescent::_trace(
17556             q{Trying subrule: [_alternation_1_of_production_2_of_rule_search_condition]},
17557             Parse::RecDescent::_tracefirst($text),
17558             q{search_condition}, $tracelevel
17559             ) if defined $::RD_TRACE;
17560 0         0 if (1) {
17561 1     1   10 no strict qw{refs};
  1         3  
  1         925  
17562 0         0 $expectation->is(q{predicate, or '('})->at($text);
17563 0 0       0 unless (defined(
17564             $_tok
17565             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_2_of_rule_search_condition(
17566 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
17567             )
17568             )) {
17569              
17570 0 0       0 Parse::RecDescent::_trace(
17571             q{<>},
17572             Parse::RecDescent::_tracefirst($text),
17573             q{search_condition}, $tracelevel
17574             ) if defined $::RD_TRACE;
17575 0         0 $expectation->failed();
17576 0         0 last;
17577             }
17578             Parse::RecDescent::_trace(
17579 0 0       0 q{>>Matched subrule: [_alternation_1_of_production_2_of_rule_search_condition]<< (return value: [}
17580             . $_tok . q{]},
17581              
17582             Parse::RecDescent::_tracefirst($text),
17583             q{search_condition},
17584             $tracelevel
17585             ) if defined $::RD_TRACE;
17586 0         0 $item{q{_alternation_1_of_production_2_of_rule_search_condition}} = $_tok;
17587 0         0 push @item, $_tok;
17588              
17589             }
17590              
17591             Parse::RecDescent::_trace(
17592 0 0       0 q{Trying repeated subrule: [cond]},
17593             Parse::RecDescent::_tracefirst($text),
17594             q{search_condition}, $tracelevel
17595             ) if defined $::RD_TRACE;
17596 0         0 $expectation->is(q{cond})->at($text);
17597              
17598 0 0       0 unless (defined(
17599             $_tok = $thisparser->_parserepeat(
17600             $text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::cond,
17601             0, 100000000, $_noactions, $expectation, undef
17602             )
17603             )) {
17604 0 0       0 Parse::RecDescent::_trace(
17605             q{<>},
17606             Parse::RecDescent::_tracefirst($text),
17607             q{search_condition}, $tracelevel
17608             ) if defined $::RD_TRACE;
17609 0         0 last;
17610             }
17611             Parse::RecDescent::_trace(
17612 0 0       0 q{>>Matched repeated subrule: [cond]<< (} . @$_tok . q{ times)},
17613              
17614             Parse::RecDescent::_tracefirst($text),
17615             q{search_condition},
17616             $tracelevel
17617             ) if defined $::RD_TRACE;
17618 0         0 $item{q{cond(s?)}} = $_tok;
17619 0         0 push @item, $_tok;
17620              
17621 0 0       0 Parse::RecDescent::_trace(
17622             q{>>Matched production: [/NOT|/i predicate, or '(' cond]<<},
17623             Parse::RecDescent::_tracefirst($text),
17624             q{search_condition}, $tracelevel
17625             ) if defined $::RD_TRACE;
17626 0         0 $_matched = 1;
17627 0         0 last;
17628             }
17629              
17630 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
17631              
17632 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
17633 0 0       0 Parse::RecDescent::_trace(
17634             q{<>},
17635             Parse::RecDescent::_tracefirst($_[1]),
17636             q{search_condition}, $tracelevel
17637             ) if defined $::RD_TRACE;
17638 0         0 return undef;
17639             }
17640 0 0 0     0 if (!defined($return) && defined($score)) {
17641 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{search_condition}, $tracelevel)
17642             if defined $::RD_TRACE;
17643 0         0 $return = $score_return;
17644             }
17645 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
17646 0 0       0 $return = $item[$#item] unless defined $return;
17647 0 0       0 if (defined $::RD_TRACE) {
17648 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
17649             "", q{search_condition}, $tracelevel);
17650 0         0 Parse::RecDescent::_trace(
17651             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
17652             Parse::RecDescent::_tracefirst($text),
17653             , q{search_condition}, $tracelevel
17654             );
17655             }
17656 0         0 $_[1] = $text;
17657 0         0 return $return;
17658             }
17659              
17660             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
17661             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_operator {
17662 0     0   0 my $thisparser = $_[0];
17663 1     1   11 use vars q{$tracelevel};
  1         3  
  1         1518  
17664 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
17665 0         0 $ERRORS = 0;
17666 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_operator"};
17667              
17668 0 0       0 Parse::RecDescent::_trace(
17669             q{Trying rule: [_alternation_1_of_production_1_of_rule_operator]},
17670             Parse::RecDescent::_tracefirst($_[1]),
17671             q{_alternation_1_of_production_1_of_rule_operator}, $tracelevel
17672             ) if defined $::RD_TRACE;
17673              
17674 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
17675              
17676 0         0 my $score;
17677             my $score_return;
17678 0         0 my $_tok;
17679 0         0 my $return = undef;
17680 0         0 my $_matched = 0;
17681 0         0 my $commit = 0;
17682 0         0 my @item = ();
17683 0         0 my %item = ();
17684 0   0     0 my $repeating = defined($_[2]) && $_[2];
17685 0   0     0 my $_noactions = defined($_[3]) && $_[3];
17686 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
17687 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
17688 0         0 my $text;
17689 0         0 my $lastsep = "";
17690 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
17691 0         0 $expectation->at($_[1]);
17692              
17693 0         0 my $thisline;
17694 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
17695              
17696 0   0     0 while (!$_matched && !$commit) {
17697              
17698 0 0       0 Parse::RecDescent::_trace(
17699             q{Trying production: [/CONCAT/i]},
17700             Parse::RecDescent::_tracefirst($_[1]),
17701             q{_alternation_1_of_production_1_of_rule_operator}, $tracelevel
17702             ) if defined $::RD_TRACE;
17703 0         0 my $thisprod = $thisrule->{"prods"}[0];
17704 0         0 $text = $_[1];
17705 0         0 my $_savetext;
17706 0         0 @item = (q{_alternation_1_of_production_1_of_rule_operator});
17707 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_operator});
17708 0         0 my $repcount = 0;
17709              
17710 0 0       0 Parse::RecDescent::_trace(
17711             q{Trying terminal: [/CONCAT/i]},
17712             Parse::RecDescent::_tracefirst($text),
17713             q{_alternation_1_of_production_1_of_rule_operator}, $tracelevel
17714             ) if defined $::RD_TRACE;
17715 0         0 $lastsep = "";
17716 0         0 $expectation->is(q{})->at($text);
17717              
17718 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
17719             and $text =~ s/\A(?:CONCAT)//i) {
17720              
17721 0         0 $expectation->failed();
17722 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
17723             if defined $::RD_TRACE;
17724              
17725 0         0 last;
17726             }
17727 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
17728             Parse::RecDescent::_tracefirst($text))
17729             if defined $::RD_TRACE;
17730 0         0 push @item, $item{__PATTERN1__} = $&;
17731              
17732 0 0       0 Parse::RecDescent::_trace(
17733             q{>>Matched production: [/CONCAT/i]<<},
17734             Parse::RecDescent::_tracefirst($text),
17735             q{_alternation_1_of_production_1_of_rule_operator}, $tracelevel
17736             ) if defined $::RD_TRACE;
17737 0         0 $_matched = 1;
17738 0         0 last;
17739             }
17740              
17741 0   0     0 while (!$_matched && !$commit) {
17742              
17743 0 0       0 Parse::RecDescent::_trace(
17744             q{Trying production: ['||']},
17745             Parse::RecDescent::_tracefirst($_[1]),
17746             q{_alternation_1_of_production_1_of_rule_operator}, $tracelevel
17747             ) if defined $::RD_TRACE;
17748 0         0 my $thisprod = $thisrule->{"prods"}[1];
17749 0         0 $text = $_[1];
17750 0         0 my $_savetext;
17751 0         0 @item = (q{_alternation_1_of_production_1_of_rule_operator});
17752 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_operator});
17753 0         0 my $repcount = 0;
17754              
17755 0 0       0 Parse::RecDescent::_trace(
17756             q{Trying terminal: ['||']},
17757             Parse::RecDescent::_tracefirst($text),
17758             q{_alternation_1_of_production_1_of_rule_operator}, $tracelevel
17759             ) if defined $::RD_TRACE;
17760 0         0 $lastsep = "";
17761 0         0 $expectation->is(q{})->at($text);
17762              
17763 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
17764             and $text =~ s/\A\|\|//) {
17765              
17766 0         0 $expectation->failed();
17767 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
17768             if defined $::RD_TRACE;
17769 0         0 last;
17770             }
17771 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
17772             Parse::RecDescent::_tracefirst($text))
17773             if defined $::RD_TRACE;
17774 0         0 push @item, $item{__STRING1__} = $&;
17775              
17776 0 0       0 Parse::RecDescent::_trace(
17777             q{>>Matched production: ['||']<<},
17778             Parse::RecDescent::_tracefirst($text),
17779             q{_alternation_1_of_production_1_of_rule_operator}, $tracelevel
17780             ) if defined $::RD_TRACE;
17781 0         0 $_matched = 1;
17782 0         0 last;
17783             }
17784              
17785 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
17786              
17787 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
17788 0 0       0 Parse::RecDescent::_trace(
17789             q{<>},
17790             Parse::RecDescent::_tracefirst($_[1]),
17791             q{_alternation_1_of_production_1_of_rule_operator}, $tracelevel
17792             ) if defined $::RD_TRACE;
17793 0         0 return undef;
17794             }
17795 0 0 0     0 if (!defined($return) && defined($score)) {
17796 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
17797             "", q{_alternation_1_of_production_1_of_rule_operator}, $tracelevel)
17798             if defined $::RD_TRACE;
17799 0         0 $return = $score_return;
17800             }
17801 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
17802 0 0       0 $return = $item[$#item] unless defined $return;
17803 0 0       0 if (defined $::RD_TRACE) {
17804 0         0 Parse::RecDescent::_trace(
17805             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
17806             q{_alternation_1_of_production_1_of_rule_operator}, $tracelevel
17807             );
17808 0         0 Parse::RecDescent::_trace(
17809             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
17810             Parse::RecDescent::_tracefirst($text),
17811             , q{_alternation_1_of_production_1_of_rule_operator}, $tracelevel
17812             );
17813             }
17814 0         0 $_[1] = $text;
17815 0         0 return $return;
17816             }
17817              
17818             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
17819             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::simple_when_clause {
17820 0     0   0 my $thisparser = $_[0];
17821 1     1   10 use vars q{$tracelevel};
  1         3  
  1         543  
17822 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
17823 0         0 $ERRORS = 0;
17824 0         0 my $thisrule = $thisparser->{"rules"}{"simple_when_clause"};
17825              
17826 0 0       0 Parse::RecDescent::_trace(
17827             q{Trying rule: [simple_when_clause]},
17828             Parse::RecDescent::_tracefirst($_[1]),
17829             q{simple_when_clause}, $tracelevel
17830             ) if defined $::RD_TRACE;
17831              
17832 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
17833              
17834 0         0 my $score;
17835             my $score_return;
17836 0         0 my $_tok;
17837 0         0 my $return = undef;
17838 0         0 my $_matched = 0;
17839 0         0 my $commit = 0;
17840 0         0 my @item = ();
17841 0         0 my %item = ();
17842 0   0     0 my $repeating = defined($_[2]) && $_[2];
17843 0   0     0 my $_noactions = defined($_[3]) && $_[3];
17844 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
17845 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
17846 0         0 my $text;
17847 0         0 my $lastsep = "";
17848 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
17849 0         0 $expectation->at($_[1]);
17850              
17851 0         0 my $thisline;
17852 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
17853              
17854 0   0     0 while (!$_matched && !$commit) {
17855              
17856 0 0       0 Parse::RecDescent::_trace(
17857             q{Trying production: [expression /WHEN/i]},
17858             Parse::RecDescent::_tracefirst($_[1]),
17859             q{simple_when_clause}, $tracelevel
17860             ) if defined $::RD_TRACE;
17861 0         0 my $thisprod = $thisrule->{"prods"}[0];
17862 0         0 $text = $_[1];
17863 0         0 my $_savetext;
17864 0         0 @item = (q{simple_when_clause});
17865 0         0 %item = (__RULE__ => q{simple_when_clause});
17866 0         0 my $repcount = 0;
17867              
17868 0 0       0 Parse::RecDescent::_trace(
17869             q{Trying subrule: [expression]},
17870             Parse::RecDescent::_tracefirst($text),
17871             q{simple_when_clause}, $tracelevel
17872             ) if defined $::RD_TRACE;
17873 0         0 if (1) {
17874 1     1   10 no strict qw{refs};
  1         3  
  1         817  
17875 0         0 $expectation->is(q{})->at($text);
17876 0 0       0 unless (defined(
17877             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression(
17878 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
17879             )
17880             )) {
17881              
17882 0 0       0 Parse::RecDescent::_trace(
17883             q{<>},
17884             Parse::RecDescent::_tracefirst($text),
17885             q{simple_when_clause}, $tracelevel
17886             ) if defined $::RD_TRACE;
17887 0         0 $expectation->failed();
17888 0         0 last;
17889             }
17890             Parse::RecDescent::_trace(
17891 0 0       0 q{>>Matched subrule: [expression]<< (return value: [} . $_tok . q{]},
17892              
17893             Parse::RecDescent::_tracefirst($text),
17894             q{simple_when_clause},
17895             $tracelevel
17896             ) if defined $::RD_TRACE;
17897 0         0 $item{q{expression}} = $_tok;
17898 0         0 push @item, $_tok;
17899              
17900             }
17901              
17902             Parse::RecDescent::_trace(
17903 0 0       0 q{Trying repeated subrule: [/WHEN/i]},
17904             Parse::RecDescent::_tracefirst($text),
17905             q{simple_when_clause}, $tracelevel
17906             ) if defined $::RD_TRACE;
17907 0         0 $expectation->is(q{/WHEN/i})->at($text);
17908              
17909 0 0       0 unless (defined(
17910             $_tok = $thisparser->_parserepeat(
17911             $text,
17912             \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_simple_when_clause,
17913             1,
17914             100000000,
17915             $_noactions,
17916             $expectation,
17917             undef
17918             )
17919             )) {
17920 0 0       0 Parse::RecDescent::_trace(
17921             q{<>},
17922             Parse::RecDescent::_tracefirst($text),
17923             q{simple_when_clause}, $tracelevel
17924             ) if defined $::RD_TRACE;
17925 0         0 last;
17926             }
17927             Parse::RecDescent::_trace(
17928 0 0       0 q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_simple_when_clause]<< (}
17929             . @$_tok
17930             . q{ times)},
17931              
17932             Parse::RecDescent::_tracefirst($text),
17933             q{simple_when_clause},
17934             $tracelevel
17935             ) if defined $::RD_TRACE;
17936 0         0 $item{q{_alternation_1_of_production_1_of_rule_simple_when_clause(s)}} = $_tok;
17937 0         0 push @item, $_tok;
17938              
17939 0 0       0 Parse::RecDescent::_trace(
17940             q{>>Matched production: [expression /WHEN/i]<<},
17941             Parse::RecDescent::_tracefirst($text),
17942             q{simple_when_clause}, $tracelevel
17943             ) if defined $::RD_TRACE;
17944 0         0 $_matched = 1;
17945 0         0 last;
17946             }
17947              
17948 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
17949              
17950 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
17951 0 0       0 Parse::RecDescent::_trace(
17952             q{<>},
17953             Parse::RecDescent::_tracefirst($_[1]),
17954             q{simple_when_clause}, $tracelevel
17955             ) if defined $::RD_TRACE;
17956 0         0 return undef;
17957             }
17958 0 0 0     0 if (!defined($return) && defined($score)) {
17959 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{simple_when_clause}, $tracelevel)
17960             if defined $::RD_TRACE;
17961 0         0 $return = $score_return;
17962             }
17963 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
17964 0 0       0 $return = $item[$#item] unless defined $return;
17965 0 0       0 if (defined $::RD_TRACE) {
17966 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
17967             "", q{simple_when_clause}, $tracelevel);
17968 0         0 Parse::RecDescent::_trace(
17969             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
17970             Parse::RecDescent::_tracefirst($text),
17971             , q{simple_when_clause}, $tracelevel
17972             );
17973             }
17974 0         0 $_[1] = $text;
17975 0         0 return $return;
17976             }
17977              
17978             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
17979             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::INNER {
17980 0     0   0 my $thisparser = $_[0];
17981 1     1   11 use vars q{$tracelevel};
  1         2  
  1         1129  
17982 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
17983 0         0 $ERRORS = 0;
17984 0         0 my $thisrule = $thisparser->{"rules"}{"INNER"};
17985              
17986 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [INNER]}, Parse::RecDescent::_tracefirst($_[1]), q{INNER}, $tracelevel)
17987             if defined $::RD_TRACE;
17988              
17989 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
17990              
17991 0         0 my $score;
17992             my $score_return;
17993 0         0 my $_tok;
17994 0         0 my $return = undef;
17995 0         0 my $_matched = 0;
17996 0         0 my $commit = 0;
17997 0         0 my @item = ();
17998 0         0 my %item = ();
17999 0   0     0 my $repeating = defined($_[2]) && $_[2];
18000 0   0     0 my $_noactions = defined($_[3]) && $_[3];
18001 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
18002 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
18003 0         0 my $text;
18004 0         0 my $lastsep = "";
18005 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
18006 0         0 $expectation->at($_[1]);
18007              
18008 0         0 my $thisline;
18009 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
18010              
18011 0   0     0 while (!$_matched && !$commit) {
18012              
18013 0 0       0 Parse::RecDescent::_trace(
18014             q{Trying production: [/inner/i]},
18015             Parse::RecDescent::_tracefirst($_[1]),
18016             q{INNER}, $tracelevel
18017             ) if defined $::RD_TRACE;
18018 0         0 my $thisprod = $thisrule->{"prods"}[0];
18019 0         0 $text = $_[1];
18020 0         0 my $_savetext;
18021 0         0 @item = (q{INNER});
18022 0         0 %item = (__RULE__ => q{INNER});
18023 0         0 my $repcount = 0;
18024              
18025 0 0       0 Parse::RecDescent::_trace(
18026             q{Trying terminal: [/inner/i]},
18027             Parse::RecDescent::_tracefirst($text),
18028             q{INNER}, $tracelevel
18029             ) if defined $::RD_TRACE;
18030 0         0 $lastsep = "";
18031 0         0 $expectation->is(q{})->at($text);
18032              
18033 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
18034             and $text =~ s/\A(?:inner)//i) {
18035              
18036 0         0 $expectation->failed();
18037 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
18038             if defined $::RD_TRACE;
18039              
18040 0         0 last;
18041             }
18042 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
18043             Parse::RecDescent::_tracefirst($text))
18044             if defined $::RD_TRACE;
18045 0         0 push @item, $item{__PATTERN1__} = $&;
18046              
18047 0 0       0 Parse::RecDescent::_trace(
18048             q{>>Matched production: [/inner/i]<<},
18049             Parse::RecDescent::_tracefirst($text),
18050             q{INNER}, $tracelevel
18051             ) if defined $::RD_TRACE;
18052 0         0 $_matched = 1;
18053 0         0 last;
18054             }
18055              
18056 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
18057              
18058 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
18059 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{INNER}, $tracelevel)
18060             if defined $::RD_TRACE;
18061 0         0 return undef;
18062             }
18063 0 0 0     0 if (!defined($return) && defined($score)) {
18064 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{INNER}, $tracelevel)
18065             if defined $::RD_TRACE;
18066 0         0 $return = $score_return;
18067             }
18068 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
18069 0 0       0 $return = $item[$#item] unless defined $return;
18070 0 0       0 if (defined $::RD_TRACE) {
18071 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{INNER}, $tracelevel);
18072 0         0 Parse::RecDescent::_trace(
18073             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
18074             Parse::RecDescent::_tracefirst($text),
18075             , q{INNER}, $tracelevel
18076             );
18077             }
18078 0         0 $_[1] = $text;
18079 0         0 return $return;
18080             }
18081              
18082             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
18083             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::eofile {
18084 0     0   0 my $thisparser = $_[0];
18085 1     1   10 use vars q{$tracelevel};
  1         3  
  1         1132  
18086 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
18087 0         0 $ERRORS = 0;
18088 0         0 my $thisrule = $thisparser->{"rules"}{"eofile"};
18089              
18090 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [eofile]}, Parse::RecDescent::_tracefirst($_[1]), q{eofile}, $tracelevel)
18091             if defined $::RD_TRACE;
18092              
18093 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
18094              
18095 0         0 my $score;
18096             my $score_return;
18097 0         0 my $_tok;
18098 0         0 my $return = undef;
18099 0         0 my $_matched = 0;
18100 0         0 my $commit = 0;
18101 0         0 my @item = ();
18102 0         0 my %item = ();
18103 0   0     0 my $repeating = defined($_[2]) && $_[2];
18104 0   0     0 my $_noactions = defined($_[3]) && $_[3];
18105 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
18106 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
18107 0         0 my $text;
18108 0         0 my $lastsep = "";
18109 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
18110 0         0 $expectation->at($_[1]);
18111              
18112 0         0 my $thisline;
18113 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
18114              
18115 0   0     0 while (!$_matched && !$commit) {
18116              
18117 0 0       0 Parse::RecDescent::_trace(
18118             q{Trying production: [/^\\Z/]},
18119             Parse::RecDescent::_tracefirst($_[1]),
18120             q{eofile}, $tracelevel
18121             ) if defined $::RD_TRACE;
18122 0         0 my $thisprod = $thisrule->{"prods"}[0];
18123 0         0 $text = $_[1];
18124 0         0 my $_savetext;
18125 0         0 @item = (q{eofile});
18126 0         0 %item = (__RULE__ => q{eofile});
18127 0         0 my $repcount = 0;
18128              
18129 0 0       0 Parse::RecDescent::_trace(
18130             q{Trying terminal: [/^\\Z/]},
18131             Parse::RecDescent::_tracefirst($text),
18132             q{eofile}, $tracelevel
18133             ) if defined $::RD_TRACE;
18134 0         0 $lastsep = "";
18135 0         0 $expectation->is(q{})->at($text);
18136              
18137 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
18138             and $text =~ s/\A(?:^\Z)//) {
18139              
18140 0         0 $expectation->failed();
18141 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
18142             if defined $::RD_TRACE;
18143              
18144 0         0 last;
18145             }
18146 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
18147             Parse::RecDescent::_tracefirst($text))
18148             if defined $::RD_TRACE;
18149 0         0 push @item, $item{__PATTERN1__} = $&;
18150              
18151 0 0       0 Parse::RecDescent::_trace(
18152             q{>>Matched production: [/^\\Z/]<<},
18153             Parse::RecDescent::_tracefirst($text),
18154             q{eofile}, $tracelevel
18155             ) if defined $::RD_TRACE;
18156 0         0 $_matched = 1;
18157 0         0 last;
18158             }
18159              
18160 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
18161              
18162 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
18163 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{eofile}, $tracelevel)
18164             if defined $::RD_TRACE;
18165 0         0 return undef;
18166             }
18167 0 0 0     0 if (!defined($return) && defined($score)) {
18168 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{eofile}, $tracelevel)
18169             if defined $::RD_TRACE;
18170 0         0 $return = $score_return;
18171             }
18172 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
18173 0 0       0 $return = $item[$#item] unless defined $return;
18174 0 0       0 if (defined $::RD_TRACE) {
18175 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{eofile}, $tracelevel);
18176 0         0 Parse::RecDescent::_trace(
18177             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
18178             Parse::RecDescent::_tracefirst($text),
18179             , q{eofile}, $tracelevel
18180             );
18181             }
18182 0         0 $_[1] = $text;
18183 0         0 return $return;
18184             }
18185              
18186             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
18187             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::cond {
18188 0     0   0 my $thisparser = $_[0];
18189 1     1   14 use vars q{$tracelevel};
  1         3  
  1         536  
18190 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
18191 0         0 $ERRORS = 0;
18192 0         0 my $thisrule = $thisparser->{"rules"}{"cond"};
18193              
18194 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [cond]}, Parse::RecDescent::_tracefirst($_[1]), q{cond}, $tracelevel)
18195             if defined $::RD_TRACE;
18196              
18197 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
18198              
18199 0         0 my $score;
18200             my $score_return;
18201 0         0 my $_tok;
18202 0         0 my $return = undef;
18203 0         0 my $_matched = 0;
18204 0         0 my $commit = 0;
18205 0         0 my @item = ();
18206 0         0 my %item = ();
18207 0   0     0 my $repeating = defined($_[2]) && $_[2];
18208 0   0     0 my $_noactions = defined($_[3]) && $_[3];
18209 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
18210 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
18211 0         0 my $text;
18212 0         0 my $lastsep = "";
18213 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
18214 0         0 $expectation->at($_[1]);
18215              
18216 0         0 my $thisline;
18217 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
18218              
18219 0   0     0 while (!$_matched && !$commit) {
18220              
18221 0 0       0 Parse::RecDescent::_trace(
18222             q{Trying production: [/AND/i, or /OR/i /NOT|/i predicate, or '(']},
18223             Parse::RecDescent::_tracefirst($_[1]),
18224             q{cond}, $tracelevel
18225             ) if defined $::RD_TRACE;
18226 0         0 my $thisprod = $thisrule->{"prods"}[0];
18227 0         0 $text = $_[1];
18228 0         0 my $_savetext;
18229 0         0 @item = (q{cond});
18230 0         0 %item = (__RULE__ => q{cond});
18231 0         0 my $repcount = 0;
18232              
18233 0 0       0 Parse::RecDescent::_trace(
18234             q{Trying subrule: [_alternation_1_of_production_1_of_rule_cond]},
18235             Parse::RecDescent::_tracefirst($text),
18236             q{cond}, $tracelevel
18237             ) if defined $::RD_TRACE;
18238 0         0 if (1) {
18239 1     1   10 no strict qw{refs};
  1         4  
  1         483  
18240 0         0 $expectation->is(q{})->at($text);
18241 0 0       0 unless (defined(
18242             $_tok
18243             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_cond(
18244 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
18245             )
18246             )) {
18247              
18248 0 0       0 Parse::RecDescent::_trace(
18249             q{<>},
18250             Parse::RecDescent::_tracefirst($text),
18251             q{cond}, $tracelevel
18252             ) if defined $::RD_TRACE;
18253 0         0 $expectation->failed();
18254 0         0 last;
18255             }
18256             Parse::RecDescent::_trace(
18257 0 0       0 q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_cond]<< (return value: [} . $_tok . q{]},
18258              
18259             Parse::RecDescent::_tracefirst($text),
18260             q{cond},
18261             $tracelevel
18262             ) if defined $::RD_TRACE;
18263 0         0 $item{q{_alternation_1_of_production_1_of_rule_cond}} = $_tok;
18264 0         0 push @item, $_tok;
18265              
18266             }
18267              
18268             Parse::RecDescent::_trace(
18269 0 0       0 q{Trying terminal: [/NOT|/i]},
18270             Parse::RecDescent::_tracefirst($text),
18271             q{cond}, $tracelevel
18272             ) if defined $::RD_TRACE;
18273 0         0 $lastsep = "";
18274 0         0 $expectation->is(q{/NOT|/i})->at($text);
18275              
18276 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
18277             and $text =~ s/\A(?:NOT|)//i) {
18278              
18279 0         0 $expectation->failed();
18280 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
18281             if defined $::RD_TRACE;
18282              
18283 0         0 last;
18284             }
18285 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
18286             Parse::RecDescent::_tracefirst($text))
18287             if defined $::RD_TRACE;
18288 0         0 push @item, $item{__PATTERN1__} = $&;
18289              
18290 0 0       0 Parse::RecDescent::_trace(
18291             q{Trying subrule: [_alternation_2_of_production_1_of_rule_cond]},
18292             Parse::RecDescent::_tracefirst($text),
18293             q{cond}, $tracelevel
18294             ) if defined $::RD_TRACE;
18295 0         0 if (1) {
18296 1     1   9 no strict qw{refs};
  1         3  
  1         757  
18297 0         0 $expectation->is(q{predicate, or '('})->at($text);
18298 0 0       0 unless (defined(
18299             $_tok
18300             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_cond(
18301 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
18302             )
18303             )) {
18304              
18305 0 0       0 Parse::RecDescent::_trace(
18306             q{<>},
18307             Parse::RecDescent::_tracefirst($text),
18308             q{cond}, $tracelevel
18309             ) if defined $::RD_TRACE;
18310 0         0 $expectation->failed();
18311 0         0 last;
18312             }
18313             Parse::RecDescent::_trace(
18314 0 0       0 q{>>Matched subrule: [_alternation_2_of_production_1_of_rule_cond]<< (return value: [} . $_tok . q{]},
18315              
18316             Parse::RecDescent::_tracefirst($text),
18317             q{cond},
18318             $tracelevel
18319             ) if defined $::RD_TRACE;
18320 0         0 $item{q{_alternation_2_of_production_1_of_rule_cond}} = $_tok;
18321 0         0 push @item, $_tok;
18322              
18323             }
18324              
18325             Parse::RecDescent::_trace(
18326 0 0       0 q{>>Matched production: [/AND/i, or /OR/i /NOT|/i predicate, or '(']<<},
18327             Parse::RecDescent::_tracefirst($text),
18328             q{cond}, $tracelevel
18329             ) if defined $::RD_TRACE;
18330 0         0 $_matched = 1;
18331 0         0 last;
18332             }
18333              
18334 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
18335              
18336 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
18337 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{cond}, $tracelevel)
18338             if defined $::RD_TRACE;
18339 0         0 return undef;
18340             }
18341 0 0 0     0 if (!defined($return) && defined($score)) {
18342 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{cond}, $tracelevel)
18343             if defined $::RD_TRACE;
18344 0         0 $return = $score_return;
18345             }
18346 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
18347 0 0       0 $return = $item[$#item] unless defined $return;
18348 0 0       0 if (defined $::RD_TRACE) {
18349 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{cond}, $tracelevel);
18350 0         0 Parse::RecDescent::_trace(
18351             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
18352             Parse::RecDescent::_tracefirst($text),
18353             , q{cond}, $tracelevel
18354             );
18355             }
18356 0         0 $_[1] = $text;
18357 0         0 return $return;
18358             }
18359              
18360             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
18361             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ld_type {
18362 0     0   0 my $thisparser = $_[0];
18363 1     1   11 use vars q{$tracelevel};
  1         3  
  1         988  
18364 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
18365 0         0 $ERRORS = 0;
18366 0         0 my $thisrule = $thisparser->{"rules"}{"ld_type"};
18367              
18368 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [ld_type]}, Parse::RecDescent::_tracefirst($_[1]), q{ld_type}, $tracelevel)
18369             if defined $::RD_TRACE;
18370              
18371 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
18372              
18373 0         0 my $score;
18374             my $score_return;
18375 0         0 my $_tok;
18376 0         0 my $return = undef;
18377 0         0 my $_matched = 0;
18378 0         0 my $commit = 0;
18379 0         0 my @item = ();
18380 0         0 my %item = ();
18381 0   0     0 my $repeating = defined($_[2]) && $_[2];
18382 0   0     0 my $_noactions = defined($_[3]) && $_[3];
18383 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
18384 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
18385 0         0 my $text;
18386 0         0 my $lastsep = "";
18387 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
18388 0         0 $expectation->at($_[1]);
18389              
18390 0         0 my $thisline;
18391 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
18392              
18393 0   0     0 while (!$_matched && !$commit) {
18394              
18395 0 0       0 Parse::RecDescent::_trace(
18396             q{Trying production: [function]},
18397             Parse::RecDescent::_tracefirst($_[1]),
18398             q{ld_type}, $tracelevel
18399             ) if defined $::RD_TRACE;
18400 0         0 my $thisprod = $thisrule->{"prods"}[0];
18401 0         0 $text = $_[1];
18402 0         0 my $_savetext;
18403 0         0 @item = (q{ld_type});
18404 0         0 %item = (__RULE__ => q{ld_type});
18405 0         0 my $repcount = 0;
18406              
18407 0 0       0 Parse::RecDescent::_trace(
18408             q{Trying subrule: [function]},
18409             Parse::RecDescent::_tracefirst($text),
18410             q{ld_type}, $tracelevel
18411             ) if defined $::RD_TRACE;
18412 0         0 if (1) {
18413 1     1   10 no strict qw{refs};
  1         3  
  1         680  
18414 0         0 $expectation->is(q{})->at($text);
18415 0 0       0 unless (defined(
18416             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::function(
18417 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
18418             )
18419             )) {
18420              
18421 0 0       0 Parse::RecDescent::_trace(
18422             q{<>},
18423             Parse::RecDescent::_tracefirst($text),
18424             q{ld_type}, $tracelevel
18425             ) if defined $::RD_TRACE;
18426 0         0 $expectation->failed();
18427 0         0 last;
18428             }
18429             Parse::RecDescent::_trace(
18430 0 0       0 q{>>Matched subrule: [function]<< (return value: [} . $_tok . q{]},
18431              
18432             Parse::RecDescent::_tracefirst($text),
18433             q{ld_type},
18434             $tracelevel
18435             ) if defined $::RD_TRACE;
18436 0         0 $item{q{function}} = $_tok;
18437 0         0 push @item, $_tok;
18438              
18439             }
18440              
18441             Parse::RecDescent::_trace(
18442 0 0       0 q{>>Matched production: [function]<<},
18443             Parse::RecDescent::_tracefirst($text),
18444             q{ld_type}, $tracelevel
18445             ) if defined $::RD_TRACE;
18446 0         0 $_matched = 1;
18447 0         0 last;
18448             }
18449              
18450 0   0     0 while (!$_matched && !$commit) {
18451              
18452 0 0       0 Parse::RecDescent::_trace(
18453             q{Trying production: ['(' expression ')']},
18454             Parse::RecDescent::_tracefirst($_[1]),
18455             q{ld_type}, $tracelevel
18456             ) if defined $::RD_TRACE;
18457 0         0 my $thisprod = $thisrule->{"prods"}[1];
18458 0         0 $text = $_[1];
18459 0         0 my $_savetext;
18460 0         0 @item = (q{ld_type});
18461 0         0 %item = (__RULE__ => q{ld_type});
18462 0         0 my $repcount = 0;
18463              
18464 0 0       0 Parse::RecDescent::_trace(
18465             q{Trying terminal: ['(']},
18466             Parse::RecDescent::_tracefirst($text),
18467             q{ld_type}, $tracelevel
18468             ) if defined $::RD_TRACE;
18469 0         0 $lastsep = "";
18470 0         0 $expectation->is(q{})->at($text);
18471              
18472 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
18473             and $text =~ s/\A\(//) {
18474              
18475 0         0 $expectation->failed();
18476 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
18477             if defined $::RD_TRACE;
18478 0         0 last;
18479             }
18480 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
18481             Parse::RecDescent::_tracefirst($text))
18482             if defined $::RD_TRACE;
18483 0         0 push @item, $item{__STRING1__} = $&;
18484              
18485 0 0       0 Parse::RecDescent::_trace(
18486             q{Trying subrule: [expression]},
18487             Parse::RecDescent::_tracefirst($text),
18488             q{ld_type}, $tracelevel
18489             ) if defined $::RD_TRACE;
18490 0         0 if (1) {
18491 1     1   12 no strict qw{refs};
  1         2  
  1         658  
18492 0         0 $expectation->is(q{expression})->at($text);
18493 0 0       0 unless (defined(
18494             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression(
18495 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
18496             )
18497             )) {
18498              
18499 0 0       0 Parse::RecDescent::_trace(
18500             q{<>},
18501             Parse::RecDescent::_tracefirst($text),
18502             q{ld_type}, $tracelevel
18503             ) if defined $::RD_TRACE;
18504 0         0 $expectation->failed();
18505 0         0 last;
18506             }
18507             Parse::RecDescent::_trace(
18508 0 0       0 q{>>Matched subrule: [expression]<< (return value: [} . $_tok . q{]},
18509              
18510             Parse::RecDescent::_tracefirst($text),
18511             q{ld_type},
18512             $tracelevel
18513             ) if defined $::RD_TRACE;
18514 0         0 $item{q{expression}} = $_tok;
18515 0         0 push @item, $_tok;
18516              
18517             }
18518              
18519             Parse::RecDescent::_trace(
18520 0 0       0 q{Trying terminal: [')']},
18521             Parse::RecDescent::_tracefirst($text),
18522             q{ld_type}, $tracelevel
18523             ) if defined $::RD_TRACE;
18524 0         0 $lastsep = "";
18525 0         0 $expectation->is(q{')'})->at($text);
18526              
18527 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
18528             and $text =~ s/\A\)//) {
18529              
18530 0         0 $expectation->failed();
18531 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
18532             if defined $::RD_TRACE;
18533 0         0 last;
18534             }
18535 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
18536             Parse::RecDescent::_tracefirst($text))
18537             if defined $::RD_TRACE;
18538 0         0 push @item, $item{__STRING2__} = $&;
18539              
18540 0 0       0 Parse::RecDescent::_trace(
18541             q{>>Matched production: ['(' expression ')']<<},
18542             Parse::RecDescent::_tracefirst($text),
18543             q{ld_type}, $tracelevel
18544             ) if defined $::RD_TRACE;
18545 0         0 $_matched = 1;
18546 0         0 last;
18547             }
18548              
18549 0   0     0 while (!$_matched && !$commit) {
18550              
18551 0 0       0 Parse::RecDescent::_trace(
18552             q{Trying production: [constant]},
18553             Parse::RecDescent::_tracefirst($_[1]),
18554             q{ld_type}, $tracelevel
18555             ) if defined $::RD_TRACE;
18556 0         0 my $thisprod = $thisrule->{"prods"}[2];
18557 0         0 $text = $_[1];
18558 0         0 my $_savetext;
18559 0         0 @item = (q{ld_type});
18560 0         0 %item = (__RULE__ => q{ld_type});
18561 0         0 my $repcount = 0;
18562              
18563 0 0       0 Parse::RecDescent::_trace(
18564             q{Trying subrule: [constant]},
18565             Parse::RecDescent::_tracefirst($text),
18566             q{ld_type}, $tracelevel
18567             ) if defined $::RD_TRACE;
18568 0         0 if (1) {
18569 1     1   13 no strict qw{refs};
  1         3  
  1         479  
18570 0         0 $expectation->is(q{})->at($text);
18571 0 0       0 unless (defined(
18572             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::constant(
18573 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
18574             )
18575             )) {
18576              
18577 0 0       0 Parse::RecDescent::_trace(
18578             q{<>},
18579             Parse::RecDescent::_tracefirst($text),
18580             q{ld_type}, $tracelevel
18581             ) if defined $::RD_TRACE;
18582 0         0 $expectation->failed();
18583 0         0 last;
18584             }
18585             Parse::RecDescent::_trace(
18586 0 0       0 q{>>Matched subrule: [constant]<< (return value: [} . $_tok . q{]},
18587              
18588             Parse::RecDescent::_tracefirst($text),
18589             q{ld_type},
18590             $tracelevel
18591             ) if defined $::RD_TRACE;
18592 0         0 $item{q{constant}} = $_tok;
18593 0         0 push @item, $_tok;
18594              
18595             }
18596              
18597             Parse::RecDescent::_trace(
18598 0 0       0 q{>>Matched production: [constant]<<},
18599             Parse::RecDescent::_tracefirst($text),
18600             q{ld_type}, $tracelevel
18601             ) if defined $::RD_TRACE;
18602 0         0 $_matched = 1;
18603 0         0 last;
18604             }
18605              
18606 0   0     0 while (!$_matched && !$commit) {
18607              
18608 0 0       0 Parse::RecDescent::_trace(
18609             q{Trying production: [column_name]},
18610             Parse::RecDescent::_tracefirst($_[1]),
18611             q{ld_type}, $tracelevel
18612             ) if defined $::RD_TRACE;
18613 0         0 my $thisprod = $thisrule->{"prods"}[3];
18614 0         0 $text = $_[1];
18615 0         0 my $_savetext;
18616 0         0 @item = (q{ld_type});
18617 0         0 %item = (__RULE__ => q{ld_type});
18618 0         0 my $repcount = 0;
18619              
18620 0 0       0 Parse::RecDescent::_trace(
18621             q{Trying subrule: [column_name]},
18622             Parse::RecDescent::_tracefirst($text),
18623             q{ld_type}, $tracelevel
18624             ) if defined $::RD_TRACE;
18625 0         0 if (1) {
18626 1     1   12 no strict qw{refs};
  1         3  
  1         479  
18627 0         0 $expectation->is(q{})->at($text);
18628 0 0       0 unless (defined(
18629             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name(
18630 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
18631             )
18632             )) {
18633              
18634 0 0       0 Parse::RecDescent::_trace(
18635             q{<>},
18636             Parse::RecDescent::_tracefirst($text),
18637             q{ld_type}, $tracelevel
18638             ) if defined $::RD_TRACE;
18639 0         0 $expectation->failed();
18640 0         0 last;
18641             }
18642             Parse::RecDescent::_trace(
18643 0 0       0 q{>>Matched subrule: [column_name]<< (return value: [} . $_tok . q{]},
18644              
18645             Parse::RecDescent::_tracefirst($text),
18646             q{ld_type},
18647             $tracelevel
18648             ) if defined $::RD_TRACE;
18649 0         0 $item{q{column_name}} = $_tok;
18650 0         0 push @item, $_tok;
18651              
18652             }
18653              
18654             Parse::RecDescent::_trace(
18655 0 0       0 q{>>Matched production: [column_name]<<},
18656             Parse::RecDescent::_tracefirst($text),
18657             q{ld_type}, $tracelevel
18658             ) if defined $::RD_TRACE;
18659 0         0 $_matched = 1;
18660 0         0 last;
18661             }
18662              
18663 0   0     0 while (!$_matched && !$commit) {
18664              
18665 0 0       0 Parse::RecDescent::_trace(
18666             q{Trying production: [host_variable]},
18667             Parse::RecDescent::_tracefirst($_[1]),
18668             q{ld_type}, $tracelevel
18669             ) if defined $::RD_TRACE;
18670 0         0 my $thisprod = $thisrule->{"prods"}[4];
18671 0         0 $text = $_[1];
18672 0         0 my $_savetext;
18673 0         0 @item = (q{ld_type});
18674 0         0 %item = (__RULE__ => q{ld_type});
18675 0         0 my $repcount = 0;
18676              
18677 0 0       0 Parse::RecDescent::_trace(
18678             q{Trying subrule: [host_variable]},
18679             Parse::RecDescent::_tracefirst($text),
18680             q{ld_type}, $tracelevel
18681             ) if defined $::RD_TRACE;
18682 0         0 if (1) {
18683 1     1   10 no strict qw{refs};
  1         4  
  1         815  
18684 0         0 $expectation->is(q{})->at($text);
18685 0 0       0 unless (defined(
18686             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::host_variable(
18687 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
18688             )
18689             )) {
18690              
18691 0 0       0 Parse::RecDescent::_trace(
18692             q{<>},
18693             Parse::RecDescent::_tracefirst($text),
18694             q{ld_type}, $tracelevel
18695             ) if defined $::RD_TRACE;
18696 0         0 $expectation->failed();
18697 0         0 last;
18698             }
18699             Parse::RecDescent::_trace(
18700 0 0       0 q{>>Matched subrule: [host_variable]<< (return value: [} . $_tok . q{]},
18701              
18702             Parse::RecDescent::_tracefirst($text),
18703             q{ld_type},
18704             $tracelevel
18705             ) if defined $::RD_TRACE;
18706 0         0 $item{q{host_variable}} = $_tok;
18707 0         0 push @item, $_tok;
18708              
18709             }
18710              
18711             Parse::RecDescent::_trace(
18712 0 0       0 q{>>Matched production: [host_variable]<<},
18713             Parse::RecDescent::_tracefirst($text),
18714             q{ld_type}, $tracelevel
18715             ) if defined $::RD_TRACE;
18716 0         0 $_matched = 1;
18717 0         0 last;
18718             }
18719              
18720 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
18721              
18722 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
18723 0 0       0 Parse::RecDescent::_trace(
18724             q{<>},
18725             Parse::RecDescent::_tracefirst($_[1]),
18726             q{ld_type}, $tracelevel
18727             ) if defined $::RD_TRACE;
18728 0         0 return undef;
18729             }
18730 0 0 0     0 if (!defined($return) && defined($score)) {
18731 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{ld_type}, $tracelevel)
18732             if defined $::RD_TRACE;
18733 0         0 $return = $score_return;
18734             }
18735 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
18736 0 0       0 $return = $item[$#item] unless defined $return;
18737 0 0       0 if (defined $::RD_TRACE) {
18738 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{ld_type}, $tracelevel);
18739 0         0 Parse::RecDescent::_trace(
18740             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
18741             Parse::RecDescent::_tracefirst($text),
18742             , q{ld_type}, $tracelevel
18743             );
18744             }
18745 0         0 $_[1] = $text;
18746 0         0 return $return;
18747             }
18748              
18749             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
18750             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::RIGHT {
18751 0     0   0 my $thisparser = $_[0];
18752 1     1   12 use vars q{$tracelevel};
  1         3  
  1         1147  
18753 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
18754 0         0 $ERRORS = 0;
18755 0         0 my $thisrule = $thisparser->{"rules"}{"RIGHT"};
18756              
18757 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [RIGHT]}, Parse::RecDescent::_tracefirst($_[1]), q{RIGHT}, $tracelevel)
18758             if defined $::RD_TRACE;
18759              
18760 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
18761              
18762 0         0 my $score;
18763             my $score_return;
18764 0         0 my $_tok;
18765 0         0 my $return = undef;
18766 0         0 my $_matched = 0;
18767 0         0 my $commit = 0;
18768 0         0 my @item = ();
18769 0         0 my %item = ();
18770 0   0     0 my $repeating = defined($_[2]) && $_[2];
18771 0   0     0 my $_noactions = defined($_[3]) && $_[3];
18772 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
18773 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
18774 0         0 my $text;
18775 0         0 my $lastsep = "";
18776 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
18777 0         0 $expectation->at($_[1]);
18778              
18779 0         0 my $thisline;
18780 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
18781              
18782 0   0     0 while (!$_matched && !$commit) {
18783              
18784 0 0       0 Parse::RecDescent::_trace(
18785             q{Trying production: [/right/i]},
18786             Parse::RecDescent::_tracefirst($_[1]),
18787             q{RIGHT}, $tracelevel
18788             ) if defined $::RD_TRACE;
18789 0         0 my $thisprod = $thisrule->{"prods"}[0];
18790 0         0 $text = $_[1];
18791 0         0 my $_savetext;
18792 0         0 @item = (q{RIGHT});
18793 0         0 %item = (__RULE__ => q{RIGHT});
18794 0         0 my $repcount = 0;
18795              
18796 0 0       0 Parse::RecDescent::_trace(
18797             q{Trying terminal: [/right/i]},
18798             Parse::RecDescent::_tracefirst($text),
18799             q{RIGHT}, $tracelevel
18800             ) if defined $::RD_TRACE;
18801 0         0 $lastsep = "";
18802 0         0 $expectation->is(q{})->at($text);
18803              
18804 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
18805             and $text =~ s/\A(?:right)//i) {
18806              
18807 0         0 $expectation->failed();
18808 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
18809             if defined $::RD_TRACE;
18810              
18811 0         0 last;
18812             }
18813 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
18814             Parse::RecDescent::_tracefirst($text))
18815             if defined $::RD_TRACE;
18816 0         0 push @item, $item{__PATTERN1__} = $&;
18817              
18818 0 0       0 Parse::RecDescent::_trace(
18819             q{>>Matched production: [/right/i]<<},
18820             Parse::RecDescent::_tracefirst($text),
18821             q{RIGHT}, $tracelevel
18822             ) if defined $::RD_TRACE;
18823 0         0 $_matched = 1;
18824 0         0 last;
18825             }
18826              
18827 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
18828              
18829 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
18830 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{RIGHT}, $tracelevel)
18831             if defined $::RD_TRACE;
18832 0         0 return undef;
18833             }
18834 0 0 0     0 if (!defined($return) && defined($score)) {
18835 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{RIGHT}, $tracelevel)
18836             if defined $::RD_TRACE;
18837 0         0 $return = $score_return;
18838             }
18839 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
18840 0 0       0 $return = $item[$#item] unless defined $return;
18841 0 0       0 if (defined $::RD_TRACE) {
18842 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{RIGHT}, $tracelevel);
18843 0         0 Parse::RecDescent::_trace(
18844             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
18845             Parse::RecDescent::_tracefirst($text),
18846             , q{RIGHT}, $tracelevel
18847             );
18848             }
18849 0         0 $_[1] = $text;
18850 0         0 return $return;
18851             }
18852              
18853             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
18854             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_method_invocation
18855             {
18856 0     0   0 my $thisparser = $_[0];
18857 1     1   10 use vars q{$tracelevel};
  1         3  
  1         1585  
18858 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
18859 0         0 $ERRORS = 0;
18860 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_method_invocation"};
18861              
18862 0 0       0 Parse::RecDescent::_trace(
18863             q{Trying rule: [_alternation_1_of_production_1_of_rule_method_invocation]},
18864             Parse::RecDescent::_tracefirst($_[1]),
18865             q{_alternation_1_of_production_1_of_rule_method_invocation}, $tracelevel
18866             ) if defined $::RD_TRACE;
18867              
18868 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
18869              
18870 0         0 my $score;
18871             my $score_return;
18872 0         0 my $_tok;
18873 0         0 my $return = undef;
18874 0         0 my $_matched = 0;
18875 0         0 my $commit = 0;
18876 0         0 my @item = ();
18877 0         0 my %item = ();
18878 0   0     0 my $repeating = defined($_[2]) && $_[2];
18879 0   0     0 my $_noactions = defined($_[3]) && $_[3];
18880 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
18881 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
18882 0         0 my $text;
18883 0         0 my $lastsep = "";
18884 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
18885 0         0 $expectation->at($_[1]);
18886              
18887 0         0 my $thisline;
18888 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
18889              
18890 0   0     0 while (!$_matched && !$commit) {
18891              
18892 0 0       0 Parse::RecDescent::_trace(
18893             q{Trying production: ['(' expression ')']},
18894             Parse::RecDescent::_tracefirst($_[1]),
18895             q{_alternation_1_of_production_1_of_rule_method_invocation}, $tracelevel
18896             ) if defined $::RD_TRACE;
18897 0         0 my $thisprod = $thisrule->{"prods"}[0];
18898 0         0 $text = $_[1];
18899 0         0 my $_savetext;
18900 0         0 @item = (q{_alternation_1_of_production_1_of_rule_method_invocation});
18901 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_method_invocation});
18902 0         0 my $repcount = 0;
18903              
18904 0 0       0 Parse::RecDescent::_trace(
18905             q{Trying terminal: ['(']},
18906             Parse::RecDescent::_tracefirst($text),
18907             q{_alternation_1_of_production_1_of_rule_method_invocation}, $tracelevel
18908             ) if defined $::RD_TRACE;
18909 0         0 $lastsep = "";
18910 0         0 $expectation->is(q{})->at($text);
18911              
18912 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
18913             and $text =~ s/\A\(//) {
18914              
18915 0         0 $expectation->failed();
18916 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
18917             if defined $::RD_TRACE;
18918 0         0 last;
18919             }
18920 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
18921             Parse::RecDescent::_tracefirst($text))
18922             if defined $::RD_TRACE;
18923 0         0 push @item, $item{__STRING1__} = $&;
18924              
18925 0 0       0 Parse::RecDescent::_trace(
18926             q{Trying repeated subrule: [expression]},
18927             Parse::RecDescent::_tracefirst($text),
18928             q{_alternation_1_of_production_1_of_rule_method_invocation}, $tracelevel
18929             ) if defined $::RD_TRACE;
18930 0         0 $expectation->is(q{expression})->at($text);
18931              
18932 0 0       0 unless (defined(
18933             $_tok = $thisparser->_parserepeat(
18934             $text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression,
18935             1, 100000000, $_noactions, $expectation, undef
18936             )
18937             )) {
18938 0 0       0 Parse::RecDescent::_trace(
18939             q{<>},
18940             Parse::RecDescent::_tracefirst($text),
18941             q{_alternation_1_of_production_1_of_rule_method_invocation}, $tracelevel
18942             ) if defined $::RD_TRACE;
18943 0         0 last;
18944             }
18945             Parse::RecDescent::_trace(
18946 0 0       0 q{>>Matched repeated subrule: [expression]<< (} . @$_tok . q{ times)},
18947              
18948             Parse::RecDescent::_tracefirst($text),
18949             q{_alternation_1_of_production_1_of_rule_method_invocation},
18950             $tracelevel
18951             ) if defined $::RD_TRACE;
18952 0         0 $item{q{expression(s)}} = $_tok;
18953 0         0 push @item, $_tok;
18954              
18955 0 0       0 Parse::RecDescent::_trace(
18956             q{Trying terminal: [')']},
18957             Parse::RecDescent::_tracefirst($text),
18958             q{_alternation_1_of_production_1_of_rule_method_invocation}, $tracelevel
18959             ) if defined $::RD_TRACE;
18960 0         0 $lastsep = "";
18961 0         0 $expectation->is(q{')'})->at($text);
18962              
18963 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
18964             and $text =~ s/\A\)//) {
18965              
18966 0         0 $expectation->failed();
18967 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
18968             if defined $::RD_TRACE;
18969 0         0 last;
18970             }
18971 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
18972             Parse::RecDescent::_tracefirst($text))
18973             if defined $::RD_TRACE;
18974 0         0 push @item, $item{__STRING2__} = $&;
18975              
18976 0 0       0 Parse::RecDescent::_trace(
18977             q{>>Matched production: ['(' expression ')']<<},
18978             Parse::RecDescent::_tracefirst($text),
18979             q{_alternation_1_of_production_1_of_rule_method_invocation}, $tracelevel
18980             ) if defined $::RD_TRACE;
18981 0         0 $_matched = 1;
18982 0         0 last;
18983             }
18984              
18985 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
18986              
18987 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
18988 0 0       0 Parse::RecDescent::_trace(
18989             q{<>},
18990             Parse::RecDescent::_tracefirst($_[1]),
18991             q{_alternation_1_of_production_1_of_rule_method_invocation}, $tracelevel
18992             ) if defined $::RD_TRACE;
18993 0         0 return undef;
18994             }
18995 0 0 0     0 if (!defined($return) && defined($score)) {
18996 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
18997             "", q{_alternation_1_of_production_1_of_rule_method_invocation}, $tracelevel)
18998             if defined $::RD_TRACE;
18999 0         0 $return = $score_return;
19000             }
19001 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
19002 0 0       0 $return = $item[$#item] unless defined $return;
19003 0 0       0 if (defined $::RD_TRACE) {
19004 0         0 Parse::RecDescent::_trace(
19005             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
19006             q{_alternation_1_of_production_1_of_rule_method_invocation}, $tracelevel
19007             );
19008 0         0 Parse::RecDescent::_trace(
19009             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
19010             Parse::RecDescent::_tracefirst($text),
19011             , q{_alternation_1_of_production_1_of_rule_method_invocation}, $tracelevel
19012             );
19013             }
19014 0         0 $_[1] = $text;
19015 0         0 return $return;
19016             }
19017              
19018             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
19019             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::LEFT {
19020 0     0   0 my $thisparser = $_[0];
19021 1     1   10 use vars q{$tracelevel};
  1         4  
  1         1132  
19022 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
19023 0         0 $ERRORS = 0;
19024 0         0 my $thisrule = $thisparser->{"rules"}{"LEFT"};
19025              
19026 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [LEFT]}, Parse::RecDescent::_tracefirst($_[1]), q{LEFT}, $tracelevel)
19027             if defined $::RD_TRACE;
19028              
19029 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
19030              
19031 0         0 my $score;
19032             my $score_return;
19033 0         0 my $_tok;
19034 0         0 my $return = undef;
19035 0         0 my $_matched = 0;
19036 0         0 my $commit = 0;
19037 0         0 my @item = ();
19038 0         0 my %item = ();
19039 0   0     0 my $repeating = defined($_[2]) && $_[2];
19040 0   0     0 my $_noactions = defined($_[3]) && $_[3];
19041 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
19042 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
19043 0         0 my $text;
19044 0         0 my $lastsep = "";
19045 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
19046 0         0 $expectation->at($_[1]);
19047              
19048 0         0 my $thisline;
19049 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
19050              
19051 0   0     0 while (!$_matched && !$commit) {
19052              
19053 0 0       0 Parse::RecDescent::_trace(
19054             q{Trying production: [/left/i]},
19055             Parse::RecDescent::_tracefirst($_[1]),
19056             q{LEFT}, $tracelevel
19057             ) if defined $::RD_TRACE;
19058 0         0 my $thisprod = $thisrule->{"prods"}[0];
19059 0         0 $text = $_[1];
19060 0         0 my $_savetext;
19061 0         0 @item = (q{LEFT});
19062 0         0 %item = (__RULE__ => q{LEFT});
19063 0         0 my $repcount = 0;
19064              
19065 0 0       0 Parse::RecDescent::_trace(
19066             q{Trying terminal: [/left/i]},
19067             Parse::RecDescent::_tracefirst($text),
19068             q{LEFT}, $tracelevel
19069             ) if defined $::RD_TRACE;
19070 0         0 $lastsep = "";
19071 0         0 $expectation->is(q{})->at($text);
19072              
19073 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
19074             and $text =~ s/\A(?:left)//i) {
19075              
19076 0         0 $expectation->failed();
19077 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
19078             if defined $::RD_TRACE;
19079              
19080 0         0 last;
19081             }
19082 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
19083             Parse::RecDescent::_tracefirst($text))
19084             if defined $::RD_TRACE;
19085 0         0 push @item, $item{__PATTERN1__} = $&;
19086              
19087 0 0       0 Parse::RecDescent::_trace(
19088             q{>>Matched production: [/left/i]<<},
19089             Parse::RecDescent::_tracefirst($text),
19090             q{LEFT}, $tracelevel
19091             ) if defined $::RD_TRACE;
19092 0         0 $_matched = 1;
19093 0         0 last;
19094             }
19095              
19096 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
19097              
19098 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
19099 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{LEFT}, $tracelevel)
19100             if defined $::RD_TRACE;
19101 0         0 return undef;
19102             }
19103 0 0 0     0 if (!defined($return) && defined($score)) {
19104 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{LEFT}, $tracelevel)
19105             if defined $::RD_TRACE;
19106 0         0 $return = $score_return;
19107             }
19108 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
19109 0 0       0 $return = $item[$#item] unless defined $return;
19110 0 0       0 if (defined $::RD_TRACE) {
19111 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{LEFT}, $tracelevel);
19112 0         0 Parse::RecDescent::_trace(
19113             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
19114             Parse::RecDescent::_tracefirst($text),
19115             , q{LEFT}, $tracelevel
19116             );
19117             }
19118 0         0 $_[1] = $text;
19119 0         0 return $return;
19120             }
19121              
19122             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
19123             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::table_name {
19124 0     0   0 my $thisparser = $_[0];
19125 1     1   11 use vars q{$tracelevel};
  1         2  
  1         571  
19126 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
19127 0         0 $ERRORS = 0;
19128 0         0 my $thisrule = $thisparser->{"rules"}{"table_name"};
19129              
19130 0 0       0 Parse::RecDescent::_trace(
19131             q{Trying rule: [table_name]},
19132             Parse::RecDescent::_tracefirst($_[1]),
19133             q{table_name}, $tracelevel
19134             ) if defined $::RD_TRACE;
19135              
19136 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
19137              
19138 0         0 my $score;
19139             my $score_return;
19140 0         0 my $_tok;
19141 0         0 my $return = undef;
19142 0         0 my $_matched = 0;
19143 0         0 my $commit = 0;
19144 0         0 my @item = ();
19145 0         0 my %item = ();
19146 0   0     0 my $repeating = defined($_[2]) && $_[2];
19147 0   0     0 my $_noactions = defined($_[3]) && $_[3];
19148 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
19149 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
19150 0         0 my $text;
19151 0         0 my $lastsep = "";
19152 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
19153 0         0 $expectation->at($_[1]);
19154              
19155 0         0 my $thisline;
19156 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
19157              
19158 0   0     0 while (!$_matched && !$commit) {
19159              
19160 0 0       0 Parse::RecDescent::_trace(
19161             q{Trying production: [SCHEMA '.' NAME]},
19162             Parse::RecDescent::_tracefirst($_[1]),
19163             q{table_name}, $tracelevel
19164             ) if defined $::RD_TRACE;
19165 0         0 my $thisprod = $thisrule->{"prods"}[0];
19166 0         0 $text = $_[1];
19167 0         0 my $_savetext;
19168 0         0 @item = (q{table_name});
19169 0         0 %item = (__RULE__ => q{table_name});
19170 0         0 my $repcount = 0;
19171              
19172 0 0       0 Parse::RecDescent::_trace(
19173             q{Trying subrule: [SCHEMA]},
19174             Parse::RecDescent::_tracefirst($text),
19175             q{table_name}, $tracelevel
19176             ) if defined $::RD_TRACE;
19177 0         0 if (1) {
19178 1     1   10 no strict qw{refs};
  1         2  
  1         490  
19179 0         0 $expectation->is(q{})->at($text);
19180 0 0       0 unless (defined(
19181             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SCHEMA(
19182 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
19183             )
19184             )) {
19185              
19186 0 0       0 Parse::RecDescent::_trace(
19187             q{<>},
19188             Parse::RecDescent::_tracefirst($text),
19189             q{table_name}, $tracelevel
19190             ) if defined $::RD_TRACE;
19191 0         0 $expectation->failed();
19192 0         0 last;
19193             }
19194             Parse::RecDescent::_trace(
19195 0 0       0 q{>>Matched subrule: [SCHEMA]<< (return value: [} . $_tok . q{]},
19196              
19197             Parse::RecDescent::_tracefirst($text),
19198             q{table_name},
19199             $tracelevel
19200             ) if defined $::RD_TRACE;
19201 0         0 $item{q{SCHEMA}} = $_tok;
19202 0         0 push @item, $_tok;
19203              
19204             }
19205              
19206             Parse::RecDescent::_trace(
19207 0 0       0 q{Trying terminal: ['.']},
19208             Parse::RecDescent::_tracefirst($text),
19209             q{table_name}, $tracelevel
19210             ) if defined $::RD_TRACE;
19211 0         0 $lastsep = "";
19212 0         0 $expectation->is(q{'.'})->at($text);
19213              
19214 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
19215             and $text =~ s/\A\.//) {
19216              
19217 0         0 $expectation->failed();
19218 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
19219             if defined $::RD_TRACE;
19220 0         0 last;
19221             }
19222 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
19223             Parse::RecDescent::_tracefirst($text))
19224             if defined $::RD_TRACE;
19225 0         0 push @item, $item{__STRING1__} = $&;
19226              
19227 0 0       0 Parse::RecDescent::_trace(
19228             q{Trying subrule: [NAME]},
19229             Parse::RecDescent::_tracefirst($text),
19230             q{table_name}, $tracelevel
19231             ) if defined $::RD_TRACE;
19232 0         0 if (1) {
19233 1     1   12 no strict qw{refs};
  1         3  
  1         564  
19234 0         0 $expectation->is(q{NAME})->at($text);
19235 0 0       0 unless (defined(
19236             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME(
19237 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
19238             )
19239             )) {
19240              
19241 0 0       0 Parse::RecDescent::_trace(
19242             q{<>},
19243             Parse::RecDescent::_tracefirst($text),
19244             q{table_name}, $tracelevel
19245             ) if defined $::RD_TRACE;
19246 0         0 $expectation->failed();
19247 0         0 last;
19248             }
19249             Parse::RecDescent::_trace(
19250 0 0       0 q{>>Matched subrule: [NAME]<< (return value: [} . $_tok . q{]},
19251              
19252             Parse::RecDescent::_tracefirst($text),
19253             q{table_name},
19254             $tracelevel
19255             ) if defined $::RD_TRACE;
19256 0         0 $item{q{NAME}} = $_tok;
19257 0         0 push @item, $_tok;
19258              
19259             }
19260              
19261 0 0       0 Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{table_name}, $tracelevel)
19262             if defined $::RD_TRACE;
19263              
19264             $_tok
19265             = ($_noactions)
19266             ? 0
19267 0 0       0 : do { $return = { schema => $item[1], name => $item[3] } };
  0         0  
19268 0 0       0 unless (defined $_tok) {
19269 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
19270             if defined $::RD_TRACE;
19271 0         0 last;
19272             }
19273 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])},
19274             Parse::RecDescent::_tracefirst($text))
19275             if defined $::RD_TRACE;
19276 0         0 push @item, $_tok;
19277 0         0 $item{__ACTION1__} = $_tok;
19278              
19279 0 0       0 Parse::RecDescent::_trace(
19280             q{>>Matched production: [SCHEMA '.' NAME]<<},
19281             Parse::RecDescent::_tracefirst($text),
19282             q{table_name}, $tracelevel
19283             ) if defined $::RD_TRACE;
19284 0         0 $_matched = 1;
19285 0         0 last;
19286             }
19287              
19288 0   0     0 while (!$_matched && !$commit) {
19289              
19290 0 0       0 Parse::RecDescent::_trace(
19291             q{Trying production: [NAME]},
19292             Parse::RecDescent::_tracefirst($_[1]),
19293             q{table_name}, $tracelevel
19294             ) if defined $::RD_TRACE;
19295 0         0 my $thisprod = $thisrule->{"prods"}[1];
19296 0         0 $text = $_[1];
19297 0         0 my $_savetext;
19298 0         0 @item = (q{table_name});
19299 0         0 %item = (__RULE__ => q{table_name});
19300 0         0 my $repcount = 0;
19301              
19302 0 0       0 Parse::RecDescent::_trace(
19303             q{Trying subrule: [NAME]},
19304             Parse::RecDescent::_tracefirst($text),
19305             q{table_name}, $tracelevel
19306             ) if defined $::RD_TRACE;
19307 0         0 if (1) {
19308 1     1   12 no strict qw{refs};
  1         3  
  1         889  
19309 0         0 $expectation->is(q{})->at($text);
19310 0 0       0 unless (defined(
19311             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME(
19312 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
19313             )
19314             )) {
19315              
19316 0 0       0 Parse::RecDescent::_trace(
19317             q{<>},
19318             Parse::RecDescent::_tracefirst($text),
19319             q{table_name}, $tracelevel
19320             ) if defined $::RD_TRACE;
19321 0         0 $expectation->failed();
19322 0         0 last;
19323             }
19324             Parse::RecDescent::_trace(
19325 0 0       0 q{>>Matched subrule: [NAME]<< (return value: [} . $_tok . q{]},
19326              
19327             Parse::RecDescent::_tracefirst($text),
19328             q{table_name},
19329             $tracelevel
19330             ) if defined $::RD_TRACE;
19331 0         0 $item{q{NAME}} = $_tok;
19332 0         0 push @item, $_tok;
19333              
19334             }
19335              
19336 0 0       0 Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{table_name}, $tracelevel)
19337             if defined $::RD_TRACE;
19338              
19339 0 0       0 $_tok = ($_noactions) ? 0 : do { $return = { name => $item[1] } };
  0         0  
19340 0 0       0 unless (defined $_tok) {
19341 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
19342             if defined $::RD_TRACE;
19343 0         0 last;
19344             }
19345 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])},
19346             Parse::RecDescent::_tracefirst($text))
19347             if defined $::RD_TRACE;
19348 0         0 push @item, $_tok;
19349 0         0 $item{__ACTION1__} = $_tok;
19350              
19351 0 0       0 Parse::RecDescent::_trace(
19352             q{>>Matched production: [NAME]<<},
19353             Parse::RecDescent::_tracefirst($text),
19354             q{table_name}, $tracelevel
19355             ) if defined $::RD_TRACE;
19356 0         0 $_matched = 1;
19357 0         0 last;
19358             }
19359              
19360 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
19361              
19362 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
19363 0 0       0 Parse::RecDescent::_trace(
19364             q{<>},
19365             Parse::RecDescent::_tracefirst($_[1]),
19366             q{table_name}, $tracelevel
19367             ) if defined $::RD_TRACE;
19368 0         0 return undef;
19369             }
19370 0 0 0     0 if (!defined($return) && defined($score)) {
19371 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{table_name}, $tracelevel)
19372             if defined $::RD_TRACE;
19373 0         0 $return = $score_return;
19374             }
19375 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
19376 0 0       0 $return = $item[$#item] unless defined $return;
19377 0 0       0 if (defined $::RD_TRACE) {
19378 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{table_name}, $tracelevel);
19379 0         0 Parse::RecDescent::_trace(
19380             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
19381             Parse::RecDescent::_tracefirst($text),
19382             , q{table_name}, $tracelevel
19383             );
19384             }
19385 0         0 $_[1] = $text;
19386 0         0 return $return;
19387             }
19388              
19389             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
19390             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_53_of_rule_sysfun {
19391 0     0   0 my $thisparser = $_[0];
19392 1     1   11 use vars q{$tracelevel};
  1         3  
  1         1521  
19393 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
19394 0         0 $ERRORS = 0;
19395 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_53_of_rule_sysfun"};
19396              
19397 0 0       0 Parse::RecDescent::_trace(
19398             q{Trying rule: [_alternation_1_of_production_53_of_rule_sysfun]},
19399             Parse::RecDescent::_tracefirst($_[1]),
19400             q{_alternation_1_of_production_53_of_rule_sysfun}, $tracelevel
19401             ) if defined $::RD_TRACE;
19402              
19403 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
19404              
19405 0         0 my $score;
19406             my $score_return;
19407 0         0 my $_tok;
19408 0         0 my $return = undef;
19409 0         0 my $_matched = 0;
19410 0         0 my $commit = 0;
19411 0         0 my @item = ();
19412 0         0 my %item = ();
19413 0   0     0 my $repeating = defined($_[2]) && $_[2];
19414 0   0     0 my $_noactions = defined($_[3]) && $_[3];
19415 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
19416 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
19417 0         0 my $text;
19418 0         0 my $lastsep = "";
19419 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
19420 0         0 $expectation->at($_[1]);
19421              
19422 0         0 my $thisline;
19423 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
19424              
19425 0   0     0 while (!$_matched && !$commit) {
19426              
19427 0 0       0 Parse::RecDescent::_trace(
19428             q{Trying production: [/TRUNCATE/i]},
19429             Parse::RecDescent::_tracefirst($_[1]),
19430             q{_alternation_1_of_production_53_of_rule_sysfun}, $tracelevel
19431             ) if defined $::RD_TRACE;
19432 0         0 my $thisprod = $thisrule->{"prods"}[0];
19433 0         0 $text = $_[1];
19434 0         0 my $_savetext;
19435 0         0 @item = (q{_alternation_1_of_production_53_of_rule_sysfun});
19436 0         0 %item = (__RULE__ => q{_alternation_1_of_production_53_of_rule_sysfun});
19437 0         0 my $repcount = 0;
19438              
19439 0 0       0 Parse::RecDescent::_trace(
19440             q{Trying terminal: [/TRUNCATE/i]},
19441             Parse::RecDescent::_tracefirst($text),
19442             q{_alternation_1_of_production_53_of_rule_sysfun}, $tracelevel
19443             ) if defined $::RD_TRACE;
19444 0         0 $lastsep = "";
19445 0         0 $expectation->is(q{})->at($text);
19446              
19447 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
19448             and $text =~ s/\A(?:TRUNCATE)//i) {
19449              
19450 0         0 $expectation->failed();
19451 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
19452             if defined $::RD_TRACE;
19453              
19454 0         0 last;
19455             }
19456 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
19457             Parse::RecDescent::_tracefirst($text))
19458             if defined $::RD_TRACE;
19459 0         0 push @item, $item{__PATTERN1__} = $&;
19460              
19461 0 0       0 Parse::RecDescent::_trace(
19462             q{>>Matched production: [/TRUNCATE/i]<<},
19463             Parse::RecDescent::_tracefirst($text),
19464             q{_alternation_1_of_production_53_of_rule_sysfun}, $tracelevel
19465             ) if defined $::RD_TRACE;
19466 0         0 $_matched = 1;
19467 0         0 last;
19468             }
19469              
19470 0   0     0 while (!$_matched && !$commit) {
19471              
19472 0 0       0 Parse::RecDescent::_trace(
19473             q{Trying production: [/TRUNC/i]},
19474             Parse::RecDescent::_tracefirst($_[1]),
19475             q{_alternation_1_of_production_53_of_rule_sysfun}, $tracelevel
19476             ) if defined $::RD_TRACE;
19477 0         0 my $thisprod = $thisrule->{"prods"}[1];
19478 0         0 $text = $_[1];
19479 0         0 my $_savetext;
19480 0         0 @item = (q{_alternation_1_of_production_53_of_rule_sysfun});
19481 0         0 %item = (__RULE__ => q{_alternation_1_of_production_53_of_rule_sysfun});
19482 0         0 my $repcount = 0;
19483              
19484 0 0       0 Parse::RecDescent::_trace(
19485             q{Trying terminal: [/TRUNC/i]},
19486             Parse::RecDescent::_tracefirst($text),
19487             q{_alternation_1_of_production_53_of_rule_sysfun}, $tracelevel
19488             ) if defined $::RD_TRACE;
19489 0         0 $lastsep = "";
19490 0         0 $expectation->is(q{})->at($text);
19491              
19492 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
19493             and $text =~ s/\A(?:TRUNC)//i) {
19494              
19495 0         0 $expectation->failed();
19496 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
19497             if defined $::RD_TRACE;
19498              
19499 0         0 last;
19500             }
19501 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
19502             Parse::RecDescent::_tracefirst($text))
19503             if defined $::RD_TRACE;
19504 0         0 push @item, $item{__PATTERN1__} = $&;
19505              
19506 0 0       0 Parse::RecDescent::_trace(
19507             q{>>Matched production: [/TRUNC/i]<<},
19508             Parse::RecDescent::_tracefirst($text),
19509             q{_alternation_1_of_production_53_of_rule_sysfun}, $tracelevel
19510             ) if defined $::RD_TRACE;
19511 0         0 $_matched = 1;
19512 0         0 last;
19513             }
19514              
19515 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
19516              
19517 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
19518 0 0       0 Parse::RecDescent::_trace(
19519             q{<>},
19520             Parse::RecDescent::_tracefirst($_[1]),
19521             q{_alternation_1_of_production_53_of_rule_sysfun}, $tracelevel
19522             ) if defined $::RD_TRACE;
19523 0         0 return undef;
19524             }
19525 0 0 0     0 if (!defined($return) && defined($score)) {
19526 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
19527             "", q{_alternation_1_of_production_53_of_rule_sysfun}, $tracelevel)
19528             if defined $::RD_TRACE;
19529 0         0 $return = $score_return;
19530             }
19531 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
19532 0 0       0 $return = $item[$#item] unless defined $return;
19533 0 0       0 if (defined $::RD_TRACE) {
19534 0         0 Parse::RecDescent::_trace(
19535             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
19536             q{_alternation_1_of_production_53_of_rule_sysfun}, $tracelevel
19537             );
19538 0         0 Parse::RecDescent::_trace(
19539             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
19540             Parse::RecDescent::_tracefirst($text),
19541             , q{_alternation_1_of_production_53_of_rule_sysfun}, $tracelevel
19542             );
19543             }
19544 0         0 $_[1] = $text;
19545 0         0 return $return;
19546             }
19547              
19548             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
19549             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::options {
19550 0     0   0 my $thisparser = $_[0];
19551 1     1   10 use vars q{$tracelevel};
  1         2  
  1         756  
19552 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
19553 0         0 $ERRORS = 0;
19554 0         0 my $thisrule = $thisparser->{"rules"}{"options"};
19555              
19556 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [options]}, Parse::RecDescent::_tracefirst($_[1]), q{options}, $tracelevel)
19557             if defined $::RD_TRACE;
19558              
19559 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
19560              
19561 0         0 my $score;
19562             my $score_return;
19563 0         0 my $_tok;
19564 0         0 my $return = undef;
19565 0         0 my $_matched = 0;
19566 0         0 my $commit = 0;
19567 0         0 my @item = ();
19568 0         0 my %item = ();
19569 0   0     0 my $repeating = defined($_[2]) && $_[2];
19570 0   0     0 my $_noactions = defined($_[3]) && $_[3];
19571 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
19572 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
19573 0         0 my $text;
19574 0         0 my $lastsep = "";
19575 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
19576 0         0 $expectation->at($_[1]);
19577              
19578 0         0 my $thisline;
19579 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
19580              
19581 0   0     0 while (!$_matched && !$commit) {
19582              
19583 0 0       0 Parse::RecDescent::_trace(
19584             q{Trying production: [/WITH/i /CASCADED/i, or /LOCAL/i /CHECK\\s+OPTION/i]},
19585             Parse::RecDescent::_tracefirst($_[1]),
19586             q{options}, $tracelevel
19587             ) if defined $::RD_TRACE;
19588 0         0 my $thisprod = $thisrule->{"prods"}[0];
19589 0         0 $text = $_[1];
19590 0         0 my $_savetext;
19591 0         0 @item = (q{options});
19592 0         0 %item = (__RULE__ => q{options});
19593 0         0 my $repcount = 0;
19594              
19595 0 0       0 Parse::RecDescent::_trace(
19596             q{Trying terminal: [/WITH/i]},
19597             Parse::RecDescent::_tracefirst($text),
19598             q{options}, $tracelevel
19599             ) if defined $::RD_TRACE;
19600 0         0 $lastsep = "";
19601 0         0 $expectation->is(q{})->at($text);
19602              
19603 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
19604             and $text =~ s/\A(?:WITH)//i) {
19605              
19606 0         0 $expectation->failed();
19607 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
19608             if defined $::RD_TRACE;
19609              
19610 0         0 last;
19611             }
19612 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
19613             Parse::RecDescent::_tracefirst($text))
19614             if defined $::RD_TRACE;
19615 0         0 push @item, $item{__PATTERN1__} = $&;
19616              
19617 0 0       0 Parse::RecDescent::_trace(
19618             q{Trying subrule: [_alternation_1_of_production_1_of_rule_options]},
19619             Parse::RecDescent::_tracefirst($text),
19620             q{options}, $tracelevel
19621             ) if defined $::RD_TRACE;
19622 0         0 if (1) {
19623 1     1   11 no strict qw{refs};
  1         5  
  1         975  
19624 0         0 $expectation->is(q{/CASCADED/i, or /LOCAL/i})->at($text);
19625 0 0       0 unless (defined(
19626             $_tok
19627             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_options(
19628 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
19629             )
19630             )) {
19631              
19632 0 0       0 Parse::RecDescent::_trace(
19633             q{<>},
19634             Parse::RecDescent::_tracefirst($text),
19635             q{options}, $tracelevel
19636             ) if defined $::RD_TRACE;
19637 0         0 $expectation->failed();
19638 0         0 last;
19639             }
19640             Parse::RecDescent::_trace(
19641 0 0       0 q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_options]<< (return value: [} . $_tok . q{]},
19642              
19643             Parse::RecDescent::_tracefirst($text),
19644             q{options},
19645             $tracelevel
19646             ) if defined $::RD_TRACE;
19647 0         0 $item{q{_alternation_1_of_production_1_of_rule_options}} = $_tok;
19648 0         0 push @item, $_tok;
19649              
19650             }
19651              
19652             Parse::RecDescent::_trace(
19653 0 0       0 q{Trying terminal: [/CHECK\\s+OPTION/i]},
19654             Parse::RecDescent::_tracefirst($text),
19655             q{options}, $tracelevel
19656             ) if defined $::RD_TRACE;
19657 0         0 $lastsep = "";
19658 0         0 $expectation->is(q{/CHECK\\s+OPTION/i})->at($text);
19659              
19660 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
19661             and $text =~ s/\A(?:CHECK\s+OPTION)//i) {
19662              
19663 0         0 $expectation->failed();
19664 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
19665             if defined $::RD_TRACE;
19666              
19667 0         0 last;
19668             }
19669 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
19670             Parse::RecDescent::_tracefirst($text))
19671             if defined $::RD_TRACE;
19672 0         0 push @item, $item{__PATTERN2__} = $&;
19673              
19674 0 0       0 Parse::RecDescent::_trace(
19675             q{>>Matched production: [/WITH/i /CASCADED/i, or /LOCAL/i /CHECK\\s+OPTION/i]<<},
19676             Parse::RecDescent::_tracefirst($text),
19677             q{options}, $tracelevel
19678             ) if defined $::RD_TRACE;
19679 0         0 $_matched = 1;
19680 0         0 last;
19681             }
19682              
19683 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
19684              
19685 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
19686 0 0       0 Parse::RecDescent::_trace(
19687             q{<>},
19688             Parse::RecDescent::_tracefirst($_[1]),
19689             q{options}, $tracelevel
19690             ) if defined $::RD_TRACE;
19691 0         0 return undef;
19692             }
19693 0 0 0     0 if (!defined($return) && defined($score)) {
19694 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{options}, $tracelevel)
19695             if defined $::RD_TRACE;
19696 0         0 $return = $score_return;
19697             }
19698 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
19699 0 0       0 $return = $item[$#item] unless defined $return;
19700 0 0       0 if (defined $::RD_TRACE) {
19701 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{options}, $tracelevel);
19702 0         0 Parse::RecDescent::_trace(
19703             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
19704             Parse::RecDescent::_tracefirst($text),
19705             , q{options}, $tracelevel
19706             );
19707             }
19708 0         0 $_[1] = $text;
19709 0         0 return $return;
19710             }
19711              
19712             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
19713             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::function {
19714 0     0   0 my $thisparser = $_[0];
19715 1     1   11 use vars q{$tracelevel};
  1         3  
  1         609  
19716 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
19717 0         0 $ERRORS = 0;
19718 0         0 my $thisrule = $thisparser->{"rules"}{"function"};
19719              
19720 0 0       0 Parse::RecDescent::_trace(
19721             q{Trying rule: [function]},
19722             Parse::RecDescent::_tracefirst($_[1]),
19723             q{function}, $tracelevel
19724             ) if defined $::RD_TRACE;
19725              
19726 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
19727              
19728 0         0 my $score;
19729             my $score_return;
19730 0         0 my $_tok;
19731 0         0 my $return = undef;
19732 0         0 my $_matched = 0;
19733 0         0 my $commit = 0;
19734 0         0 my @item = ();
19735 0         0 my %item = ();
19736 0   0     0 my $repeating = defined($_[2]) && $_[2];
19737 0   0     0 my $_noactions = defined($_[3]) && $_[3];
19738 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
19739 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
19740 0         0 my $text;
19741 0         0 my $lastsep = "";
19742 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
19743 0         0 $expectation->at($_[1]);
19744              
19745 0         0 my $thisline;
19746 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
19747              
19748 0   0     0 while (!$_matched && !$commit) {
19749              
19750 0 0       0 Parse::RecDescent::_trace(
19751             q{Trying production: [/SYSIBM\\.|/i, or /SYSFUN\\.|/i, or userdefined_function '(' ')']},
19752             Parse::RecDescent::_tracefirst($_[1]), q{function}, $tracelevel
19753             ) if defined $::RD_TRACE;
19754 0         0 my $thisprod = $thisrule->{"prods"}[0];
19755 0         0 $text = $_[1];
19756 0         0 my $_savetext;
19757 0         0 @item = (q{function});
19758 0         0 %item = (__RULE__ => q{function});
19759 0         0 my $repcount = 0;
19760              
19761 0 0       0 Parse::RecDescent::_trace(
19762             q{Trying subrule: [_alternation_1_of_production_1_of_rule_function]},
19763             Parse::RecDescent::_tracefirst($text),
19764             q{function}, $tracelevel
19765             ) if defined $::RD_TRACE;
19766 0         0 if (1) {
19767 1     1   11 no strict qw{refs};
  1         3  
  1         556  
19768 0         0 $expectation->is(q{})->at($text);
19769 0 0       0 unless (defined(
19770             $_tok
19771             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_function(
19772 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
19773             )
19774             )) {
19775              
19776 0 0       0 Parse::RecDescent::_trace(
19777             q{<>},
19778             Parse::RecDescent::_tracefirst($text),
19779             q{function}, $tracelevel
19780             ) if defined $::RD_TRACE;
19781 0         0 $expectation->failed();
19782 0         0 last;
19783             }
19784             Parse::RecDescent::_trace(
19785 0 0       0 q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_function]<< (return value: [} . $_tok . q{]},
19786              
19787             Parse::RecDescent::_tracefirst($text),
19788             q{function},
19789             $tracelevel
19790             ) if defined $::RD_TRACE;
19791 0         0 $item{q{_alternation_1_of_production_1_of_rule_function}} = $_tok;
19792 0         0 push @item, $_tok;
19793              
19794             }
19795              
19796             Parse::RecDescent::_trace(
19797 0 0       0 q{Trying terminal: ['(']},
19798             Parse::RecDescent::_tracefirst($text),
19799             q{function}, $tracelevel
19800             ) if defined $::RD_TRACE;
19801 0         0 $lastsep = "";
19802 0         0 $expectation->is(q{'('})->at($text);
19803              
19804 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
19805             and $text =~ s/\A\(//) {
19806              
19807 0         0 $expectation->failed();
19808 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
19809             if defined $::RD_TRACE;
19810 0         0 last;
19811             }
19812 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
19813             Parse::RecDescent::_tracefirst($text))
19814             if defined $::RD_TRACE;
19815 0         0 push @item, $item{__STRING1__} = $&;
19816              
19817 0 0       0 Parse::RecDescent::_trace(
19818             q{Trying operator: []},
19819             Parse::RecDescent::_tracefirst($text),
19820             q{function}, $tracelevel
19821             ) if defined $::RD_TRACE;
19822 0         0 $expectation->is(q{})->at($text);
19823              
19824 0         0 $_tok = undef;
19825 0         0 OPLOOP: while (1) {
19826 0         0 $repcount = 0;
19827 0         0 my @item;
19828              
19829             # MATCH LEFTARG
19830              
19831 0 0       0 Parse::RecDescent::_trace(
19832             q{Trying subrule: [func_args]},
19833             Parse::RecDescent::_tracefirst($text),
19834             q{function}, $tracelevel
19835             ) if defined $::RD_TRACE;
19836 0         0 if (1) {
19837 1     1   11 no strict qw{refs};
  1         3  
  1         585  
19838 0         0 $expectation->is(q{func_args})->at($text);
19839 0 0       0 unless (defined(
19840             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::func_args(
19841 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
19842             )
19843             )) {
19844              
19845 0 0       0 Parse::RecDescent::_trace(
19846             q{<>},
19847             Parse::RecDescent::_tracefirst($text),
19848             q{function}, $tracelevel
19849             ) if defined $::RD_TRACE;
19850 0         0 $expectation->failed();
19851 0         0 last;
19852             }
19853             Parse::RecDescent::_trace(
19854 0 0       0 q{>>Matched subrule: [func_args]<< (return value: [} . $_tok . q{]},
19855              
19856             Parse::RecDescent::_tracefirst($text),
19857             q{function},
19858             $tracelevel
19859             ) if defined $::RD_TRACE;
19860 0         0 $item{q{func_args}} = $_tok;
19861 0         0 push @item, $_tok;
19862              
19863             }
19864              
19865 0         0 $repcount++;
19866              
19867 0         0 my $savetext = $text;
19868 0         0 my $backtrack;
19869              
19870             # MATCH (OP RIGHTARG)(s)
19871 0         0 while ($repcount < 100000000) {
19872 0         0 $backtrack = 0;
19873              
19874 0 0       0 Parse::RecDescent::_trace(
19875             q{Trying terminal: [/,/]},
19876             Parse::RecDescent::_tracefirst($text),
19877             q{function}, $tracelevel
19878             ) if defined $::RD_TRACE;
19879 0         0 $lastsep = "";
19880 0         0 $expectation->is(q{/,/})->at($text);
19881              
19882 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
19883             and $text =~ s/\A(?:,)//) {
19884              
19885 0         0 $expectation->failed();
19886 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
19887             if defined $::RD_TRACE;
19888              
19889 0         0 last;
19890             }
19891 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
19892             Parse::RecDescent::_tracefirst($text))
19893             if defined $::RD_TRACE;
19894 0         0 push @item, $item{__PATTERN1__} = $&;
19895              
19896 0         0 pop @item;
19897 0 0       0 if (defined $1) {
19898 0         0 push @item, $item{'func_args(s)'} = $1;
19899 0         0 $backtrack = 1;
19900             }
19901              
19902             Parse::RecDescent::_trace(
19903 0 0       0 q{Trying subrule: [func_args]},
19904             Parse::RecDescent::_tracefirst($text),
19905             q{function}, $tracelevel
19906             ) if defined $::RD_TRACE;
19907 0         0 if (1) {
19908 1     1   21 no strict qw{refs};
  1         4  
  1         1201  
19909 0         0 $expectation->is(q{func_args})->at($text);
19910 0 0       0 unless (defined(
19911             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::func_args(
19912 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
19913             )
19914             )) {
19915              
19916 0 0       0 Parse::RecDescent::_trace(
19917             q{<>},
19918             Parse::RecDescent::_tracefirst($text),
19919             q{function}, $tracelevel
19920             ) if defined $::RD_TRACE;
19921 0         0 $expectation->failed();
19922 0         0 last;
19923             }
19924             Parse::RecDescent::_trace(
19925 0 0       0 q{>>Matched subrule: [func_args]<< (return value: [} . $_tok . q{]},
19926              
19927             Parse::RecDescent::_tracefirst($text),
19928             q{function},
19929             $tracelevel
19930             ) if defined $::RD_TRACE;
19931 0         0 $item{q{func_args}} = $_tok;
19932 0         0 push @item, $_tok;
19933              
19934             }
19935              
19936 0         0 $savetext = $text;
19937 0         0 $repcount++;
19938             }
19939 0         0 $text = $savetext;
19940 0 0       0 pop @item if $backtrack;
19941              
19942 0 0       0 unless (@item) { undef $_tok; last }
  0         0  
  0         0  
19943 0         0 $_tok = [@item];
19944 0         0 last;
19945             }
19946              
19947 0 0       0 unless ($repcount >= 1) {
19948 0 0       0 Parse::RecDescent::_trace(
19949             q{<]>>},
19950             Parse::RecDescent::_tracefirst($text),
19951             q{function}, $tracelevel
19952             ) if defined $::RD_TRACE;
19953 0         0 $expectation->failed();
19954 0         0 last;
19955             }
19956             Parse::RecDescent::_trace(
19957 0 0       0 q{>>Matched operator: []<< (return value: [} . qq{@{$_tok||[]}} . q{]},
  0 0       0  
19958             Parse::RecDescent::_tracefirst($text),
19959             q{function}, $tracelevel
19960             ) if defined $::RD_TRACE;
19961              
19962 0   0     0 push @item, $item{'func_args(s)'} = $_tok || [];
19963              
19964 0 0       0 Parse::RecDescent::_trace(
19965             q{Trying terminal: [')']},
19966             Parse::RecDescent::_tracefirst($text),
19967             q{function}, $tracelevel
19968             ) if defined $::RD_TRACE;
19969 0         0 $lastsep = "";
19970 0         0 $expectation->is(q{')'})->at($text);
19971              
19972 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
19973             and $text =~ s/\A\)//) {
19974              
19975 0         0 $expectation->failed();
19976 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
19977             if defined $::RD_TRACE;
19978 0         0 last;
19979             }
19980 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
19981             Parse::RecDescent::_tracefirst($text))
19982             if defined $::RD_TRACE;
19983 0         0 push @item, $item{__STRING2__} = $&;
19984              
19985 0 0       0 Parse::RecDescent::_trace(
19986             q{>>Matched production: [/SYSIBM\\.|/i, or /SYSFUN\\.|/i, or userdefined_function '(' ')']<<},
19987             Parse::RecDescent::_tracefirst($text), q{function}, $tracelevel
19988             ) if defined $::RD_TRACE;
19989 0         0 $_matched = 1;
19990 0         0 last;
19991             }
19992              
19993 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
19994              
19995 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
19996 0 0       0 Parse::RecDescent::_trace(
19997             q{<>},
19998             Parse::RecDescent::_tracefirst($_[1]),
19999             q{function}, $tracelevel
20000             ) if defined $::RD_TRACE;
20001 0         0 return undef;
20002             }
20003 0 0 0     0 if (!defined($return) && defined($score)) {
20004 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{function}, $tracelevel)
20005             if defined $::RD_TRACE;
20006 0         0 $return = $score_return;
20007             }
20008 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
20009 0 0       0 $return = $item[$#item] unless defined $return;
20010 0 0       0 if (defined $::RD_TRACE) {
20011 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{function}, $tracelevel);
20012 0         0 Parse::RecDescent::_trace(
20013             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
20014             Parse::RecDescent::_tracefirst($text),
20015             , q{function}, $tracelevel
20016             );
20017             }
20018 0         0 $_[1] = $text;
20019 0         0 return $return;
20020             }
20021              
20022             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
20023             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_41_of_rule_sysibm_function
20024             {
20025 0     0   0 my $thisparser = $_[0];
20026 1     1   11 use vars q{$tracelevel};
  1         5  
  1         1577  
20027 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
20028 0         0 $ERRORS = 0;
20029 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_41_of_rule_sysibm_function"};
20030              
20031 0 0       0 Parse::RecDescent::_trace(
20032             q{Trying rule: [_alternation_1_of_production_41_of_rule_sysibm_function]},
20033             Parse::RecDescent::_tracefirst($_[1]),
20034             q{_alternation_1_of_production_41_of_rule_sysibm_function}, $tracelevel
20035             ) if defined $::RD_TRACE;
20036              
20037 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
20038              
20039 0         0 my $score;
20040             my $score_return;
20041 0         0 my $_tok;
20042 0         0 my $return = undef;
20043 0         0 my $_matched = 0;
20044 0         0 my $commit = 0;
20045 0         0 my @item = ();
20046 0         0 my %item = ();
20047 0   0     0 my $repeating = defined($_[2]) && $_[2];
20048 0   0     0 my $_noactions = defined($_[3]) && $_[3];
20049 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
20050 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
20051 0         0 my $text;
20052 0         0 my $lastsep = "";
20053 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
20054 0         0 $expectation->at($_[1]);
20055              
20056 0         0 my $thisline;
20057 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
20058              
20059 0   0     0 while (!$_matched && !$commit) {
20060              
20061 0 0       0 Parse::RecDescent::_trace(
20062             q{Trying production: [/INTEGER/i]},
20063             Parse::RecDescent::_tracefirst($_[1]),
20064             q{_alternation_1_of_production_41_of_rule_sysibm_function}, $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{_alternation_1_of_production_41_of_rule_sysibm_function});
20070 0         0 %item = (__RULE__ => q{_alternation_1_of_production_41_of_rule_sysibm_function});
20071 0         0 my $repcount = 0;
20072              
20073 0 0       0 Parse::RecDescent::_trace(
20074             q{Trying terminal: [/INTEGER/i]},
20075             Parse::RecDescent::_tracefirst($text),
20076             q{_alternation_1_of_production_41_of_rule_sysibm_function}, $tracelevel
20077             ) if defined $::RD_TRACE;
20078 0         0 $lastsep = "";
20079 0         0 $expectation->is(q{})->at($text);
20080              
20081 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
20082             and $text =~ s/\A(?:INTEGER)//i) {
20083              
20084 0         0 $expectation->failed();
20085 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
20086             if defined $::RD_TRACE;
20087              
20088 0         0 last;
20089             }
20090 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
20091             Parse::RecDescent::_tracefirst($text))
20092             if defined $::RD_TRACE;
20093 0         0 push @item, $item{__PATTERN1__} = $&;
20094              
20095 0 0       0 Parse::RecDescent::_trace(
20096             q{>>Matched production: [/INTEGER/i]<<},
20097             Parse::RecDescent::_tracefirst($text),
20098             q{_alternation_1_of_production_41_of_rule_sysibm_function}, $tracelevel
20099             ) if defined $::RD_TRACE;
20100 0         0 $_matched = 1;
20101 0         0 last;
20102             }
20103              
20104 0   0     0 while (!$_matched && !$commit) {
20105              
20106 0 0       0 Parse::RecDescent::_trace(
20107             q{Trying production: [/INT/]},
20108             Parse::RecDescent::_tracefirst($_[1]),
20109             q{_alternation_1_of_production_41_of_rule_sysibm_function}, $tracelevel
20110             ) if defined $::RD_TRACE;
20111 0         0 my $thisprod = $thisrule->{"prods"}[1];
20112 0         0 $text = $_[1];
20113 0         0 my $_savetext;
20114 0         0 @item = (q{_alternation_1_of_production_41_of_rule_sysibm_function});
20115 0         0 %item = (__RULE__ => q{_alternation_1_of_production_41_of_rule_sysibm_function});
20116 0         0 my $repcount = 0;
20117              
20118 0 0       0 Parse::RecDescent::_trace(
20119             q{Trying terminal: [/INT/]},
20120             Parse::RecDescent::_tracefirst($text),
20121             q{_alternation_1_of_production_41_of_rule_sysibm_function}, $tracelevel
20122             ) if defined $::RD_TRACE;
20123 0         0 $lastsep = "";
20124 0         0 $expectation->is(q{})->at($text);
20125              
20126 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
20127             and $text =~ s/\A(?:INT)//) {
20128              
20129 0         0 $expectation->failed();
20130 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
20131             if defined $::RD_TRACE;
20132              
20133 0         0 last;
20134             }
20135 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
20136             Parse::RecDescent::_tracefirst($text))
20137             if defined $::RD_TRACE;
20138 0         0 push @item, $item{__PATTERN1__} = $&;
20139              
20140 0 0       0 Parse::RecDescent::_trace(
20141             q{>>Matched production: [/INT/]<<},
20142             Parse::RecDescent::_tracefirst($text),
20143             q{_alternation_1_of_production_41_of_rule_sysibm_function}, $tracelevel
20144             ) if defined $::RD_TRACE;
20145 0         0 $_matched = 1;
20146 0         0 last;
20147             }
20148              
20149 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
20150              
20151 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
20152 0 0       0 Parse::RecDescent::_trace(
20153             q{<>},
20154             Parse::RecDescent::_tracefirst($_[1]),
20155             q{_alternation_1_of_production_41_of_rule_sysibm_function}, $tracelevel
20156             ) if defined $::RD_TRACE;
20157 0         0 return undef;
20158             }
20159 0 0 0     0 if (!defined($return) && defined($score)) {
20160 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
20161             "", q{_alternation_1_of_production_41_of_rule_sysibm_function}, $tracelevel)
20162             if defined $::RD_TRACE;
20163 0         0 $return = $score_return;
20164             }
20165 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
20166 0 0       0 $return = $item[$#item] unless defined $return;
20167 0 0       0 if (defined $::RD_TRACE) {
20168 0         0 Parse::RecDescent::_trace(
20169             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
20170             q{_alternation_1_of_production_41_of_rule_sysibm_function}, $tracelevel
20171             );
20172 0         0 Parse::RecDescent::_trace(
20173             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
20174             Parse::RecDescent::_tracefirst($text),
20175             , q{_alternation_1_of_production_41_of_rule_sysibm_function}, $tracelevel
20176             );
20177             }
20178 0         0 $_[1] = $text;
20179 0         0 return $return;
20180             }
20181              
20182             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
20183             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_case_expression {
20184 0     0   0 my $thisparser = $_[0];
20185 1     1   11 use vars q{$tracelevel};
  1         3  
  1         490  
20186 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
20187 0         0 $ERRORS = 0;
20188 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_case_expression"};
20189              
20190 0 0       0 Parse::RecDescent::_trace(
20191             q{Trying rule: [_alternation_1_of_production_1_of_rule_case_expression]},
20192             Parse::RecDescent::_tracefirst($_[1]),
20193             q{_alternation_1_of_production_1_of_rule_case_expression}, $tracelevel
20194             ) if defined $::RD_TRACE;
20195              
20196 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
20197              
20198 0         0 my $score;
20199             my $score_return;
20200 0         0 my $_tok;
20201 0         0 my $return = undef;
20202 0         0 my $_matched = 0;
20203 0         0 my $commit = 0;
20204 0         0 my @item = ();
20205 0         0 my %item = ();
20206 0   0     0 my $repeating = defined($_[2]) && $_[2];
20207 0   0     0 my $_noactions = defined($_[3]) && $_[3];
20208 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
20209 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
20210 0         0 my $text;
20211 0         0 my $lastsep = "";
20212 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
20213 0         0 $expectation->at($_[1]);
20214              
20215 0         0 my $thisline;
20216 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
20217              
20218 0   0     0 while (!$_matched && !$commit) {
20219              
20220 0 0       0 Parse::RecDescent::_trace(
20221             q{Trying production: [searched_when_clause]},
20222             Parse::RecDescent::_tracefirst($_[1]),
20223             q{_alternation_1_of_production_1_of_rule_case_expression}, $tracelevel
20224             ) if defined $::RD_TRACE;
20225 0         0 my $thisprod = $thisrule->{"prods"}[0];
20226 0         0 $text = $_[1];
20227 0         0 my $_savetext;
20228 0         0 @item = (q{_alternation_1_of_production_1_of_rule_case_expression});
20229 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_case_expression});
20230 0         0 my $repcount = 0;
20231              
20232 0 0       0 Parse::RecDescent::_trace(
20233             q{Trying subrule: [searched_when_clause]},
20234             Parse::RecDescent::_tracefirst($text),
20235             q{_alternation_1_of_production_1_of_rule_case_expression}, $tracelevel
20236             ) if defined $::RD_TRACE;
20237 0         0 if (1) {
20238 1     1   11 no strict qw{refs};
  1         3  
  1         502  
20239 0         0 $expectation->is(q{})->at($text);
20240 0 0       0 unless (defined(
20241             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::searched_when_clause(
20242 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
20243             )
20244             )) {
20245              
20246 0 0       0 Parse::RecDescent::_trace(
20247             q{<>},
20248             Parse::RecDescent::_tracefirst($text),
20249             q{_alternation_1_of_production_1_of_rule_case_expression}, $tracelevel
20250             ) if defined $::RD_TRACE;
20251 0         0 $expectation->failed();
20252 0         0 last;
20253             }
20254             Parse::RecDescent::_trace(
20255 0 0       0 q{>>Matched subrule: [searched_when_clause]<< (return value: [} . $_tok . q{]},
20256              
20257             Parse::RecDescent::_tracefirst($text),
20258             q{_alternation_1_of_production_1_of_rule_case_expression},
20259             $tracelevel
20260             ) if defined $::RD_TRACE;
20261 0         0 $item{q{searched_when_clause}} = $_tok;
20262 0         0 push @item, $_tok;
20263              
20264             }
20265              
20266             Parse::RecDescent::_trace(
20267 0 0       0 q{>>Matched production: [searched_when_clause]<<},
20268             Parse::RecDescent::_tracefirst($text),
20269             q{_alternation_1_of_production_1_of_rule_case_expression}, $tracelevel
20270             ) if defined $::RD_TRACE;
20271 0         0 $_matched = 1;
20272 0         0 last;
20273             }
20274              
20275 0   0     0 while (!$_matched && !$commit) {
20276              
20277 0 0       0 Parse::RecDescent::_trace(
20278             q{Trying production: [simple_when_clause]},
20279             Parse::RecDescent::_tracefirst($_[1]),
20280             q{_alternation_1_of_production_1_of_rule_case_expression}, $tracelevel
20281             ) if defined $::RD_TRACE;
20282 0         0 my $thisprod = $thisrule->{"prods"}[1];
20283 0         0 $text = $_[1];
20284 0         0 my $_savetext;
20285 0         0 @item = (q{_alternation_1_of_production_1_of_rule_case_expression});
20286 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_case_expression});
20287 0         0 my $repcount = 0;
20288              
20289 0 0       0 Parse::RecDescent::_trace(
20290             q{Trying subrule: [simple_when_clause]},
20291             Parse::RecDescent::_tracefirst($text),
20292             q{_alternation_1_of_production_1_of_rule_case_expression}, $tracelevel
20293             ) if defined $::RD_TRACE;
20294 0         0 if (1) {
20295 1     1   11 no strict qw{refs};
  1         2  
  1         725  
20296 0         0 $expectation->is(q{})->at($text);
20297 0 0       0 unless (defined(
20298             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::simple_when_clause(
20299 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
20300             )
20301             )) {
20302              
20303 0 0       0 Parse::RecDescent::_trace(
20304             q{<>},
20305             Parse::RecDescent::_tracefirst($text),
20306             q{_alternation_1_of_production_1_of_rule_case_expression}, $tracelevel
20307             ) if defined $::RD_TRACE;
20308 0         0 $expectation->failed();
20309 0         0 last;
20310             }
20311             Parse::RecDescent::_trace(
20312 0 0       0 q{>>Matched subrule: [simple_when_clause]<< (return value: [} . $_tok . q{]},
20313              
20314             Parse::RecDescent::_tracefirst($text),
20315             q{_alternation_1_of_production_1_of_rule_case_expression},
20316             $tracelevel
20317             ) if defined $::RD_TRACE;
20318 0         0 $item{q{simple_when_clause}} = $_tok;
20319 0         0 push @item, $_tok;
20320              
20321             }
20322              
20323             Parse::RecDescent::_trace(
20324 0 0       0 q{>>Matched production: [simple_when_clause]<<},
20325             Parse::RecDescent::_tracefirst($text),
20326             q{_alternation_1_of_production_1_of_rule_case_expression}, $tracelevel
20327             ) if defined $::RD_TRACE;
20328 0         0 $_matched = 1;
20329 0         0 last;
20330             }
20331              
20332 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
20333              
20334 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
20335 0 0       0 Parse::RecDescent::_trace(
20336             q{<>},
20337             Parse::RecDescent::_tracefirst($_[1]),
20338             q{_alternation_1_of_production_1_of_rule_case_expression}, $tracelevel
20339             ) if defined $::RD_TRACE;
20340 0         0 return undef;
20341             }
20342 0 0 0     0 if (!defined($return) && defined($score)) {
20343 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
20344             "", q{_alternation_1_of_production_1_of_rule_case_expression}, $tracelevel)
20345             if defined $::RD_TRACE;
20346 0         0 $return = $score_return;
20347             }
20348 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
20349 0 0       0 $return = $item[$#item] unless defined $return;
20350 0 0       0 if (defined $::RD_TRACE) {
20351 0         0 Parse::RecDescent::_trace(
20352             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
20353             q{_alternation_1_of_production_1_of_rule_case_expression}, $tracelevel
20354             );
20355 0         0 Parse::RecDescent::_trace(
20356             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
20357             Parse::RecDescent::_tracefirst($text),
20358             , q{_alternation_1_of_production_1_of_rule_case_expression}, $tracelevel
20359             );
20360             }
20361 0         0 $_[1] = $text;
20362 0         0 return $return;
20363             }
20364              
20365             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
20366             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_window_order_clause
20367             {
20368 0     0   0 my $thisparser = $_[0];
20369 1     1   11 use vars q{$tracelevel};
  1         3  
  1         536  
20370 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
20371 0         0 $ERRORS = 0;
20372 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_window_order_clause"};
20373              
20374 0 0       0 Parse::RecDescent::_trace(
20375             q{Trying rule: [_alternation_1_of_production_1_of_rule_window_order_clause]},
20376             Parse::RecDescent::_tracefirst($_[1]),
20377             q{_alternation_1_of_production_1_of_rule_window_order_clause}, $tracelevel
20378             ) if defined $::RD_TRACE;
20379              
20380 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
20381              
20382 0         0 my $score;
20383             my $score_return;
20384 0         0 my $_tok;
20385 0         0 my $return = undef;
20386 0         0 my $_matched = 0;
20387 0         0 my $commit = 0;
20388 0         0 my @item = ();
20389 0         0 my %item = ();
20390 0   0     0 my $repeating = defined($_[2]) && $_[2];
20391 0   0     0 my $_noactions = defined($_[3]) && $_[3];
20392 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
20393 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
20394 0         0 my $text;
20395 0         0 my $lastsep = "";
20396 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
20397 0         0 $expectation->at($_[1]);
20398              
20399 0         0 my $thisline;
20400 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
20401              
20402 0   0     0 while (!$_matched && !$commit) {
20403              
20404 0 0       0 Parse::RecDescent::_trace(
20405             q{Trying production: [sort_key_expression asc_option, or desc_option]},
20406             Parse::RecDescent::_tracefirst($_[1]),
20407             q{_alternation_1_of_production_1_of_rule_window_order_clause}, $tracelevel
20408             ) if defined $::RD_TRACE;
20409 0         0 my $thisprod = $thisrule->{"prods"}[0];
20410 0         0 $text = $_[1];
20411 0         0 my $_savetext;
20412 0         0 @item = (q{_alternation_1_of_production_1_of_rule_window_order_clause});
20413 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_window_order_clause});
20414 0         0 my $repcount = 0;
20415              
20416 0 0       0 Parse::RecDescent::_trace(
20417             q{Trying subrule: [sort_key_expression]},
20418             Parse::RecDescent::_tracefirst($text),
20419             q{_alternation_1_of_production_1_of_rule_window_order_clause}, $tracelevel
20420             ) if defined $::RD_TRACE;
20421 0         0 if (1) {
20422 1     1   10 no strict qw{refs};
  1         4  
  1         924  
20423 0         0 $expectation->is(q{})->at($text);
20424 0 0       0 unless (defined(
20425             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sort_key_expression(
20426 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
20427             )
20428             )) {
20429              
20430 0 0       0 Parse::RecDescent::_trace(
20431             q{<>},
20432             Parse::RecDescent::_tracefirst($text),
20433             q{_alternation_1_of_production_1_of_rule_window_order_clause}, $tracelevel
20434             ) if defined $::RD_TRACE;
20435 0         0 $expectation->failed();
20436 0         0 last;
20437             }
20438             Parse::RecDescent::_trace(
20439 0 0       0 q{>>Matched subrule: [sort_key_expression]<< (return value: [} . $_tok . q{]},
20440              
20441             Parse::RecDescent::_tracefirst($text),
20442             q{_alternation_1_of_production_1_of_rule_window_order_clause},
20443             $tracelevel
20444             ) if defined $::RD_TRACE;
20445 0         0 $item{q{sort_key_expression}} = $_tok;
20446 0         0 push @item, $_tok;
20447              
20448             }
20449              
20450             Parse::RecDescent::_trace(
20451 0 0       0 q{Trying repeated subrule: [asc_option, or desc_option]},
20452             Parse::RecDescent::_tracefirst($text),
20453             q{_alternation_1_of_production_1_of_rule_window_order_clause}, $tracelevel
20454             ) if defined $::RD_TRACE;
20455 0         0 $expectation->is(q{asc_option, or desc_option})->at($text);
20456              
20457 0 0       0 unless (defined(
20458             $_tok = $thisparser->_parserepeat(
20459             $text,
20460             \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause,
20461             0,
20462             1,
20463             $_noactions,
20464             $expectation,
20465             undef
20466             )
20467             )) {
20468 0 0       0 Parse::RecDescent::_trace(
20469             q{<>},
20470             Parse::RecDescent::_tracefirst($text),
20471             q{_alternation_1_of_production_1_of_rule_window_order_clause}, $tracelevel
20472             ) if defined $::RD_TRACE;
20473 0         0 last;
20474             }
20475             Parse::RecDescent::_trace(
20476 0 0       0 q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause]<< (}
20477             . @$_tok
20478             . q{ times)},
20479              
20480             Parse::RecDescent::_tracefirst($text),
20481             q{_alternation_1_of_production_1_of_rule_window_order_clause},
20482             $tracelevel
20483             ) if defined $::RD_TRACE;
20484 0         0 $item{q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause(?)}}
20485             = $_tok;
20486 0         0 push @item, $_tok;
20487              
20488 0 0       0 Parse::RecDescent::_trace(
20489             q{>>Matched production: [sort_key_expression asc_option, or desc_option]<<},
20490             Parse::RecDescent::_tracefirst($text),
20491             q{_alternation_1_of_production_1_of_rule_window_order_clause}, $tracelevel
20492             ) if defined $::RD_TRACE;
20493 0         0 $_matched = 1;
20494 0         0 last;
20495             }
20496              
20497 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
20498              
20499 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
20500 0 0       0 Parse::RecDescent::_trace(
20501             q{<>},
20502             Parse::RecDescent::_tracefirst($_[1]),
20503             q{_alternation_1_of_production_1_of_rule_window_order_clause}, $tracelevel
20504             ) if defined $::RD_TRACE;
20505 0         0 return undef;
20506             }
20507 0 0 0     0 if (!defined($return) && defined($score)) {
20508 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
20509             "", q{_alternation_1_of_production_1_of_rule_window_order_clause}, $tracelevel)
20510             if defined $::RD_TRACE;
20511 0         0 $return = $score_return;
20512             }
20513 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
20514 0 0       0 $return = $item[$#item] unless defined $return;
20515 0 0       0 if (defined $::RD_TRACE) {
20516 0         0 Parse::RecDescent::_trace(
20517             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
20518             q{_alternation_1_of_production_1_of_rule_window_order_clause}, $tracelevel
20519             );
20520 0         0 Parse::RecDescent::_trace(
20521             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
20522             Parse::RecDescent::_tracefirst($text),
20523             , q{_alternation_1_of_production_1_of_rule_window_order_clause}, $tracelevel
20524             );
20525             }
20526 0         0 $_[1] = $text;
20527 0         0 return $return;
20528             }
20529              
20530             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
20531             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::create {
20532 1     1   3 my $thisparser = $_[0];
20533 1     1   11 use vars q{$tracelevel};
  1         3  
  1         498  
20534 1   50     5 local $tracelevel = ($tracelevel || 0) + 1;
20535 1         26 $ERRORS = 0;
20536 1         6 my $thisrule = $thisparser->{"rules"}{"create"};
20537              
20538 1 50       4 Parse::RecDescent::_trace(q{Trying rule: [create]}, Parse::RecDescent::_tracefirst($_[1]), q{create}, $tracelevel)
20539             if defined $::RD_TRACE;
20540              
20541 1         2 my $err_at = @{ $thisparser->{errors} };
  1         5  
20542              
20543 1         4 my $score;
20544             my $score_return;
20545 1         0 my $_tok;
20546 1         19 my $return = undef;
20547 1         3 my $_matched = 0;
20548 1         2 my $commit = 0;
20549 1         3 my @item = ();
20550 1         3 my %item = ();
20551 1   33     7 my $repeating = defined($_[2]) && $_[2];
20552 1   33     7 my $_noactions = defined($_[3]) && $_[3];
20553 1 50       5 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  1         3  
  1         5  
20554 1 50       5 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
20555 1         2 my $text;
20556 1         2 my $lastsep = "";
20557 1         6 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
20558 1         85 $expectation->at($_[1]);
20559              
20560 1         5 my $thisline;
20561 1         6 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
20562              
20563 1   33     73 while (!$_matched && !$commit) {
20564              
20565 1 50       6 Parse::RecDescent::_trace(
20566             q{Trying production: [CREATE TRIGGER trigger_name before type /ON/i table_name reference_b /FOR EACH ROW/i 'MODE DB2SQL' triggered_action]},
20567             Parse::RecDescent::_tracefirst($_[1]), q{create}, $tracelevel
20568             ) if defined $::RD_TRACE;
20569 1         4 my $thisprod = $thisrule->{"prods"}[0];
20570 1         3 $text = $_[1];
20571 1         2 my $_savetext;
20572 1         3 @item = (q{create});
20573 1         3 %item = (__RULE__ => q{create});
20574 1         2 my $repcount = 0;
20575              
20576 1 50       4 Parse::RecDescent::_trace(
20577             q{Trying subrule: [CREATE]},
20578             Parse::RecDescent::_tracefirst($text),
20579             q{create}, $tracelevel
20580             ) if defined $::RD_TRACE;
20581 1         2 if (1) {
20582 1     1   12 no strict qw{refs};
  1         5  
  1         284  
20583 1         5 $expectation->is(q{})->at($text);
20584 1 50       19 unless (defined(
20585             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::CREATE(
20586 1     1   4 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
20587             )
20588             )) {
20589              
20590 1 50       3 Parse::RecDescent::_trace(
20591             q{<>},
20592             Parse::RecDescent::_tracefirst($text),
20593             q{create}, $tracelevel
20594             ) if defined $::RD_TRACE;
20595 1         5 $expectation->failed();
20596 1         6 last;
20597             }
20598             Parse::RecDescent::_trace(
20599 0 0       0 q{>>Matched subrule: [CREATE]<< (return value: [} . $_tok . q{]},
20600              
20601             Parse::RecDescent::_tracefirst($text),
20602             q{create},
20603             $tracelevel
20604             ) if defined $::RD_TRACE;
20605 0         0 $item{q{CREATE}} = $_tok;
20606 0         0 push @item, $_tok;
20607              
20608             }
20609              
20610             Parse::RecDescent::_trace(
20611 0 0       0 q{Trying subrule: [TRIGGER]},
20612             Parse::RecDescent::_tracefirst($text),
20613             q{create}, $tracelevel
20614             ) if defined $::RD_TRACE;
20615 0         0 if (1) {
20616 1     1   11 no strict qw{refs};
  1         2  
  1         318  
20617 0         0 $expectation->is(q{TRIGGER})->at($text);
20618 0 0       0 unless (defined(
20619             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::TRIGGER(
20620 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
20621             )
20622             )) {
20623              
20624 0 0       0 Parse::RecDescent::_trace(
20625             q{<>},
20626             Parse::RecDescent::_tracefirst($text),
20627             q{create}, $tracelevel
20628             ) if defined $::RD_TRACE;
20629 0         0 $expectation->failed();
20630 0         0 last;
20631             }
20632             Parse::RecDescent::_trace(
20633 0 0       0 q{>>Matched subrule: [TRIGGER]<< (return value: [} . $_tok . q{]},
20634              
20635             Parse::RecDescent::_tracefirst($text),
20636             q{create},
20637             $tracelevel
20638             ) if defined $::RD_TRACE;
20639 0         0 $item{q{TRIGGER}} = $_tok;
20640 0         0 push @item, $_tok;
20641              
20642             }
20643              
20644             Parse::RecDescent::_trace(
20645 0 0       0 q{Trying subrule: [trigger_name]},
20646             Parse::RecDescent::_tracefirst($text),
20647             q{create}, $tracelevel
20648             ) if defined $::RD_TRACE;
20649 0         0 if (1) {
20650 1     1   11 no strict qw{refs};
  1         6  
  1         249  
20651 0         0 $expectation->is(q{trigger_name})->at($text);
20652 0 0       0 unless (defined(
20653             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::trigger_name(
20654 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
20655             )
20656             )) {
20657              
20658 0 0       0 Parse::RecDescent::_trace(
20659             q{<>},
20660             Parse::RecDescent::_tracefirst($text),
20661             q{create}, $tracelevel
20662             ) if defined $::RD_TRACE;
20663 0         0 $expectation->failed();
20664 0         0 last;
20665             }
20666             Parse::RecDescent::_trace(
20667 0 0       0 q{>>Matched subrule: [trigger_name]<< (return value: [} . $_tok . q{]},
20668              
20669             Parse::RecDescent::_tracefirst($text),
20670             q{create},
20671             $tracelevel
20672             ) if defined $::RD_TRACE;
20673 0         0 $item{q{trigger_name}} = $_tok;
20674 0         0 push @item, $_tok;
20675              
20676             }
20677              
20678             Parse::RecDescent::_trace(
20679 0 0       0 q{Trying subrule: [before]},
20680             Parse::RecDescent::_tracefirst($text),
20681             q{create}, $tracelevel
20682             ) if defined $::RD_TRACE;
20683 0         0 if (1) {
20684 1     1   10 no strict qw{refs};
  1         2  
  1         317  
20685 0         0 $expectation->is(q{before})->at($text);
20686 0 0       0 unless (defined(
20687             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::before(
20688 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
20689             )
20690             )) {
20691              
20692 0 0       0 Parse::RecDescent::_trace(
20693             q{<>},
20694             Parse::RecDescent::_tracefirst($text),
20695             q{create}, $tracelevel
20696             ) if defined $::RD_TRACE;
20697 0         0 $expectation->failed();
20698 0         0 last;
20699             }
20700             Parse::RecDescent::_trace(
20701 0 0       0 q{>>Matched subrule: [before]<< (return value: [} . $_tok . q{]},
20702              
20703             Parse::RecDescent::_tracefirst($text),
20704             q{create},
20705             $tracelevel
20706             ) if defined $::RD_TRACE;
20707 0         0 $item{q{before}} = $_tok;
20708 0         0 push @item, $_tok;
20709              
20710             }
20711              
20712             Parse::RecDescent::_trace(
20713 0 0       0 q{Trying subrule: [type]},
20714             Parse::RecDescent::_tracefirst($text),
20715             q{create}, $tracelevel
20716             ) if defined $::RD_TRACE;
20717 0         0 if (1) {
20718 1     1   9 no strict qw{refs};
  1         3  
  1         432  
20719 0         0 $expectation->is(q{type})->at($text);
20720 0 0       0 unless (defined(
20721             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::type(
20722 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
20723             )
20724             )) {
20725              
20726 0 0       0 Parse::RecDescent::_trace(
20727             q{<>},
20728             Parse::RecDescent::_tracefirst($text),
20729             q{create}, $tracelevel
20730             ) if defined $::RD_TRACE;
20731 0         0 $expectation->failed();
20732 0         0 last;
20733             }
20734             Parse::RecDescent::_trace(
20735 0 0       0 q{>>Matched subrule: [type]<< (return value: [} . $_tok . q{]},
20736              
20737             Parse::RecDescent::_tracefirst($text),
20738             q{create},
20739             $tracelevel
20740             ) if defined $::RD_TRACE;
20741 0         0 $item{q{type}} = $_tok;
20742 0         0 push @item, $_tok;
20743              
20744             }
20745              
20746             Parse::RecDescent::_trace(
20747 0 0       0 q{Trying terminal: [/ON/i]},
20748             Parse::RecDescent::_tracefirst($text),
20749             q{create}, $tracelevel
20750             ) if defined $::RD_TRACE;
20751 0         0 $lastsep = "";
20752 0         0 $expectation->is(q{/ON/i})->at($text);
20753              
20754 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
20755             and $text =~ s/\A(?:ON)//i) {
20756              
20757 0         0 $expectation->failed();
20758 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
20759             if defined $::RD_TRACE;
20760              
20761 0         0 last;
20762             }
20763 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
20764             Parse::RecDescent::_tracefirst($text))
20765             if defined $::RD_TRACE;
20766 0         0 push @item, $item{__PATTERN1__} = $&;
20767              
20768 0 0       0 Parse::RecDescent::_trace(
20769             q{Trying subrule: [table_name]},
20770             Parse::RecDescent::_tracefirst($text),
20771             q{create}, $tracelevel
20772             ) if defined $::RD_TRACE;
20773 0         0 if (1) {
20774 1     1   11 no strict qw{refs};
  1         2  
  1         846  
20775 0         0 $expectation->is(q{table_name})->at($text);
20776 0 0       0 unless (defined(
20777             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::table_name(
20778 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
20779             )
20780             )) {
20781              
20782 0 0       0 Parse::RecDescent::_trace(
20783             q{<>},
20784             Parse::RecDescent::_tracefirst($text),
20785             q{create}, $tracelevel
20786             ) if defined $::RD_TRACE;
20787 0         0 $expectation->failed();
20788 0         0 last;
20789             }
20790             Parse::RecDescent::_trace(
20791 0 0       0 q{>>Matched subrule: [table_name]<< (return value: [} . $_tok . q{]},
20792              
20793             Parse::RecDescent::_tracefirst($text),
20794             q{create},
20795             $tracelevel
20796             ) if defined $::RD_TRACE;
20797 0         0 $item{q{table_name}} = $_tok;
20798 0         0 push @item, $_tok;
20799              
20800             }
20801              
20802             Parse::RecDescent::_trace(
20803 0 0       0 q{Trying repeated subrule: [reference_b]},
20804             Parse::RecDescent::_tracefirst($text),
20805             q{create}, $tracelevel
20806             ) if defined $::RD_TRACE;
20807 0         0 $expectation->is(q{reference_b})->at($text);
20808              
20809 0 0       0 unless (defined(
20810             $_tok = $thisparser->_parserepeat(
20811             $text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::reference_b,
20812             0, 1, $_noactions, $expectation, undef
20813             )
20814             )) {
20815 0 0       0 Parse::RecDescent::_trace(
20816             q{<>},
20817             Parse::RecDescent::_tracefirst($text),
20818             q{create}, $tracelevel
20819             ) if defined $::RD_TRACE;
20820 0         0 last;
20821             }
20822             Parse::RecDescent::_trace(
20823 0 0       0 q{>>Matched repeated subrule: [reference_b]<< (} . @$_tok . q{ times)},
20824              
20825             Parse::RecDescent::_tracefirst($text),
20826             q{create},
20827             $tracelevel
20828             ) if defined $::RD_TRACE;
20829 0         0 $item{q{reference_b(?)}} = $_tok;
20830 0         0 push @item, $_tok;
20831              
20832 0 0       0 Parse::RecDescent::_trace(
20833             q{Trying terminal: [/FOR EACH ROW/i]},
20834             Parse::RecDescent::_tracefirst($text),
20835             q{create}, $tracelevel
20836             ) if defined $::RD_TRACE;
20837 0         0 $lastsep = "";
20838 0         0 $expectation->is(q{/FOR EACH ROW/i})->at($text);
20839              
20840 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
20841             and $text =~ s/\A(?:FOR EACH ROW)//i) {
20842              
20843 0         0 $expectation->failed();
20844 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
20845             if defined $::RD_TRACE;
20846              
20847 0         0 last;
20848             }
20849 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
20850             Parse::RecDescent::_tracefirst($text))
20851             if defined $::RD_TRACE;
20852 0         0 push @item, $item{__PATTERN2__} = $&;
20853              
20854 0 0       0 Parse::RecDescent::_trace(
20855             q{Trying terminal: ['MODE DB2SQL']},
20856             Parse::RecDescent::_tracefirst($text),
20857             q{create}, $tracelevel
20858             ) if defined $::RD_TRACE;
20859 0         0 $lastsep = "";
20860 0         0 $expectation->is(q{'MODE DB2SQL'})->at($text);
20861              
20862 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
20863             and $text =~ s/\AMODE\ DB2SQL//) {
20864              
20865 0         0 $expectation->failed();
20866 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
20867             if defined $::RD_TRACE;
20868 0         0 last;
20869             }
20870 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
20871             Parse::RecDescent::_tracefirst($text))
20872             if defined $::RD_TRACE;
20873 0         0 push @item, $item{__STRING1__} = $&;
20874              
20875 0 0       0 Parse::RecDescent::_trace(
20876             q{Trying subrule: [triggered_action]},
20877             Parse::RecDescent::_tracefirst($text),
20878             q{create}, $tracelevel
20879             ) if defined $::RD_TRACE;
20880 0         0 if (1) {
20881 1     1   10 no strict qw{refs};
  1         3  
  1         732  
20882 0         0 $expectation->is(q{triggered_action})->at($text);
20883 0 0       0 unless (defined(
20884             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::triggered_action(
20885 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
20886             )
20887             )) {
20888              
20889 0 0       0 Parse::RecDescent::_trace(
20890             q{<>},
20891             Parse::RecDescent::_tracefirst($text),
20892             q{create}, $tracelevel
20893             ) if defined $::RD_TRACE;
20894 0         0 $expectation->failed();
20895 0         0 last;
20896             }
20897             Parse::RecDescent::_trace(
20898 0 0       0 q{>>Matched subrule: [triggered_action]<< (return value: [} . $_tok . q{]},
20899              
20900             Parse::RecDescent::_tracefirst($text),
20901             q{create},
20902             $tracelevel
20903             ) if defined $::RD_TRACE;
20904 0         0 $item{q{triggered_action}} = $_tok;
20905 0         0 push @item, $_tok;
20906              
20907             }
20908              
20909 0 0       0 Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{create}, $tracelevel)
20910             if defined $::RD_TRACE;
20911              
20912 0 0       0 $_tok = ($_noactions) ? 0 : do {
20913 0         0 my $table_name = $item{'table_name'}{'name'};
20914             $return = {
20915             table => $table_name,
20916             schema => $item{'trigger_name'}{'schema'},
20917             name => $item{'trigger_name'}{'name'},
20918             when => 'before',
20919             db_event => $item{'type'}->{'event'},
20920             fields => $item{'type'}{'fields'},
20921             condition => $item{'triggered_action'}{'condition'},
20922             reference => $item{'reference_b'},
20923             granularity => $item[9],
20924 0         0 action => $item{'triggered_action'}{'statement'}
20925             };
20926              
20927 0         0 push @triggers, $return;
20928             };
20929 0 0       0 unless (defined $_tok) {
20930 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
20931             if defined $::RD_TRACE;
20932 0         0 last;
20933             }
20934 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])},
20935             Parse::RecDescent::_tracefirst($text))
20936             if defined $::RD_TRACE;
20937 0         0 push @item, $_tok;
20938 0         0 $item{__ACTION1__} = $_tok;
20939              
20940 0 0       0 Parse::RecDescent::_trace(
20941             q{>>Matched production: [CREATE TRIGGER trigger_name before type /ON/i table_name reference_b /FOR EACH ROW/i 'MODE DB2SQL' triggered_action]<<},
20942             Parse::RecDescent::_tracefirst($text), q{create}, $tracelevel
20943             ) if defined $::RD_TRACE;
20944 0         0 $_matched = 1;
20945 0         0 last;
20946             }
20947              
20948 1   33     11 while (!$_matched && !$commit) {
20949              
20950 1 50       4 Parse::RecDescent::_trace(
20951             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]},
20952             Parse::RecDescent::_tracefirst($_[1]), q{create}, $tracelevel
20953             ) if defined $::RD_TRACE;
20954 1         3 my $thisprod = $thisrule->{"prods"}[1];
20955 1         4 $text = $_[1];
20956 1         2 my $_savetext;
20957 1         5 @item = (q{create});
20958 1         4 %item = (__RULE__ => q{create});
20959 1         3 my $repcount = 0;
20960              
20961 1 50       4 Parse::RecDescent::_trace(
20962             q{Trying subrule: [CREATE]},
20963             Parse::RecDescent::_tracefirst($text),
20964             q{create}, $tracelevel
20965             ) if defined $::RD_TRACE;
20966 1         2 if (1) {
20967 1     1   11 no strict qw{refs};
  1         3  
  1         294  
20968 1         5 $expectation->is(q{})->at($text);
20969 1 50       15 unless (defined(
20970             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::CREATE(
20971 1     1   3 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
20972             )
20973             )) {
20974              
20975 1 50       4 Parse::RecDescent::_trace(
20976             q{<>},
20977             Parse::RecDescent::_tracefirst($text),
20978             q{create}, $tracelevel
20979             ) if defined $::RD_TRACE;
20980 1         7 $expectation->failed();
20981 1         5 last;
20982             }
20983             Parse::RecDescent::_trace(
20984 0 0       0 q{>>Matched subrule: [CREATE]<< (return value: [} . $_tok . q{]},
20985              
20986             Parse::RecDescent::_tracefirst($text),
20987             q{create},
20988             $tracelevel
20989             ) if defined $::RD_TRACE;
20990 0         0 $item{q{CREATE}} = $_tok;
20991 0         0 push @item, $_tok;
20992              
20993             }
20994              
20995             Parse::RecDescent::_trace(
20996 0 0       0 q{Trying subrule: [TRIGGER]},
20997             Parse::RecDescent::_tracefirst($text),
20998             q{create}, $tracelevel
20999             ) if defined $::RD_TRACE;
21000 0         0 if (1) {
21001 1     1   10 no strict qw{refs};
  1         3  
  1         255  
21002 0         0 $expectation->is(q{TRIGGER})->at($text);
21003 0 0       0 unless (defined(
21004             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::TRIGGER(
21005 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
21006             )
21007             )) {
21008              
21009 0 0       0 Parse::RecDescent::_trace(
21010             q{<>},
21011             Parse::RecDescent::_tracefirst($text),
21012             q{create}, $tracelevel
21013             ) if defined $::RD_TRACE;
21014 0         0 $expectation->failed();
21015 0         0 last;
21016             }
21017             Parse::RecDescent::_trace(
21018 0 0       0 q{>>Matched subrule: [TRIGGER]<< (return value: [} . $_tok . q{]},
21019              
21020             Parse::RecDescent::_tracefirst($text),
21021             q{create},
21022             $tracelevel
21023             ) if defined $::RD_TRACE;
21024 0         0 $item{q{TRIGGER}} = $_tok;
21025 0         0 push @item, $_tok;
21026              
21027             }
21028              
21029             Parse::RecDescent::_trace(
21030 0 0       0 q{Trying subrule: [trigger_name]},
21031             Parse::RecDescent::_tracefirst($text),
21032             q{create}, $tracelevel
21033             ) if defined $::RD_TRACE;
21034 0         0 if (1) {
21035 1     1   10 no strict qw{refs};
  1         3  
  1         355  
21036 0         0 $expectation->is(q{trigger_name})->at($text);
21037 0 0       0 unless (defined(
21038             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::trigger_name(
21039 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
21040             )
21041             )) {
21042              
21043 0 0       0 Parse::RecDescent::_trace(
21044             q{<>},
21045             Parse::RecDescent::_tracefirst($text),
21046             q{create}, $tracelevel
21047             ) if defined $::RD_TRACE;
21048 0         0 $expectation->failed();
21049 0         0 last;
21050             }
21051             Parse::RecDescent::_trace(
21052 0 0       0 q{>>Matched subrule: [trigger_name]<< (return value: [} . $_tok . q{]},
21053              
21054             Parse::RecDescent::_tracefirst($text),
21055             q{create},
21056             $tracelevel
21057             ) if defined $::RD_TRACE;
21058 0         0 $item{q{trigger_name}} = $_tok;
21059 0         0 push @item, $_tok;
21060              
21061             }
21062              
21063             Parse::RecDescent::_trace(
21064 0 0       0 q{Trying subrule: [after]},
21065             Parse::RecDescent::_tracefirst($text),
21066             q{create}, $tracelevel
21067             ) if defined $::RD_TRACE;
21068 0         0 if (1) {
21069 1     1   11 no strict qw{refs};
  1         3  
  1         271  
21070 0         0 $expectation->is(q{after})->at($text);
21071 0 0       0 unless (defined(
21072             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::after(
21073 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
21074             )
21075             )) {
21076              
21077 0 0       0 Parse::RecDescent::_trace(
21078             q{<>},
21079             Parse::RecDescent::_tracefirst($text),
21080             q{create}, $tracelevel
21081             ) if defined $::RD_TRACE;
21082 0         0 $expectation->failed();
21083 0         0 last;
21084             }
21085             Parse::RecDescent::_trace(
21086 0 0       0 q{>>Matched subrule: [after]<< (return value: [} . $_tok . q{]},
21087              
21088             Parse::RecDescent::_tracefirst($text),
21089             q{create},
21090             $tracelevel
21091             ) if defined $::RD_TRACE;
21092 0         0 $item{q{after}} = $_tok;
21093 0         0 push @item, $_tok;
21094              
21095             }
21096              
21097             Parse::RecDescent::_trace(
21098 0 0       0 q{Trying subrule: [type]},
21099             Parse::RecDescent::_tracefirst($text),
21100             q{create}, $tracelevel
21101             ) if defined $::RD_TRACE;
21102 0         0 if (1) {
21103 1     1   9 no strict qw{refs};
  1         3  
  1         494  
21104 0         0 $expectation->is(q{type})->at($text);
21105 0 0       0 unless (defined(
21106             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::type(
21107 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
21108             )
21109             )) {
21110              
21111 0 0       0 Parse::RecDescent::_trace(
21112             q{<>},
21113             Parse::RecDescent::_tracefirst($text),
21114             q{create}, $tracelevel
21115             ) if defined $::RD_TRACE;
21116 0         0 $expectation->failed();
21117 0         0 last;
21118             }
21119             Parse::RecDescent::_trace(
21120 0 0       0 q{>>Matched subrule: [type]<< (return value: [} . $_tok . q{]},
21121              
21122             Parse::RecDescent::_tracefirst($text),
21123             q{create},
21124             $tracelevel
21125             ) if defined $::RD_TRACE;
21126 0         0 $item{q{type}} = $_tok;
21127 0         0 push @item, $_tok;
21128              
21129             }
21130              
21131             Parse::RecDescent::_trace(
21132 0 0       0 q{Trying terminal: [/ON/i]},
21133             Parse::RecDescent::_tracefirst($text),
21134             q{create}, $tracelevel
21135             ) if defined $::RD_TRACE;
21136 0         0 $lastsep = "";
21137 0         0 $expectation->is(q{/ON/i})->at($text);
21138              
21139 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
21140             and $text =~ s/\A(?:ON)//i) {
21141              
21142 0         0 $expectation->failed();
21143 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
21144             if defined $::RD_TRACE;
21145              
21146 0         0 last;
21147             }
21148 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
21149             Parse::RecDescent::_tracefirst($text))
21150             if defined $::RD_TRACE;
21151 0         0 push @item, $item{__PATTERN1__} = $&;
21152              
21153 0 0       0 Parse::RecDescent::_trace(
21154             q{Trying subrule: [table_name]},
21155             Parse::RecDescent::_tracefirst($text),
21156             q{create}, $tracelevel
21157             ) if defined $::RD_TRACE;
21158 0         0 if (1) {
21159 1     1   12 no strict qw{refs};
  1         3  
  1         998  
21160 0         0 $expectation->is(q{table_name})->at($text);
21161 0 0       0 unless (defined(
21162             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::table_name(
21163 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
21164             )
21165             )) {
21166              
21167 0 0       0 Parse::RecDescent::_trace(
21168             q{<>},
21169             Parse::RecDescent::_tracefirst($text),
21170             q{create}, $tracelevel
21171             ) if defined $::RD_TRACE;
21172 0         0 $expectation->failed();
21173 0         0 last;
21174             }
21175             Parse::RecDescent::_trace(
21176 0 0       0 q{>>Matched subrule: [table_name]<< (return value: [} . $_tok . q{]},
21177              
21178             Parse::RecDescent::_tracefirst($text),
21179             q{create},
21180             $tracelevel
21181             ) if defined $::RD_TRACE;
21182 0         0 $item{q{table_name}} = $_tok;
21183 0         0 push @item, $_tok;
21184              
21185             }
21186              
21187             Parse::RecDescent::_trace(
21188 0 0       0 q{Trying repeated subrule: [reference_a]},
21189             Parse::RecDescent::_tracefirst($text),
21190             q{create}, $tracelevel
21191             ) if defined $::RD_TRACE;
21192 0         0 $expectation->is(q{reference_a})->at($text);
21193              
21194 0 0       0 unless (defined(
21195             $_tok = $thisparser->_parserepeat(
21196             $text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::reference_a,
21197             0, 1, $_noactions, $expectation, undef
21198             )
21199             )) {
21200 0 0       0 Parse::RecDescent::_trace(
21201             q{<>},
21202             Parse::RecDescent::_tracefirst($text),
21203             q{create}, $tracelevel
21204             ) if defined $::RD_TRACE;
21205 0         0 last;
21206             }
21207             Parse::RecDescent::_trace(
21208 0 0       0 q{>>Matched repeated subrule: [reference_a]<< (} . @$_tok . q{ times)},
21209              
21210             Parse::RecDescent::_tracefirst($text),
21211             q{create},
21212             $tracelevel
21213             ) if defined $::RD_TRACE;
21214 0         0 $item{q{reference_a(?)}} = $_tok;
21215 0         0 push @item, $_tok;
21216              
21217 0 0       0 Parse::RecDescent::_trace(
21218             q{Trying terminal: [/FOR EACH ROW|FOR EACH STATEMENT/i]},
21219             Parse::RecDescent::_tracefirst($text),
21220             q{create}, $tracelevel
21221             ) if defined $::RD_TRACE;
21222 0         0 $lastsep = "";
21223 0         0 $expectation->is(q{/FOR EACH ROW|FOR EACH STATEMENT/i})->at($text);
21224              
21225 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
21226             and $text =~ s/\A(?:FOR EACH ROW|FOR EACH STATEMENT)//i) {
21227              
21228 0         0 $expectation->failed();
21229 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
21230             if defined $::RD_TRACE;
21231              
21232 0         0 last;
21233             }
21234 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
21235             Parse::RecDescent::_tracefirst($text))
21236             if defined $::RD_TRACE;
21237 0         0 push @item, $item{__PATTERN2__} = $&;
21238              
21239 0 0       0 Parse::RecDescent::_trace(
21240             q{Trying terminal: ['MODE DB2SQL']},
21241             Parse::RecDescent::_tracefirst($text),
21242             q{create}, $tracelevel
21243             ) if defined $::RD_TRACE;
21244 0         0 $lastsep = "";
21245 0         0 $expectation->is(q{'MODE DB2SQL'})->at($text);
21246              
21247 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
21248             and $text =~ s/\AMODE\ DB2SQL//) {
21249              
21250 0         0 $expectation->failed();
21251 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
21252             if defined $::RD_TRACE;
21253 0         0 last;
21254             }
21255 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
21256             Parse::RecDescent::_tracefirst($text))
21257             if defined $::RD_TRACE;
21258 0         0 push @item, $item{__STRING1__} = $&;
21259              
21260 0 0       0 Parse::RecDescent::_trace(
21261             q{Trying subrule: [triggered_action]},
21262             Parse::RecDescent::_tracefirst($text),
21263             q{create}, $tracelevel
21264             ) if defined $::RD_TRACE;
21265 0         0 if (1) {
21266 1     1   13 no strict qw{refs};
  1         3  
  1         756  
21267 0         0 $expectation->is(q{triggered_action})->at($text);
21268 0 0       0 unless (defined(
21269             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::triggered_action(
21270 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
21271             )
21272             )) {
21273              
21274 0 0       0 Parse::RecDescent::_trace(
21275             q{<>},
21276             Parse::RecDescent::_tracefirst($text),
21277             q{create}, $tracelevel
21278             ) if defined $::RD_TRACE;
21279 0         0 $expectation->failed();
21280 0         0 last;
21281             }
21282             Parse::RecDescent::_trace(
21283 0 0       0 q{>>Matched subrule: [triggered_action]<< (return value: [} . $_tok . q{]},
21284              
21285             Parse::RecDescent::_tracefirst($text),
21286             q{create},
21287             $tracelevel
21288             ) if defined $::RD_TRACE;
21289 0         0 $item{q{triggered_action}} = $_tok;
21290 0         0 push @item, $_tok;
21291              
21292             }
21293              
21294 0 0       0 Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{create}, $tracelevel)
21295             if defined $::RD_TRACE;
21296              
21297 0 0       0 $_tok = ($_noactions) ? 0 : do {
21298 0         0 my $table_name = $item{'table_name'}{'name'};
21299             $return = {
21300             table => $table_name,
21301             schema => $item{'trigger_name'}{'schema'},
21302             name => $item{'trigger_name'}{'name'},
21303             when => 'after',
21304             db_event => $item{'type'}{'event'},
21305             fields => $item{'type'}{'fields'},
21306             condition => $item{'triggered_action'}{'condition'},
21307             reference => $item{'reference_a'},
21308             granularity => $item[9],
21309 0         0 action => $item{'triggered_action'}{'statement'}
21310             };
21311              
21312 0         0 push @triggers, $return;
21313             };
21314 0 0       0 unless (defined $_tok) {
21315 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
21316             if defined $::RD_TRACE;
21317 0         0 last;
21318             }
21319 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])},
21320             Parse::RecDescent::_tracefirst($text))
21321             if defined $::RD_TRACE;
21322 0         0 push @item, $_tok;
21323 0         0 $item{__ACTION1__} = $_tok;
21324              
21325 0 0       0 Parse::RecDescent::_trace(
21326             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]<<},
21327             Parse::RecDescent::_tracefirst($text), q{create}, $tracelevel
21328             ) if defined $::RD_TRACE;
21329 0         0 $_matched = 1;
21330 0         0 last;
21331             }
21332              
21333 1   33     12 while (!$_matched && !$commit) {
21334              
21335 1 50       18 Parse::RecDescent::_trace(
21336             q{Trying production: [CREATE /FEDERATED|/i VIEW view_name column_list /AS/i with_expression SQL_procedure_statement]},
21337             Parse::RecDescent::_tracefirst($_[1]), q{create}, $tracelevel
21338             ) if defined $::RD_TRACE;
21339 1         5 my $thisprod = $thisrule->{"prods"}[2];
21340 1         5 $text = $_[1];
21341 1         4 my $_savetext;
21342 1         4 @item = (q{create});
21343 1         4 %item = (__RULE__ => q{create});
21344 1         3 my $repcount = 0;
21345              
21346 1 50       4 Parse::RecDescent::_trace(
21347             q{Trying subrule: [CREATE]},
21348             Parse::RecDescent::_tracefirst($text),
21349             q{create}, $tracelevel
21350             ) if defined $::RD_TRACE;
21351 1         3 if (1) {
21352 1     1   11 no strict qw{refs};
  1         3  
  1         646  
21353 1         6 $expectation->is(q{})->at($text);
21354 1 50       18 unless (defined(
21355             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::CREATE(
21356 1     1   5 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
21357             )
21358             )) {
21359              
21360 1 50       20 Parse::RecDescent::_trace(
21361             q{<>},
21362             Parse::RecDescent::_tracefirst($text),
21363             q{create}, $tracelevel
21364             ) if defined $::RD_TRACE;
21365 1         6 $expectation->failed();
21366 1         6 last;
21367             }
21368             Parse::RecDescent::_trace(
21369 0 0       0 q{>>Matched subrule: [CREATE]<< (return value: [} . $_tok . q{]},
21370              
21371             Parse::RecDescent::_tracefirst($text),
21372             q{create},
21373             $tracelevel
21374             ) if defined $::RD_TRACE;
21375 0         0 $item{q{CREATE}} = $_tok;
21376 0         0 push @item, $_tok;
21377              
21378             }
21379              
21380             Parse::RecDescent::_trace(
21381 0 0       0 q{Trying terminal: [/FEDERATED|/i]},
21382             Parse::RecDescent::_tracefirst($text),
21383             q{create}, $tracelevel
21384             ) if defined $::RD_TRACE;
21385 0         0 $lastsep = "";
21386 0         0 $expectation->is(q{/FEDERATED|/i})->at($text);
21387              
21388 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
21389             and $text =~ s/\A(?:FEDERATED|)//i) {
21390              
21391 0         0 $expectation->failed();
21392 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
21393             if defined $::RD_TRACE;
21394              
21395 0         0 last;
21396             }
21397 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
21398             Parse::RecDescent::_tracefirst($text))
21399             if defined $::RD_TRACE;
21400 0         0 push @item, $item{__PATTERN1__} = $&;
21401              
21402 0 0       0 Parse::RecDescent::_trace(
21403             q{Trying subrule: [VIEW]},
21404             Parse::RecDescent::_tracefirst($text),
21405             q{create}, $tracelevel
21406             ) if defined $::RD_TRACE;
21407 0         0 if (1) {
21408 1     1   11 no strict qw{refs};
  1         3  
  1         332  
21409 0         0 $expectation->is(q{VIEW})->at($text);
21410 0 0       0 unless (defined(
21411             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::VIEW(
21412 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
21413             )
21414             )) {
21415              
21416 0 0       0 Parse::RecDescent::_trace(
21417             q{<>},
21418             Parse::RecDescent::_tracefirst($text),
21419             q{create}, $tracelevel
21420             ) if defined $::RD_TRACE;
21421 0         0 $expectation->failed();
21422 0         0 last;
21423             }
21424             Parse::RecDescent::_trace(
21425 0 0       0 q{>>Matched subrule: [VIEW]<< (return value: [} . $_tok . q{]},
21426              
21427             Parse::RecDescent::_tracefirst($text),
21428             q{create},
21429             $tracelevel
21430             ) if defined $::RD_TRACE;
21431 0         0 $item{q{VIEW}} = $_tok;
21432 0         0 push @item, $_tok;
21433              
21434             }
21435              
21436             Parse::RecDescent::_trace(
21437 0 0       0 q{Trying subrule: [view_name]},
21438             Parse::RecDescent::_tracefirst($text),
21439             q{create}, $tracelevel
21440             ) if defined $::RD_TRACE;
21441 0         0 if (1) {
21442 1     1   9 no strict qw{refs};
  1         2  
  1         933  
21443 0         0 $expectation->is(q{view_name})->at($text);
21444 0 0       0 unless (defined(
21445             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::view_name(
21446 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
21447             )
21448             )) {
21449              
21450 0 0       0 Parse::RecDescent::_trace(
21451             q{<>},
21452             Parse::RecDescent::_tracefirst($text),
21453             q{create}, $tracelevel
21454             ) if defined $::RD_TRACE;
21455 0         0 $expectation->failed();
21456 0         0 last;
21457             }
21458             Parse::RecDescent::_trace(
21459 0 0       0 q{>>Matched subrule: [view_name]<< (return value: [} . $_tok . q{]},
21460              
21461             Parse::RecDescent::_tracefirst($text),
21462             q{create},
21463             $tracelevel
21464             ) if defined $::RD_TRACE;
21465 0         0 $item{q{view_name}} = $_tok;
21466 0         0 push @item, $_tok;
21467              
21468             }
21469              
21470             Parse::RecDescent::_trace(
21471 0 0       0 q{Trying repeated subrule: [column_list]},
21472             Parse::RecDescent::_tracefirst($text),
21473             q{create}, $tracelevel
21474             ) if defined $::RD_TRACE;
21475 0         0 $expectation->is(q{column_list})->at($text);
21476              
21477 0 0       0 unless (defined(
21478             $_tok = $thisparser->_parserepeat(
21479             $text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_list,
21480             0, 1, $_noactions, $expectation, undef
21481             )
21482             )) {
21483 0 0       0 Parse::RecDescent::_trace(
21484             q{<>},
21485             Parse::RecDescent::_tracefirst($text),
21486             q{create}, $tracelevel
21487             ) if defined $::RD_TRACE;
21488 0         0 last;
21489             }
21490             Parse::RecDescent::_trace(
21491 0 0       0 q{>>Matched repeated subrule: [column_list]<< (} . @$_tok . q{ times)},
21492              
21493             Parse::RecDescent::_tracefirst($text),
21494             q{create},
21495             $tracelevel
21496             ) if defined $::RD_TRACE;
21497 0         0 $item{q{column_list(?)}} = $_tok;
21498 0         0 push @item, $_tok;
21499              
21500 0 0       0 Parse::RecDescent::_trace(
21501             q{Trying terminal: [/AS/i]},
21502             Parse::RecDescent::_tracefirst($text),
21503             q{create}, $tracelevel
21504             ) if defined $::RD_TRACE;
21505 0         0 $lastsep = "";
21506 0         0 $expectation->is(q{/AS/i})->at($text);
21507              
21508 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
21509             and $text =~ s/\A(?:AS)//i) {
21510              
21511 0         0 $expectation->failed();
21512 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
21513             if defined $::RD_TRACE;
21514              
21515 0         0 last;
21516             }
21517 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
21518             Parse::RecDescent::_tracefirst($text))
21519             if defined $::RD_TRACE;
21520 0         0 push @item, $item{__PATTERN2__} = $&;
21521              
21522 0 0       0 Parse::RecDescent::_trace(
21523             q{Trying repeated subrule: [with_expression]},
21524             Parse::RecDescent::_tracefirst($text),
21525             q{create}, $tracelevel
21526             ) if defined $::RD_TRACE;
21527 0         0 $expectation->is(q{with_expression})->at($text);
21528              
21529 0 0       0 unless (defined(
21530             $_tok = $thisparser->_parserepeat(
21531             $text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::with_expression,
21532             0, 1, $_noactions, $expectation, undef
21533             )
21534             )) {
21535 0 0       0 Parse::RecDescent::_trace(
21536             q{<>},
21537             Parse::RecDescent::_tracefirst($text),
21538             q{create}, $tracelevel
21539             ) if defined $::RD_TRACE;
21540 0         0 last;
21541             }
21542             Parse::RecDescent::_trace(
21543 0 0       0 q{>>Matched repeated subrule: [with_expression]<< (} . @$_tok . q{ times)},
21544              
21545             Parse::RecDescent::_tracefirst($text),
21546             q{create},
21547             $tracelevel
21548             ) if defined $::RD_TRACE;
21549 0         0 $item{q{with_expression(?)}} = $_tok;
21550 0         0 push @item, $_tok;
21551              
21552 0 0       0 Parse::RecDescent::_trace(
21553             q{Trying subrule: [SQL_procedure_statement]},
21554             Parse::RecDescent::_tracefirst($text),
21555             q{create}, $tracelevel
21556             ) if defined $::RD_TRACE;
21557 0         0 if (1) {
21558 1     1   12 no strict qw{refs};
  1         3  
  1         1539  
21559 0         0 $expectation->is(q{SQL_procedure_statement})->at($text);
21560 0 0       0 unless (defined(
21561             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SQL_procedure_statement(
21562 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
21563             )
21564             )) {
21565              
21566 0 0       0 Parse::RecDescent::_trace(
21567             q{<>},
21568             Parse::RecDescent::_tracefirst($text),
21569             q{create}, $tracelevel
21570             ) if defined $::RD_TRACE;
21571 0         0 $expectation->failed();
21572 0         0 last;
21573             }
21574             Parse::RecDescent::_trace(
21575 0 0       0 q{>>Matched subrule: [SQL_procedure_statement]<< (return value: [} . $_tok . q{]},
21576              
21577             Parse::RecDescent::_tracefirst($text),
21578             q{create},
21579             $tracelevel
21580             ) if defined $::RD_TRACE;
21581 0         0 $item{q{SQL_procedure_statement}} = $_tok;
21582 0         0 push @item, $_tok;
21583              
21584             }
21585              
21586 0 0       0 Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{create}, $tracelevel)
21587             if defined $::RD_TRACE;
21588              
21589 0 0       0 $_tok = ($_noactions) ? 0 : do {
21590             $return = {
21591             name => $item{view_name}{name},
21592             sql => $item{SQL_procedure_statement},
21593             with => $item{'with_expression(?)'},
21594 0         0 fields => $item{'column_list(?)'}
21595             };
21596 0         0 push @views, $return;
21597             };
21598 0 0       0 unless (defined $_tok) {
21599 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
21600             if defined $::RD_TRACE;
21601 0         0 last;
21602             }
21603 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])},
21604             Parse::RecDescent::_tracefirst($text))
21605             if defined $::RD_TRACE;
21606 0         0 push @item, $_tok;
21607 0         0 $item{__ACTION1__} = $_tok;
21608              
21609 0 0       0 Parse::RecDescent::_trace(
21610             q{>>Matched production: [CREATE /FEDERATED|/i VIEW view_name column_list /AS/i with_expression SQL_procedure_statement]<<},
21611             Parse::RecDescent::_tracefirst($text), q{create}, $tracelevel
21612             ) if defined $::RD_TRACE;
21613 0         0 $_matched = 1;
21614 0         0 last;
21615             }
21616              
21617 1 50 33     13 unless ($_matched || defined($return) || defined($score)) {
      33        
21618              
21619 1         5 $_[1] = $text; # NOT SURE THIS IS NEEDED
21620 1 50       7 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{create}, $tracelevel)
21621             if defined $::RD_TRACE;
21622 1         9 return undef;
21623             }
21624 0 0 0     0 if (!defined($return) && defined($score)) {
21625 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{create}, $tracelevel)
21626             if defined $::RD_TRACE;
21627 0         0 $return = $score_return;
21628             }
21629 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
21630 0 0       0 $return = $item[$#item] unless defined $return;
21631 0 0       0 if (defined $::RD_TRACE) {
21632 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{create}, $tracelevel);
21633 0         0 Parse::RecDescent::_trace(
21634             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
21635             Parse::RecDescent::_tracefirst($text),
21636             , q{create}, $tracelevel
21637             );
21638             }
21639 0         0 $_[1] = $text;
21640 0         0 return $return;
21641             }
21642              
21643             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
21644             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sysfun {
21645 0     0   0 my $thisparser = $_[0];
21646 1     1   11 use vars q{$tracelevel};
  1         3  
  1         563  
21647 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
21648 0         0 $ERRORS = 0;
21649 0         0 my $thisrule = $thisparser->{"rules"}{"sysfun"};
21650              
21651 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [sysfun]}, Parse::RecDescent::_tracefirst($_[1]), q{sysfun}, $tracelevel)
21652             if defined $::RD_TRACE;
21653              
21654 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
21655              
21656 0         0 my $score;
21657             my $score_return;
21658 0         0 my $_tok;
21659 0         0 my $return = undef;
21660 0         0 my $_matched = 0;
21661 0         0 my $commit = 0;
21662 0         0 my @item = ();
21663 0         0 my %item = ();
21664 0   0     0 my $repeating = defined($_[2]) && $_[2];
21665 0   0     0 my $_noactions = defined($_[3]) && $_[3];
21666 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
21667 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
21668 0         0 my $text;
21669 0         0 my $lastsep = "";
21670 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
21671 0         0 $expectation->at($_[1]);
21672              
21673 0         0 my $thisline;
21674 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
21675              
21676 0   0     0 while (!$_matched && !$commit) {
21677              
21678 0 0       0 Parse::RecDescent::_trace(
21679             q{Trying production: [/ABS/i, or /ABSVAL/i]},
21680             Parse::RecDescent::_tracefirst($_[1]),
21681             q{sysfun}, $tracelevel
21682             ) if defined $::RD_TRACE;
21683 0         0 my $thisprod = $thisrule->{"prods"}[0];
21684 0         0 $text = $_[1];
21685 0         0 my $_savetext;
21686 0         0 @item = (q{sysfun});
21687 0         0 %item = (__RULE__ => q{sysfun});
21688 0         0 my $repcount = 0;
21689              
21690 0 0       0 Parse::RecDescent::_trace(
21691             q{Trying subrule: [_alternation_1_of_production_1_of_rule_sysfun]},
21692             Parse::RecDescent::_tracefirst($text),
21693             q{sysfun}, $tracelevel
21694             ) if defined $::RD_TRACE;
21695 0         0 if (1) {
21696 1     1   11 no strict qw{refs};
  1         3  
  1         2286  
21697 0         0 $expectation->is(q{})->at($text);
21698 0 0       0 unless (defined(
21699             $_tok
21700             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_sysfun(
21701 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
21702             )
21703             )) {
21704              
21705 0 0       0 Parse::RecDescent::_trace(
21706             q{<>},
21707             Parse::RecDescent::_tracefirst($text),
21708             q{sysfun}, $tracelevel
21709             ) if defined $::RD_TRACE;
21710 0         0 $expectation->failed();
21711 0         0 last;
21712             }
21713             Parse::RecDescent::_trace(
21714 0 0       0 q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_sysfun]<< (return value: [} . $_tok . q{]},
21715              
21716             Parse::RecDescent::_tracefirst($text),
21717             q{sysfun},
21718             $tracelevel
21719             ) if defined $::RD_TRACE;
21720 0         0 $item{q{_alternation_1_of_production_1_of_rule_sysfun}} = $_tok;
21721 0         0 push @item, $_tok;
21722              
21723             }
21724              
21725             Parse::RecDescent::_trace(
21726 0 0       0 q{>>Matched production: [/ABS/i, or /ABSVAL/i]<<},
21727             Parse::RecDescent::_tracefirst($text),
21728             q{sysfun}, $tracelevel
21729             ) if defined $::RD_TRACE;
21730 0         0 $_matched = 1;
21731 0         0 last;
21732             }
21733              
21734 0   0     0 while (!$_matched && !$commit) {
21735              
21736 0 0       0 Parse::RecDescent::_trace(
21737             q{Trying production: [/ACOS/i]},
21738             Parse::RecDescent::_tracefirst($_[1]),
21739             q{sysfun}, $tracelevel
21740             ) if defined $::RD_TRACE;
21741 0         0 my $thisprod = $thisrule->{"prods"}[1];
21742 0         0 $text = $_[1];
21743 0         0 my $_savetext;
21744 0         0 @item = (q{sysfun});
21745 0         0 %item = (__RULE__ => q{sysfun});
21746 0         0 my $repcount = 0;
21747              
21748 0 0       0 Parse::RecDescent::_trace(
21749             q{Trying terminal: [/ACOS/i]},
21750             Parse::RecDescent::_tracefirst($text),
21751             q{sysfun}, $tracelevel
21752             ) if defined $::RD_TRACE;
21753 0         0 $lastsep = "";
21754 0         0 $expectation->is(q{})->at($text);
21755              
21756 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
21757             and $text =~ s/\A(?:ACOS)//i) {
21758              
21759 0         0 $expectation->failed();
21760 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
21761             if defined $::RD_TRACE;
21762              
21763 0         0 last;
21764             }
21765 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
21766             Parse::RecDescent::_tracefirst($text))
21767             if defined $::RD_TRACE;
21768 0         0 push @item, $item{__PATTERN1__} = $&;
21769              
21770 0 0       0 Parse::RecDescent::_trace(
21771             q{>>Matched production: [/ACOS/i]<<},
21772             Parse::RecDescent::_tracefirst($text),
21773             q{sysfun}, $tracelevel
21774             ) if defined $::RD_TRACE;
21775 0         0 $_matched = 1;
21776 0         0 last;
21777             }
21778              
21779 0   0     0 while (!$_matched && !$commit) {
21780              
21781 0 0       0 Parse::RecDescent::_trace(
21782             q{Trying production: [/ASCII/i]},
21783             Parse::RecDescent::_tracefirst($_[1]),
21784             q{sysfun}, $tracelevel
21785             ) if defined $::RD_TRACE;
21786 0         0 my $thisprod = $thisrule->{"prods"}[2];
21787 0         0 $text = $_[1];
21788 0         0 my $_savetext;
21789 0         0 @item = (q{sysfun});
21790 0         0 %item = (__RULE__ => q{sysfun});
21791 0         0 my $repcount = 0;
21792              
21793 0 0       0 Parse::RecDescent::_trace(
21794             q{Trying terminal: [/ASCII/i]},
21795             Parse::RecDescent::_tracefirst($text),
21796             q{sysfun}, $tracelevel
21797             ) if defined $::RD_TRACE;
21798 0         0 $lastsep = "";
21799 0         0 $expectation->is(q{})->at($text);
21800              
21801 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
21802             and $text =~ s/\A(?:ASCII)//i) {
21803              
21804 0         0 $expectation->failed();
21805 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
21806             if defined $::RD_TRACE;
21807              
21808 0         0 last;
21809             }
21810 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
21811             Parse::RecDescent::_tracefirst($text))
21812             if defined $::RD_TRACE;
21813 0         0 push @item, $item{__PATTERN1__} = $&;
21814              
21815 0 0       0 Parse::RecDescent::_trace(
21816             q{>>Matched production: [/ASCII/i]<<},
21817             Parse::RecDescent::_tracefirst($text),
21818             q{sysfun}, $tracelevel
21819             ) if defined $::RD_TRACE;
21820 0         0 $_matched = 1;
21821 0         0 last;
21822             }
21823              
21824 0   0     0 while (!$_matched && !$commit) {
21825              
21826 0 0       0 Parse::RecDescent::_trace(
21827             q{Trying production: [/ASIN/i]},
21828             Parse::RecDescent::_tracefirst($_[1]),
21829             q{sysfun}, $tracelevel
21830             ) if defined $::RD_TRACE;
21831 0         0 my $thisprod = $thisrule->{"prods"}[3];
21832 0         0 $text = $_[1];
21833 0         0 my $_savetext;
21834 0         0 @item = (q{sysfun});
21835 0         0 %item = (__RULE__ => q{sysfun});
21836 0         0 my $repcount = 0;
21837              
21838 0 0       0 Parse::RecDescent::_trace(
21839             q{Trying terminal: [/ASIN/i]},
21840             Parse::RecDescent::_tracefirst($text),
21841             q{sysfun}, $tracelevel
21842             ) if defined $::RD_TRACE;
21843 0         0 $lastsep = "";
21844 0         0 $expectation->is(q{})->at($text);
21845              
21846 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
21847             and $text =~ s/\A(?:ASIN)//i) {
21848              
21849 0         0 $expectation->failed();
21850 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
21851             if defined $::RD_TRACE;
21852              
21853 0         0 last;
21854             }
21855 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
21856             Parse::RecDescent::_tracefirst($text))
21857             if defined $::RD_TRACE;
21858 0         0 push @item, $item{__PATTERN1__} = $&;
21859              
21860 0 0       0 Parse::RecDescent::_trace(
21861             q{>>Matched production: [/ASIN/i]<<},
21862             Parse::RecDescent::_tracefirst($text),
21863             q{sysfun}, $tracelevel
21864             ) if defined $::RD_TRACE;
21865 0         0 $_matched = 1;
21866 0         0 last;
21867             }
21868              
21869 0   0     0 while (!$_matched && !$commit) {
21870              
21871 0 0       0 Parse::RecDescent::_trace(
21872             q{Trying production: [/ATAN/i]},
21873             Parse::RecDescent::_tracefirst($_[1]),
21874             q{sysfun}, $tracelevel
21875             ) if defined $::RD_TRACE;
21876 0         0 my $thisprod = $thisrule->{"prods"}[4];
21877 0         0 $text = $_[1];
21878 0         0 my $_savetext;
21879 0         0 @item = (q{sysfun});
21880 0         0 %item = (__RULE__ => q{sysfun});
21881 0         0 my $repcount = 0;
21882              
21883 0 0       0 Parse::RecDescent::_trace(
21884             q{Trying terminal: [/ATAN/i]},
21885             Parse::RecDescent::_tracefirst($text),
21886             q{sysfun}, $tracelevel
21887             ) if defined $::RD_TRACE;
21888 0         0 $lastsep = "";
21889 0         0 $expectation->is(q{})->at($text);
21890              
21891 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
21892             and $text =~ s/\A(?:ATAN)//i) {
21893              
21894 0         0 $expectation->failed();
21895 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
21896             if defined $::RD_TRACE;
21897              
21898 0         0 last;
21899             }
21900 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
21901             Parse::RecDescent::_tracefirst($text))
21902             if defined $::RD_TRACE;
21903 0         0 push @item, $item{__PATTERN1__} = $&;
21904              
21905 0 0       0 Parse::RecDescent::_trace(
21906             q{>>Matched production: [/ATAN/i]<<},
21907             Parse::RecDescent::_tracefirst($text),
21908             q{sysfun}, $tracelevel
21909             ) if defined $::RD_TRACE;
21910 0         0 $_matched = 1;
21911 0         0 last;
21912             }
21913              
21914 0   0     0 while (!$_matched && !$commit) {
21915              
21916 0 0       0 Parse::RecDescent::_trace(
21917             q{Trying production: [/ATAN2/i]},
21918             Parse::RecDescent::_tracefirst($_[1]),
21919             q{sysfun}, $tracelevel
21920             ) if defined $::RD_TRACE;
21921 0         0 my $thisprod = $thisrule->{"prods"}[5];
21922 0         0 $text = $_[1];
21923 0         0 my $_savetext;
21924 0         0 @item = (q{sysfun});
21925 0         0 %item = (__RULE__ => q{sysfun});
21926 0         0 my $repcount = 0;
21927              
21928 0 0       0 Parse::RecDescent::_trace(
21929             q{Trying terminal: [/ATAN2/i]},
21930             Parse::RecDescent::_tracefirst($text),
21931             q{sysfun}, $tracelevel
21932             ) if defined $::RD_TRACE;
21933 0         0 $lastsep = "";
21934 0         0 $expectation->is(q{})->at($text);
21935              
21936 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
21937             and $text =~ s/\A(?:ATAN2)//i) {
21938              
21939 0         0 $expectation->failed();
21940 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
21941             if defined $::RD_TRACE;
21942              
21943 0         0 last;
21944             }
21945 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
21946             Parse::RecDescent::_tracefirst($text))
21947             if defined $::RD_TRACE;
21948 0         0 push @item, $item{__PATTERN1__} = $&;
21949              
21950 0 0       0 Parse::RecDescent::_trace(
21951             q{>>Matched production: [/ATAN2/i]<<},
21952             Parse::RecDescent::_tracefirst($text),
21953             q{sysfun}, $tracelevel
21954             ) if defined $::RD_TRACE;
21955 0         0 $_matched = 1;
21956 0         0 last;
21957             }
21958              
21959 0   0     0 while (!$_matched && !$commit) {
21960              
21961 0 0       0 Parse::RecDescent::_trace(
21962             q{Trying production: [/CEIL/i, or /CEILING/i]},
21963             Parse::RecDescent::_tracefirst($_[1]),
21964             q{sysfun}, $tracelevel
21965             ) if defined $::RD_TRACE;
21966 0         0 my $thisprod = $thisrule->{"prods"}[6];
21967 0         0 $text = $_[1];
21968 0         0 my $_savetext;
21969 0         0 @item = (q{sysfun});
21970 0         0 %item = (__RULE__ => q{sysfun});
21971 0         0 my $repcount = 0;
21972              
21973 0 0       0 Parse::RecDescent::_trace(
21974             q{Trying subrule: [_alternation_1_of_production_7_of_rule_sysfun]},
21975             Parse::RecDescent::_tracefirst($text),
21976             q{sysfun}, $tracelevel
21977             ) if defined $::RD_TRACE;
21978 0         0 if (1) {
21979 1     1   11 no strict qw{refs};
  1         2  
  1         17324  
21980 0         0 $expectation->is(q{})->at($text);
21981 0 0       0 unless (defined(
21982             $_tok
21983             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_7_of_rule_sysfun(
21984 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
21985             )
21986             )) {
21987              
21988 0 0       0 Parse::RecDescent::_trace(
21989             q{<>},
21990             Parse::RecDescent::_tracefirst($text),
21991             q{sysfun}, $tracelevel
21992             ) if defined $::RD_TRACE;
21993 0         0 $expectation->failed();
21994 0         0 last;
21995             }
21996             Parse::RecDescent::_trace(
21997 0 0       0 q{>>Matched subrule: [_alternation_1_of_production_7_of_rule_sysfun]<< (return value: [} . $_tok . q{]},
21998              
21999             Parse::RecDescent::_tracefirst($text),
22000             q{sysfun},
22001             $tracelevel
22002             ) if defined $::RD_TRACE;
22003 0         0 $item{q{_alternation_1_of_production_7_of_rule_sysfun}} = $_tok;
22004 0         0 push @item, $_tok;
22005              
22006             }
22007              
22008             Parse::RecDescent::_trace(
22009 0 0       0 q{>>Matched production: [/CEIL/i, or /CEILING/i]<<},
22010             Parse::RecDescent::_tracefirst($text),
22011             q{sysfun}, $tracelevel
22012             ) if defined $::RD_TRACE;
22013 0         0 $_matched = 1;
22014 0         0 last;
22015             }
22016              
22017 0   0     0 while (!$_matched && !$commit) {
22018              
22019 0 0       0 Parse::RecDescent::_trace(
22020             q{Trying production: [/CHAR/i]},
22021             Parse::RecDescent::_tracefirst($_[1]),
22022             q{sysfun}, $tracelevel
22023             ) if defined $::RD_TRACE;
22024 0         0 my $thisprod = $thisrule->{"prods"}[7];
22025 0         0 $text = $_[1];
22026 0         0 my $_savetext;
22027 0         0 @item = (q{sysfun});
22028 0         0 %item = (__RULE__ => q{sysfun});
22029 0         0 my $repcount = 0;
22030              
22031 0 0       0 Parse::RecDescent::_trace(
22032             q{Trying terminal: [/CHAR/i]},
22033             Parse::RecDescent::_tracefirst($text),
22034             q{sysfun}, $tracelevel
22035             ) if defined $::RD_TRACE;
22036 0         0 $lastsep = "";
22037 0         0 $expectation->is(q{})->at($text);
22038              
22039 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
22040             and $text =~ s/\A(?:CHAR)//i) {
22041              
22042 0         0 $expectation->failed();
22043 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
22044             if defined $::RD_TRACE;
22045              
22046 0         0 last;
22047             }
22048 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
22049             Parse::RecDescent::_tracefirst($text))
22050             if defined $::RD_TRACE;
22051 0         0 push @item, $item{__PATTERN1__} = $&;
22052              
22053 0 0       0 Parse::RecDescent::_trace(
22054             q{>>Matched production: [/CHAR/i]<<},
22055             Parse::RecDescent::_tracefirst($text),
22056             q{sysfun}, $tracelevel
22057             ) if defined $::RD_TRACE;
22058 0         0 $_matched = 1;
22059 0         0 last;
22060             }
22061              
22062 0   0     0 while (!$_matched && !$commit) {
22063              
22064 0 0       0 Parse::RecDescent::_trace(
22065             q{Trying production: [/CHR/i]},
22066             Parse::RecDescent::_tracefirst($_[1]),
22067             q{sysfun}, $tracelevel
22068             ) if defined $::RD_TRACE;
22069 0         0 my $thisprod = $thisrule->{"prods"}[8];
22070 0         0 $text = $_[1];
22071 0         0 my $_savetext;
22072 0         0 @item = (q{sysfun});
22073 0         0 %item = (__RULE__ => q{sysfun});
22074 0         0 my $repcount = 0;
22075              
22076 0 0       0 Parse::RecDescent::_trace(
22077             q{Trying terminal: [/CHR/i]},
22078             Parse::RecDescent::_tracefirst($text),
22079             q{sysfun}, $tracelevel
22080             ) if defined $::RD_TRACE;
22081 0         0 $lastsep = "";
22082 0         0 $expectation->is(q{})->at($text);
22083              
22084 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
22085             and $text =~ s/\A(?:CHR)//i) {
22086              
22087 0         0 $expectation->failed();
22088 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
22089             if defined $::RD_TRACE;
22090              
22091 0         0 last;
22092             }
22093 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
22094             Parse::RecDescent::_tracefirst($text))
22095             if defined $::RD_TRACE;
22096 0         0 push @item, $item{__PATTERN1__} = $&;
22097              
22098 0 0       0 Parse::RecDescent::_trace(
22099             q{>>Matched production: [/CHR/i]<<},
22100             Parse::RecDescent::_tracefirst($text),
22101             q{sysfun}, $tracelevel
22102             ) if defined $::RD_TRACE;
22103 0         0 $_matched = 1;
22104 0         0 last;
22105             }
22106              
22107 0   0     0 while (!$_matched && !$commit) {
22108              
22109 0 0       0 Parse::RecDescent::_trace(
22110             q{Trying production: [/COS/i]},
22111             Parse::RecDescent::_tracefirst($_[1]),
22112             q{sysfun}, $tracelevel
22113             ) if defined $::RD_TRACE;
22114 0         0 my $thisprod = $thisrule->{"prods"}[9];
22115 0         0 $text = $_[1];
22116 0         0 my $_savetext;
22117 0         0 @item = (q{sysfun});
22118 0         0 %item = (__RULE__ => q{sysfun});
22119 0         0 my $repcount = 0;
22120              
22121 0 0       0 Parse::RecDescent::_trace(
22122             q{Trying terminal: [/COS/i]},
22123             Parse::RecDescent::_tracefirst($text),
22124             q{sysfun}, $tracelevel
22125             ) if defined $::RD_TRACE;
22126 0         0 $lastsep = "";
22127 0         0 $expectation->is(q{})->at($text);
22128              
22129 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
22130             and $text =~ s/\A(?:COS)//i) {
22131              
22132 0         0 $expectation->failed();
22133 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
22134             if defined $::RD_TRACE;
22135              
22136 0         0 last;
22137             }
22138 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
22139             Parse::RecDescent::_tracefirst($text))
22140             if defined $::RD_TRACE;
22141 0         0 push @item, $item{__PATTERN1__} = $&;
22142              
22143 0 0       0 Parse::RecDescent::_trace(
22144             q{>>Matched production: [/COS/i]<<},
22145             Parse::RecDescent::_tracefirst($text),
22146             q{sysfun}, $tracelevel
22147             ) if defined $::RD_TRACE;
22148 0         0 $_matched = 1;
22149 0         0 last;
22150             }
22151              
22152 0   0     0 while (!$_matched && !$commit) {
22153              
22154 0 0       0 Parse::RecDescent::_trace(
22155             q{Trying production: [/COT/i]},
22156             Parse::RecDescent::_tracefirst($_[1]),
22157             q{sysfun}, $tracelevel
22158             ) if defined $::RD_TRACE;
22159 0         0 my $thisprod = $thisrule->{"prods"}[10];
22160 0         0 $text = $_[1];
22161 0         0 my $_savetext;
22162 0         0 @item = (q{sysfun});
22163 0         0 %item = (__RULE__ => q{sysfun});
22164 0         0 my $repcount = 0;
22165              
22166 0 0       0 Parse::RecDescent::_trace(
22167             q{Trying terminal: [/COT/i]},
22168             Parse::RecDescent::_tracefirst($text),
22169             q{sysfun}, $tracelevel
22170             ) if defined $::RD_TRACE;
22171 0         0 $lastsep = "";
22172 0         0 $expectation->is(q{})->at($text);
22173              
22174 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
22175             and $text =~ s/\A(?:COT)//i) {
22176              
22177 0         0 $expectation->failed();
22178 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
22179             if defined $::RD_TRACE;
22180              
22181 0         0 last;
22182             }
22183 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
22184             Parse::RecDescent::_tracefirst($text))
22185             if defined $::RD_TRACE;
22186 0         0 push @item, $item{__PATTERN1__} = $&;
22187              
22188 0 0       0 Parse::RecDescent::_trace(
22189             q{>>Matched production: [/COT/i]<<},
22190             Parse::RecDescent::_tracefirst($text),
22191             q{sysfun}, $tracelevel
22192             ) if defined $::RD_TRACE;
22193 0         0 $_matched = 1;
22194 0         0 last;
22195             }
22196              
22197 0   0     0 while (!$_matched && !$commit) {
22198              
22199 0 0       0 Parse::RecDescent::_trace(
22200             q{Trying production: [/DAYNAME/i]},
22201             Parse::RecDescent::_tracefirst($_[1]),
22202             q{sysfun}, $tracelevel
22203             ) if defined $::RD_TRACE;
22204 0         0 my $thisprod = $thisrule->{"prods"}[11];
22205 0         0 $text = $_[1];
22206 0         0 my $_savetext;
22207 0         0 @item = (q{sysfun});
22208 0         0 %item = (__RULE__ => q{sysfun});
22209 0         0 my $repcount = 0;
22210              
22211 0 0       0 Parse::RecDescent::_trace(
22212             q{Trying terminal: [/DAYNAME/i]},
22213             Parse::RecDescent::_tracefirst($text),
22214             q{sysfun}, $tracelevel
22215             ) if defined $::RD_TRACE;
22216 0         0 $lastsep = "";
22217 0         0 $expectation->is(q{})->at($text);
22218              
22219 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
22220             and $text =~ s/\A(?:DAYNAME)//i) {
22221              
22222 0         0 $expectation->failed();
22223 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
22224             if defined $::RD_TRACE;
22225              
22226 0         0 last;
22227             }
22228 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
22229             Parse::RecDescent::_tracefirst($text))
22230             if defined $::RD_TRACE;
22231 0         0 push @item, $item{__PATTERN1__} = $&;
22232              
22233 0 0       0 Parse::RecDescent::_trace(
22234             q{>>Matched production: [/DAYNAME/i]<<},
22235             Parse::RecDescent::_tracefirst($text),
22236             q{sysfun}, $tracelevel
22237             ) if defined $::RD_TRACE;
22238 0         0 $_matched = 1;
22239 0         0 last;
22240             }
22241              
22242 0   0     0 while (!$_matched && !$commit) {
22243              
22244 0 0       0 Parse::RecDescent::_trace(
22245             q{Trying production: [/DAYOFWEEK/i]},
22246             Parse::RecDescent::_tracefirst($_[1]),
22247             q{sysfun}, $tracelevel
22248             ) if defined $::RD_TRACE;
22249 0         0 my $thisprod = $thisrule->{"prods"}[12];
22250 0         0 $text = $_[1];
22251 0         0 my $_savetext;
22252 0         0 @item = (q{sysfun});
22253 0         0 %item = (__RULE__ => q{sysfun});
22254 0         0 my $repcount = 0;
22255              
22256 0 0       0 Parse::RecDescent::_trace(
22257             q{Trying terminal: [/DAYOFWEEK/i]},
22258             Parse::RecDescent::_tracefirst($text),
22259             q{sysfun}, $tracelevel
22260             ) if defined $::RD_TRACE;
22261 0         0 $lastsep = "";
22262 0         0 $expectation->is(q{})->at($text);
22263              
22264 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
22265             and $text =~ s/\A(?:DAYOFWEEK)//i) {
22266              
22267 0         0 $expectation->failed();
22268 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
22269             if defined $::RD_TRACE;
22270              
22271 0         0 last;
22272             }
22273 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
22274             Parse::RecDescent::_tracefirst($text))
22275             if defined $::RD_TRACE;
22276 0         0 push @item, $item{__PATTERN1__} = $&;
22277              
22278 0 0       0 Parse::RecDescent::_trace(
22279             q{>>Matched production: [/DAYOFWEEK/i]<<},
22280             Parse::RecDescent::_tracefirst($text),
22281             q{sysfun}, $tracelevel
22282             ) if defined $::RD_TRACE;
22283 0         0 $_matched = 1;
22284 0         0 last;
22285             }
22286              
22287 0   0     0 while (!$_matched && !$commit) {
22288              
22289 0 0       0 Parse::RecDescent::_trace(
22290             q{Trying production: [/DAYOFWEEK_ISO/i]},
22291             Parse::RecDescent::_tracefirst($_[1]),
22292             q{sysfun}, $tracelevel
22293             ) if defined $::RD_TRACE;
22294 0         0 my $thisprod = $thisrule->{"prods"}[13];
22295 0         0 $text = $_[1];
22296 0         0 my $_savetext;
22297 0         0 @item = (q{sysfun});
22298 0         0 %item = (__RULE__ => q{sysfun});
22299 0         0 my $repcount = 0;
22300              
22301 0 0       0 Parse::RecDescent::_trace(
22302             q{Trying terminal: [/DAYOFWEEK_ISO/i]},
22303             Parse::RecDescent::_tracefirst($text),
22304             q{sysfun}, $tracelevel
22305             ) if defined $::RD_TRACE;
22306 0         0 $lastsep = "";
22307 0         0 $expectation->is(q{})->at($text);
22308              
22309 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
22310             and $text =~ s/\A(?:DAYOFWEEK_ISO)//i) {
22311              
22312 0         0 $expectation->failed();
22313 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
22314             if defined $::RD_TRACE;
22315              
22316 0         0 last;
22317             }
22318 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
22319             Parse::RecDescent::_tracefirst($text))
22320             if defined $::RD_TRACE;
22321 0         0 push @item, $item{__PATTERN1__} = $&;
22322              
22323 0 0       0 Parse::RecDescent::_trace(
22324             q{>>Matched production: [/DAYOFWEEK_ISO/i]<<},
22325             Parse::RecDescent::_tracefirst($text),
22326             q{sysfun}, $tracelevel
22327             ) if defined $::RD_TRACE;
22328 0         0 $_matched = 1;
22329 0         0 last;
22330             }
22331              
22332 0   0     0 while (!$_matched && !$commit) {
22333              
22334 0 0       0 Parse::RecDescent::_trace(
22335             q{Trying production: [/DAYOFYEAR/i]},
22336             Parse::RecDescent::_tracefirst($_[1]),
22337             q{sysfun}, $tracelevel
22338             ) if defined $::RD_TRACE;
22339 0         0 my $thisprod = $thisrule->{"prods"}[14];
22340 0         0 $text = $_[1];
22341 0         0 my $_savetext;
22342 0         0 @item = (q{sysfun});
22343 0         0 %item = (__RULE__ => q{sysfun});
22344 0         0 my $repcount = 0;
22345              
22346 0 0       0 Parse::RecDescent::_trace(
22347             q{Trying terminal: [/DAYOFYEAR/i]},
22348             Parse::RecDescent::_tracefirst($text),
22349             q{sysfun}, $tracelevel
22350             ) if defined $::RD_TRACE;
22351 0         0 $lastsep = "";
22352 0         0 $expectation->is(q{})->at($text);
22353              
22354 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
22355             and $text =~ s/\A(?:DAYOFYEAR)//i) {
22356              
22357 0         0 $expectation->failed();
22358 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
22359             if defined $::RD_TRACE;
22360              
22361 0         0 last;
22362             }
22363 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
22364             Parse::RecDescent::_tracefirst($text))
22365             if defined $::RD_TRACE;
22366 0         0 push @item, $item{__PATTERN1__} = $&;
22367              
22368 0 0       0 Parse::RecDescent::_trace(
22369             q{>>Matched production: [/DAYOFYEAR/i]<<},
22370             Parse::RecDescent::_tracefirst($text),
22371             q{sysfun}, $tracelevel
22372             ) if defined $::RD_TRACE;
22373 0         0 $_matched = 1;
22374 0         0 last;
22375             }
22376              
22377 0   0     0 while (!$_matched && !$commit) {
22378              
22379 0 0       0 Parse::RecDescent::_trace(
22380             q{Trying production: [/DEGREES/i]},
22381             Parse::RecDescent::_tracefirst($_[1]),
22382             q{sysfun}, $tracelevel
22383             ) if defined $::RD_TRACE;
22384 0         0 my $thisprod = $thisrule->{"prods"}[15];
22385 0         0 $text = $_[1];
22386 0         0 my $_savetext;
22387 0         0 @item = (q{sysfun});
22388 0         0 %item = (__RULE__ => q{sysfun});
22389 0         0 my $repcount = 0;
22390              
22391 0 0       0 Parse::RecDescent::_trace(
22392             q{Trying terminal: [/DEGREES/i]},
22393             Parse::RecDescent::_tracefirst($text),
22394             q{sysfun}, $tracelevel
22395             ) if defined $::RD_TRACE;
22396 0         0 $lastsep = "";
22397 0         0 $expectation->is(q{})->at($text);
22398              
22399 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
22400             and $text =~ s/\A(?:DEGREES)//i) {
22401              
22402 0         0 $expectation->failed();
22403 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
22404             if defined $::RD_TRACE;
22405              
22406 0         0 last;
22407             }
22408 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
22409             Parse::RecDescent::_tracefirst($text))
22410             if defined $::RD_TRACE;
22411 0         0 push @item, $item{__PATTERN1__} = $&;
22412              
22413 0 0       0 Parse::RecDescent::_trace(
22414             q{>>Matched production: [/DEGREES/i]<<},
22415             Parse::RecDescent::_tracefirst($text),
22416             q{sysfun}, $tracelevel
22417             ) if defined $::RD_TRACE;
22418 0         0 $_matched = 1;
22419 0         0 last;
22420             }
22421              
22422 0   0     0 while (!$_matched && !$commit) {
22423              
22424 0 0       0 Parse::RecDescent::_trace(
22425             q{Trying production: [/DIFFERENCE/i]},
22426             Parse::RecDescent::_tracefirst($_[1]),
22427             q{sysfun}, $tracelevel
22428             ) if defined $::RD_TRACE;
22429 0         0 my $thisprod = $thisrule->{"prods"}[16];
22430 0         0 $text = $_[1];
22431 0         0 my $_savetext;
22432 0         0 @item = (q{sysfun});
22433 0         0 %item = (__RULE__ => q{sysfun});
22434 0         0 my $repcount = 0;
22435              
22436 0 0       0 Parse::RecDescent::_trace(
22437             q{Trying terminal: [/DIFFERENCE/i]},
22438             Parse::RecDescent::_tracefirst($text),
22439             q{sysfun}, $tracelevel
22440             ) if defined $::RD_TRACE;
22441 0         0 $lastsep = "";
22442 0         0 $expectation->is(q{})->at($text);
22443              
22444 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
22445             and $text =~ s/\A(?:DIFFERENCE)//i) {
22446              
22447 0         0 $expectation->failed();
22448 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
22449             if defined $::RD_TRACE;
22450              
22451 0         0 last;
22452             }
22453 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
22454             Parse::RecDescent::_tracefirst($text))
22455             if defined $::RD_TRACE;
22456 0         0 push @item, $item{__PATTERN1__} = $&;
22457              
22458 0 0       0 Parse::RecDescent::_trace(
22459             q{>>Matched production: [/DIFFERENCE/i]<<},
22460             Parse::RecDescent::_tracefirst($text),
22461             q{sysfun}, $tracelevel
22462             ) if defined $::RD_TRACE;
22463 0         0 $_matched = 1;
22464 0         0 last;
22465             }
22466              
22467 0   0     0 while (!$_matched && !$commit) {
22468              
22469 0 0       0 Parse::RecDescent::_trace(
22470             q{Trying production: [/DOUBLE/i]},
22471             Parse::RecDescent::_tracefirst($_[1]),
22472             q{sysfun}, $tracelevel
22473             ) if defined $::RD_TRACE;
22474 0         0 my $thisprod = $thisrule->{"prods"}[17];
22475 0         0 $text = $_[1];
22476 0         0 my $_savetext;
22477 0         0 @item = (q{sysfun});
22478 0         0 %item = (__RULE__ => q{sysfun});
22479 0         0 my $repcount = 0;
22480              
22481 0 0       0 Parse::RecDescent::_trace(
22482             q{Trying terminal: [/DOUBLE/i]},
22483             Parse::RecDescent::_tracefirst($text),
22484             q{sysfun}, $tracelevel
22485             ) if defined $::RD_TRACE;
22486 0         0 $lastsep = "";
22487 0         0 $expectation->is(q{})->at($text);
22488              
22489 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
22490             and $text =~ s/\A(?:DOUBLE)//i) {
22491              
22492 0         0 $expectation->failed();
22493 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
22494             if defined $::RD_TRACE;
22495              
22496 0         0 last;
22497             }
22498 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
22499             Parse::RecDescent::_tracefirst($text))
22500             if defined $::RD_TRACE;
22501 0         0 push @item, $item{__PATTERN1__} = $&;
22502              
22503 0 0       0 Parse::RecDescent::_trace(
22504             q{>>Matched production: [/DOUBLE/i]<<},
22505             Parse::RecDescent::_tracefirst($text),
22506             q{sysfun}, $tracelevel
22507             ) if defined $::RD_TRACE;
22508 0         0 $_matched = 1;
22509 0         0 last;
22510             }
22511              
22512 0   0     0 while (!$_matched && !$commit) {
22513              
22514 0 0       0 Parse::RecDescent::_trace(
22515             q{Trying production: [/EXP/i]},
22516             Parse::RecDescent::_tracefirst($_[1]),
22517             q{sysfun}, $tracelevel
22518             ) if defined $::RD_TRACE;
22519 0         0 my $thisprod = $thisrule->{"prods"}[18];
22520 0         0 $text = $_[1];
22521 0         0 my $_savetext;
22522 0         0 @item = (q{sysfun});
22523 0         0 %item = (__RULE__ => q{sysfun});
22524 0         0 my $repcount = 0;
22525              
22526 0 0       0 Parse::RecDescent::_trace(
22527             q{Trying terminal: [/EXP/i]},
22528             Parse::RecDescent::_tracefirst($text),
22529             q{sysfun}, $tracelevel
22530             ) if defined $::RD_TRACE;
22531 0         0 $lastsep = "";
22532 0         0 $expectation->is(q{})->at($text);
22533              
22534 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
22535             and $text =~ s/\A(?:EXP)//i) {
22536              
22537 0         0 $expectation->failed();
22538 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
22539             if defined $::RD_TRACE;
22540              
22541 0         0 last;
22542             }
22543 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
22544             Parse::RecDescent::_tracefirst($text))
22545             if defined $::RD_TRACE;
22546 0         0 push @item, $item{__PATTERN1__} = $&;
22547              
22548 0 0       0 Parse::RecDescent::_trace(
22549             q{>>Matched production: [/EXP/i]<<},
22550             Parse::RecDescent::_tracefirst($text),
22551             q{sysfun}, $tracelevel
22552             ) if defined $::RD_TRACE;
22553 0         0 $_matched = 1;
22554 0         0 last;
22555             }
22556              
22557 0   0     0 while (!$_matched && !$commit) {
22558              
22559 0 0       0 Parse::RecDescent::_trace(
22560             q{Trying production: [/FLOOR/i]},
22561             Parse::RecDescent::_tracefirst($_[1]),
22562             q{sysfun}, $tracelevel
22563             ) if defined $::RD_TRACE;
22564 0         0 my $thisprod = $thisrule->{"prods"}[19];
22565 0         0 $text = $_[1];
22566 0         0 my $_savetext;
22567 0         0 @item = (q{sysfun});
22568 0         0 %item = (__RULE__ => q{sysfun});
22569 0         0 my $repcount = 0;
22570              
22571 0 0       0 Parse::RecDescent::_trace(
22572             q{Trying terminal: [/FLOOR/i]},
22573             Parse::RecDescent::_tracefirst($text),
22574             q{sysfun}, $tracelevel
22575             ) if defined $::RD_TRACE;
22576 0         0 $lastsep = "";
22577 0         0 $expectation->is(q{})->at($text);
22578              
22579 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
22580             and $text =~ s/\A(?:FLOOR)//i) {
22581              
22582 0         0 $expectation->failed();
22583 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
22584             if defined $::RD_TRACE;
22585              
22586 0         0 last;
22587             }
22588 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
22589             Parse::RecDescent::_tracefirst($text))
22590             if defined $::RD_TRACE;
22591 0         0 push @item, $item{__PATTERN1__} = $&;
22592              
22593 0 0       0 Parse::RecDescent::_trace(
22594             q{>>Matched production: [/FLOOR/i]<<},
22595             Parse::RecDescent::_tracefirst($text),
22596             q{sysfun}, $tracelevel
22597             ) if defined $::RD_TRACE;
22598 0         0 $_matched = 1;
22599 0         0 last;
22600             }
22601              
22602 0   0     0 while (!$_matched && !$commit) {
22603              
22604 0 0       0 Parse::RecDescent::_trace(
22605             q{Trying production: [/GET_ROUTINE_SAR/i]},
22606             Parse::RecDescent::_tracefirst($_[1]),
22607             q{sysfun}, $tracelevel
22608             ) if defined $::RD_TRACE;
22609 0         0 my $thisprod = $thisrule->{"prods"}[20];
22610 0         0 $text = $_[1];
22611 0         0 my $_savetext;
22612 0         0 @item = (q{sysfun});
22613 0         0 %item = (__RULE__ => q{sysfun});
22614 0         0 my $repcount = 0;
22615              
22616 0 0       0 Parse::RecDescent::_trace(
22617             q{Trying terminal: [/GET_ROUTINE_SAR/i]},
22618             Parse::RecDescent::_tracefirst($text),
22619             q{sysfun}, $tracelevel
22620             ) if defined $::RD_TRACE;
22621 0         0 $lastsep = "";
22622 0         0 $expectation->is(q{})->at($text);
22623              
22624 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
22625             and $text =~ s/\A(?:GET_ROUTINE_SAR)//i) {
22626              
22627 0         0 $expectation->failed();
22628 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
22629             if defined $::RD_TRACE;
22630              
22631 0         0 last;
22632             }
22633 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
22634             Parse::RecDescent::_tracefirst($text))
22635             if defined $::RD_TRACE;
22636 0         0 push @item, $item{__PATTERN1__} = $&;
22637              
22638 0 0       0 Parse::RecDescent::_trace(
22639             q{>>Matched production: [/GET_ROUTINE_SAR/i]<<},
22640             Parse::RecDescent::_tracefirst($text),
22641             q{sysfun}, $tracelevel
22642             ) if defined $::RD_TRACE;
22643 0         0 $_matched = 1;
22644 0         0 last;
22645             }
22646              
22647 0   0     0 while (!$_matched && !$commit) {
22648              
22649 0 0       0 Parse::RecDescent::_trace(
22650             q{Trying production: [/INSERT/i]},
22651             Parse::RecDescent::_tracefirst($_[1]),
22652             q{sysfun}, $tracelevel
22653             ) if defined $::RD_TRACE;
22654 0         0 my $thisprod = $thisrule->{"prods"}[21];
22655 0         0 $text = $_[1];
22656 0         0 my $_savetext;
22657 0         0 @item = (q{sysfun});
22658 0         0 %item = (__RULE__ => q{sysfun});
22659 0         0 my $repcount = 0;
22660              
22661 0 0       0 Parse::RecDescent::_trace(
22662             q{Trying terminal: [/INSERT/i]},
22663             Parse::RecDescent::_tracefirst($text),
22664             q{sysfun}, $tracelevel
22665             ) if defined $::RD_TRACE;
22666 0         0 $lastsep = "";
22667 0         0 $expectation->is(q{})->at($text);
22668              
22669 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
22670             and $text =~ s/\A(?:INSERT)//i) {
22671              
22672 0         0 $expectation->failed();
22673 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
22674             if defined $::RD_TRACE;
22675              
22676 0         0 last;
22677             }
22678 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
22679             Parse::RecDescent::_tracefirst($text))
22680             if defined $::RD_TRACE;
22681 0         0 push @item, $item{__PATTERN1__} = $&;
22682              
22683 0 0       0 Parse::RecDescent::_trace(
22684             q{>>Matched production: [/INSERT/i]<<},
22685             Parse::RecDescent::_tracefirst($text),
22686             q{sysfun}, $tracelevel
22687             ) if defined $::RD_TRACE;
22688 0         0 $_matched = 1;
22689 0         0 last;
22690             }
22691              
22692 0   0     0 while (!$_matched && !$commit) {
22693              
22694 0 0       0 Parse::RecDescent::_trace(
22695             q{Trying production: [/JULIAN_DAY/i]},
22696             Parse::RecDescent::_tracefirst($_[1]),
22697             q{sysfun}, $tracelevel
22698             ) if defined $::RD_TRACE;
22699 0         0 my $thisprod = $thisrule->{"prods"}[22];
22700 0         0 $text = $_[1];
22701 0         0 my $_savetext;
22702 0         0 @item = (q{sysfun});
22703 0         0 %item = (__RULE__ => q{sysfun});
22704 0         0 my $repcount = 0;
22705              
22706 0 0       0 Parse::RecDescent::_trace(
22707             q{Trying terminal: [/JULIAN_DAY/i]},
22708             Parse::RecDescent::_tracefirst($text),
22709             q{sysfun}, $tracelevel
22710             ) if defined $::RD_TRACE;
22711 0         0 $lastsep = "";
22712 0         0 $expectation->is(q{})->at($text);
22713              
22714 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
22715             and $text =~ s/\A(?:JULIAN_DAY)//i) {
22716              
22717 0         0 $expectation->failed();
22718 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
22719             if defined $::RD_TRACE;
22720              
22721 0         0 last;
22722             }
22723 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
22724             Parse::RecDescent::_tracefirst($text))
22725             if defined $::RD_TRACE;
22726 0         0 push @item, $item{__PATTERN1__} = $&;
22727              
22728 0 0       0 Parse::RecDescent::_trace(
22729             q{>>Matched production: [/JULIAN_DAY/i]<<},
22730             Parse::RecDescent::_tracefirst($text),
22731             q{sysfun}, $tracelevel
22732             ) if defined $::RD_TRACE;
22733 0         0 $_matched = 1;
22734 0         0 last;
22735             }
22736              
22737 0   0     0 while (!$_matched && !$commit) {
22738              
22739 0 0       0 Parse::RecDescent::_trace(
22740             q{Trying production: [/LCASE/i]},
22741             Parse::RecDescent::_tracefirst($_[1]),
22742             q{sysfun}, $tracelevel
22743             ) if defined $::RD_TRACE;
22744 0         0 my $thisprod = $thisrule->{"prods"}[23];
22745 0         0 $text = $_[1];
22746 0         0 my $_savetext;
22747 0         0 @item = (q{sysfun});
22748 0         0 %item = (__RULE__ => q{sysfun});
22749 0         0 my $repcount = 0;
22750              
22751 0 0       0 Parse::RecDescent::_trace(
22752             q{Trying terminal: [/LCASE/i]},
22753             Parse::RecDescent::_tracefirst($text),
22754             q{sysfun}, $tracelevel
22755             ) if defined $::RD_TRACE;
22756 0         0 $lastsep = "";
22757 0         0 $expectation->is(q{})->at($text);
22758              
22759 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
22760             and $text =~ s/\A(?:LCASE)//i) {
22761              
22762 0         0 $expectation->failed();
22763 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
22764             if defined $::RD_TRACE;
22765              
22766 0         0 last;
22767             }
22768 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
22769             Parse::RecDescent::_tracefirst($text))
22770             if defined $::RD_TRACE;
22771 0         0 push @item, $item{__PATTERN1__} = $&;
22772              
22773 0 0       0 Parse::RecDescent::_trace(
22774             q{>>Matched production: [/LCASE/i]<<},
22775             Parse::RecDescent::_tracefirst($text),
22776             q{sysfun}, $tracelevel
22777             ) if defined $::RD_TRACE;
22778 0         0 $_matched = 1;
22779 0         0 last;
22780             }
22781              
22782 0   0     0 while (!$_matched && !$commit) {
22783              
22784 0 0       0 Parse::RecDescent::_trace(
22785             q{Trying production: [/LEFT/i]},
22786             Parse::RecDescent::_tracefirst($_[1]),
22787             q{sysfun}, $tracelevel
22788             ) if defined $::RD_TRACE;
22789 0         0 my $thisprod = $thisrule->{"prods"}[24];
22790 0         0 $text = $_[1];
22791 0         0 my $_savetext;
22792 0         0 @item = (q{sysfun});
22793 0         0 %item = (__RULE__ => q{sysfun});
22794 0         0 my $repcount = 0;
22795              
22796 0 0       0 Parse::RecDescent::_trace(
22797             q{Trying terminal: [/LEFT/i]},
22798             Parse::RecDescent::_tracefirst($text),
22799             q{sysfun}, $tracelevel
22800             ) if defined $::RD_TRACE;
22801 0         0 $lastsep = "";
22802 0         0 $expectation->is(q{})->at($text);
22803              
22804 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
22805             and $text =~ s/\A(?:LEFT)//i) {
22806              
22807 0         0 $expectation->failed();
22808 0 0       0 Parse::RecDescent::_trace(q{<>}, 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: [} . $& . q{])},
22814             Parse::RecDescent::_tracefirst($text))
22815             if defined $::RD_TRACE;
22816 0         0 push @item, $item{__PATTERN1__} = $&;
22817              
22818 0 0       0 Parse::RecDescent::_trace(
22819             q{>>Matched production: [/LEFT/i]<<},
22820             Parse::RecDescent::_tracefirst($text),
22821             q{sysfun}, $tracelevel
22822             ) if defined $::RD_TRACE;
22823 0         0 $_matched = 1;
22824 0         0 last;
22825             }
22826              
22827 0   0     0 while (!$_matched && !$commit) {
22828              
22829 0 0       0 Parse::RecDescent::_trace(
22830             q{Trying production: [/LN/i]},
22831             Parse::RecDescent::_tracefirst($_[1]),
22832             q{sysfun}, $tracelevel
22833             ) if defined $::RD_TRACE;
22834 0         0 my $thisprod = $thisrule->{"prods"}[25];
22835 0         0 $text = $_[1];
22836 0         0 my $_savetext;
22837 0         0 @item = (q{sysfun});
22838 0         0 %item = (__RULE__ => q{sysfun});
22839 0         0 my $repcount = 0;
22840              
22841 0 0       0 Parse::RecDescent::_trace(
22842             q{Trying terminal: [/LN/i]},
22843             Parse::RecDescent::_tracefirst($text),
22844             q{sysfun}, $tracelevel
22845             ) if defined $::RD_TRACE;
22846 0         0 $lastsep = "";
22847 0         0 $expectation->is(q{})->at($text);
22848              
22849 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
22850             and $text =~ s/\A(?:LN)//i) {
22851              
22852 0         0 $expectation->failed();
22853 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
22854             if defined $::RD_TRACE;
22855              
22856 0         0 last;
22857             }
22858 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
22859             Parse::RecDescent::_tracefirst($text))
22860             if defined $::RD_TRACE;
22861 0         0 push @item, $item{__PATTERN1__} = $&;
22862              
22863 0 0       0 Parse::RecDescent::_trace(
22864             q{>>Matched production: [/LN/i]<<},
22865             Parse::RecDescent::_tracefirst($text),
22866             q{sysfun}, $tracelevel
22867             ) if defined $::RD_TRACE;
22868 0         0 $_matched = 1;
22869 0         0 last;
22870             }
22871              
22872 0   0     0 while (!$_matched && !$commit) {
22873              
22874 0 0       0 Parse::RecDescent::_trace(
22875             q{Trying production: [/LOCATE/i]},
22876             Parse::RecDescent::_tracefirst($_[1]),
22877             q{sysfun}, $tracelevel
22878             ) if defined $::RD_TRACE;
22879 0         0 my $thisprod = $thisrule->{"prods"}[26];
22880 0         0 $text = $_[1];
22881 0         0 my $_savetext;
22882 0         0 @item = (q{sysfun});
22883 0         0 %item = (__RULE__ => q{sysfun});
22884 0         0 my $repcount = 0;
22885              
22886 0 0       0 Parse::RecDescent::_trace(
22887             q{Trying terminal: [/LOCATE/i]},
22888             Parse::RecDescent::_tracefirst($text),
22889             q{sysfun}, $tracelevel
22890             ) if defined $::RD_TRACE;
22891 0         0 $lastsep = "";
22892 0         0 $expectation->is(q{})->at($text);
22893              
22894 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
22895             and $text =~ s/\A(?:LOCATE)//i) {
22896              
22897 0         0 $expectation->failed();
22898 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
22899             if defined $::RD_TRACE;
22900              
22901 0         0 last;
22902             }
22903 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
22904             Parse::RecDescent::_tracefirst($text))
22905             if defined $::RD_TRACE;
22906 0         0 push @item, $item{__PATTERN1__} = $&;
22907              
22908 0 0       0 Parse::RecDescent::_trace(
22909             q{>>Matched production: [/LOCATE/i]<<},
22910             Parse::RecDescent::_tracefirst($text),
22911             q{sysfun}, $tracelevel
22912             ) if defined $::RD_TRACE;
22913 0         0 $_matched = 1;
22914 0         0 last;
22915             }
22916              
22917 0   0     0 while (!$_matched && !$commit) {
22918              
22919 0 0       0 Parse::RecDescent::_trace(
22920             q{Trying production: [/LOG/i]},
22921             Parse::RecDescent::_tracefirst($_[1]),
22922             q{sysfun}, $tracelevel
22923             ) if defined $::RD_TRACE;
22924 0         0 my $thisprod = $thisrule->{"prods"}[27];
22925 0         0 $text = $_[1];
22926 0         0 my $_savetext;
22927 0         0 @item = (q{sysfun});
22928 0         0 %item = (__RULE__ => q{sysfun});
22929 0         0 my $repcount = 0;
22930              
22931 0 0       0 Parse::RecDescent::_trace(
22932             q{Trying terminal: [/LOG/i]},
22933             Parse::RecDescent::_tracefirst($text),
22934             q{sysfun}, $tracelevel
22935             ) if defined $::RD_TRACE;
22936 0         0 $lastsep = "";
22937 0         0 $expectation->is(q{})->at($text);
22938              
22939 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
22940             and $text =~ s/\A(?:LOG)//i) {
22941              
22942 0         0 $expectation->failed();
22943 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
22944             if defined $::RD_TRACE;
22945              
22946 0         0 last;
22947             }
22948 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
22949             Parse::RecDescent::_tracefirst($text))
22950             if defined $::RD_TRACE;
22951 0         0 push @item, $item{__PATTERN1__} = $&;
22952              
22953 0 0       0 Parse::RecDescent::_trace(
22954             q{>>Matched production: [/LOG/i]<<},
22955             Parse::RecDescent::_tracefirst($text),
22956             q{sysfun}, $tracelevel
22957             ) if defined $::RD_TRACE;
22958 0         0 $_matched = 1;
22959 0         0 last;
22960             }
22961              
22962 0   0     0 while (!$_matched && !$commit) {
22963              
22964 0 0       0 Parse::RecDescent::_trace(
22965             q{Trying production: [/LOG10/i]},
22966             Parse::RecDescent::_tracefirst($_[1]),
22967             q{sysfun}, $tracelevel
22968             ) if defined $::RD_TRACE;
22969 0         0 my $thisprod = $thisrule->{"prods"}[28];
22970 0         0 $text = $_[1];
22971 0         0 my $_savetext;
22972 0         0 @item = (q{sysfun});
22973 0         0 %item = (__RULE__ => q{sysfun});
22974 0         0 my $repcount = 0;
22975              
22976 0 0       0 Parse::RecDescent::_trace(
22977             q{Trying terminal: [/LOG10/i]},
22978             Parse::RecDescent::_tracefirst($text),
22979             q{sysfun}, $tracelevel
22980             ) if defined $::RD_TRACE;
22981 0         0 $lastsep = "";
22982 0         0 $expectation->is(q{})->at($text);
22983              
22984 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
22985             and $text =~ s/\A(?:LOG10)//i) {
22986              
22987 0         0 $expectation->failed();
22988 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
22989             if defined $::RD_TRACE;
22990              
22991 0         0 last;
22992             }
22993 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
22994             Parse::RecDescent::_tracefirst($text))
22995             if defined $::RD_TRACE;
22996 0         0 push @item, $item{__PATTERN1__} = $&;
22997              
22998 0 0       0 Parse::RecDescent::_trace(
22999             q{>>Matched production: [/LOG10/i]<<},
23000             Parse::RecDescent::_tracefirst($text),
23001             q{sysfun}, $tracelevel
23002             ) if defined $::RD_TRACE;
23003 0         0 $_matched = 1;
23004 0         0 last;
23005             }
23006              
23007 0   0     0 while (!$_matched && !$commit) {
23008              
23009 0 0       0 Parse::RecDescent::_trace(
23010             q{Trying production: [/LTRIM/i]},
23011             Parse::RecDescent::_tracefirst($_[1]),
23012             q{sysfun}, $tracelevel
23013             ) if defined $::RD_TRACE;
23014 0         0 my $thisprod = $thisrule->{"prods"}[29];
23015 0         0 $text = $_[1];
23016 0         0 my $_savetext;
23017 0         0 @item = (q{sysfun});
23018 0         0 %item = (__RULE__ => q{sysfun});
23019 0         0 my $repcount = 0;
23020              
23021 0 0       0 Parse::RecDescent::_trace(
23022             q{Trying terminal: [/LTRIM/i]},
23023             Parse::RecDescent::_tracefirst($text),
23024             q{sysfun}, $tracelevel
23025             ) if defined $::RD_TRACE;
23026 0         0 $lastsep = "";
23027 0         0 $expectation->is(q{})->at($text);
23028              
23029 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
23030             and $text =~ s/\A(?:LTRIM)//i) {
23031              
23032 0         0 $expectation->failed();
23033 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
23034             if defined $::RD_TRACE;
23035              
23036 0         0 last;
23037             }
23038 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
23039             Parse::RecDescent::_tracefirst($text))
23040             if defined $::RD_TRACE;
23041 0         0 push @item, $item{__PATTERN1__} = $&;
23042              
23043 0 0       0 Parse::RecDescent::_trace(
23044             q{>>Matched production: [/LTRIM/i]<<},
23045             Parse::RecDescent::_tracefirst($text),
23046             q{sysfun}, $tracelevel
23047             ) if defined $::RD_TRACE;
23048 0         0 $_matched = 1;
23049 0         0 last;
23050             }
23051              
23052 0   0     0 while (!$_matched && !$commit) {
23053              
23054 0 0       0 Parse::RecDescent::_trace(
23055             q{Trying production: [/MIDNIGHT_SECONDS/i]},
23056             Parse::RecDescent::_tracefirst($_[1]),
23057             q{sysfun}, $tracelevel
23058             ) if defined $::RD_TRACE;
23059 0         0 my $thisprod = $thisrule->{"prods"}[30];
23060 0         0 $text = $_[1];
23061 0         0 my $_savetext;
23062 0         0 @item = (q{sysfun});
23063 0         0 %item = (__RULE__ => q{sysfun});
23064 0         0 my $repcount = 0;
23065              
23066 0 0       0 Parse::RecDescent::_trace(
23067             q{Trying terminal: [/MIDNIGHT_SECONDS/i]},
23068             Parse::RecDescent::_tracefirst($text),
23069             q{sysfun}, $tracelevel
23070             ) if defined $::RD_TRACE;
23071 0         0 $lastsep = "";
23072 0         0 $expectation->is(q{})->at($text);
23073              
23074 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
23075             and $text =~ s/\A(?:MIDNIGHT_SECONDS)//i) {
23076              
23077 0         0 $expectation->failed();
23078 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
23079             if defined $::RD_TRACE;
23080              
23081 0         0 last;
23082             }
23083 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
23084             Parse::RecDescent::_tracefirst($text))
23085             if defined $::RD_TRACE;
23086 0         0 push @item, $item{__PATTERN1__} = $&;
23087              
23088 0 0       0 Parse::RecDescent::_trace(
23089             q{>>Matched production: [/MIDNIGHT_SECONDS/i]<<},
23090             Parse::RecDescent::_tracefirst($text),
23091             q{sysfun}, $tracelevel
23092             ) if defined $::RD_TRACE;
23093 0         0 $_matched = 1;
23094 0         0 last;
23095             }
23096              
23097 0   0     0 while (!$_matched && !$commit) {
23098              
23099 0 0       0 Parse::RecDescent::_trace(
23100             q{Trying production: [/MOD/i]},
23101             Parse::RecDescent::_tracefirst($_[1]),
23102             q{sysfun}, $tracelevel
23103             ) if defined $::RD_TRACE;
23104 0         0 my $thisprod = $thisrule->{"prods"}[31];
23105 0         0 $text = $_[1];
23106 0         0 my $_savetext;
23107 0         0 @item = (q{sysfun});
23108 0         0 %item = (__RULE__ => q{sysfun});
23109 0         0 my $repcount = 0;
23110              
23111 0 0       0 Parse::RecDescent::_trace(
23112             q{Trying terminal: [/MOD/i]},
23113             Parse::RecDescent::_tracefirst($text),
23114             q{sysfun}, $tracelevel
23115             ) if defined $::RD_TRACE;
23116 0         0 $lastsep = "";
23117 0         0 $expectation->is(q{})->at($text);
23118              
23119 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
23120             and $text =~ s/\A(?:MOD)//i) {
23121              
23122 0         0 $expectation->failed();
23123 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
23124             if defined $::RD_TRACE;
23125              
23126 0         0 last;
23127             }
23128 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
23129             Parse::RecDescent::_tracefirst($text))
23130             if defined $::RD_TRACE;
23131 0         0 push @item, $item{__PATTERN1__} = $&;
23132              
23133 0 0       0 Parse::RecDescent::_trace(
23134             q{>>Matched production: [/MOD/i]<<},
23135             Parse::RecDescent::_tracefirst($text),
23136             q{sysfun}, $tracelevel
23137             ) if defined $::RD_TRACE;
23138 0         0 $_matched = 1;
23139 0         0 last;
23140             }
23141              
23142 0   0     0 while (!$_matched && !$commit) {
23143              
23144 0 0       0 Parse::RecDescent::_trace(
23145             q{Trying production: [/MONTHNAME/i]},
23146             Parse::RecDescent::_tracefirst($_[1]),
23147             q{sysfun}, $tracelevel
23148             ) if defined $::RD_TRACE;
23149 0         0 my $thisprod = $thisrule->{"prods"}[32];
23150 0         0 $text = $_[1];
23151 0         0 my $_savetext;
23152 0         0 @item = (q{sysfun});
23153 0         0 %item = (__RULE__ => q{sysfun});
23154 0         0 my $repcount = 0;
23155              
23156 0 0       0 Parse::RecDescent::_trace(
23157             q{Trying terminal: [/MONTHNAME/i]},
23158             Parse::RecDescent::_tracefirst($text),
23159             q{sysfun}, $tracelevel
23160             ) if defined $::RD_TRACE;
23161 0         0 $lastsep = "";
23162 0         0 $expectation->is(q{})->at($text);
23163              
23164 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
23165             and $text =~ s/\A(?:MONTHNAME)//i) {
23166              
23167 0         0 $expectation->failed();
23168 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
23169             if defined $::RD_TRACE;
23170              
23171 0         0 last;
23172             }
23173 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
23174             Parse::RecDescent::_tracefirst($text))
23175             if defined $::RD_TRACE;
23176 0         0 push @item, $item{__PATTERN1__} = $&;
23177              
23178 0 0       0 Parse::RecDescent::_trace(
23179             q{>>Matched production: [/MONTHNAME/i]<<},
23180             Parse::RecDescent::_tracefirst($text),
23181             q{sysfun}, $tracelevel
23182             ) if defined $::RD_TRACE;
23183 0         0 $_matched = 1;
23184 0         0 last;
23185             }
23186              
23187 0   0     0 while (!$_matched && !$commit) {
23188              
23189 0 0       0 Parse::RecDescent::_trace(
23190             q{Trying production: [/POWER/i]},
23191             Parse::RecDescent::_tracefirst($_[1]),
23192             q{sysfun}, $tracelevel
23193             ) if defined $::RD_TRACE;
23194 0         0 my $thisprod = $thisrule->{"prods"}[33];
23195 0         0 $text = $_[1];
23196 0         0 my $_savetext;
23197 0         0 @item = (q{sysfun});
23198 0         0 %item = (__RULE__ => q{sysfun});
23199 0         0 my $repcount = 0;
23200              
23201 0 0       0 Parse::RecDescent::_trace(
23202             q{Trying terminal: [/POWER/i]},
23203             Parse::RecDescent::_tracefirst($text),
23204             q{sysfun}, $tracelevel
23205             ) if defined $::RD_TRACE;
23206 0         0 $lastsep = "";
23207 0         0 $expectation->is(q{})->at($text);
23208              
23209 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
23210             and $text =~ s/\A(?:POWER)//i) {
23211              
23212 0         0 $expectation->failed();
23213 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
23214             if defined $::RD_TRACE;
23215              
23216 0         0 last;
23217             }
23218 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
23219             Parse::RecDescent::_tracefirst($text))
23220             if defined $::RD_TRACE;
23221 0         0 push @item, $item{__PATTERN1__} = $&;
23222              
23223 0 0       0 Parse::RecDescent::_trace(
23224             q{>>Matched production: [/POWER/i]<<},
23225             Parse::RecDescent::_tracefirst($text),
23226             q{sysfun}, $tracelevel
23227             ) if defined $::RD_TRACE;
23228 0         0 $_matched = 1;
23229 0         0 last;
23230             }
23231              
23232 0   0     0 while (!$_matched && !$commit) {
23233              
23234 0 0       0 Parse::RecDescent::_trace(
23235             q{Trying production: [/PUT_ROUTINE_SAR/i]},
23236             Parse::RecDescent::_tracefirst($_[1]),
23237             q{sysfun}, $tracelevel
23238             ) if defined $::RD_TRACE;
23239 0         0 my $thisprod = $thisrule->{"prods"}[34];
23240 0         0 $text = $_[1];
23241 0         0 my $_savetext;
23242 0         0 @item = (q{sysfun});
23243 0         0 %item = (__RULE__ => q{sysfun});
23244 0         0 my $repcount = 0;
23245              
23246 0 0       0 Parse::RecDescent::_trace(
23247             q{Trying terminal: [/PUT_ROUTINE_SAR/i]},
23248             Parse::RecDescent::_tracefirst($text),
23249             q{sysfun}, $tracelevel
23250             ) if defined $::RD_TRACE;
23251 0         0 $lastsep = "";
23252 0         0 $expectation->is(q{})->at($text);
23253              
23254 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
23255             and $text =~ s/\A(?:PUT_ROUTINE_SAR)//i) {
23256              
23257 0         0 $expectation->failed();
23258 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
23259             if defined $::RD_TRACE;
23260              
23261 0         0 last;
23262             }
23263 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
23264             Parse::RecDescent::_tracefirst($text))
23265             if defined $::RD_TRACE;
23266 0         0 push @item, $item{__PATTERN1__} = $&;
23267              
23268 0 0       0 Parse::RecDescent::_trace(
23269             q{>>Matched production: [/PUT_ROUTINE_SAR/i]<<},
23270             Parse::RecDescent::_tracefirst($text),
23271             q{sysfun}, $tracelevel
23272             ) if defined $::RD_TRACE;
23273 0         0 $_matched = 1;
23274 0         0 last;
23275             }
23276              
23277 0   0     0 while (!$_matched && !$commit) {
23278              
23279 0 0       0 Parse::RecDescent::_trace(
23280             q{Trying production: [/QUARTER/i]},
23281             Parse::RecDescent::_tracefirst($_[1]),
23282             q{sysfun}, $tracelevel
23283             ) if defined $::RD_TRACE;
23284 0         0 my $thisprod = $thisrule->{"prods"}[35];
23285 0         0 $text = $_[1];
23286 0         0 my $_savetext;
23287 0         0 @item = (q{sysfun});
23288 0         0 %item = (__RULE__ => q{sysfun});
23289 0         0 my $repcount = 0;
23290              
23291 0 0       0 Parse::RecDescent::_trace(
23292             q{Trying terminal: [/QUARTER/i]},
23293             Parse::RecDescent::_tracefirst($text),
23294             q{sysfun}, $tracelevel
23295             ) if defined $::RD_TRACE;
23296 0         0 $lastsep = "";
23297 0         0 $expectation->is(q{})->at($text);
23298              
23299 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
23300             and $text =~ s/\A(?:QUARTER)//i) {
23301              
23302 0         0 $expectation->failed();
23303 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
23304             if defined $::RD_TRACE;
23305              
23306 0         0 last;
23307             }
23308 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
23309             Parse::RecDescent::_tracefirst($text))
23310             if defined $::RD_TRACE;
23311 0         0 push @item, $item{__PATTERN1__} = $&;
23312              
23313 0 0       0 Parse::RecDescent::_trace(
23314             q{>>Matched production: [/QUARTER/i]<<},
23315             Parse::RecDescent::_tracefirst($text),
23316             q{sysfun}, $tracelevel
23317             ) if defined $::RD_TRACE;
23318 0         0 $_matched = 1;
23319 0         0 last;
23320             }
23321              
23322 0   0     0 while (!$_matched && !$commit) {
23323              
23324 0 0       0 Parse::RecDescent::_trace(
23325             q{Trying production: [/RADIANS/i]},
23326             Parse::RecDescent::_tracefirst($_[1]),
23327             q{sysfun}, $tracelevel
23328             ) if defined $::RD_TRACE;
23329 0         0 my $thisprod = $thisrule->{"prods"}[36];
23330 0         0 $text = $_[1];
23331 0         0 my $_savetext;
23332 0         0 @item = (q{sysfun});
23333 0         0 %item = (__RULE__ => q{sysfun});
23334 0         0 my $repcount = 0;
23335              
23336 0 0       0 Parse::RecDescent::_trace(
23337             q{Trying terminal: [/RADIANS/i]},
23338             Parse::RecDescent::_tracefirst($text),
23339             q{sysfun}, $tracelevel
23340             ) if defined $::RD_TRACE;
23341 0         0 $lastsep = "";
23342 0         0 $expectation->is(q{})->at($text);
23343              
23344 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
23345             and $text =~ s/\A(?:RADIANS)//i) {
23346              
23347 0         0 $expectation->failed();
23348 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
23349             if defined $::RD_TRACE;
23350              
23351 0         0 last;
23352             }
23353 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
23354             Parse::RecDescent::_tracefirst($text))
23355             if defined $::RD_TRACE;
23356 0         0 push @item, $item{__PATTERN1__} = $&;
23357              
23358 0 0       0 Parse::RecDescent::_trace(
23359             q{>>Matched production: [/RADIANS/i]<<},
23360             Parse::RecDescent::_tracefirst($text),
23361             q{sysfun}, $tracelevel
23362             ) if defined $::RD_TRACE;
23363 0         0 $_matched = 1;
23364 0         0 last;
23365             }
23366              
23367 0   0     0 while (!$_matched && !$commit) {
23368              
23369 0 0       0 Parse::RecDescent::_trace(
23370             q{Trying production: [/RAND/i]},
23371             Parse::RecDescent::_tracefirst($_[1]),
23372             q{sysfun}, $tracelevel
23373             ) if defined $::RD_TRACE;
23374 0         0 my $thisprod = $thisrule->{"prods"}[37];
23375 0         0 $text = $_[1];
23376 0         0 my $_savetext;
23377 0         0 @item = (q{sysfun});
23378 0         0 %item = (__RULE__ => q{sysfun});
23379 0         0 my $repcount = 0;
23380              
23381 0 0       0 Parse::RecDescent::_trace(
23382             q{Trying terminal: [/RAND/i]},
23383             Parse::RecDescent::_tracefirst($text),
23384             q{sysfun}, $tracelevel
23385             ) if defined $::RD_TRACE;
23386 0         0 $lastsep = "";
23387 0         0 $expectation->is(q{})->at($text);
23388              
23389 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
23390             and $text =~ s/\A(?:RAND)//i) {
23391              
23392 0         0 $expectation->failed();
23393 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
23394             if defined $::RD_TRACE;
23395              
23396 0         0 last;
23397             }
23398 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
23399             Parse::RecDescent::_tracefirst($text))
23400             if defined $::RD_TRACE;
23401 0         0 push @item, $item{__PATTERN1__} = $&;
23402              
23403 0 0       0 Parse::RecDescent::_trace(
23404             q{>>Matched production: [/RAND/i]<<},
23405             Parse::RecDescent::_tracefirst($text),
23406             q{sysfun}, $tracelevel
23407             ) if defined $::RD_TRACE;
23408 0         0 $_matched = 1;
23409 0         0 last;
23410             }
23411              
23412 0   0     0 while (!$_matched && !$commit) {
23413              
23414 0 0       0 Parse::RecDescent::_trace(
23415             q{Trying production: [/REPEAT/i]},
23416             Parse::RecDescent::_tracefirst($_[1]),
23417             q{sysfun}, $tracelevel
23418             ) if defined $::RD_TRACE;
23419 0         0 my $thisprod = $thisrule->{"prods"}[38];
23420 0         0 $text = $_[1];
23421 0         0 my $_savetext;
23422 0         0 @item = (q{sysfun});
23423 0         0 %item = (__RULE__ => q{sysfun});
23424 0         0 my $repcount = 0;
23425              
23426 0 0       0 Parse::RecDescent::_trace(
23427             q{Trying terminal: [/REPEAT/i]},
23428             Parse::RecDescent::_tracefirst($text),
23429             q{sysfun}, $tracelevel
23430             ) if defined $::RD_TRACE;
23431 0         0 $lastsep = "";
23432 0         0 $expectation->is(q{})->at($text);
23433              
23434 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
23435             and $text =~ s/\A(?:REPEAT)//i) {
23436              
23437 0         0 $expectation->failed();
23438 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
23439             if defined $::RD_TRACE;
23440              
23441 0         0 last;
23442             }
23443 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
23444             Parse::RecDescent::_tracefirst($text))
23445             if defined $::RD_TRACE;
23446 0         0 push @item, $item{__PATTERN1__} = $&;
23447              
23448 0 0       0 Parse::RecDescent::_trace(
23449             q{>>Matched production: [/REPEAT/i]<<},
23450             Parse::RecDescent::_tracefirst($text),
23451             q{sysfun}, $tracelevel
23452             ) if defined $::RD_TRACE;
23453 0         0 $_matched = 1;
23454 0         0 last;
23455             }
23456              
23457 0   0     0 while (!$_matched && !$commit) {
23458              
23459 0 0       0 Parse::RecDescent::_trace(
23460             q{Trying production: [/REPLACE/i]},
23461             Parse::RecDescent::_tracefirst($_[1]),
23462             q{sysfun}, $tracelevel
23463             ) if defined $::RD_TRACE;
23464 0         0 my $thisprod = $thisrule->{"prods"}[39];
23465 0         0 $text = $_[1];
23466 0         0 my $_savetext;
23467 0         0 @item = (q{sysfun});
23468 0         0 %item = (__RULE__ => q{sysfun});
23469 0         0 my $repcount = 0;
23470              
23471 0 0       0 Parse::RecDescent::_trace(
23472             q{Trying terminal: [/REPLACE/i]},
23473             Parse::RecDescent::_tracefirst($text),
23474             q{sysfun}, $tracelevel
23475             ) if defined $::RD_TRACE;
23476 0         0 $lastsep = "";
23477 0         0 $expectation->is(q{})->at($text);
23478              
23479 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
23480             and $text =~ s/\A(?:REPLACE)//i) {
23481              
23482 0         0 $expectation->failed();
23483 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
23484             if defined $::RD_TRACE;
23485              
23486 0         0 last;
23487             }
23488 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
23489             Parse::RecDescent::_tracefirst($text))
23490             if defined $::RD_TRACE;
23491 0         0 push @item, $item{__PATTERN1__} = $&;
23492              
23493 0 0       0 Parse::RecDescent::_trace(
23494             q{>>Matched production: [/REPLACE/i]<<},
23495             Parse::RecDescent::_tracefirst($text),
23496             q{sysfun}, $tracelevel
23497             ) if defined $::RD_TRACE;
23498 0         0 $_matched = 1;
23499 0         0 last;
23500             }
23501              
23502 0   0     0 while (!$_matched && !$commit) {
23503              
23504 0 0       0 Parse::RecDescent::_trace(
23505             q{Trying production: [/RIGHT/i]},
23506             Parse::RecDescent::_tracefirst($_[1]),
23507             q{sysfun}, $tracelevel
23508             ) if defined $::RD_TRACE;
23509 0         0 my $thisprod = $thisrule->{"prods"}[40];
23510 0         0 $text = $_[1];
23511 0         0 my $_savetext;
23512 0         0 @item = (q{sysfun});
23513 0         0 %item = (__RULE__ => q{sysfun});
23514 0         0 my $repcount = 0;
23515              
23516 0 0       0 Parse::RecDescent::_trace(
23517             q{Trying terminal: [/RIGHT/i]},
23518             Parse::RecDescent::_tracefirst($text),
23519             q{sysfun}, $tracelevel
23520             ) if defined $::RD_TRACE;
23521 0         0 $lastsep = "";
23522 0         0 $expectation->is(q{})->at($text);
23523              
23524 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
23525             and $text =~ s/\A(?:RIGHT)//i) {
23526              
23527 0         0 $expectation->failed();
23528 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
23529             if defined $::RD_TRACE;
23530              
23531 0         0 last;
23532             }
23533 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
23534             Parse::RecDescent::_tracefirst($text))
23535             if defined $::RD_TRACE;
23536 0         0 push @item, $item{__PATTERN1__} = $&;
23537              
23538 0 0       0 Parse::RecDescent::_trace(
23539             q{>>Matched production: [/RIGHT/i]<<},
23540             Parse::RecDescent::_tracefirst($text),
23541             q{sysfun}, $tracelevel
23542             ) if defined $::RD_TRACE;
23543 0         0 $_matched = 1;
23544 0         0 last;
23545             }
23546              
23547 0   0     0 while (!$_matched && !$commit) {
23548              
23549 0 0       0 Parse::RecDescent::_trace(
23550             q{Trying production: [/ROUND/i]},
23551             Parse::RecDescent::_tracefirst($_[1]),
23552             q{sysfun}, $tracelevel
23553             ) if defined $::RD_TRACE;
23554 0         0 my $thisprod = $thisrule->{"prods"}[41];
23555 0         0 $text = $_[1];
23556 0         0 my $_savetext;
23557 0         0 @item = (q{sysfun});
23558 0         0 %item = (__RULE__ => q{sysfun});
23559 0         0 my $repcount = 0;
23560              
23561 0 0       0 Parse::RecDescent::_trace(
23562             q{Trying terminal: [/ROUND/i]},
23563             Parse::RecDescent::_tracefirst($text),
23564             q{sysfun}, $tracelevel
23565             ) if defined $::RD_TRACE;
23566 0         0 $lastsep = "";
23567 0         0 $expectation->is(q{})->at($text);
23568              
23569 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
23570             and $text =~ s/\A(?:ROUND)//i) {
23571              
23572 0         0 $expectation->failed();
23573 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
23574             if defined $::RD_TRACE;
23575              
23576 0         0 last;
23577             }
23578 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
23579             Parse::RecDescent::_tracefirst($text))
23580             if defined $::RD_TRACE;
23581 0         0 push @item, $item{__PATTERN1__} = $&;
23582              
23583 0 0       0 Parse::RecDescent::_trace(
23584             q{>>Matched production: [/ROUND/i]<<},
23585             Parse::RecDescent::_tracefirst($text),
23586             q{sysfun}, $tracelevel
23587             ) if defined $::RD_TRACE;
23588 0         0 $_matched = 1;
23589 0         0 last;
23590             }
23591              
23592 0   0     0 while (!$_matched && !$commit) {
23593              
23594 0 0       0 Parse::RecDescent::_trace(
23595             q{Trying production: [/RTRIM/ I]},
23596             Parse::RecDescent::_tracefirst($_[1]),
23597             q{sysfun}, $tracelevel
23598             ) if defined $::RD_TRACE;
23599 0         0 my $thisprod = $thisrule->{"prods"}[42];
23600 0         0 $text = $_[1];
23601 0         0 my $_savetext;
23602 0         0 @item = (q{sysfun});
23603 0         0 %item = (__RULE__ => q{sysfun});
23604 0         0 my $repcount = 0;
23605              
23606 0 0       0 Parse::RecDescent::_trace(
23607             q{Trying terminal: [/RTRIM/]},
23608             Parse::RecDescent::_tracefirst($text),
23609             q{sysfun}, $tracelevel
23610             ) if defined $::RD_TRACE;
23611 0         0 $lastsep = "";
23612 0         0 $expectation->is(q{})->at($text);
23613              
23614 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
23615             and $text =~ s/\A(?:RTRIM)//) {
23616              
23617 0         0 $expectation->failed();
23618 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
23619             if defined $::RD_TRACE;
23620              
23621 0         0 last;
23622             }
23623 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
23624             Parse::RecDescent::_tracefirst($text))
23625             if defined $::RD_TRACE;
23626 0         0 push @item, $item{__PATTERN1__} = $&;
23627              
23628 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [I]}, Parse::RecDescent::_tracefirst($text), q{sysfun}, $tracelevel)
23629             if defined $::RD_TRACE;
23630 0         0 if (1) {
23631 1     1   16 no strict qw{refs};
  1         2  
  1         6044  
23632 0         0 $expectation->is(q{I})->at($text);
23633 0 0       0 unless (defined(
23634             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::I(
23635 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
23636             )
23637             )) {
23638              
23639 0 0       0 Parse::RecDescent::_trace(
23640             q{<>},
23641             Parse::RecDescent::_tracefirst($text),
23642             q{sysfun}, $tracelevel
23643             ) if defined $::RD_TRACE;
23644 0         0 $expectation->failed();
23645 0         0 last;
23646             }
23647             Parse::RecDescent::_trace(
23648 0 0       0 q{>>Matched subrule: [I]<< (return value: [} . $_tok . q{]},
23649              
23650             Parse::RecDescent::_tracefirst($text),
23651             q{sysfun},
23652             $tracelevel
23653             ) if defined $::RD_TRACE;
23654 0         0 $item{q{I}} = $_tok;
23655 0         0 push @item, $_tok;
23656              
23657             }
23658              
23659             Parse::RecDescent::_trace(
23660 0 0       0 q{>>Matched production: [/RTRIM/ I]<<},
23661             Parse::RecDescent::_tracefirst($text),
23662             q{sysfun}, $tracelevel
23663             ) if defined $::RD_TRACE;
23664 0         0 $_matched = 1;
23665 0         0 last;
23666             }
23667              
23668 0   0     0 while (!$_matched && !$commit) {
23669              
23670 0 0       0 Parse::RecDescent::_trace(
23671             q{Trying production: [/SIGN/i]},
23672             Parse::RecDescent::_tracefirst($_[1]),
23673             q{sysfun}, $tracelevel
23674             ) if defined $::RD_TRACE;
23675 0         0 my $thisprod = $thisrule->{"prods"}[43];
23676 0         0 $text = $_[1];
23677 0         0 my $_savetext;
23678 0         0 @item = (q{sysfun});
23679 0         0 %item = (__RULE__ => q{sysfun});
23680 0         0 my $repcount = 0;
23681              
23682 0 0       0 Parse::RecDescent::_trace(
23683             q{Trying terminal: [/SIGN/i]},
23684             Parse::RecDescent::_tracefirst($text),
23685             q{sysfun}, $tracelevel
23686             ) if defined $::RD_TRACE;
23687 0         0 $lastsep = "";
23688 0         0 $expectation->is(q{})->at($text);
23689              
23690 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
23691             and $text =~ s/\A(?:SIGN)//i) {
23692              
23693 0         0 $expectation->failed();
23694 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
23695             if defined $::RD_TRACE;
23696              
23697 0         0 last;
23698             }
23699 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
23700             Parse::RecDescent::_tracefirst($text))
23701             if defined $::RD_TRACE;
23702 0         0 push @item, $item{__PATTERN1__} = $&;
23703              
23704 0 0       0 Parse::RecDescent::_trace(
23705             q{>>Matched production: [/SIGN/i]<<},
23706             Parse::RecDescent::_tracefirst($text),
23707             q{sysfun}, $tracelevel
23708             ) if defined $::RD_TRACE;
23709 0         0 $_matched = 1;
23710 0         0 last;
23711             }
23712              
23713 0   0     0 while (!$_matched && !$commit) {
23714              
23715 0 0       0 Parse::RecDescent::_trace(
23716             q{Trying production: [/SIN/i]},
23717             Parse::RecDescent::_tracefirst($_[1]),
23718             q{sysfun}, $tracelevel
23719             ) if defined $::RD_TRACE;
23720 0         0 my $thisprod = $thisrule->{"prods"}[44];
23721 0         0 $text = $_[1];
23722 0         0 my $_savetext;
23723 0         0 @item = (q{sysfun});
23724 0         0 %item = (__RULE__ => q{sysfun});
23725 0         0 my $repcount = 0;
23726              
23727 0 0       0 Parse::RecDescent::_trace(
23728             q{Trying terminal: [/SIN/i]},
23729             Parse::RecDescent::_tracefirst($text),
23730             q{sysfun}, $tracelevel
23731             ) if defined $::RD_TRACE;
23732 0         0 $lastsep = "";
23733 0         0 $expectation->is(q{})->at($text);
23734              
23735 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
23736             and $text =~ s/\A(?:SIN)//i) {
23737              
23738 0         0 $expectation->failed();
23739 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
23740             if defined $::RD_TRACE;
23741              
23742 0         0 last;
23743             }
23744 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
23745             Parse::RecDescent::_tracefirst($text))
23746             if defined $::RD_TRACE;
23747 0         0 push @item, $item{__PATTERN1__} = $&;
23748              
23749 0 0       0 Parse::RecDescent::_trace(
23750             q{>>Matched production: [/SIN/i]<<},
23751             Parse::RecDescent::_tracefirst($text),
23752             q{sysfun}, $tracelevel
23753             ) if defined $::RD_TRACE;
23754 0         0 $_matched = 1;
23755 0         0 last;
23756             }
23757              
23758 0   0     0 while (!$_matched && !$commit) {
23759              
23760 0 0       0 Parse::RecDescent::_trace(
23761             q{Trying production: [/SOUNDEX/i]},
23762             Parse::RecDescent::_tracefirst($_[1]),
23763             q{sysfun}, $tracelevel
23764             ) if defined $::RD_TRACE;
23765 0         0 my $thisprod = $thisrule->{"prods"}[45];
23766 0         0 $text = $_[1];
23767 0         0 my $_savetext;
23768 0         0 @item = (q{sysfun});
23769 0         0 %item = (__RULE__ => q{sysfun});
23770 0         0 my $repcount = 0;
23771              
23772 0 0       0 Parse::RecDescent::_trace(
23773             q{Trying terminal: [/SOUNDEX/i]},
23774             Parse::RecDescent::_tracefirst($text),
23775             q{sysfun}, $tracelevel
23776             ) if defined $::RD_TRACE;
23777 0         0 $lastsep = "";
23778 0         0 $expectation->is(q{})->at($text);
23779              
23780 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
23781             and $text =~ s/\A(?:SOUNDEX)//i) {
23782              
23783 0         0 $expectation->failed();
23784 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
23785             if defined $::RD_TRACE;
23786              
23787 0         0 last;
23788             }
23789 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
23790             Parse::RecDescent::_tracefirst($text))
23791             if defined $::RD_TRACE;
23792 0         0 push @item, $item{__PATTERN1__} = $&;
23793              
23794 0 0       0 Parse::RecDescent::_trace(
23795             q{>>Matched production: [/SOUNDEX/i]<<},
23796             Parse::RecDescent::_tracefirst($text),
23797             q{sysfun}, $tracelevel
23798             ) if defined $::RD_TRACE;
23799 0         0 $_matched = 1;
23800 0         0 last;
23801             }
23802              
23803 0   0     0 while (!$_matched && !$commit) {
23804              
23805 0 0       0 Parse::RecDescent::_trace(
23806             q{Trying production: [/SPACE/i]},
23807             Parse::RecDescent::_tracefirst($_[1]),
23808             q{sysfun}, $tracelevel
23809             ) if defined $::RD_TRACE;
23810 0         0 my $thisprod = $thisrule->{"prods"}[46];
23811 0         0 $text = $_[1];
23812 0         0 my $_savetext;
23813 0         0 @item = (q{sysfun});
23814 0         0 %item = (__RULE__ => q{sysfun});
23815 0         0 my $repcount = 0;
23816              
23817 0 0       0 Parse::RecDescent::_trace(
23818             q{Trying terminal: [/SPACE/i]},
23819             Parse::RecDescent::_tracefirst($text),
23820             q{sysfun}, $tracelevel
23821             ) if defined $::RD_TRACE;
23822 0         0 $lastsep = "";
23823 0         0 $expectation->is(q{})->at($text);
23824              
23825 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
23826             and $text =~ s/\A(?:SPACE)//i) {
23827              
23828 0         0 $expectation->failed();
23829 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
23830             if defined $::RD_TRACE;
23831              
23832 0         0 last;
23833             }
23834 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
23835             Parse::RecDescent::_tracefirst($text))
23836             if defined $::RD_TRACE;
23837 0         0 push @item, $item{__PATTERN1__} = $&;
23838              
23839 0 0       0 Parse::RecDescent::_trace(
23840             q{>>Matched production: [/SPACE/i]<<},
23841             Parse::RecDescent::_tracefirst($text),
23842             q{sysfun}, $tracelevel
23843             ) if defined $::RD_TRACE;
23844 0         0 $_matched = 1;
23845 0         0 last;
23846             }
23847              
23848 0   0     0 while (!$_matched && !$commit) {
23849              
23850 0 0       0 Parse::RecDescent::_trace(
23851             q{Trying production: [/SQLCACHE_SNAPSHOT/i]},
23852             Parse::RecDescent::_tracefirst($_[1]),
23853             q{sysfun}, $tracelevel
23854             ) if defined $::RD_TRACE;
23855 0         0 my $thisprod = $thisrule->{"prods"}[47];
23856 0         0 $text = $_[1];
23857 0         0 my $_savetext;
23858 0         0 @item = (q{sysfun});
23859 0         0 %item = (__RULE__ => q{sysfun});
23860 0         0 my $repcount = 0;
23861              
23862 0 0       0 Parse::RecDescent::_trace(
23863             q{Trying terminal: [/SQLCACHE_SNAPSHOT/i]},
23864             Parse::RecDescent::_tracefirst($text),
23865             q{sysfun}, $tracelevel
23866             ) if defined $::RD_TRACE;
23867 0         0 $lastsep = "";
23868 0         0 $expectation->is(q{})->at($text);
23869              
23870 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
23871             and $text =~ s/\A(?:SQLCACHE_SNAPSHOT)//i) {
23872              
23873 0         0 $expectation->failed();
23874 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
23875             if defined $::RD_TRACE;
23876              
23877 0         0 last;
23878             }
23879 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
23880             Parse::RecDescent::_tracefirst($text))
23881             if defined $::RD_TRACE;
23882 0         0 push @item, $item{__PATTERN1__} = $&;
23883              
23884 0 0       0 Parse::RecDescent::_trace(
23885             q{>>Matched production: [/SQLCACHE_SNAPSHOT/i]<<},
23886             Parse::RecDescent::_tracefirst($text),
23887             q{sysfun}, $tracelevel
23888             ) if defined $::RD_TRACE;
23889 0         0 $_matched = 1;
23890 0         0 last;
23891             }
23892              
23893 0   0     0 while (!$_matched && !$commit) {
23894              
23895 0 0       0 Parse::RecDescent::_trace(
23896             q{Trying production: [/SQRT/i]},
23897             Parse::RecDescent::_tracefirst($_[1]),
23898             q{sysfun}, $tracelevel
23899             ) if defined $::RD_TRACE;
23900 0         0 my $thisprod = $thisrule->{"prods"}[48];
23901 0         0 $text = $_[1];
23902 0         0 my $_savetext;
23903 0         0 @item = (q{sysfun});
23904 0         0 %item = (__RULE__ => q{sysfun});
23905 0         0 my $repcount = 0;
23906              
23907 0 0       0 Parse::RecDescent::_trace(
23908             q{Trying terminal: [/SQRT/i]},
23909             Parse::RecDescent::_tracefirst($text),
23910             q{sysfun}, $tracelevel
23911             ) if defined $::RD_TRACE;
23912 0         0 $lastsep = "";
23913 0         0 $expectation->is(q{})->at($text);
23914              
23915 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
23916             and $text =~ s/\A(?:SQRT)//i) {
23917              
23918 0         0 $expectation->failed();
23919 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
23920             if defined $::RD_TRACE;
23921              
23922 0         0 last;
23923             }
23924 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
23925             Parse::RecDescent::_tracefirst($text))
23926             if defined $::RD_TRACE;
23927 0         0 push @item, $item{__PATTERN1__} = $&;
23928              
23929 0 0       0 Parse::RecDescent::_trace(
23930             q{>>Matched production: [/SQRT/i]<<},
23931             Parse::RecDescent::_tracefirst($text),
23932             q{sysfun}, $tracelevel
23933             ) if defined $::RD_TRACE;
23934 0         0 $_matched = 1;
23935 0         0 last;
23936             }
23937              
23938 0   0     0 while (!$_matched && !$commit) {
23939              
23940 0 0       0 Parse::RecDescent::_trace(
23941             q{Trying production: [/TAN/i]},
23942             Parse::RecDescent::_tracefirst($_[1]),
23943             q{sysfun}, $tracelevel
23944             ) if defined $::RD_TRACE;
23945 0         0 my $thisprod = $thisrule->{"prods"}[49];
23946 0         0 $text = $_[1];
23947 0         0 my $_savetext;
23948 0         0 @item = (q{sysfun});
23949 0         0 %item = (__RULE__ => q{sysfun});
23950 0         0 my $repcount = 0;
23951              
23952 0 0       0 Parse::RecDescent::_trace(
23953             q{Trying terminal: [/TAN/i]},
23954             Parse::RecDescent::_tracefirst($text),
23955             q{sysfun}, $tracelevel
23956             ) if defined $::RD_TRACE;
23957 0         0 $lastsep = "";
23958 0         0 $expectation->is(q{})->at($text);
23959              
23960 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
23961             and $text =~ s/\A(?:TAN)//i) {
23962              
23963 0         0 $expectation->failed();
23964 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
23965             if defined $::RD_TRACE;
23966              
23967 0         0 last;
23968             }
23969 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
23970             Parse::RecDescent::_tracefirst($text))
23971             if defined $::RD_TRACE;
23972 0         0 push @item, $item{__PATTERN1__} = $&;
23973              
23974 0 0       0 Parse::RecDescent::_trace(
23975             q{>>Matched production: [/TAN/i]<<},
23976             Parse::RecDescent::_tracefirst($text),
23977             q{sysfun}, $tracelevel
23978             ) if defined $::RD_TRACE;
23979 0         0 $_matched = 1;
23980 0         0 last;
23981             }
23982              
23983 0   0     0 while (!$_matched && !$commit) {
23984              
23985 0 0       0 Parse::RecDescent::_trace(
23986             q{Trying production: [/TIMESTAMP_ISO/i]},
23987             Parse::RecDescent::_tracefirst($_[1]),
23988             q{sysfun}, $tracelevel
23989             ) if defined $::RD_TRACE;
23990 0         0 my $thisprod = $thisrule->{"prods"}[50];
23991 0         0 $text = $_[1];
23992 0         0 my $_savetext;
23993 0         0 @item = (q{sysfun});
23994 0         0 %item = (__RULE__ => q{sysfun});
23995 0         0 my $repcount = 0;
23996              
23997 0 0       0 Parse::RecDescent::_trace(
23998             q{Trying terminal: [/TIMESTAMP_ISO/i]},
23999             Parse::RecDescent::_tracefirst($text),
24000             q{sysfun}, $tracelevel
24001             ) if defined $::RD_TRACE;
24002 0         0 $lastsep = "";
24003 0         0 $expectation->is(q{})->at($text);
24004              
24005 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
24006             and $text =~ s/\A(?:TIMESTAMP_ISO)//i) {
24007              
24008 0         0 $expectation->failed();
24009 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
24010             if defined $::RD_TRACE;
24011              
24012 0         0 last;
24013             }
24014 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
24015             Parse::RecDescent::_tracefirst($text))
24016             if defined $::RD_TRACE;
24017 0         0 push @item, $item{__PATTERN1__} = $&;
24018              
24019 0 0       0 Parse::RecDescent::_trace(
24020             q{>>Matched production: [/TIMESTAMP_ISO/i]<<},
24021             Parse::RecDescent::_tracefirst($text),
24022             q{sysfun}, $tracelevel
24023             ) if defined $::RD_TRACE;
24024 0         0 $_matched = 1;
24025 0         0 last;
24026             }
24027              
24028 0   0     0 while (!$_matched && !$commit) {
24029              
24030 0 0       0 Parse::RecDescent::_trace(
24031             q{Trying production: [/TIMESTAMPDIFF/i]},
24032             Parse::RecDescent::_tracefirst($_[1]),
24033             q{sysfun}, $tracelevel
24034             ) if defined $::RD_TRACE;
24035 0         0 my $thisprod = $thisrule->{"prods"}[51];
24036 0         0 $text = $_[1];
24037 0         0 my $_savetext;
24038 0         0 @item = (q{sysfun});
24039 0         0 %item = (__RULE__ => q{sysfun});
24040 0         0 my $repcount = 0;
24041              
24042 0 0       0 Parse::RecDescent::_trace(
24043             q{Trying terminal: [/TIMESTAMPDIFF/i]},
24044             Parse::RecDescent::_tracefirst($text),
24045             q{sysfun}, $tracelevel
24046             ) if defined $::RD_TRACE;
24047 0         0 $lastsep = "";
24048 0         0 $expectation->is(q{})->at($text);
24049              
24050 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
24051             and $text =~ s/\A(?:TIMESTAMPDIFF)//i) {
24052              
24053 0         0 $expectation->failed();
24054 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
24055             if defined $::RD_TRACE;
24056              
24057 0         0 last;
24058             }
24059 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
24060             Parse::RecDescent::_tracefirst($text))
24061             if defined $::RD_TRACE;
24062 0         0 push @item, $item{__PATTERN1__} = $&;
24063              
24064 0 0       0 Parse::RecDescent::_trace(
24065             q{>>Matched production: [/TIMESTAMPDIFF/i]<<},
24066             Parse::RecDescent::_tracefirst($text),
24067             q{sysfun}, $tracelevel
24068             ) if defined $::RD_TRACE;
24069 0         0 $_matched = 1;
24070 0         0 last;
24071             }
24072              
24073 0   0     0 while (!$_matched && !$commit) {
24074              
24075 0 0       0 Parse::RecDescent::_trace(
24076             q{Trying production: [/TRUNCATE/i, or /TRUNC/i]},
24077             Parse::RecDescent::_tracefirst($_[1]),
24078             q{sysfun}, $tracelevel
24079             ) if defined $::RD_TRACE;
24080 0         0 my $thisprod = $thisrule->{"prods"}[52];
24081 0         0 $text = $_[1];
24082 0         0 my $_savetext;
24083 0         0 @item = (q{sysfun});
24084 0         0 %item = (__RULE__ => q{sysfun});
24085 0         0 my $repcount = 0;
24086              
24087 0 0       0 Parse::RecDescent::_trace(
24088             q{Trying subrule: [_alternation_1_of_production_53_of_rule_sysfun]},
24089             Parse::RecDescent::_tracefirst($text),
24090             q{sysfun}, $tracelevel
24091             ) if defined $::RD_TRACE;
24092 0         0 if (1) {
24093 1     1   12 no strict qw{refs};
  1         3  
  1         4330  
24094 0         0 $expectation->is(q{})->at($text);
24095 0 0       0 unless (defined(
24096             $_tok
24097             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_53_of_rule_sysfun(
24098 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
24099             )
24100             )) {
24101              
24102 0 0       0 Parse::RecDescent::_trace(
24103             q{<>},
24104             Parse::RecDescent::_tracefirst($text),
24105             q{sysfun}, $tracelevel
24106             ) if defined $::RD_TRACE;
24107 0         0 $expectation->failed();
24108 0         0 last;
24109             }
24110             Parse::RecDescent::_trace(
24111 0 0       0 q{>>Matched subrule: [_alternation_1_of_production_53_of_rule_sysfun]<< (return value: [} . $_tok . q{]},
24112              
24113             Parse::RecDescent::_tracefirst($text),
24114             q{sysfun},
24115             $tracelevel
24116             ) if defined $::RD_TRACE;
24117 0         0 $item{q{_alternation_1_of_production_53_of_rule_sysfun}} = $_tok;
24118 0         0 push @item, $_tok;
24119              
24120             }
24121              
24122             Parse::RecDescent::_trace(
24123 0 0       0 q{>>Matched production: [/TRUNCATE/i, or /TRUNC/i]<<},
24124             Parse::RecDescent::_tracefirst($text),
24125             q{sysfun}, $tracelevel
24126             ) if defined $::RD_TRACE;
24127 0         0 $_matched = 1;
24128 0         0 last;
24129             }
24130              
24131 0   0     0 while (!$_matched && !$commit) {
24132              
24133 0 0       0 Parse::RecDescent::_trace(
24134             q{Trying production: [/UCASE/i]},
24135             Parse::RecDescent::_tracefirst($_[1]),
24136             q{sysfun}, $tracelevel
24137             ) if defined $::RD_TRACE;
24138 0         0 my $thisprod = $thisrule->{"prods"}[53];
24139 0         0 $text = $_[1];
24140 0         0 my $_savetext;
24141 0         0 @item = (q{sysfun});
24142 0         0 %item = (__RULE__ => q{sysfun});
24143 0         0 my $repcount = 0;
24144              
24145 0 0       0 Parse::RecDescent::_trace(
24146             q{Trying terminal: [/UCASE/i]},
24147             Parse::RecDescent::_tracefirst($text),
24148             q{sysfun}, $tracelevel
24149             ) if defined $::RD_TRACE;
24150 0         0 $lastsep = "";
24151 0         0 $expectation->is(q{})->at($text);
24152              
24153 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
24154             and $text =~ s/\A(?:UCASE)//i) {
24155              
24156 0         0 $expectation->failed();
24157 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
24158             if defined $::RD_TRACE;
24159              
24160 0         0 last;
24161             }
24162 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
24163             Parse::RecDescent::_tracefirst($text))
24164             if defined $::RD_TRACE;
24165 0         0 push @item, $item{__PATTERN1__} = $&;
24166              
24167 0 0       0 Parse::RecDescent::_trace(
24168             q{>>Matched production: [/UCASE/i]<<},
24169             Parse::RecDescent::_tracefirst($text),
24170             q{sysfun}, $tracelevel
24171             ) if defined $::RD_TRACE;
24172 0         0 $_matched = 1;
24173 0         0 last;
24174             }
24175              
24176 0   0     0 while (!$_matched && !$commit) {
24177              
24178 0 0       0 Parse::RecDescent::_trace(
24179             q{Trying production: [/WEEK/i]},
24180             Parse::RecDescent::_tracefirst($_[1]),
24181             q{sysfun}, $tracelevel
24182             ) if defined $::RD_TRACE;
24183 0         0 my $thisprod = $thisrule->{"prods"}[54];
24184 0         0 $text = $_[1];
24185 0         0 my $_savetext;
24186 0         0 @item = (q{sysfun});
24187 0         0 %item = (__RULE__ => q{sysfun});
24188 0         0 my $repcount = 0;
24189              
24190 0 0       0 Parse::RecDescent::_trace(
24191             q{Trying terminal: [/WEEK/i]},
24192             Parse::RecDescent::_tracefirst($text),
24193             q{sysfun}, $tracelevel
24194             ) if defined $::RD_TRACE;
24195 0         0 $lastsep = "";
24196 0         0 $expectation->is(q{})->at($text);
24197              
24198 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
24199             and $text =~ s/\A(?:WEEK)//i) {
24200              
24201 0         0 $expectation->failed();
24202 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
24203             if defined $::RD_TRACE;
24204              
24205 0         0 last;
24206             }
24207 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
24208             Parse::RecDescent::_tracefirst($text))
24209             if defined $::RD_TRACE;
24210 0         0 push @item, $item{__PATTERN1__} = $&;
24211              
24212 0 0       0 Parse::RecDescent::_trace(
24213             q{>>Matched production: [/WEEK/i]<<},
24214             Parse::RecDescent::_tracefirst($text),
24215             q{sysfun}, $tracelevel
24216             ) if defined $::RD_TRACE;
24217 0         0 $_matched = 1;
24218 0         0 last;
24219             }
24220              
24221 0   0     0 while (!$_matched && !$commit) {
24222              
24223 0 0       0 Parse::RecDescent::_trace(
24224             q{Trying production: [/WEEK_ISO/i]},
24225             Parse::RecDescent::_tracefirst($_[1]),
24226             q{sysfun}, $tracelevel
24227             ) if defined $::RD_TRACE;
24228 0         0 my $thisprod = $thisrule->{"prods"}[55];
24229 0         0 $text = $_[1];
24230 0         0 my $_savetext;
24231 0         0 @item = (q{sysfun});
24232 0         0 %item = (__RULE__ => q{sysfun});
24233 0         0 my $repcount = 0;
24234              
24235 0 0       0 Parse::RecDescent::_trace(
24236             q{Trying terminal: [/WEEK_ISO/i]},
24237             Parse::RecDescent::_tracefirst($text),
24238             q{sysfun}, $tracelevel
24239             ) if defined $::RD_TRACE;
24240 0         0 $lastsep = "";
24241 0         0 $expectation->is(q{})->at($text);
24242              
24243 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
24244             and $text =~ s/\A(?:WEEK_ISO)//i) {
24245              
24246 0         0 $expectation->failed();
24247 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
24248             if defined $::RD_TRACE;
24249              
24250 0         0 last;
24251             }
24252 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
24253             Parse::RecDescent::_tracefirst($text))
24254             if defined $::RD_TRACE;
24255 0         0 push @item, $item{__PATTERN1__} = $&;
24256              
24257 0 0       0 Parse::RecDescent::_trace(
24258             q{>>Matched production: [/WEEK_ISO/i]<<},
24259             Parse::RecDescent::_tracefirst($text),
24260             q{sysfun}, $tracelevel
24261             ) if defined $::RD_TRACE;
24262 0         0 $_matched = 1;
24263 0         0 last;
24264             }
24265              
24266 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
24267              
24268 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
24269 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{sysfun}, $tracelevel)
24270             if defined $::RD_TRACE;
24271 0         0 return undef;
24272             }
24273 0 0 0     0 if (!defined($return) && defined($score)) {
24274 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{sysfun}, $tracelevel)
24275             if defined $::RD_TRACE;
24276 0         0 $return = $score_return;
24277             }
24278 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
24279 0 0       0 $return = $item[$#item] unless defined $return;
24280 0 0       0 if (defined $::RD_TRACE) {
24281 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{sysfun}, $tracelevel);
24282 0         0 Parse::RecDescent::_trace(
24283             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
24284             Parse::RecDescent::_tracefirst($text),
24285             , q{sysfun}, $tracelevel
24286             );
24287             }
24288 0         0 $_[1] = $text;
24289 0         0 return $return;
24290             }
24291              
24292             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
24293             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond
24294             {
24295 0     0   0 my $thisparser = $_[0];
24296 1     1   14 use vars q{$tracelevel};
  1         3  
  1         774  
24297 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
24298 0         0 $ERRORS = 0;
24299             my $thisrule
24300 0         0 = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond"};
24301              
24302 0 0       0 Parse::RecDescent::_trace(
24303             q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond]},
24304             Parse::RecDescent::_tracefirst($_[1]),
24305             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
24306             $tracelevel
24307             ) if defined $::RD_TRACE;
24308              
24309 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
24310              
24311 0         0 my $score;
24312             my $score_return;
24313 0         0 my $_tok;
24314 0         0 my $return = undef;
24315 0         0 my $_matched = 0;
24316 0         0 my $commit = 0;
24317 0         0 my @item = ();
24318 0         0 my %item = ();
24319 0   0     0 my $repeating = defined($_[2]) && $_[2];
24320 0   0     0 my $_noactions = defined($_[3]) && $_[3];
24321 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
24322 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
24323 0         0 my $text;
24324 0         0 my $lastsep = "";
24325 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
24326 0         0 $expectation->at($_[1]);
24327              
24328 0         0 my $thisline;
24329 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
24330              
24331 0   0     0 while (!$_matched && !$commit) {
24332              
24333 0 0       0 Parse::RecDescent::_trace(
24334             q{Trying production: [/SELECTIVITY/i numeric_constant]},
24335             Parse::RecDescent::_tracefirst($_[1]),
24336             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond}, $tracelevel
24337             ) if defined $::RD_TRACE;
24338 0         0 my $thisprod = $thisrule->{"prods"}[0];
24339 0         0 $text = $_[1];
24340 0         0 my $_savetext;
24341 0         0 @item = (q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond});
24342 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond});
24343 0         0 my $repcount = 0;
24344              
24345 0 0       0 Parse::RecDescent::_trace(
24346             q{Trying terminal: [/SELECTIVITY/i]},
24347             Parse::RecDescent::_tracefirst($text),
24348             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond}, $tracelevel
24349             ) if defined $::RD_TRACE;
24350 0         0 $lastsep = "";
24351 0         0 $expectation->is(q{})->at($text);
24352              
24353 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
24354             and $text =~ s/\A(?:SELECTIVITY)//i) {
24355              
24356 0         0 $expectation->failed();
24357 0 0       0 Parse::RecDescent::_trace(q{<>}, 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: [} . $& . q{])},
24363             Parse::RecDescent::_tracefirst($text))
24364             if defined $::RD_TRACE;
24365 0         0 push @item, $item{__PATTERN1__} = $&;
24366              
24367 0 0       0 Parse::RecDescent::_trace(
24368             q{Trying subrule: [numeric_constant]},
24369             Parse::RecDescent::_tracefirst($text),
24370             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond}, $tracelevel
24371             ) if defined $::RD_TRACE;
24372 0         0 if (1) {
24373 1     1   11 no strict qw{refs};
  1         3  
  1         745  
24374 0         0 $expectation->is(q{numeric_constant})->at($text);
24375 0 0       0 unless (defined(
24376             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::numeric_constant(
24377 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
24378             )
24379             )) {
24380              
24381 0 0       0 Parse::RecDescent::_trace(
24382             q{<>},
24383             Parse::RecDescent::_tracefirst($text),
24384             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond}, $tracelevel
24385             ) if defined $::RD_TRACE;
24386 0         0 $expectation->failed();
24387 0         0 last;
24388             }
24389             Parse::RecDescent::_trace(
24390 0 0       0 q{>>Matched subrule: [numeric_constant]<< (return value: [} . $_tok . q{]},
24391              
24392             Parse::RecDescent::_tracefirst($text),
24393             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
24394             $tracelevel
24395             ) if defined $::RD_TRACE;
24396 0         0 $item{q{numeric_constant}} = $_tok;
24397 0         0 push @item, $_tok;
24398              
24399             }
24400              
24401             Parse::RecDescent::_trace(
24402 0 0       0 q{>>Matched production: [/SELECTIVITY/i numeric_constant]<<},
24403             Parse::RecDescent::_tracefirst($text),
24404             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond}, $tracelevel
24405             ) if defined $::RD_TRACE;
24406 0         0 $_matched = 1;
24407 0         0 last;
24408             }
24409              
24410 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
24411              
24412 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
24413 0 0       0 Parse::RecDescent::_trace(
24414             q{<>},
24415             Parse::RecDescent::_tracefirst($_[1]),
24416             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond}, $tracelevel
24417             ) if defined $::RD_TRACE;
24418 0         0 return undef;
24419             }
24420 0 0 0     0 if (!defined($return) && defined($score)) {
24421 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
24422             "", q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond}, $tracelevel)
24423             if defined $::RD_TRACE;
24424 0         0 $return = $score_return;
24425             }
24426 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
24427 0 0       0 $return = $item[$#item] unless defined $return;
24428 0 0       0 if (defined $::RD_TRACE) {
24429 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
24430             "", q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond}, $tracelevel);
24431 0         0 Parse::RecDescent::_trace(
24432             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
24433             Parse::RecDescent::_tracefirst($text),
24434             ,
24435             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
24436             $tracelevel
24437             );
24438             }
24439 0         0 $_[1] = $text;
24440 0         0 return $return;
24441             }
24442              
24443             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
24444             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME {
24445 0     0   0 my $thisparser = $_[0];
24446 1     1   10 use vars q{$tracelevel};
  1         3  
  1         1729  
24447 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
24448 0         0 $ERRORS = 0;
24449 0         0 my $thisrule = $thisparser->{"rules"}{"NAME"};
24450              
24451 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [NAME]}, Parse::RecDescent::_tracefirst($_[1]), q{NAME}, $tracelevel)
24452             if defined $::RD_TRACE;
24453              
24454 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
24455              
24456 0         0 my $score;
24457             my $score_return;
24458 0         0 my $_tok;
24459 0         0 my $return = undef;
24460 0         0 my $_matched = 0;
24461 0         0 my $commit = 0;
24462 0         0 my @item = ();
24463 0         0 my %item = ();
24464 0   0     0 my $repeating = defined($_[2]) && $_[2];
24465 0   0     0 my $_noactions = defined($_[3]) && $_[3];
24466 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
24467 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
24468 0         0 my $text;
24469 0         0 my $lastsep = "";
24470 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
24471 0         0 $expectation->at($_[1]);
24472              
24473 0         0 my $thisline;
24474 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
24475              
24476 0   0     0 while (!$_matched && !$commit) {
24477              
24478 0 0       0 Parse::RecDescent::_trace(
24479             q{Trying production: [/\\w+/]},
24480             Parse::RecDescent::_tracefirst($_[1]),
24481             q{NAME}, $tracelevel
24482             ) if defined $::RD_TRACE;
24483 0         0 my $thisprod = $thisrule->{"prods"}[0];
24484 0         0 $text = $_[1];
24485 0         0 my $_savetext;
24486 0         0 @item = (q{NAME});
24487 0         0 %item = (__RULE__ => q{NAME});
24488 0         0 my $repcount = 0;
24489              
24490 0 0       0 Parse::RecDescent::_trace(
24491             q{Trying terminal: [/\\w+/]},
24492             Parse::RecDescent::_tracefirst($text),
24493             q{NAME}, $tracelevel
24494             ) if defined $::RD_TRACE;
24495 0         0 $lastsep = "";
24496 0         0 $expectation->is(q{})->at($text);
24497              
24498 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
24499             and $text =~ s/\A(?:\w+)//) {
24500              
24501 0         0 $expectation->failed();
24502 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
24503             if defined $::RD_TRACE;
24504              
24505 0         0 last;
24506             }
24507 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
24508             Parse::RecDescent::_tracefirst($text))
24509             if defined $::RD_TRACE;
24510 0         0 push @item, $item{__PATTERN1__} = $&;
24511              
24512 0 0       0 Parse::RecDescent::_trace(
24513             q{>>Matched production: [/\\w+/]<<},
24514             Parse::RecDescent::_tracefirst($text),
24515             q{NAME}, $tracelevel
24516             ) if defined $::RD_TRACE;
24517 0         0 $_matched = 1;
24518 0         0 last;
24519             }
24520              
24521 0   0     0 while (!$_matched && !$commit) {
24522              
24523 0 0       0 Parse::RecDescent::_trace(
24524             q{Trying production: [/\\w\{1,18\}/]},
24525             Parse::RecDescent::_tracefirst($_[1]),
24526             q{NAME}, $tracelevel
24527             ) if defined $::RD_TRACE;
24528 0         0 my $thisprod = $thisrule->{"prods"}[1];
24529 0         0 $text = $_[1];
24530 0         0 my $_savetext;
24531 0         0 @item = (q{NAME});
24532 0         0 %item = (__RULE__ => q{NAME});
24533 0         0 my $repcount = 0;
24534              
24535 0 0       0 Parse::RecDescent::_trace(
24536             q{Trying terminal: [/\\w\{1,18\}/]},
24537             Parse::RecDescent::_tracefirst($text),
24538             q{NAME}, $tracelevel
24539             ) if defined $::RD_TRACE;
24540 0         0 $lastsep = "";
24541 0         0 $expectation->is(q{})->at($text);
24542              
24543 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
24544             and $text =~ s/\A(?:\w{1,18})//) {
24545              
24546 0         0 $expectation->failed();
24547 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
24548             if defined $::RD_TRACE;
24549              
24550 0         0 last;
24551             }
24552 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
24553             Parse::RecDescent::_tracefirst($text))
24554             if defined $::RD_TRACE;
24555 0         0 push @item, $item{__PATTERN1__} = $&;
24556              
24557 0 0       0 Parse::RecDescent::_trace(
24558             q{>>Matched production: [/\\w\{1,18\}/]<<},
24559             Parse::RecDescent::_tracefirst($text),
24560             q{NAME}, $tracelevel
24561             ) if defined $::RD_TRACE;
24562 0         0 $_matched = 1;
24563 0         0 last;
24564             }
24565              
24566 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
24567              
24568 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
24569 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{NAME}, $tracelevel)
24570             if defined $::RD_TRACE;
24571 0         0 return undef;
24572             }
24573 0 0 0     0 if (!defined($return) && defined($score)) {
24574 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{NAME}, $tracelevel)
24575             if defined $::RD_TRACE;
24576 0         0 $return = $score_return;
24577             }
24578 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
24579 0 0       0 $return = $item[$#item] unless defined $return;
24580 0 0       0 if (defined $::RD_TRACE) {
24581 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{NAME}, $tracelevel);
24582 0         0 Parse::RecDescent::_trace(
24583             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
24584             Parse::RecDescent::_tracefirst($text),
24585             , q{NAME}, $tracelevel
24586             );
24587             }
24588 0         0 $_[1] = $text;
24589 0         0 return $return;
24590             }
24591              
24592             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
24593             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::constant {
24594 0     0   0 my $thisparser = $_[0];
24595 1     1   13 use vars q{$tracelevel};
  1         3  
  1         481  
24596 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
24597 0         0 $ERRORS = 0;
24598 0         0 my $thisrule = $thisparser->{"rules"}{"constant"};
24599              
24600 0 0       0 Parse::RecDescent::_trace(
24601             q{Trying rule: [constant]},
24602             Parse::RecDescent::_tracefirst($_[1]),
24603             q{constant}, $tracelevel
24604             ) if defined $::RD_TRACE;
24605              
24606 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
24607              
24608 0         0 my $score;
24609             my $score_return;
24610 0         0 my $_tok;
24611 0         0 my $return = undef;
24612 0         0 my $_matched = 0;
24613 0         0 my $commit = 0;
24614 0         0 my @item = ();
24615 0         0 my %item = ();
24616 0   0     0 my $repeating = defined($_[2]) && $_[2];
24617 0   0     0 my $_noactions = defined($_[3]) && $_[3];
24618 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
24619 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
24620 0         0 my $text;
24621 0         0 my $lastsep = "";
24622 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
24623 0         0 $expectation->at($_[1]);
24624              
24625 0         0 my $thisline;
24626 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
24627              
24628 0   0     0 while (!$_matched && !$commit) {
24629              
24630 0 0       0 Parse::RecDescent::_trace(
24631             q{Trying production: [int_const]},
24632             Parse::RecDescent::_tracefirst($_[1]),
24633             q{constant}, $tracelevel
24634             ) if defined $::RD_TRACE;
24635 0         0 my $thisprod = $thisrule->{"prods"}[0];
24636 0         0 $text = $_[1];
24637 0         0 my $_savetext;
24638 0         0 @item = (q{constant});
24639 0         0 %item = (__RULE__ => q{constant});
24640 0         0 my $repcount = 0;
24641              
24642 0 0       0 Parse::RecDescent::_trace(
24643             q{Trying subrule: [int_const]},
24644             Parse::RecDescent::_tracefirst($text),
24645             q{constant}, $tracelevel
24646             ) if defined $::RD_TRACE;
24647 0         0 if (1) {
24648 1     1   11 no strict qw{refs};
  1         3  
  1         429  
24649 0         0 $expectation->is(q{})->at($text);
24650 0 0       0 unless (defined(
24651             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::int_const(
24652 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
24653             )
24654             )) {
24655              
24656 0 0       0 Parse::RecDescent::_trace(
24657             q{<>},
24658             Parse::RecDescent::_tracefirst($text),
24659             q{constant}, $tracelevel
24660             ) if defined $::RD_TRACE;
24661 0         0 $expectation->failed();
24662 0         0 last;
24663             }
24664             Parse::RecDescent::_trace(
24665 0 0       0 q{>>Matched subrule: [int_const]<< (return value: [} . $_tok . q{]},
24666              
24667             Parse::RecDescent::_tracefirst($text),
24668             q{constant},
24669             $tracelevel
24670             ) if defined $::RD_TRACE;
24671 0         0 $item{q{int_const}} = $_tok;
24672 0         0 push @item, $_tok;
24673              
24674             }
24675              
24676             Parse::RecDescent::_trace(
24677 0 0       0 q{>>Matched production: [int_const]<<},
24678             Parse::RecDescent::_tracefirst($text),
24679             q{constant}, $tracelevel
24680             ) if defined $::RD_TRACE;
24681 0         0 $_matched = 1;
24682 0         0 last;
24683             }
24684              
24685 0   0     0 while (!$_matched && !$commit) {
24686              
24687 0 0       0 Parse::RecDescent::_trace(
24688             q{Trying production: [float_const]},
24689             Parse::RecDescent::_tracefirst($_[1]),
24690             q{constant}, $tracelevel
24691             ) if defined $::RD_TRACE;
24692 0         0 my $thisprod = $thisrule->{"prods"}[1];
24693 0         0 $text = $_[1];
24694 0         0 my $_savetext;
24695 0         0 @item = (q{constant});
24696 0         0 %item = (__RULE__ => q{constant});
24697 0         0 my $repcount = 0;
24698              
24699 0 0       0 Parse::RecDescent::_trace(
24700             q{Trying subrule: [float_const]},
24701             Parse::RecDescent::_tracefirst($text),
24702             q{constant}, $tracelevel
24703             ) if defined $::RD_TRACE;
24704 0         0 if (1) {
24705 1     1   12 no strict qw{refs};
  1         5  
  1         392  
24706 0         0 $expectation->is(q{})->at($text);
24707 0 0       0 unless (defined(
24708             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::float_const(
24709 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
24710             )
24711             )) {
24712              
24713 0 0       0 Parse::RecDescent::_trace(
24714             q{<>},
24715             Parse::RecDescent::_tracefirst($text),
24716             q{constant}, $tracelevel
24717             ) if defined $::RD_TRACE;
24718 0         0 $expectation->failed();
24719 0         0 last;
24720             }
24721             Parse::RecDescent::_trace(
24722 0 0       0 q{>>Matched subrule: [float_const]<< (return value: [} . $_tok . q{]},
24723              
24724             Parse::RecDescent::_tracefirst($text),
24725             q{constant},
24726             $tracelevel
24727             ) if defined $::RD_TRACE;
24728 0         0 $item{q{float_const}} = $_tok;
24729 0         0 push @item, $_tok;
24730              
24731             }
24732              
24733             Parse::RecDescent::_trace(
24734 0 0       0 q{>>Matched production: [float_const]<<},
24735             Parse::RecDescent::_tracefirst($text),
24736             q{constant}, $tracelevel
24737             ) if defined $::RD_TRACE;
24738 0         0 $_matched = 1;
24739 0         0 last;
24740             }
24741              
24742 0   0     0 while (!$_matched && !$commit) {
24743              
24744 0 0       0 Parse::RecDescent::_trace(
24745             q{Trying production: [dec_const]},
24746             Parse::RecDescent::_tracefirst($_[1]),
24747             q{constant}, $tracelevel
24748             ) if defined $::RD_TRACE;
24749 0         0 my $thisprod = $thisrule->{"prods"}[2];
24750 0         0 $text = $_[1];
24751 0         0 my $_savetext;
24752 0         0 @item = (q{constant});
24753 0         0 %item = (__RULE__ => q{constant});
24754 0         0 my $repcount = 0;
24755              
24756 0 0       0 Parse::RecDescent::_trace(
24757             q{Trying subrule: [dec_const]},
24758             Parse::RecDescent::_tracefirst($text),
24759             q{constant}, $tracelevel
24760             ) if defined $::RD_TRACE;
24761 0         0 if (1) {
24762 1     1   9 no strict qw{refs};
  1         3  
  1         486  
24763 0         0 $expectation->is(q{})->at($text);
24764 0 0       0 unless (defined(
24765             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::dec_const(
24766 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
24767             )
24768             )) {
24769              
24770 0 0       0 Parse::RecDescent::_trace(
24771             q{<>},
24772             Parse::RecDescent::_tracefirst($text),
24773             q{constant}, $tracelevel
24774             ) if defined $::RD_TRACE;
24775 0         0 $expectation->failed();
24776 0         0 last;
24777             }
24778             Parse::RecDescent::_trace(
24779 0 0       0 q{>>Matched subrule: [dec_const]<< (return value: [} . $_tok . q{]},
24780              
24781             Parse::RecDescent::_tracefirst($text),
24782             q{constant},
24783             $tracelevel
24784             ) if defined $::RD_TRACE;
24785 0         0 $item{q{dec_const}} = $_tok;
24786 0         0 push @item, $_tok;
24787              
24788             }
24789              
24790             Parse::RecDescent::_trace(
24791 0 0       0 q{>>Matched production: [dec_const]<<},
24792             Parse::RecDescent::_tracefirst($text),
24793             q{constant}, $tracelevel
24794             ) if defined $::RD_TRACE;
24795 0         0 $_matched = 1;
24796 0         0 last;
24797             }
24798              
24799 0   0     0 while (!$_matched && !$commit) {
24800              
24801 0 0       0 Parse::RecDescent::_trace(
24802             q{Trying production: [char_const]},
24803             Parse::RecDescent::_tracefirst($_[1]),
24804             q{constant}, $tracelevel
24805             ) if defined $::RD_TRACE;
24806 0         0 my $thisprod = $thisrule->{"prods"}[3];
24807 0         0 $text = $_[1];
24808 0         0 my $_savetext;
24809 0         0 @item = (q{constant});
24810 0         0 %item = (__RULE__ => q{constant});
24811 0         0 my $repcount = 0;
24812              
24813 0 0       0 Parse::RecDescent::_trace(
24814             q{Trying subrule: [char_const]},
24815             Parse::RecDescent::_tracefirst($text),
24816             q{constant}, $tracelevel
24817             ) if defined $::RD_TRACE;
24818 0         0 if (1) {
24819 1     1   10 no strict qw{refs};
  1         3  
  1         465  
24820 0         0 $expectation->is(q{})->at($text);
24821 0 0       0 unless (defined(
24822             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::char_const(
24823 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
24824             )
24825             )) {
24826              
24827 0 0       0 Parse::RecDescent::_trace(
24828             q{<>},
24829             Parse::RecDescent::_tracefirst($text),
24830             q{constant}, $tracelevel
24831             ) if defined $::RD_TRACE;
24832 0         0 $expectation->failed();
24833 0         0 last;
24834             }
24835             Parse::RecDescent::_trace(
24836 0 0       0 q{>>Matched subrule: [char_const]<< (return value: [} . $_tok . q{]},
24837              
24838             Parse::RecDescent::_tracefirst($text),
24839             q{constant},
24840             $tracelevel
24841             ) if defined $::RD_TRACE;
24842 0         0 $item{q{char_const}} = $_tok;
24843 0         0 push @item, $_tok;
24844              
24845             }
24846              
24847             Parse::RecDescent::_trace(
24848 0 0       0 q{>>Matched production: [char_const]<<},
24849             Parse::RecDescent::_tracefirst($text),
24850             q{constant}, $tracelevel
24851             ) if defined $::RD_TRACE;
24852 0         0 $_matched = 1;
24853 0         0 last;
24854             }
24855              
24856 0   0     0 while (!$_matched && !$commit) {
24857              
24858 0 0       0 Parse::RecDescent::_trace(
24859             q{Trying production: [hex_const]},
24860             Parse::RecDescent::_tracefirst($_[1]),
24861             q{constant}, $tracelevel
24862             ) if defined $::RD_TRACE;
24863 0         0 my $thisprod = $thisrule->{"prods"}[4];
24864 0         0 $text = $_[1];
24865 0         0 my $_savetext;
24866 0         0 @item = (q{constant});
24867 0         0 %item = (__RULE__ => q{constant});
24868 0         0 my $repcount = 0;
24869              
24870 0 0       0 Parse::RecDescent::_trace(
24871             q{Trying subrule: [hex_const]},
24872             Parse::RecDescent::_tracefirst($text),
24873             q{constant}, $tracelevel
24874             ) if defined $::RD_TRACE;
24875 0         0 if (1) {
24876 1     1   11 no strict qw{refs};
  1         4  
  1         488  
24877 0         0 $expectation->is(q{})->at($text);
24878 0 0       0 unless (defined(
24879             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::hex_const(
24880 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
24881             )
24882             )) {
24883              
24884 0 0       0 Parse::RecDescent::_trace(
24885             q{<>},
24886             Parse::RecDescent::_tracefirst($text),
24887             q{constant}, $tracelevel
24888             ) if defined $::RD_TRACE;
24889 0         0 $expectation->failed();
24890 0         0 last;
24891             }
24892             Parse::RecDescent::_trace(
24893 0 0       0 q{>>Matched subrule: [hex_const]<< (return value: [} . $_tok . q{]},
24894              
24895             Parse::RecDescent::_tracefirst($text),
24896             q{constant},
24897             $tracelevel
24898             ) if defined $::RD_TRACE;
24899 0         0 $item{q{hex_const}} = $_tok;
24900 0         0 push @item, $_tok;
24901              
24902             }
24903              
24904             Parse::RecDescent::_trace(
24905 0 0       0 q{>>Matched production: [hex_const]<<},
24906             Parse::RecDescent::_tracefirst($text),
24907             q{constant}, $tracelevel
24908             ) if defined $::RD_TRACE;
24909 0         0 $_matched = 1;
24910 0         0 last;
24911             }
24912              
24913 0   0     0 while (!$_matched && !$commit) {
24914              
24915 0 0       0 Parse::RecDescent::_trace(
24916             q{Trying production: [grastr_const]},
24917             Parse::RecDescent::_tracefirst($_[1]),
24918             q{constant}, $tracelevel
24919             ) if defined $::RD_TRACE;
24920 0         0 my $thisprod = $thisrule->{"prods"}[5];
24921 0         0 $text = $_[1];
24922 0         0 my $_savetext;
24923 0         0 @item = (q{constant});
24924 0         0 %item = (__RULE__ => q{constant});
24925 0         0 my $repcount = 0;
24926              
24927 0 0       0 Parse::RecDescent::_trace(
24928             q{Trying subrule: [grastr_const]},
24929             Parse::RecDescent::_tracefirst($text),
24930             q{constant}, $tracelevel
24931             ) if defined $::RD_TRACE;
24932 0         0 if (1) {
24933 1     1   14 no strict qw{refs};
  1         3  
  1         829  
24934 0         0 $expectation->is(q{})->at($text);
24935 0 0       0 unless (defined(
24936             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::grastr_const(
24937 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
24938             )
24939             )) {
24940              
24941 0 0       0 Parse::RecDescent::_trace(
24942             q{<>},
24943             Parse::RecDescent::_tracefirst($text),
24944             q{constant}, $tracelevel
24945             ) if defined $::RD_TRACE;
24946 0         0 $expectation->failed();
24947 0         0 last;
24948             }
24949             Parse::RecDescent::_trace(
24950 0 0       0 q{>>Matched subrule: [grastr_const]<< (return value: [} . $_tok . q{]},
24951              
24952             Parse::RecDescent::_tracefirst($text),
24953             q{constant},
24954             $tracelevel
24955             ) if defined $::RD_TRACE;
24956 0         0 $item{q{grastr_const}} = $_tok;
24957 0         0 push @item, $_tok;
24958              
24959             }
24960              
24961             Parse::RecDescent::_trace(
24962 0 0       0 q{>>Matched production: [grastr_const]<<},
24963             Parse::RecDescent::_tracefirst($text),
24964             q{constant}, $tracelevel
24965             ) if defined $::RD_TRACE;
24966 0         0 $_matched = 1;
24967 0         0 last;
24968             }
24969              
24970 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
24971              
24972 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
24973 0 0       0 Parse::RecDescent::_trace(
24974             q{<>},
24975             Parse::RecDescent::_tracefirst($_[1]),
24976             q{constant}, $tracelevel
24977             ) if defined $::RD_TRACE;
24978 0         0 return undef;
24979             }
24980 0 0 0     0 if (!defined($return) && defined($score)) {
24981 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{constant}, $tracelevel)
24982             if defined $::RD_TRACE;
24983 0         0 $return = $score_return;
24984             }
24985 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
24986 0 0       0 $return = $item[$#item] unless defined $return;
24987 0 0       0 if (defined $::RD_TRACE) {
24988 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{constant}, $tracelevel);
24989 0         0 Parse::RecDescent::_trace(
24990             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
24991             Parse::RecDescent::_tracefirst($text),
24992             , q{constant}, $tracelevel
24993             );
24994             }
24995 0         0 $_[1] = $text;
24996 0         0 return $return;
24997             }
24998              
24999             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
25000             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_ranking_function
25001             {
25002 0     0   0 my $thisparser = $_[0];
25003 1     1   11 use vars q{$tracelevel};
  1         3  
  1         2030  
25004 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
25005 0         0 $ERRORS = 0;
25006 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_ranking_function"};
25007              
25008 0 0       0 Parse::RecDescent::_trace(
25009             q{Trying rule: [_alternation_1_of_production_1_of_rule_ranking_function]},
25010             Parse::RecDescent::_tracefirst($_[1]),
25011             q{_alternation_1_of_production_1_of_rule_ranking_function}, $tracelevel
25012             ) if defined $::RD_TRACE;
25013              
25014 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
25015              
25016 0         0 my $score;
25017             my $score_return;
25018 0         0 my $_tok;
25019 0         0 my $return = undef;
25020 0         0 my $_matched = 0;
25021 0         0 my $commit = 0;
25022 0         0 my @item = ();
25023 0         0 my %item = ();
25024 0   0     0 my $repeating = defined($_[2]) && $_[2];
25025 0   0     0 my $_noactions = defined($_[3]) && $_[3];
25026 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
25027 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
25028 0         0 my $text;
25029 0         0 my $lastsep = "";
25030 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
25031 0         0 $expectation->at($_[1]);
25032              
25033 0         0 my $thisline;
25034 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
25035              
25036 0   0     0 while (!$_matched && !$commit) {
25037              
25038 0 0       0 Parse::RecDescent::_trace(
25039             q{Trying production: [/RANK/ '()']},
25040             Parse::RecDescent::_tracefirst($_[1]),
25041             q{_alternation_1_of_production_1_of_rule_ranking_function}, $tracelevel
25042             ) if defined $::RD_TRACE;
25043 0         0 my $thisprod = $thisrule->{"prods"}[0];
25044 0         0 $text = $_[1];
25045 0         0 my $_savetext;
25046 0         0 @item = (q{_alternation_1_of_production_1_of_rule_ranking_function});
25047 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_ranking_function});
25048 0         0 my $repcount = 0;
25049              
25050 0 0       0 Parse::RecDescent::_trace(
25051             q{Trying terminal: [/RANK/]},
25052             Parse::RecDescent::_tracefirst($text),
25053             q{_alternation_1_of_production_1_of_rule_ranking_function}, $tracelevel
25054             ) if defined $::RD_TRACE;
25055 0         0 $lastsep = "";
25056 0         0 $expectation->is(q{})->at($text);
25057              
25058 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
25059             and $text =~ s/\A(?:RANK)//) {
25060              
25061 0         0 $expectation->failed();
25062 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
25063             if defined $::RD_TRACE;
25064              
25065 0         0 last;
25066             }
25067 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
25068             Parse::RecDescent::_tracefirst($text))
25069             if defined $::RD_TRACE;
25070 0         0 push @item, $item{__PATTERN1__} = $&;
25071              
25072 0 0       0 Parse::RecDescent::_trace(
25073             q{Trying terminal: ['()']},
25074             Parse::RecDescent::_tracefirst($text),
25075             q{_alternation_1_of_production_1_of_rule_ranking_function}, $tracelevel
25076             ) if defined $::RD_TRACE;
25077 0         0 $lastsep = "";
25078 0         0 $expectation->is(q{'()'})->at($text);
25079              
25080 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
25081             and $text =~ s/\A\(\)//) {
25082              
25083 0         0 $expectation->failed();
25084 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
25085             if defined $::RD_TRACE;
25086 0         0 last;
25087             }
25088 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
25089             Parse::RecDescent::_tracefirst($text))
25090             if defined $::RD_TRACE;
25091 0         0 push @item, $item{__STRING1__} = $&;
25092              
25093 0 0       0 Parse::RecDescent::_trace(
25094             q{>>Matched production: [/RANK/ '()']<<},
25095             Parse::RecDescent::_tracefirst($text),
25096             q{_alternation_1_of_production_1_of_rule_ranking_function}, $tracelevel
25097             ) if defined $::RD_TRACE;
25098 0         0 $_matched = 1;
25099 0         0 last;
25100             }
25101              
25102 0   0     0 while (!$_matched && !$commit) {
25103              
25104 0 0       0 Parse::RecDescent::_trace(
25105             q{Trying production: [/DENSE_RANK|DENSERANK/i '()']},
25106             Parse::RecDescent::_tracefirst($_[1]),
25107             q{_alternation_1_of_production_1_of_rule_ranking_function}, $tracelevel
25108             ) if defined $::RD_TRACE;
25109 0         0 my $thisprod = $thisrule->{"prods"}[1];
25110 0         0 $text = $_[1];
25111 0         0 my $_savetext;
25112 0         0 @item = (q{_alternation_1_of_production_1_of_rule_ranking_function});
25113 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_ranking_function});
25114 0         0 my $repcount = 0;
25115              
25116 0 0       0 Parse::RecDescent::_trace(
25117             q{Trying terminal: [/DENSE_RANK|DENSERANK/i]},
25118             Parse::RecDescent::_tracefirst($text),
25119             q{_alternation_1_of_production_1_of_rule_ranking_function}, $tracelevel
25120             ) if defined $::RD_TRACE;
25121 0         0 $lastsep = "";
25122 0         0 $expectation->is(q{})->at($text);
25123              
25124 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
25125             and $text =~ s/\A(?:DENSE_RANK|DENSERANK)//i) {
25126              
25127 0         0 $expectation->failed();
25128 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
25129             if defined $::RD_TRACE;
25130              
25131 0         0 last;
25132             }
25133 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
25134             Parse::RecDescent::_tracefirst($text))
25135             if defined $::RD_TRACE;
25136 0         0 push @item, $item{__PATTERN1__} = $&;
25137              
25138 0 0       0 Parse::RecDescent::_trace(
25139             q{Trying terminal: ['()']},
25140             Parse::RecDescent::_tracefirst($text),
25141             q{_alternation_1_of_production_1_of_rule_ranking_function}, $tracelevel
25142             ) if defined $::RD_TRACE;
25143 0         0 $lastsep = "";
25144 0         0 $expectation->is(q{'()'})->at($text);
25145              
25146 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
25147             and $text =~ s/\A\(\)//) {
25148              
25149 0         0 $expectation->failed();
25150 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
25151             if defined $::RD_TRACE;
25152 0         0 last;
25153             }
25154 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
25155             Parse::RecDescent::_tracefirst($text))
25156             if defined $::RD_TRACE;
25157 0         0 push @item, $item{__STRING1__} = $&;
25158              
25159 0 0       0 Parse::RecDescent::_trace(
25160             q{>>Matched production: [/DENSE_RANK|DENSERANK/i '()']<<}, Parse::RecDescent::_tracefirst($text),
25161             q{_alternation_1_of_production_1_of_rule_ranking_function}, $tracelevel
25162             ) if defined $::RD_TRACE;
25163 0         0 $_matched = 1;
25164 0         0 last;
25165             }
25166              
25167 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
25168              
25169 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
25170 0 0       0 Parse::RecDescent::_trace(
25171             q{<>},
25172             Parse::RecDescent::_tracefirst($_[1]),
25173             q{_alternation_1_of_production_1_of_rule_ranking_function}, $tracelevel
25174             ) if defined $::RD_TRACE;
25175 0         0 return undef;
25176             }
25177 0 0 0     0 if (!defined($return) && defined($score)) {
25178 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
25179             "", q{_alternation_1_of_production_1_of_rule_ranking_function}, $tracelevel)
25180             if defined $::RD_TRACE;
25181 0         0 $return = $score_return;
25182             }
25183 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
25184 0 0       0 $return = $item[$#item] unless defined $return;
25185 0 0       0 if (defined $::RD_TRACE) {
25186 0         0 Parse::RecDescent::_trace(
25187             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
25188             q{_alternation_1_of_production_1_of_rule_ranking_function}, $tracelevel
25189             );
25190 0         0 Parse::RecDescent::_trace(
25191             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
25192             Parse::RecDescent::_tracefirst($text),
25193             , q{_alternation_1_of_production_1_of_rule_ranking_function}, $tracelevel
25194             );
25195             }
25196 0         0 $_[1] = $text;
25197 0         0 return $return;
25198             }
25199              
25200             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
25201             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_aggregation_group_clause {
25202 0     0   0 my $thisparser = $_[0];
25203 1     1   11 use vars q{$tracelevel};
  1         3  
  1         581  
25204 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
25205 0         0 $ERRORS = 0;
25206 0         0 my $thisrule = $thisparser->{"rules"}{"window_aggregation_group_clause"};
25207              
25208 0 0       0 Parse::RecDescent::_trace(
25209             q{Trying rule: [window_aggregation_group_clause]},
25210             Parse::RecDescent::_tracefirst($_[1]),
25211             q{window_aggregation_group_clause}, $tracelevel
25212             ) if defined $::RD_TRACE;
25213              
25214 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
25215              
25216 0         0 my $score;
25217             my $score_return;
25218 0         0 my $_tok;
25219 0         0 my $return = undef;
25220 0         0 my $_matched = 0;
25221 0         0 my $commit = 0;
25222 0         0 my @item = ();
25223 0         0 my %item = ();
25224 0   0     0 my $repeating = defined($_[2]) && $_[2];
25225 0   0     0 my $_noactions = defined($_[3]) && $_[3];
25226 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
25227 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
25228 0         0 my $text;
25229 0         0 my $lastsep = "";
25230 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
25231 0         0 $expectation->at($_[1]);
25232              
25233 0         0 my $thisline;
25234 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
25235              
25236 0   0     0 while (!$_matched && !$commit) {
25237              
25238 0 0       0 Parse::RecDescent::_trace(
25239             q{Trying production: [/ROWS/i, or /RANGE/i group_start, or group_between, or group_end]},
25240             Parse::RecDescent::_tracefirst($_[1]),
25241             q{window_aggregation_group_clause}, $tracelevel
25242             ) if defined $::RD_TRACE;
25243 0         0 my $thisprod = $thisrule->{"prods"}[0];
25244 0         0 $text = $_[1];
25245 0         0 my $_savetext;
25246 0         0 @item = (q{window_aggregation_group_clause});
25247 0         0 %item = (__RULE__ => q{window_aggregation_group_clause});
25248 0         0 my $repcount = 0;
25249              
25250 0 0       0 Parse::RecDescent::_trace(
25251             q{Trying subrule: [_alternation_1_of_production_1_of_rule_window_aggregation_group_clause]},
25252             Parse::RecDescent::_tracefirst($text),
25253             q{window_aggregation_group_clause}, $tracelevel
25254             ) if defined $::RD_TRACE;
25255 0         0 if (1) {
25256 1     1   9 no strict qw{refs};
  1         4  
  1         257  
25257 0         0 $expectation->is(q{})->at($text);
25258 0 0       0 unless (defined(
25259             $_tok
25260             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_window_aggregation_group_clause(
25261 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
25262             )
25263             )) {
25264              
25265 0 0       0 Parse::RecDescent::_trace(
25266             q{<>},
25267             Parse::RecDescent::_tracefirst($text),
25268             q{window_aggregation_group_clause}, $tracelevel
25269             ) if defined $::RD_TRACE;
25270 0         0 $expectation->failed();
25271 0         0 last;
25272             }
25273             Parse::RecDescent::_trace(
25274 0 0       0 q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_window_aggregation_group_clause]<< (return value: [}
25275             . $_tok . q{]},
25276              
25277             Parse::RecDescent::_tracefirst($text),
25278             q{window_aggregation_group_clause},
25279             $tracelevel
25280             ) if defined $::RD_TRACE;
25281 0         0 $item{q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause}} = $_tok;
25282 0         0 push @item, $_tok;
25283              
25284             }
25285              
25286             Parse::RecDescent::_trace(
25287 0 0       0 q{Trying subrule: [_alternation_2_of_production_1_of_rule_window_aggregation_group_clause]},
25288             Parse::RecDescent::_tracefirst($text),
25289             q{window_aggregation_group_clause}, $tracelevel
25290             ) if defined $::RD_TRACE;
25291 0         0 if (1) {
25292 1     1   11 no strict qw{refs};
  1         2  
  1         717  
25293 0         0 $expectation->is(q{group_start, or group_between, or group_end})
25294             ->at($text);
25295 0 0       0 unless (defined(
25296             $_tok
25297             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_window_aggregation_group_clause(
25298 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
25299             )
25300             )) {
25301              
25302 0 0       0 Parse::RecDescent::_trace(
25303             q{<>},
25304             Parse::RecDescent::_tracefirst($text),
25305             q{window_aggregation_group_clause}, $tracelevel
25306             ) if defined $::RD_TRACE;
25307 0         0 $expectation->failed();
25308 0         0 last;
25309             }
25310             Parse::RecDescent::_trace(
25311 0 0       0 q{>>Matched subrule: [_alternation_2_of_production_1_of_rule_window_aggregation_group_clause]<< (return value: [}
25312             . $_tok . q{]},
25313              
25314             Parse::RecDescent::_tracefirst($text),
25315             q{window_aggregation_group_clause},
25316             $tracelevel
25317             ) if defined $::RD_TRACE;
25318 0         0 $item{q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause}} = $_tok;
25319 0         0 push @item, $_tok;
25320              
25321             }
25322              
25323             Parse::RecDescent::_trace(
25324 0 0       0 q{>>Matched production: [/ROWS/i, or /RANGE/i group_start, or group_between, or group_end]<<},
25325             Parse::RecDescent::_tracefirst($text),
25326             q{window_aggregation_group_clause}, $tracelevel
25327             ) if defined $::RD_TRACE;
25328 0         0 $_matched = 1;
25329 0         0 last;
25330             }
25331              
25332 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
25333              
25334 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
25335 0 0       0 Parse::RecDescent::_trace(
25336             q{<>},
25337             Parse::RecDescent::_tracefirst($_[1]),
25338             q{window_aggregation_group_clause}, $tracelevel
25339             ) if defined $::RD_TRACE;
25340 0         0 return undef;
25341             }
25342 0 0 0     0 if (!defined($return) && defined($score)) {
25343 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{window_aggregation_group_clause}, $tracelevel)
25344             if defined $::RD_TRACE;
25345 0         0 $return = $score_return;
25346             }
25347 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
25348 0 0       0 $return = $item[$#item] unless defined $return;
25349 0 0       0 if (defined $::RD_TRACE) {
25350 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
25351             "", q{window_aggregation_group_clause}, $tracelevel);
25352 0         0 Parse::RecDescent::_trace(
25353             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
25354             Parse::RecDescent::_tracefirst($text),
25355             , q{window_aggregation_group_clause}, $tracelevel
25356             );
25357             }
25358 0         0 $_[1] = $text;
25359 0         0 return $return;
25360             }
25361              
25362             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
25363             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_window_aggregation_group_clause
25364             {
25365 0     0   0 my $thisparser = $_[0];
25366 1     1   10 use vars q{$tracelevel};
  1         2  
  1         555  
25367 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
25368 0         0 $ERRORS = 0;
25369 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_2_of_production_1_of_rule_window_aggregation_group_clause"};
25370              
25371 0 0       0 Parse::RecDescent::_trace(
25372             q{Trying rule: [_alternation_2_of_production_1_of_rule_window_aggregation_group_clause]},
25373             Parse::RecDescent::_tracefirst($_[1]),
25374             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause}, $tracelevel
25375             ) if defined $::RD_TRACE;
25376              
25377 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
25378              
25379 0         0 my $score;
25380             my $score_return;
25381 0         0 my $_tok;
25382 0         0 my $return = undef;
25383 0         0 my $_matched = 0;
25384 0         0 my $commit = 0;
25385 0         0 my @item = ();
25386 0         0 my %item = ();
25387 0   0     0 my $repeating = defined($_[2]) && $_[2];
25388 0   0     0 my $_noactions = defined($_[3]) && $_[3];
25389 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
25390 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
25391 0         0 my $text;
25392 0         0 my $lastsep = "";
25393 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
25394 0         0 $expectation->at($_[1]);
25395              
25396 0         0 my $thisline;
25397 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
25398              
25399 0   0     0 while (!$_matched && !$commit) {
25400              
25401 0 0       0 Parse::RecDescent::_trace(
25402             q{Trying production: [group_start]},
25403             Parse::RecDescent::_tracefirst($_[1]),
25404             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause}, $tracelevel
25405             ) if defined $::RD_TRACE;
25406 0         0 my $thisprod = $thisrule->{"prods"}[0];
25407 0         0 $text = $_[1];
25408 0         0 my $_savetext;
25409 0         0 @item = (q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause});
25410 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause});
25411 0         0 my $repcount = 0;
25412              
25413 0 0       0 Parse::RecDescent::_trace(
25414             q{Trying subrule: [group_start]},
25415             Parse::RecDescent::_tracefirst($text),
25416             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause}, $tracelevel
25417             ) if defined $::RD_TRACE;
25418 0         0 if (1) {
25419 1     1   10 no strict qw{refs};
  1         3  
  1         480  
25420 0         0 $expectation->is(q{})->at($text);
25421 0 0       0 unless (defined(
25422             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_start(
25423 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
25424             )
25425             )) {
25426              
25427 0 0       0 Parse::RecDescent::_trace(
25428             q{<>},
25429             Parse::RecDescent::_tracefirst($text),
25430             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause}, $tracelevel
25431             ) if defined $::RD_TRACE;
25432 0         0 $expectation->failed();
25433 0         0 last;
25434             }
25435             Parse::RecDescent::_trace(
25436 0 0       0 q{>>Matched subrule: [group_start]<< (return value: [} . $_tok . q{]},
25437              
25438             Parse::RecDescent::_tracefirst($text),
25439             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
25440             $tracelevel
25441             ) if defined $::RD_TRACE;
25442 0         0 $item{q{group_start}} = $_tok;
25443 0         0 push @item, $_tok;
25444              
25445             }
25446              
25447             Parse::RecDescent::_trace(
25448 0 0       0 q{>>Matched production: [group_start]<<},
25449             Parse::RecDescent::_tracefirst($text),
25450             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause}, $tracelevel
25451             ) if defined $::RD_TRACE;
25452 0         0 $_matched = 1;
25453 0         0 last;
25454             }
25455              
25456 0   0     0 while (!$_matched && !$commit) {
25457              
25458 0 0       0 Parse::RecDescent::_trace(
25459             q{Trying production: [group_between]},
25460             Parse::RecDescent::_tracefirst($_[1]),
25461             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause}, $tracelevel
25462             ) if defined $::RD_TRACE;
25463 0         0 my $thisprod = $thisrule->{"prods"}[1];
25464 0         0 $text = $_[1];
25465 0         0 my $_savetext;
25466 0         0 @item = (q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause});
25467 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause});
25468 0         0 my $repcount = 0;
25469              
25470 0 0       0 Parse::RecDescent::_trace(
25471             q{Trying subrule: [group_between]},
25472             Parse::RecDescent::_tracefirst($text),
25473             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause}, $tracelevel
25474             ) if defined $::RD_TRACE;
25475 0         0 if (1) {
25476 1     1   11 no strict qw{refs};
  1         4  
  1         407  
25477 0         0 $expectation->is(q{})->at($text);
25478 0 0       0 unless (defined(
25479             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_between(
25480 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
25481             )
25482             )) {
25483              
25484 0 0       0 Parse::RecDescent::_trace(
25485             q{<>},
25486             Parse::RecDescent::_tracefirst($text),
25487             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause}, $tracelevel
25488             ) if defined $::RD_TRACE;
25489 0         0 $expectation->failed();
25490 0         0 last;
25491             }
25492             Parse::RecDescent::_trace(
25493 0 0       0 q{>>Matched subrule: [group_between]<< (return value: [} . $_tok . q{]},
25494              
25495             Parse::RecDescent::_tracefirst($text),
25496             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
25497             $tracelevel
25498             ) if defined $::RD_TRACE;
25499 0         0 $item{q{group_between}} = $_tok;
25500 0         0 push @item, $_tok;
25501              
25502             }
25503              
25504             Parse::RecDescent::_trace(
25505 0 0       0 q{>>Matched production: [group_between]<<},
25506             Parse::RecDescent::_tracefirst($text),
25507             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause}, $tracelevel
25508             ) if defined $::RD_TRACE;
25509 0         0 $_matched = 1;
25510 0         0 last;
25511             }
25512              
25513 0   0     0 while (!$_matched && !$commit) {
25514              
25515 0 0       0 Parse::RecDescent::_trace(
25516             q{Trying production: [group_end]},
25517             Parse::RecDescent::_tracefirst($_[1]),
25518             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause}, $tracelevel
25519             ) if defined $::RD_TRACE;
25520 0         0 my $thisprod = $thisrule->{"prods"}[2];
25521 0         0 $text = $_[1];
25522 0         0 my $_savetext;
25523 0         0 @item = (q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause});
25524 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause});
25525 0         0 my $repcount = 0;
25526              
25527 0 0       0 Parse::RecDescent::_trace(
25528             q{Trying subrule: [group_end]},
25529             Parse::RecDescent::_tracefirst($text),
25530             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause}, $tracelevel
25531             ) if defined $::RD_TRACE;
25532 0         0 if (1) {
25533 1     1   10 no strict qw{refs};
  1         3  
  1         785  
25534 0         0 $expectation->is(q{})->at($text);
25535 0 0       0 unless (defined(
25536             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_end(
25537 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
25538             )
25539             )) {
25540              
25541 0 0       0 Parse::RecDescent::_trace(
25542             q{<>},
25543             Parse::RecDescent::_tracefirst($text),
25544             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause}, $tracelevel
25545             ) if defined $::RD_TRACE;
25546 0         0 $expectation->failed();
25547 0         0 last;
25548             }
25549             Parse::RecDescent::_trace(
25550 0 0       0 q{>>Matched subrule: [group_end]<< (return value: [} . $_tok . q{]},
25551              
25552             Parse::RecDescent::_tracefirst($text),
25553             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
25554             $tracelevel
25555             ) if defined $::RD_TRACE;
25556 0         0 $item{q{group_end}} = $_tok;
25557 0         0 push @item, $_tok;
25558              
25559             }
25560              
25561             Parse::RecDescent::_trace(
25562 0 0       0 q{>>Matched production: [group_end]<<},
25563             Parse::RecDescent::_tracefirst($text),
25564             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause}, $tracelevel
25565             ) if defined $::RD_TRACE;
25566 0         0 $_matched = 1;
25567 0         0 last;
25568             }
25569              
25570 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
25571              
25572 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
25573 0 0       0 Parse::RecDescent::_trace(
25574             q{<>},
25575             Parse::RecDescent::_tracefirst($_[1]),
25576             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause}, $tracelevel
25577             ) if defined $::RD_TRACE;
25578 0         0 return undef;
25579             }
25580 0 0 0     0 if (!defined($return) && defined($score)) {
25581 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
25582             "", q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause}, $tracelevel)
25583             if defined $::RD_TRACE;
25584 0         0 $return = $score_return;
25585             }
25586 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
25587 0 0       0 $return = $item[$#item] unless defined $return;
25588 0 0       0 if (defined $::RD_TRACE) {
25589 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
25590             "", q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause}, $tracelevel);
25591 0         0 Parse::RecDescent::_trace(
25592             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
25593             Parse::RecDescent::_tracefirst($text),
25594             ,
25595             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
25596             $tracelevel
25597             );
25598             }
25599 0         0 $_[1] = $text;
25600 0         0 return $return;
25601             }
25602              
25603             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
25604             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::VIEW {
25605 0     0   0 my $thisparser = $_[0];
25606 1     1   14 use vars q{$tracelevel};
  1         3  
  1         1172  
25607 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
25608 0         0 $ERRORS = 0;
25609 0         0 my $thisrule = $thisparser->{"rules"}{"VIEW"};
25610              
25611 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [VIEW]}, Parse::RecDescent::_tracefirst($_[1]), q{VIEW}, $tracelevel)
25612             if defined $::RD_TRACE;
25613              
25614 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
25615              
25616 0         0 my $score;
25617             my $score_return;
25618 0         0 my $_tok;
25619 0         0 my $return = undef;
25620 0         0 my $_matched = 0;
25621 0         0 my $commit = 0;
25622 0         0 my @item = ();
25623 0         0 my %item = ();
25624 0   0     0 my $repeating = defined($_[2]) && $_[2];
25625 0   0     0 my $_noactions = defined($_[3]) && $_[3];
25626 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
25627 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
25628 0         0 my $text;
25629 0         0 my $lastsep = "";
25630 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
25631 0         0 $expectation->at($_[1]);
25632              
25633 0         0 my $thisline;
25634 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
25635              
25636 0   0     0 while (!$_matched && !$commit) {
25637              
25638 0 0       0 Parse::RecDescent::_trace(
25639             q{Trying production: [/view/i]},
25640             Parse::RecDescent::_tracefirst($_[1]),
25641             q{VIEW}, $tracelevel
25642             ) if defined $::RD_TRACE;
25643 0         0 my $thisprod = $thisrule->{"prods"}[0];
25644 0         0 $text = $_[1];
25645 0         0 my $_savetext;
25646 0         0 @item = (q{VIEW});
25647 0         0 %item = (__RULE__ => q{VIEW});
25648 0         0 my $repcount = 0;
25649              
25650 0 0       0 Parse::RecDescent::_trace(
25651             q{Trying terminal: [/view/i]},
25652             Parse::RecDescent::_tracefirst($text),
25653             q{VIEW}, $tracelevel
25654             ) if defined $::RD_TRACE;
25655 0         0 $lastsep = "";
25656 0         0 $expectation->is(q{})->at($text);
25657              
25658 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
25659             and $text =~ s/\A(?:view)//i) {
25660              
25661 0         0 $expectation->failed();
25662 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
25663             if defined $::RD_TRACE;
25664              
25665 0         0 last;
25666             }
25667 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
25668             Parse::RecDescent::_tracefirst($text))
25669             if defined $::RD_TRACE;
25670 0         0 push @item, $item{__PATTERN1__} = $&;
25671              
25672 0 0       0 Parse::RecDescent::_trace(
25673             q{>>Matched production: [/view/i]<<},
25674             Parse::RecDescent::_tracefirst($text),
25675             q{VIEW}, $tracelevel
25676             ) if defined $::RD_TRACE;
25677 0         0 $_matched = 1;
25678 0         0 last;
25679             }
25680              
25681 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
25682              
25683 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
25684 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{VIEW}, $tracelevel)
25685             if defined $::RD_TRACE;
25686 0         0 return undef;
25687             }
25688 0 0 0     0 if (!defined($return) && defined($score)) {
25689 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{VIEW}, $tracelevel)
25690             if defined $::RD_TRACE;
25691 0         0 $return = $score_return;
25692             }
25693 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
25694 0 0       0 $return = $item[$#item] unless defined $return;
25695 0 0       0 if (defined $::RD_TRACE) {
25696 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{VIEW}, $tracelevel);
25697 0         0 Parse::RecDescent::_trace(
25698             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
25699             Parse::RecDescent::_tracefirst($text),
25700             , q{VIEW}, $tracelevel
25701             );
25702             }
25703 0         0 $_[1] = $text;
25704 0         0 return $return;
25705             }
25706              
25707             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
25708             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::with_expression {
25709 0     0   0 my $thisparser = $_[0];
25710 1     1   12 use vars q{$tracelevel};
  1         2  
  1         776  
25711 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
25712 0         0 $ERRORS = 0;
25713 0         0 my $thisrule = $thisparser->{"rules"}{"with_expression"};
25714              
25715 0 0       0 Parse::RecDescent::_trace(
25716             q{Trying rule: [with_expression]},
25717             Parse::RecDescent::_tracefirst($_[1]),
25718             q{with_expression}, $tracelevel
25719             ) if defined $::RD_TRACE;
25720              
25721 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
25722              
25723 0         0 my $score;
25724             my $score_return;
25725 0         0 my $_tok;
25726 0         0 my $return = undef;
25727 0         0 my $_matched = 0;
25728 0         0 my $commit = 0;
25729 0         0 my @item = ();
25730 0         0 my %item = ();
25731 0   0     0 my $repeating = defined($_[2]) && $_[2];
25732 0   0     0 my $_noactions = defined($_[3]) && $_[3];
25733 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
25734 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
25735 0         0 my $text;
25736 0         0 my $lastsep = "";
25737 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
25738 0         0 $expectation->at($_[1]);
25739              
25740 0         0 my $thisline;
25741 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
25742              
25743 0   0     0 while (!$_matched && !$commit) {
25744              
25745 0 0       0 Parse::RecDescent::_trace(
25746             q{Trying production: [/WITH/i ]},
25747             Parse::RecDescent::_tracefirst($_[1]),
25748             q{with_expression}, $tracelevel
25749             ) if defined $::RD_TRACE;
25750 0         0 my $thisprod = $thisrule->{"prods"}[0];
25751 0         0 $text = $_[1];
25752 0         0 my $_savetext;
25753 0         0 @item = (q{with_expression});
25754 0         0 %item = (__RULE__ => q{with_expression});
25755 0         0 my $repcount = 0;
25756              
25757 0 0       0 Parse::RecDescent::_trace(
25758             q{Trying terminal: [/WITH/i]},
25759             Parse::RecDescent::_tracefirst($text),
25760             q{with_expression}, $tracelevel
25761             ) if defined $::RD_TRACE;
25762 0         0 $lastsep = "";
25763 0         0 $expectation->is(q{})->at($text);
25764              
25765 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
25766             and $text =~ s/\A(?:WITH)//i) {
25767              
25768 0         0 $expectation->failed();
25769 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
25770             if defined $::RD_TRACE;
25771              
25772 0         0 last;
25773             }
25774 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
25775             Parse::RecDescent::_tracefirst($text))
25776             if defined $::RD_TRACE;
25777 0         0 push @item, $item{__PATTERN1__} = $&;
25778              
25779 0 0       0 Parse::RecDescent::_trace(
25780             q{Trying operator: []},
25781             Parse::RecDescent::_tracefirst($text),
25782             q{with_expression}, $tracelevel
25783             ) if defined $::RD_TRACE;
25784 0         0 $expectation->is(
25785             q{}
25786             )->at($text);
25787              
25788 0         0 $_tok = undef;
25789 0         0 OPLOOP: while (1) {
25790 0         0 $repcount = 0;
25791 0         0 my @item;
25792              
25793             # MATCH LEFTARG
25794              
25795 0 0       0 Parse::RecDescent::_trace(
25796             q{Trying subrule: [common_table_expression]},
25797             Parse::RecDescent::_tracefirst($text),
25798             q{with_expression}, $tracelevel
25799             ) if defined $::RD_TRACE;
25800 0         0 if (1) {
25801 1     1   10 no strict qw{refs};
  1         2  
  1         611  
25802 0         0 $expectation->is(q{common_table_expression})->at($text);
25803 0 0       0 unless (defined(
25804             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::common_table_expression(
25805 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
25806             )
25807             )) {
25808              
25809 0 0       0 Parse::RecDescent::_trace(
25810             q{<>},
25811             Parse::RecDescent::_tracefirst($text),
25812             q{with_expression}, $tracelevel
25813             ) if defined $::RD_TRACE;
25814 0         0 $expectation->failed();
25815 0         0 last;
25816             }
25817             Parse::RecDescent::_trace(
25818 0 0       0 q{>>Matched subrule: [common_table_expression]<< (return value: [} . $_tok . q{]},
25819              
25820             Parse::RecDescent::_tracefirst($text),
25821             q{with_expression},
25822             $tracelevel
25823             ) if defined $::RD_TRACE;
25824 0         0 $item{q{common_table_expression}} = $_tok;
25825 0         0 push @item, $_tok;
25826              
25827             }
25828              
25829 0         0 $repcount++;
25830              
25831 0         0 my $savetext = $text;
25832 0         0 my $backtrack;
25833              
25834             # MATCH (OP RIGHTARG)(s)
25835 0         0 while ($repcount < 100000000) {
25836 0         0 $backtrack = 0;
25837              
25838 0 0       0 Parse::RecDescent::_trace(
25839             q{Trying terminal: [/,/]},
25840             Parse::RecDescent::_tracefirst($text),
25841             q{with_expression}, $tracelevel
25842             ) if defined $::RD_TRACE;
25843 0         0 $lastsep = "";
25844 0         0 $expectation->is(q{/,/})->at($text);
25845              
25846 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
25847             and $text =~ s/\A(?:,)//) {
25848              
25849 0         0 $expectation->failed();
25850 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
25851             if defined $::RD_TRACE;
25852              
25853 0         0 last;
25854             }
25855 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
25856             Parse::RecDescent::_tracefirst($text))
25857             if defined $::RD_TRACE;
25858 0         0 push @item, $item{__PATTERN2__} = $&;
25859              
25860 0         0 pop @item;
25861 0 0       0 if (defined $1) {
25862 0         0 push @item, $item{'common_table_expression(s)'} = $1;
25863 0         0 $backtrack = 1;
25864             }
25865              
25866             Parse::RecDescent::_trace(
25867 0 0       0 q{Trying subrule: [common_table_expression]},
25868             Parse::RecDescent::_tracefirst($text),
25869             q{with_expression}, $tracelevel
25870             ) if defined $::RD_TRACE;
25871 0         0 if (1) {
25872 1     1   10 no strict qw{refs};
  1         5  
  1         1155  
25873 0         0 $expectation->is(q{common_table_expression})->at($text);
25874 0 0       0 unless (defined(
25875             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::common_table_expression(
25876 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
25877             )
25878             )) {
25879              
25880 0 0       0 Parse::RecDescent::_trace(
25881             q{<>},
25882             Parse::RecDescent::_tracefirst($text),
25883             q{with_expression}, $tracelevel
25884             ) if defined $::RD_TRACE;
25885 0         0 $expectation->failed();
25886 0         0 last;
25887             }
25888             Parse::RecDescent::_trace(
25889 0 0       0 q{>>Matched subrule: [common_table_expression]<< (return value: [} . $_tok . q{]},
25890              
25891             Parse::RecDescent::_tracefirst($text),
25892             q{with_expression},
25893             $tracelevel
25894             ) if defined $::RD_TRACE;
25895 0         0 $item{q{common_table_expression}} = $_tok;
25896 0         0 push @item, $_tok;
25897              
25898             }
25899              
25900 0         0 $savetext = $text;
25901 0         0 $repcount++;
25902             }
25903 0         0 $text = $savetext;
25904 0 0       0 pop @item if $backtrack;
25905              
25906 0 0       0 unless (@item) { undef $_tok; last }
  0         0  
  0         0  
25907 0         0 $_tok = [@item];
25908 0         0 last;
25909             }
25910              
25911 0 0       0 unless ($repcount >= 1) {
25912 0 0       0 Parse::RecDescent::_trace(
25913             q{<]>>},
25914             Parse::RecDescent::_tracefirst($text),
25915             q{with_expression}, $tracelevel
25916             ) if defined $::RD_TRACE;
25917 0         0 $expectation->failed();
25918 0         0 last;
25919             }
25920             Parse::RecDescent::_trace(
25921 0 0       0 q{>>Matched operator: []<< (return value: [}
25922 0 0       0 . qq{@{$_tok||[]}} . q{]},
25923             Parse::RecDescent::_tracefirst($text), q{with_expression}, $tracelevel
25924             ) if defined $::RD_TRACE;
25925              
25926 0   0     0 push @item, $item{'common_table_expression(s)'} = $_tok || [];
25927              
25928 0 0       0 Parse::RecDescent::_trace(
25929             q{Trying action},
25930             Parse::RecDescent::_tracefirst($text),
25931             q{with_expression}, $tracelevel
25932             ) if defined $::RD_TRACE;
25933              
25934 0 0       0 $_tok = ($_noactions) ? 0 : do {
25935 0         0 $return = $item{'common_table_expression'};
25936             };
25937 0 0       0 unless (defined $_tok) {
25938 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
25939             if defined $::RD_TRACE;
25940 0         0 last;
25941             }
25942 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])},
25943             Parse::RecDescent::_tracefirst($text))
25944             if defined $::RD_TRACE;
25945 0         0 push @item, $_tok;
25946 0         0 $item{__ACTION1__} = $_tok;
25947              
25948 0 0       0 Parse::RecDescent::_trace(
25949             q{>>Matched production: [/WITH/i ]<<},
25950             Parse::RecDescent::_tracefirst($text),
25951             q{with_expression}, $tracelevel
25952             ) if defined $::RD_TRACE;
25953 0         0 $_matched = 1;
25954 0         0 last;
25955             }
25956              
25957 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
25958              
25959 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
25960 0 0       0 Parse::RecDescent::_trace(
25961             q{<>},
25962             Parse::RecDescent::_tracefirst($_[1]),
25963             q{with_expression}, $tracelevel
25964             ) if defined $::RD_TRACE;
25965 0         0 return undef;
25966             }
25967 0 0 0     0 if (!defined($return) && defined($score)) {
25968 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{with_expression}, $tracelevel)
25969             if defined $::RD_TRACE;
25970 0         0 $return = $score_return;
25971             }
25972 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
25973 0 0       0 $return = $item[$#item] unless defined $return;
25974 0 0       0 if (defined $::RD_TRACE) {
25975 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
25976             "", q{with_expression}, $tracelevel);
25977 0         0 Parse::RecDescent::_trace(
25978             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
25979             Parse::RecDescent::_tracefirst($text),
25980             , q{with_expression}, $tracelevel
25981             );
25982             }
25983 0         0 $_[1] = $text;
25984 0         0 return $return;
25985             }
25986              
25987             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
25988             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::numeric_constant {
25989 0     0   0 my $thisparser = $_[0];
25990 1     1   12 use vars q{$tracelevel};
  1         4  
  1         1116  
25991 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
25992 0         0 $ERRORS = 0;
25993 0         0 my $thisrule = $thisparser->{"rules"}{"numeric_constant"};
25994              
25995 0 0       0 Parse::RecDescent::_trace(
25996             q{Trying rule: [numeric_constant]},
25997             Parse::RecDescent::_tracefirst($_[1]),
25998             q{numeric_constant}, $tracelevel
25999             ) if defined $::RD_TRACE;
26000              
26001 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
26002              
26003 0         0 my $score;
26004             my $score_return;
26005 0         0 my $_tok;
26006 0         0 my $return = undef;
26007 0         0 my $_matched = 0;
26008 0         0 my $commit = 0;
26009 0         0 my @item = ();
26010 0         0 my %item = ();
26011 0   0     0 my $repeating = defined($_[2]) && $_[2];
26012 0   0     0 my $_noactions = defined($_[3]) && $_[3];
26013 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
26014 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
26015 0         0 my $text;
26016 0         0 my $lastsep = "";
26017 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
26018 0         0 $expectation->at($_[1]);
26019              
26020 0         0 my $thisline;
26021 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
26022              
26023 0   0     0 while (!$_matched && !$commit) {
26024              
26025 0 0       0 Parse::RecDescent::_trace(
26026             q{Trying production: [/\\d+/]},
26027             Parse::RecDescent::_tracefirst($_[1]),
26028             q{numeric_constant}, $tracelevel
26029             ) if defined $::RD_TRACE;
26030 0         0 my $thisprod = $thisrule->{"prods"}[0];
26031 0         0 $text = $_[1];
26032 0         0 my $_savetext;
26033 0         0 @item = (q{numeric_constant});
26034 0         0 %item = (__RULE__ => q{numeric_constant});
26035 0         0 my $repcount = 0;
26036              
26037 0 0       0 Parse::RecDescent::_trace(
26038             q{Trying terminal: [/\\d+/]},
26039             Parse::RecDescent::_tracefirst($text),
26040             q{numeric_constant}, $tracelevel
26041             ) if defined $::RD_TRACE;
26042 0         0 $lastsep = "";
26043 0         0 $expectation->is(q{})->at($text);
26044              
26045 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
26046             and $text =~ s/\A(?:\d+)//) {
26047              
26048 0         0 $expectation->failed();
26049 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
26050             if defined $::RD_TRACE;
26051              
26052 0         0 last;
26053             }
26054 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
26055             Parse::RecDescent::_tracefirst($text))
26056             if defined $::RD_TRACE;
26057 0         0 push @item, $item{__PATTERN1__} = $&;
26058              
26059 0 0       0 Parse::RecDescent::_trace(
26060             q{>>Matched production: [/\\d+/]<<},
26061             Parse::RecDescent::_tracefirst($text),
26062             q{numeric_constant}, $tracelevel
26063             ) if defined $::RD_TRACE;
26064 0         0 $_matched = 1;
26065 0         0 last;
26066             }
26067              
26068 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
26069              
26070 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
26071 0 0       0 Parse::RecDescent::_trace(
26072             q{<>},
26073             Parse::RecDescent::_tracefirst($_[1]),
26074             q{numeric_constant}, $tracelevel
26075             ) if defined $::RD_TRACE;
26076 0         0 return undef;
26077             }
26078 0 0 0     0 if (!defined($return) && defined($score)) {
26079 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{numeric_constant}, $tracelevel)
26080             if defined $::RD_TRACE;
26081 0         0 $return = $score_return;
26082             }
26083 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
26084 0 0       0 $return = $item[$#item] unless defined $return;
26085 0 0       0 if (defined $::RD_TRACE) {
26086 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
26087             "", q{numeric_constant}, $tracelevel);
26088 0         0 Parse::RecDescent::_trace(
26089             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
26090             Parse::RecDescent::_tracefirst($text),
26091             , q{numeric_constant}, $tracelevel
26092             );
26093             }
26094 0         0 $_[1] = $text;
26095 0         0 return $return;
26096             }
26097              
26098             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
26099             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::old_new_table {
26100 0     0   0 my $thisparser = $_[0];
26101 1     1   12 use vars q{$tracelevel};
  1         3  
  1         968  
26102 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
26103 0         0 $ERRORS = 0;
26104 0         0 my $thisrule = $thisparser->{"rules"}{"old_new_table"};
26105              
26106 0 0       0 Parse::RecDescent::_trace(
26107             q{Trying rule: [old_new_table]},
26108             Parse::RecDescent::_tracefirst($_[1]),
26109             q{old_new_table}, $tracelevel
26110             ) if defined $::RD_TRACE;
26111              
26112 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
26113              
26114 0         0 my $score;
26115             my $score_return;
26116 0         0 my $_tok;
26117 0         0 my $return = undef;
26118 0         0 my $_matched = 0;
26119 0         0 my $commit = 0;
26120 0         0 my @item = ();
26121 0         0 my %item = ();
26122 0   0     0 my $repeating = defined($_[2]) && $_[2];
26123 0   0     0 my $_noactions = defined($_[3]) && $_[3];
26124 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
26125 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
26126 0         0 my $text;
26127 0         0 my $lastsep = "";
26128 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
26129 0         0 $expectation->at($_[1]);
26130              
26131 0         0 my $thisline;
26132 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
26133              
26134 0   0     0 while (!$_matched && !$commit) {
26135              
26136 0 0       0 Parse::RecDescent::_trace(
26137             q{Trying production: [/OLD_TABLE/i /(AS)?/i identifier]},
26138             Parse::RecDescent::_tracefirst($_[1]),
26139             q{old_new_table}, $tracelevel
26140             ) if defined $::RD_TRACE;
26141 0         0 my $thisprod = $thisrule->{"prods"}[0];
26142 0         0 $text = $_[1];
26143 0         0 my $_savetext;
26144 0         0 @item = (q{old_new_table});
26145 0         0 %item = (__RULE__ => q{old_new_table});
26146 0         0 my $repcount = 0;
26147              
26148 0 0       0 Parse::RecDescent::_trace(
26149             q{Trying terminal: [/OLD_TABLE/i]},
26150             Parse::RecDescent::_tracefirst($text),
26151             q{old_new_table}, $tracelevel
26152             ) if defined $::RD_TRACE;
26153 0         0 $lastsep = "";
26154 0         0 $expectation->is(q{})->at($text);
26155              
26156 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
26157             and $text =~ s/\A(?:OLD_TABLE)//i) {
26158              
26159 0         0 $expectation->failed();
26160 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
26161             if defined $::RD_TRACE;
26162              
26163 0         0 last;
26164             }
26165 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
26166             Parse::RecDescent::_tracefirst($text))
26167             if defined $::RD_TRACE;
26168 0         0 push @item, $item{__PATTERN1__} = $&;
26169              
26170 0 0       0 Parse::RecDescent::_trace(
26171             q{Trying terminal: [/(AS)?/i]},
26172             Parse::RecDescent::_tracefirst($text),
26173             q{old_new_table}, $tracelevel
26174             ) if defined $::RD_TRACE;
26175 0         0 $lastsep = "";
26176 0         0 $expectation->is(q{/(AS)?/i})->at($text);
26177              
26178 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
26179             and $text =~ s/\A(?:(AS)?)//i) {
26180              
26181 0         0 $expectation->failed();
26182 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
26183             if defined $::RD_TRACE;
26184              
26185 0         0 last;
26186             }
26187 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
26188             Parse::RecDescent::_tracefirst($text))
26189             if defined $::RD_TRACE;
26190 0         0 push @item, $item{__PATTERN2__} = $&;
26191              
26192 0 0       0 Parse::RecDescent::_trace(
26193             q{Trying subrule: [identifier]},
26194             Parse::RecDescent::_tracefirst($text),
26195             q{old_new_table}, $tracelevel
26196             ) if defined $::RD_TRACE;
26197 0         0 if (1) {
26198 1     1   11 no strict qw{refs};
  1         3  
  1         1040  
26199 0         0 $expectation->is(q{identifier})->at($text);
26200 0 0       0 unless (defined(
26201             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::identifier(
26202 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
26203             )
26204             )) {
26205              
26206 0 0       0 Parse::RecDescent::_trace(
26207             q{<>},
26208             Parse::RecDescent::_tracefirst($text),
26209             q{old_new_table}, $tracelevel
26210             ) if defined $::RD_TRACE;
26211 0         0 $expectation->failed();
26212 0         0 last;
26213             }
26214             Parse::RecDescent::_trace(
26215 0 0       0 q{>>Matched subrule: [identifier]<< (return value: [} . $_tok . q{]},
26216              
26217             Parse::RecDescent::_tracefirst($text),
26218             q{old_new_table},
26219             $tracelevel
26220             ) if defined $::RD_TRACE;
26221 0         0 $item{q{identifier}} = $_tok;
26222 0         0 push @item, $_tok;
26223              
26224             }
26225              
26226 0 0       0 Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{old_new_table}, $tracelevel)
26227             if defined $::RD_TRACE;
26228              
26229 0 0       0 $_tok = ($_noactions) ? 0 : do { $return = join(' ', @item[ 1 .. 3 ]) };
  0         0  
26230 0 0       0 unless (defined $_tok) {
26231 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
26232             if defined $::RD_TRACE;
26233 0         0 last;
26234             }
26235 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])},
26236             Parse::RecDescent::_tracefirst($text))
26237             if defined $::RD_TRACE;
26238 0         0 push @item, $_tok;
26239 0         0 $item{__ACTION1__} = $_tok;
26240              
26241 0 0       0 Parse::RecDescent::_trace(
26242             q{>>Matched production: [/OLD_TABLE/i /(AS)?/i identifier]<<},
26243             Parse::RecDescent::_tracefirst($text),
26244             q{old_new_table}, $tracelevel
26245             ) if defined $::RD_TRACE;
26246 0         0 $_matched = 1;
26247 0         0 last;
26248             }
26249              
26250 0   0     0 while (!$_matched && !$commit) {
26251              
26252 0 0       0 Parse::RecDescent::_trace(
26253             q{Trying production: [/NEW_TABLE/i /(AS)?/i identifier]},
26254             Parse::RecDescent::_tracefirst($_[1]),
26255             q{old_new_table}, $tracelevel
26256             ) if defined $::RD_TRACE;
26257 0         0 my $thisprod = $thisrule->{"prods"}[1];
26258 0         0 $text = $_[1];
26259 0         0 my $_savetext;
26260 0         0 @item = (q{old_new_table});
26261 0         0 %item = (__RULE__ => q{old_new_table});
26262 0         0 my $repcount = 0;
26263              
26264 0 0       0 Parse::RecDescent::_trace(
26265             q{Trying terminal: [/NEW_TABLE/i]},
26266             Parse::RecDescent::_tracefirst($text),
26267             q{old_new_table}, $tracelevel
26268             ) if defined $::RD_TRACE;
26269 0         0 $lastsep = "";
26270 0         0 $expectation->is(q{})->at($text);
26271              
26272 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
26273             and $text =~ s/\A(?:NEW_TABLE)//i) {
26274              
26275 0         0 $expectation->failed();
26276 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
26277             if defined $::RD_TRACE;
26278              
26279 0         0 last;
26280             }
26281 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
26282             Parse::RecDescent::_tracefirst($text))
26283             if defined $::RD_TRACE;
26284 0         0 push @item, $item{__PATTERN1__} = $&;
26285              
26286 0 0       0 Parse::RecDescent::_trace(
26287             q{Trying terminal: [/(AS)?/i]},
26288             Parse::RecDescent::_tracefirst($text),
26289             q{old_new_table}, $tracelevel
26290             ) if defined $::RD_TRACE;
26291 0         0 $lastsep = "";
26292 0         0 $expectation->is(q{/(AS)?/i})->at($text);
26293              
26294 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
26295             and $text =~ s/\A(?:(AS)?)//i) {
26296              
26297 0         0 $expectation->failed();
26298 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
26299             if defined $::RD_TRACE;
26300              
26301 0         0 last;
26302             }
26303 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
26304             Parse::RecDescent::_tracefirst($text))
26305             if defined $::RD_TRACE;
26306 0         0 push @item, $item{__PATTERN2__} = $&;
26307              
26308 0 0       0 Parse::RecDescent::_trace(
26309             q{Trying subrule: [identifier]},
26310             Parse::RecDescent::_tracefirst($text),
26311             q{old_new_table}, $tracelevel
26312             ) if defined $::RD_TRACE;
26313 0         0 if (1) {
26314 1     1   12 no strict qw{refs};
  1         3  
  1         955  
26315 0         0 $expectation->is(q{identifier})->at($text);
26316 0 0       0 unless (defined(
26317             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::identifier(
26318 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
26319             )
26320             )) {
26321              
26322 0 0       0 Parse::RecDescent::_trace(
26323             q{<>},
26324             Parse::RecDescent::_tracefirst($text),
26325             q{old_new_table}, $tracelevel
26326             ) if defined $::RD_TRACE;
26327 0         0 $expectation->failed();
26328 0         0 last;
26329             }
26330             Parse::RecDescent::_trace(
26331 0 0       0 q{>>Matched subrule: [identifier]<< (return value: [} . $_tok . q{]},
26332              
26333             Parse::RecDescent::_tracefirst($text),
26334             q{old_new_table},
26335             $tracelevel
26336             ) if defined $::RD_TRACE;
26337 0         0 $item{q{identifier}} = $_tok;
26338 0         0 push @item, $_tok;
26339              
26340             }
26341              
26342 0 0       0 Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{old_new_table}, $tracelevel)
26343             if defined $::RD_TRACE;
26344              
26345 0 0       0 $_tok = ($_noactions) ? 0 : do { $return = join(' ', @item[ 1 .. 3 ]) };
  0         0  
26346 0 0       0 unless (defined $_tok) {
26347 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
26348             if defined $::RD_TRACE;
26349 0         0 last;
26350             }
26351 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])},
26352             Parse::RecDescent::_tracefirst($text))
26353             if defined $::RD_TRACE;
26354 0         0 push @item, $_tok;
26355 0         0 $item{__ACTION1__} = $_tok;
26356              
26357 0 0       0 Parse::RecDescent::_trace(
26358             q{>>Matched production: [/NEW_TABLE/i /(AS)?/i identifier]<<},
26359             Parse::RecDescent::_tracefirst($text),
26360             q{old_new_table}, $tracelevel
26361             ) if defined $::RD_TRACE;
26362 0         0 $_matched = 1;
26363 0         0 last;
26364             }
26365              
26366 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
26367              
26368 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
26369 0 0       0 Parse::RecDescent::_trace(
26370             q{<>},
26371             Parse::RecDescent::_tracefirst($_[1]),
26372             q{old_new_table}, $tracelevel
26373             ) if defined $::RD_TRACE;
26374 0         0 return undef;
26375             }
26376 0 0 0     0 if (!defined($return) && defined($score)) {
26377 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{old_new_table}, $tracelevel)
26378             if defined $::RD_TRACE;
26379 0         0 $return = $score_return;
26380             }
26381 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
26382 0 0       0 $return = $item[$#item] unless defined $return;
26383 0 0       0 if (defined $::RD_TRACE) {
26384 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
26385             "", q{old_new_table}, $tracelevel);
26386 0         0 Parse::RecDescent::_trace(
26387             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
26388             Parse::RecDescent::_tracefirst($text),
26389             , q{old_new_table}, $tracelevel
26390             );
26391             }
26392 0         0 $_[1] = $text;
26393 0         0 return $return;
26394             }
26395              
26396             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
26397             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_numbering_function
26398             {
26399 0     0   0 my $thisparser = $_[0];
26400 1     1   11 use vars q{$tracelevel};
  1         2  
  1         549  
26401 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
26402 0         0 $ERRORS = 0;
26403 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_numbering_function"};
26404              
26405 0 0       0 Parse::RecDescent::_trace(
26406             q{Trying rule: [_alternation_1_of_production_1_of_rule_numbering_function]},
26407             Parse::RecDescent::_tracefirst($_[1]),
26408             q{_alternation_1_of_production_1_of_rule_numbering_function}, $tracelevel
26409             ) if defined $::RD_TRACE;
26410              
26411 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
26412              
26413 0         0 my $score;
26414             my $score_return;
26415 0         0 my $_tok;
26416 0         0 my $return = undef;
26417 0         0 my $_matched = 0;
26418 0         0 my $commit = 0;
26419 0         0 my @item = ();
26420 0         0 my %item = ();
26421 0   0     0 my $repeating = defined($_[2]) && $_[2];
26422 0   0     0 my $_noactions = defined($_[3]) && $_[3];
26423 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
26424 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
26425 0         0 my $text;
26426 0         0 my $lastsep = "";
26427 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
26428 0         0 $expectation->at($_[1]);
26429              
26430 0         0 my $thisline;
26431 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
26432              
26433 0   0     0 while (!$_matched && !$commit) {
26434              
26435 0 0       0 Parse::RecDescent::_trace(
26436             q{Trying production: [window_order_clause window_aggregation_group_clause]},
26437             Parse::RecDescent::_tracefirst($_[1]),
26438             q{_alternation_1_of_production_1_of_rule_numbering_function}, $tracelevel
26439             ) if defined $::RD_TRACE;
26440 0         0 my $thisprod = $thisrule->{"prods"}[0];
26441 0         0 $text = $_[1];
26442 0         0 my $_savetext;
26443 0         0 @item = (q{_alternation_1_of_production_1_of_rule_numbering_function});
26444 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_numbering_function});
26445 0         0 my $repcount = 0;
26446              
26447 0 0       0 Parse::RecDescent::_trace(
26448             q{Trying subrule: [window_order_clause]},
26449             Parse::RecDescent::_tracefirst($text),
26450             q{_alternation_1_of_production_1_of_rule_numbering_function}, $tracelevel
26451             ) if defined $::RD_TRACE;
26452 0         0 if (1) {
26453 1     1   11 no strict qw{refs};
  1         3  
  1         893  
26454 0         0 $expectation->is(q{})->at($text);
26455 0 0       0 unless (defined(
26456             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_order_clause(
26457 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
26458             )
26459             )) {
26460              
26461 0 0       0 Parse::RecDescent::_trace(
26462             q{<>},
26463             Parse::RecDescent::_tracefirst($text),
26464             q{_alternation_1_of_production_1_of_rule_numbering_function}, $tracelevel
26465             ) if defined $::RD_TRACE;
26466 0         0 $expectation->failed();
26467 0         0 last;
26468             }
26469             Parse::RecDescent::_trace(
26470 0 0       0 q{>>Matched subrule: [window_order_clause]<< (return value: [} . $_tok . q{]},
26471              
26472             Parse::RecDescent::_tracefirst($text),
26473             q{_alternation_1_of_production_1_of_rule_numbering_function},
26474             $tracelevel
26475             ) if defined $::RD_TRACE;
26476 0         0 $item{q{window_order_clause}} = $_tok;
26477 0         0 push @item, $_tok;
26478              
26479             }
26480              
26481             Parse::RecDescent::_trace(
26482 0 0       0 q{Trying repeated subrule: [window_aggregation_group_clause]}, Parse::RecDescent::_tracefirst($text),
26483             q{_alternation_1_of_production_1_of_rule_numbering_function}, $tracelevel
26484             ) if defined $::RD_TRACE;
26485 0         0 $expectation->is(q{window_aggregation_group_clause})->at($text);
26486              
26487 0 0       0 unless (defined(
26488             $_tok = $thisparser->_parserepeat(
26489             $text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_aggregation_group_clause,
26490             0, 1, $_noactions, $expectation, undef
26491             )
26492             )) {
26493 0 0       0 Parse::RecDescent::_trace(
26494             q{<>},
26495             Parse::RecDescent::_tracefirst($text),
26496             q{_alternation_1_of_production_1_of_rule_numbering_function}, $tracelevel
26497             ) if defined $::RD_TRACE;
26498 0         0 last;
26499             }
26500             Parse::RecDescent::_trace(
26501 0 0       0 q{>>Matched repeated subrule: [window_aggregation_group_clause]<< (} . @$_tok . q{ times)},
26502              
26503             Parse::RecDescent::_tracefirst($text),
26504             q{_alternation_1_of_production_1_of_rule_numbering_function},
26505             $tracelevel
26506             ) if defined $::RD_TRACE;
26507 0         0 $item{q{window_aggregation_group_clause(?)}} = $_tok;
26508 0         0 push @item, $_tok;
26509              
26510 0 0       0 Parse::RecDescent::_trace(
26511             q{>>Matched production: [window_order_clause window_aggregation_group_clause]<<},
26512             Parse::RecDescent::_tracefirst($text),
26513             q{_alternation_1_of_production_1_of_rule_numbering_function}, $tracelevel
26514             ) if defined $::RD_TRACE;
26515 0         0 $_matched = 1;
26516 0         0 last;
26517             }
26518              
26519 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
26520              
26521 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
26522 0 0       0 Parse::RecDescent::_trace(
26523             q{<>},
26524             Parse::RecDescent::_tracefirst($_[1]),
26525             q{_alternation_1_of_production_1_of_rule_numbering_function}, $tracelevel
26526             ) if defined $::RD_TRACE;
26527 0         0 return undef;
26528             }
26529 0 0 0     0 if (!defined($return) && defined($score)) {
26530 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
26531             "", q{_alternation_1_of_production_1_of_rule_numbering_function}, $tracelevel)
26532             if defined $::RD_TRACE;
26533 0         0 $return = $score_return;
26534             }
26535 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
26536 0 0       0 $return = $item[$#item] unless defined $return;
26537 0 0       0 if (defined $::RD_TRACE) {
26538 0         0 Parse::RecDescent::_trace(
26539             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
26540             q{_alternation_1_of_production_1_of_rule_numbering_function}, $tracelevel
26541             );
26542 0         0 Parse::RecDescent::_trace(
26543             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
26544             Parse::RecDescent::_tracefirst($text),
26545             , q{_alternation_1_of_production_1_of_rule_numbering_function}, $tracelevel
26546             );
26547             }
26548 0         0 $_[1] = $text;
26549 0         0 return $return;
26550             }
26551              
26552             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
26553             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
26554             {
26555 0     0   0 my $thisparser = $_[0];
26556 1     1   11 use vars q{$tracelevel};
  1         3  
  1         522  
26557 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
26558 0         0 $ERRORS = 0;
26559             my $thisrule = $thisparser->{"rules"}
26560 0         0 {"_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause"};
26561              
26562 0 0       0 Parse::RecDescent::_trace(
26563             q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause]},
26564             Parse::RecDescent::_tracefirst($_[1]),
26565             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
26566             $tracelevel
26567             ) if defined $::RD_TRACE;
26568              
26569 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
26570              
26571 0         0 my $score;
26572             my $score_return;
26573 0         0 my $_tok;
26574 0         0 my $return = undef;
26575 0         0 my $_matched = 0;
26576 0         0 my $commit = 0;
26577 0         0 my @item = ();
26578 0         0 my %item = ();
26579 0   0     0 my $repeating = defined($_[2]) && $_[2];
26580 0   0     0 my $_noactions = defined($_[3]) && $_[3];
26581 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
26582 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
26583 0         0 my $text;
26584 0         0 my $lastsep = "";
26585 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
26586 0         0 $expectation->at($_[1]);
26587              
26588 0         0 my $thisline;
26589 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
26590              
26591 0   0     0 while (!$_matched && !$commit) {
26592              
26593 0 0       0 Parse::RecDescent::_trace(
26594             q{Trying production: [result_expression]},
26595             Parse::RecDescent::_tracefirst($_[1]),
26596             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
26597             $tracelevel
26598             ) if defined $::RD_TRACE;
26599 0         0 my $thisprod = $thisrule->{"prods"}[0];
26600 0         0 $text = $_[1];
26601 0         0 my $_savetext;
26602 0         0 @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause});
26603 0         0 %item = (__RULE__ =>
26604             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause});
26605 0         0 my $repcount = 0;
26606              
26607 0 0       0 Parse::RecDescent::_trace(
26608             q{Trying subrule: [result_expression]},
26609             Parse::RecDescent::_tracefirst($text),
26610             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
26611             $tracelevel
26612             ) if defined $::RD_TRACE;
26613 0         0 if (1) {
26614 1     1   11 no strict qw{refs};
  1         3  
  1         1114  
26615 0         0 $expectation->is(q{})->at($text);
26616 0 0       0 unless (defined(
26617             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::result_expression(
26618 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
26619             )
26620             )) {
26621              
26622 0 0       0 Parse::RecDescent::_trace(
26623             q{<>},
26624             Parse::RecDescent::_tracefirst($text),
26625             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
26626             $tracelevel
26627             ) if defined $::RD_TRACE;
26628 0         0 $expectation->failed();
26629 0         0 last;
26630             }
26631             Parse::RecDescent::_trace(
26632 0 0       0 q{>>Matched subrule: [result_expression]<< (return value: [} . $_tok . q{]},
26633              
26634             Parse::RecDescent::_tracefirst($text),
26635             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
26636             $tracelevel
26637             ) if defined $::RD_TRACE;
26638 0         0 $item{q{result_expression}} = $_tok;
26639 0         0 push @item, $_tok;
26640              
26641             }
26642              
26643             Parse::RecDescent::_trace(
26644 0 0       0 q{>>Matched production: [result_expression]<<},
26645             Parse::RecDescent::_tracefirst($text),
26646             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
26647             $tracelevel
26648             ) if defined $::RD_TRACE;
26649 0         0 $_matched = 1;
26650 0         0 last;
26651             }
26652              
26653 0   0     0 while (!$_matched && !$commit) {
26654              
26655 0 0       0 Parse::RecDescent::_trace(
26656             q{Trying production: [/NULL/i]},
26657             Parse::RecDescent::_tracefirst($_[1]),
26658             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
26659             $tracelevel
26660             ) if defined $::RD_TRACE;
26661 0         0 my $thisprod = $thisrule->{"prods"}[1];
26662 0         0 $text = $_[1];
26663 0         0 my $_savetext;
26664 0         0 @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause});
26665 0         0 %item = (__RULE__ =>
26666             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause});
26667 0         0 my $repcount = 0;
26668              
26669 0 0       0 Parse::RecDescent::_trace(
26670             q{Trying terminal: [/NULL/i]},
26671             Parse::RecDescent::_tracefirst($text),
26672             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
26673             $tracelevel
26674             ) if defined $::RD_TRACE;
26675 0         0 $lastsep = "";
26676 0         0 $expectation->is(q{})->at($text);
26677              
26678 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
26679             and $text =~ s/\A(?:NULL)//i) {
26680              
26681 0         0 $expectation->failed();
26682 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
26683             if defined $::RD_TRACE;
26684              
26685 0         0 last;
26686             }
26687 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
26688             Parse::RecDescent::_tracefirst($text))
26689             if defined $::RD_TRACE;
26690 0         0 push @item, $item{__PATTERN1__} = $&;
26691              
26692 0 0       0 Parse::RecDescent::_trace(
26693             q{>>Matched production: [/NULL/i]<<},
26694             Parse::RecDescent::_tracefirst($text),
26695             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
26696             $tracelevel
26697             ) if defined $::RD_TRACE;
26698 0         0 $_matched = 1;
26699 0         0 last;
26700             }
26701              
26702 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
26703              
26704 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
26705 0 0       0 Parse::RecDescent::_trace(
26706             q{<>},
26707             Parse::RecDescent::_tracefirst($_[1]),
26708             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
26709             $tracelevel
26710             ) if defined $::RD_TRACE;
26711 0         0 return undef;
26712             }
26713 0 0 0     0 if (!defined($return) && defined($score)) {
26714 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
26715             "", q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
26716             $tracelevel)
26717             if defined $::RD_TRACE;
26718 0         0 $return = $score_return;
26719             }
26720 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
26721 0 0       0 $return = $item[$#item] unless defined $return;
26722 0 0       0 if (defined $::RD_TRACE) {
26723 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
26724             "", q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
26725             $tracelevel);
26726 0         0 Parse::RecDescent::_trace(
26727             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
26728             Parse::RecDescent::_tracefirst($text),
26729             ,
26730             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
26731             $tracelevel
26732             );
26733             }
26734 0         0 $_[1] = $text;
26735 0         0 return $return;
26736             }
26737              
26738             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
26739             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::old_new_corr {
26740 0     0   0 my $thisparser = $_[0];
26741 1     1   10 use vars q{$tracelevel};
  1         3  
  1         1000  
26742 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
26743 0         0 $ERRORS = 0;
26744 0         0 my $thisrule = $thisparser->{"rules"}{"old_new_corr"};
26745              
26746 0 0       0 Parse::RecDescent::_trace(
26747             q{Trying rule: [old_new_corr]},
26748             Parse::RecDescent::_tracefirst($_[1]),
26749             q{old_new_corr}, $tracelevel
26750             ) if defined $::RD_TRACE;
26751              
26752 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
26753              
26754 0         0 my $score;
26755             my $score_return;
26756 0         0 my $_tok;
26757 0         0 my $return = undef;
26758 0         0 my $_matched = 0;
26759 0         0 my $commit = 0;
26760 0         0 my @item = ();
26761 0         0 my %item = ();
26762 0   0     0 my $repeating = defined($_[2]) && $_[2];
26763 0   0     0 my $_noactions = defined($_[3]) && $_[3];
26764 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
26765 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
26766 0         0 my $text;
26767 0         0 my $lastsep = "";
26768 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
26769 0         0 $expectation->at($_[1]);
26770              
26771 0         0 my $thisline;
26772 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
26773              
26774 0   0     0 while (!$_matched && !$commit) {
26775              
26776 0 0       0 Parse::RecDescent::_trace(
26777             q{Trying production: [/OLD/i /(AS)?/i correlation_name]},
26778             Parse::RecDescent::_tracefirst($_[1]),
26779             q{old_new_corr}, $tracelevel
26780             ) if defined $::RD_TRACE;
26781 0         0 my $thisprod = $thisrule->{"prods"}[0];
26782 0         0 $text = $_[1];
26783 0         0 my $_savetext;
26784 0         0 @item = (q{old_new_corr});
26785 0         0 %item = (__RULE__ => q{old_new_corr});
26786 0         0 my $repcount = 0;
26787              
26788 0 0       0 Parse::RecDescent::_trace(
26789             q{Trying terminal: [/OLD/i]},
26790             Parse::RecDescent::_tracefirst($text),
26791             q{old_new_corr}, $tracelevel
26792             ) if defined $::RD_TRACE;
26793 0         0 $lastsep = "";
26794 0         0 $expectation->is(q{})->at($text);
26795              
26796 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
26797             and $text =~ s/\A(?:OLD)//i) {
26798              
26799 0         0 $expectation->failed();
26800 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
26801             if defined $::RD_TRACE;
26802              
26803 0         0 last;
26804             }
26805 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
26806             Parse::RecDescent::_tracefirst($text))
26807             if defined $::RD_TRACE;
26808 0         0 push @item, $item{__PATTERN1__} = $&;
26809              
26810 0 0       0 Parse::RecDescent::_trace(
26811             q{Trying terminal: [/(AS)?/i]},
26812             Parse::RecDescent::_tracefirst($text),
26813             q{old_new_corr}, $tracelevel
26814             ) if defined $::RD_TRACE;
26815 0         0 $lastsep = "";
26816 0         0 $expectation->is(q{/(AS)?/i})->at($text);
26817              
26818 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
26819             and $text =~ s/\A(?:(AS)?)//i) {
26820              
26821 0         0 $expectation->failed();
26822 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
26823             if defined $::RD_TRACE;
26824              
26825 0         0 last;
26826             }
26827 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
26828             Parse::RecDescent::_tracefirst($text))
26829             if defined $::RD_TRACE;
26830 0         0 push @item, $item{__PATTERN2__} = $&;
26831              
26832 0 0       0 Parse::RecDescent::_trace(
26833             q{Trying subrule: [correlation_name]},
26834             Parse::RecDescent::_tracefirst($text),
26835             q{old_new_corr}, $tracelevel
26836             ) if defined $::RD_TRACE;
26837 0         0 if (1) {
26838 1     1   11 no strict qw{refs};
  1         3  
  1         1023  
26839 0         0 $expectation->is(q{correlation_name})->at($text);
26840 0 0       0 unless (defined(
26841             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::correlation_name(
26842 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
26843             )
26844             )) {
26845              
26846 0 0       0 Parse::RecDescent::_trace(
26847             q{<>},
26848             Parse::RecDescent::_tracefirst($text),
26849             q{old_new_corr}, $tracelevel
26850             ) if defined $::RD_TRACE;
26851 0         0 $expectation->failed();
26852 0         0 last;
26853             }
26854             Parse::RecDescent::_trace(
26855 0 0       0 q{>>Matched subrule: [correlation_name]<< (return value: [} . $_tok . q{]},
26856              
26857             Parse::RecDescent::_tracefirst($text),
26858             q{old_new_corr},
26859             $tracelevel
26860             ) if defined $::RD_TRACE;
26861 0         0 $item{q{correlation_name}} = $_tok;
26862 0         0 push @item, $_tok;
26863              
26864             }
26865              
26866 0 0       0 Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{old_new_corr}, $tracelevel)
26867             if defined $::RD_TRACE;
26868              
26869 0 0       0 $_tok = ($_noactions) ? 0 : do { $return = join(' ', @item[ 1 .. 3 ]) };
  0         0  
26870 0 0       0 unless (defined $_tok) {
26871 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
26872             if defined $::RD_TRACE;
26873 0         0 last;
26874             }
26875 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])},
26876             Parse::RecDescent::_tracefirst($text))
26877             if defined $::RD_TRACE;
26878 0         0 push @item, $_tok;
26879 0         0 $item{__ACTION1__} = $_tok;
26880              
26881 0 0       0 Parse::RecDescent::_trace(
26882             q{>>Matched production: [/OLD/i /(AS)?/i correlation_name]<<},
26883             Parse::RecDescent::_tracefirst($text),
26884             q{old_new_corr}, $tracelevel
26885             ) if defined $::RD_TRACE;
26886 0         0 $_matched = 1;
26887 0         0 last;
26888             }
26889              
26890 0   0     0 while (!$_matched && !$commit) {
26891              
26892 0 0       0 Parse::RecDescent::_trace(
26893             q{Trying production: [/NEW/i /(AS)?/i correlation_name]},
26894             Parse::RecDescent::_tracefirst($_[1]),
26895             q{old_new_corr}, $tracelevel
26896             ) if defined $::RD_TRACE;
26897 0         0 my $thisprod = $thisrule->{"prods"}[1];
26898 0         0 $text = $_[1];
26899 0         0 my $_savetext;
26900 0         0 @item = (q{old_new_corr});
26901 0         0 %item = (__RULE__ => q{old_new_corr});
26902 0         0 my $repcount = 0;
26903              
26904 0 0       0 Parse::RecDescent::_trace(
26905             q{Trying terminal: [/NEW/i]},
26906             Parse::RecDescent::_tracefirst($text),
26907             q{old_new_corr}, $tracelevel
26908             ) if defined $::RD_TRACE;
26909 0         0 $lastsep = "";
26910 0         0 $expectation->is(q{})->at($text);
26911              
26912 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
26913             and $text =~ s/\A(?:NEW)//i) {
26914              
26915 0         0 $expectation->failed();
26916 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
26917             if defined $::RD_TRACE;
26918              
26919 0         0 last;
26920             }
26921 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
26922             Parse::RecDescent::_tracefirst($text))
26923             if defined $::RD_TRACE;
26924 0         0 push @item, $item{__PATTERN1__} = $&;
26925              
26926 0 0       0 Parse::RecDescent::_trace(
26927             q{Trying terminal: [/(AS)?/i]},
26928             Parse::RecDescent::_tracefirst($text),
26929             q{old_new_corr}, $tracelevel
26930             ) if defined $::RD_TRACE;
26931 0         0 $lastsep = "";
26932 0         0 $expectation->is(q{/(AS)?/i})->at($text);
26933              
26934 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
26935             and $text =~ s/\A(?:(AS)?)//i) {
26936              
26937 0         0 $expectation->failed();
26938 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
26939             if defined $::RD_TRACE;
26940              
26941 0         0 last;
26942             }
26943 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
26944             Parse::RecDescent::_tracefirst($text))
26945             if defined $::RD_TRACE;
26946 0         0 push @item, $item{__PATTERN2__} = $&;
26947              
26948 0 0       0 Parse::RecDescent::_trace(
26949             q{Trying subrule: [correlation_name]},
26950             Parse::RecDescent::_tracefirst($text),
26951             q{old_new_corr}, $tracelevel
26952             ) if defined $::RD_TRACE;
26953 0         0 if (1) {
26954 1     1   10 no strict qw{refs};
  1         4  
  1         949  
26955 0         0 $expectation->is(q{correlation_name})->at($text);
26956 0 0       0 unless (defined(
26957             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::correlation_name(
26958 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
26959             )
26960             )) {
26961              
26962 0 0       0 Parse::RecDescent::_trace(
26963             q{<>},
26964             Parse::RecDescent::_tracefirst($text),
26965             q{old_new_corr}, $tracelevel
26966             ) if defined $::RD_TRACE;
26967 0         0 $expectation->failed();
26968 0         0 last;
26969             }
26970             Parse::RecDescent::_trace(
26971 0 0       0 q{>>Matched subrule: [correlation_name]<< (return value: [} . $_tok . q{]},
26972              
26973             Parse::RecDescent::_tracefirst($text),
26974             q{old_new_corr},
26975             $tracelevel
26976             ) if defined $::RD_TRACE;
26977 0         0 $item{q{correlation_name}} = $_tok;
26978 0         0 push @item, $_tok;
26979              
26980             }
26981              
26982 0 0       0 Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{old_new_corr}, $tracelevel)
26983             if defined $::RD_TRACE;
26984              
26985 0 0       0 $_tok = ($_noactions) ? 0 : do { $return = join(' ', @item[ 1 .. 3 ]) };
  0         0  
26986 0 0       0 unless (defined $_tok) {
26987 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
26988             if defined $::RD_TRACE;
26989 0         0 last;
26990             }
26991 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])},
26992             Parse::RecDescent::_tracefirst($text))
26993             if defined $::RD_TRACE;
26994 0         0 push @item, $_tok;
26995 0         0 $item{__ACTION1__} = $_tok;
26996              
26997 0 0       0 Parse::RecDescent::_trace(
26998             q{>>Matched production: [/NEW/i /(AS)?/i correlation_name]<<},
26999             Parse::RecDescent::_tracefirst($text),
27000             q{old_new_corr}, $tracelevel
27001             ) if defined $::RD_TRACE;
27002 0         0 $_matched = 1;
27003 0         0 last;
27004             }
27005              
27006 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
27007              
27008 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
27009 0 0       0 Parse::RecDescent::_trace(
27010             q{<>},
27011             Parse::RecDescent::_tracefirst($_[1]),
27012             q{old_new_corr}, $tracelevel
27013             ) if defined $::RD_TRACE;
27014 0         0 return undef;
27015             }
27016 0 0 0     0 if (!defined($return) && defined($score)) {
27017 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{old_new_corr}, $tracelevel)
27018             if defined $::RD_TRACE;
27019 0         0 $return = $score_return;
27020             }
27021 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
27022 0 0       0 $return = $item[$#item] unless defined $return;
27023 0 0       0 if (defined $::RD_TRACE) {
27024 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
27025             "", q{old_new_corr}, $tracelevel);
27026 0         0 Parse::RecDescent::_trace(
27027             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
27028             Parse::RecDescent::_tracefirst($text),
27029             , q{old_new_corr}, $tracelevel
27030             );
27031             }
27032 0         0 $_[1] = $text;
27033 0         0 return $return;
27034             }
27035              
27036             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
27037             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_42_of_rule_sysibm_function
27038             {
27039 0     0   0 my $thisparser = $_[0];
27040 1     1   12 use vars q{$tracelevel};
  1         2  
  1         1603  
27041 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
27042 0         0 $ERRORS = 0;
27043 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_42_of_rule_sysibm_function"};
27044              
27045 0 0       0 Parse::RecDescent::_trace(
27046             q{Trying rule: [_alternation_1_of_production_42_of_rule_sysibm_function]},
27047             Parse::RecDescent::_tracefirst($_[1]),
27048             q{_alternation_1_of_production_42_of_rule_sysibm_function}, $tracelevel
27049             ) if defined $::RD_TRACE;
27050              
27051 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
27052              
27053 0         0 my $score;
27054             my $score_return;
27055 0         0 my $_tok;
27056 0         0 my $return = undef;
27057 0         0 my $_matched = 0;
27058 0         0 my $commit = 0;
27059 0         0 my @item = ();
27060 0         0 my %item = ();
27061 0   0     0 my $repeating = defined($_[2]) && $_[2];
27062 0   0     0 my $_noactions = defined($_[3]) && $_[3];
27063 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
27064 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
27065 0         0 my $text;
27066 0         0 my $lastsep = "";
27067 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
27068 0         0 $expectation->at($_[1]);
27069              
27070 0         0 my $thisline;
27071 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
27072              
27073 0   0     0 while (!$_matched && !$commit) {
27074              
27075 0 0       0 Parse::RecDescent::_trace(
27076             q{Trying production: [/LCASE/i]},
27077             Parse::RecDescent::_tracefirst($_[1]),
27078             q{_alternation_1_of_production_42_of_rule_sysibm_function}, $tracelevel
27079             ) if defined $::RD_TRACE;
27080 0         0 my $thisprod = $thisrule->{"prods"}[0];
27081 0         0 $text = $_[1];
27082 0         0 my $_savetext;
27083 0         0 @item = (q{_alternation_1_of_production_42_of_rule_sysibm_function});
27084 0         0 %item = (__RULE__ => q{_alternation_1_of_production_42_of_rule_sysibm_function});
27085 0         0 my $repcount = 0;
27086              
27087 0 0       0 Parse::RecDescent::_trace(
27088             q{Trying terminal: [/LCASE/i]},
27089             Parse::RecDescent::_tracefirst($text),
27090             q{_alternation_1_of_production_42_of_rule_sysibm_function}, $tracelevel
27091             ) if defined $::RD_TRACE;
27092 0         0 $lastsep = "";
27093 0         0 $expectation->is(q{})->at($text);
27094              
27095 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
27096             and $text =~ s/\A(?:LCASE)//i) {
27097              
27098 0         0 $expectation->failed();
27099 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
27100             if defined $::RD_TRACE;
27101              
27102 0         0 last;
27103             }
27104 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
27105             Parse::RecDescent::_tracefirst($text))
27106             if defined $::RD_TRACE;
27107 0         0 push @item, $item{__PATTERN1__} = $&;
27108              
27109 0 0       0 Parse::RecDescent::_trace(
27110             q{>>Matched production: [/LCASE/i]<<},
27111             Parse::RecDescent::_tracefirst($text),
27112             q{_alternation_1_of_production_42_of_rule_sysibm_function}, $tracelevel
27113             ) if defined $::RD_TRACE;
27114 0         0 $_matched = 1;
27115 0         0 last;
27116             }
27117              
27118 0   0     0 while (!$_matched && !$commit) {
27119              
27120 0 0       0 Parse::RecDescent::_trace(
27121             q{Trying production: [/LOWER/]},
27122             Parse::RecDescent::_tracefirst($_[1]),
27123             q{_alternation_1_of_production_42_of_rule_sysibm_function}, $tracelevel
27124             ) if defined $::RD_TRACE;
27125 0         0 my $thisprod = $thisrule->{"prods"}[1];
27126 0         0 $text = $_[1];
27127 0         0 my $_savetext;
27128 0         0 @item = (q{_alternation_1_of_production_42_of_rule_sysibm_function});
27129 0         0 %item = (__RULE__ => q{_alternation_1_of_production_42_of_rule_sysibm_function});
27130 0         0 my $repcount = 0;
27131              
27132 0 0       0 Parse::RecDescent::_trace(
27133             q{Trying terminal: [/LOWER/]},
27134             Parse::RecDescent::_tracefirst($text),
27135             q{_alternation_1_of_production_42_of_rule_sysibm_function}, $tracelevel
27136             ) if defined $::RD_TRACE;
27137 0         0 $lastsep = "";
27138 0         0 $expectation->is(q{})->at($text);
27139              
27140 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
27141             and $text =~ s/\A(?:LOWER)//) {
27142              
27143 0         0 $expectation->failed();
27144 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
27145             if defined $::RD_TRACE;
27146              
27147 0         0 last;
27148             }
27149 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
27150             Parse::RecDescent::_tracefirst($text))
27151             if defined $::RD_TRACE;
27152 0         0 push @item, $item{__PATTERN1__} = $&;
27153              
27154 0 0       0 Parse::RecDescent::_trace(
27155             q{>>Matched production: [/LOWER/]<<},
27156             Parse::RecDescent::_tracefirst($text),
27157             q{_alternation_1_of_production_42_of_rule_sysibm_function}, $tracelevel
27158             ) if defined $::RD_TRACE;
27159 0         0 $_matched = 1;
27160 0         0 last;
27161             }
27162              
27163 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
27164              
27165 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
27166 0 0       0 Parse::RecDescent::_trace(
27167             q{<>},
27168             Parse::RecDescent::_tracefirst($_[1]),
27169             q{_alternation_1_of_production_42_of_rule_sysibm_function}, $tracelevel
27170             ) if defined $::RD_TRACE;
27171 0         0 return undef;
27172             }
27173 0 0 0     0 if (!defined($return) && defined($score)) {
27174 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
27175             "", q{_alternation_1_of_production_42_of_rule_sysibm_function}, $tracelevel)
27176             if defined $::RD_TRACE;
27177 0         0 $return = $score_return;
27178             }
27179 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
27180 0 0       0 $return = $item[$#item] unless defined $return;
27181 0 0       0 if (defined $::RD_TRACE) {
27182 0         0 Parse::RecDescent::_trace(
27183             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
27184             q{_alternation_1_of_production_42_of_rule_sysibm_function}, $tracelevel
27185             );
27186 0         0 Parse::RecDescent::_trace(
27187             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
27188             Parse::RecDescent::_tracefirst($text),
27189             , q{_alternation_1_of_production_42_of_rule_sysibm_function}, $tracelevel
27190             );
27191             }
27192 0         0 $_[1] = $text;
27193 0         0 return $return;
27194             }
27195              
27196             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
27197             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::subtype_treatment {
27198 0     0   0 my $thisparser = $_[0];
27199 1     1   11 use vars q{$tracelevel};
  1         3  
  1         959  
27200 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
27201 0         0 $ERRORS = 0;
27202 0         0 my $thisrule = $thisparser->{"rules"}{"subtype_treatment"};
27203              
27204 0 0       0 Parse::RecDescent::_trace(
27205             q{Trying rule: [subtype_treatment]},
27206             Parse::RecDescent::_tracefirst($_[1]),
27207             q{subtype_treatment}, $tracelevel
27208             ) if defined $::RD_TRACE;
27209              
27210 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
27211              
27212 0         0 my $score;
27213             my $score_return;
27214 0         0 my $_tok;
27215 0         0 my $return = undef;
27216 0         0 my $_matched = 0;
27217 0         0 my $commit = 0;
27218 0         0 my @item = ();
27219 0         0 my %item = ();
27220 0   0     0 my $repeating = defined($_[2]) && $_[2];
27221 0   0     0 my $_noactions = defined($_[3]) && $_[3];
27222 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
27223 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
27224 0         0 my $text;
27225 0         0 my $lastsep = "";
27226 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
27227 0         0 $expectation->at($_[1]);
27228              
27229 0         0 my $thisline;
27230 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
27231              
27232 0   0     0 while (!$_matched && !$commit) {
27233              
27234 0 0       0 Parse::RecDescent::_trace(
27235             q{Trying production: [/TREAT/i '(' expression /AS/i data_type ')']},
27236             Parse::RecDescent::_tracefirst($_[1]),
27237             q{subtype_treatment}, $tracelevel
27238             ) if defined $::RD_TRACE;
27239 0         0 my $thisprod = $thisrule->{"prods"}[0];
27240 0         0 $text = $_[1];
27241 0         0 my $_savetext;
27242 0         0 @item = (q{subtype_treatment});
27243 0         0 %item = (__RULE__ => q{subtype_treatment});
27244 0         0 my $repcount = 0;
27245              
27246 0 0       0 Parse::RecDescent::_trace(
27247             q{Trying terminal: [/TREAT/i]},
27248             Parse::RecDescent::_tracefirst($text),
27249             q{subtype_treatment}, $tracelevel
27250             ) if defined $::RD_TRACE;
27251 0         0 $lastsep = "";
27252 0         0 $expectation->is(q{})->at($text);
27253              
27254 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
27255             and $text =~ s/\A(?:TREAT)//i) {
27256              
27257 0         0 $expectation->failed();
27258 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
27259             if defined $::RD_TRACE;
27260              
27261 0         0 last;
27262             }
27263 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
27264             Parse::RecDescent::_tracefirst($text))
27265             if defined $::RD_TRACE;
27266 0         0 push @item, $item{__PATTERN1__} = $&;
27267              
27268 0 0       0 Parse::RecDescent::_trace(
27269             q{Trying terminal: ['(']},
27270             Parse::RecDescent::_tracefirst($text),
27271             q{subtype_treatment}, $tracelevel
27272             ) if defined $::RD_TRACE;
27273 0         0 $lastsep = "";
27274 0         0 $expectation->is(q{'('})->at($text);
27275              
27276 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
27277             and $text =~ s/\A\(//) {
27278              
27279 0         0 $expectation->failed();
27280 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
27281             if defined $::RD_TRACE;
27282 0         0 last;
27283             }
27284 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
27285             Parse::RecDescent::_tracefirst($text))
27286             if defined $::RD_TRACE;
27287 0         0 push @item, $item{__STRING1__} = $&;
27288              
27289 0 0       0 Parse::RecDescent::_trace(
27290             q{Trying subrule: [expression]},
27291             Parse::RecDescent::_tracefirst($text),
27292             q{subtype_treatment}, $tracelevel
27293             ) if defined $::RD_TRACE;
27294 0         0 if (1) {
27295 1     1   11 no strict qw{refs};
  1         3  
  1         522  
27296 0         0 $expectation->is(q{expression})->at($text);
27297 0 0       0 unless (defined(
27298             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression(
27299 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
27300             )
27301             )) {
27302              
27303 0 0       0 Parse::RecDescent::_trace(
27304             q{<>},
27305             Parse::RecDescent::_tracefirst($text),
27306             q{subtype_treatment}, $tracelevel
27307             ) if defined $::RD_TRACE;
27308 0         0 $expectation->failed();
27309 0         0 last;
27310             }
27311             Parse::RecDescent::_trace(
27312 0 0       0 q{>>Matched subrule: [expression]<< (return value: [} . $_tok . q{]},
27313              
27314             Parse::RecDescent::_tracefirst($text),
27315             q{subtype_treatment},
27316             $tracelevel
27317             ) if defined $::RD_TRACE;
27318 0         0 $item{q{expression}} = $_tok;
27319 0         0 push @item, $_tok;
27320              
27321             }
27322              
27323             Parse::RecDescent::_trace(
27324 0 0       0 q{Trying terminal: [/AS/i]},
27325             Parse::RecDescent::_tracefirst($text),
27326             q{subtype_treatment}, $tracelevel
27327             ) if defined $::RD_TRACE;
27328 0         0 $lastsep = "";
27329 0         0 $expectation->is(q{/AS/i})->at($text);
27330              
27331 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
27332             and $text =~ s/\A(?:AS)//i) {
27333              
27334 0         0 $expectation->failed();
27335 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
27336             if defined $::RD_TRACE;
27337              
27338 0         0 last;
27339             }
27340 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
27341             Parse::RecDescent::_tracefirst($text))
27342             if defined $::RD_TRACE;
27343 0         0 push @item, $item{__PATTERN2__} = $&;
27344              
27345 0 0       0 Parse::RecDescent::_trace(
27346             q{Trying subrule: [data_type]},
27347             Parse::RecDescent::_tracefirst($text),
27348             q{subtype_treatment}, $tracelevel
27349             ) if defined $::RD_TRACE;
27350 0         0 if (1) {
27351 1     1   11 no strict qw{refs};
  1         4  
  1         920  
27352 0         0 $expectation->is(q{data_type})->at($text);
27353 0 0       0 unless (defined(
27354             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::data_type(
27355 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
27356             )
27357             )) {
27358              
27359 0 0       0 Parse::RecDescent::_trace(
27360             q{<>},
27361             Parse::RecDescent::_tracefirst($text),
27362             q{subtype_treatment}, $tracelevel
27363             ) if defined $::RD_TRACE;
27364 0         0 $expectation->failed();
27365 0         0 last;
27366             }
27367             Parse::RecDescent::_trace(
27368 0 0       0 q{>>Matched subrule: [data_type]<< (return value: [} . $_tok . q{]},
27369              
27370             Parse::RecDescent::_tracefirst($text),
27371             q{subtype_treatment},
27372             $tracelevel
27373             ) if defined $::RD_TRACE;
27374 0         0 $item{q{data_type}} = $_tok;
27375 0         0 push @item, $_tok;
27376              
27377             }
27378              
27379             Parse::RecDescent::_trace(
27380 0 0       0 q{Trying terminal: [')']},
27381             Parse::RecDescent::_tracefirst($text),
27382             q{subtype_treatment}, $tracelevel
27383             ) if defined $::RD_TRACE;
27384 0         0 $lastsep = "";
27385 0         0 $expectation->is(q{')'})->at($text);
27386              
27387 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
27388             and $text =~ s/\A\)//) {
27389              
27390 0         0 $expectation->failed();
27391 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
27392             if defined $::RD_TRACE;
27393 0         0 last;
27394             }
27395 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
27396             Parse::RecDescent::_tracefirst($text))
27397             if defined $::RD_TRACE;
27398 0         0 push @item, $item{__STRING2__} = $&;
27399              
27400 0 0       0 Parse::RecDescent::_trace(
27401             q{>>Matched production: [/TREAT/i '(' expression /AS/i data_type ')']<<},
27402             Parse::RecDescent::_tracefirst($text),
27403             q{subtype_treatment}, $tracelevel
27404             ) if defined $::RD_TRACE;
27405 0         0 $_matched = 1;
27406 0         0 last;
27407             }
27408              
27409 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
27410              
27411 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
27412 0 0       0 Parse::RecDescent::_trace(
27413             q{<>},
27414             Parse::RecDescent::_tracefirst($_[1]),
27415             q{subtype_treatment}, $tracelevel
27416             ) if defined $::RD_TRACE;
27417 0         0 return undef;
27418             }
27419 0 0 0     0 if (!defined($return) && defined($score)) {
27420 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{subtype_treatment}, $tracelevel)
27421             if defined $::RD_TRACE;
27422 0         0 $return = $score_return;
27423             }
27424 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
27425 0 0       0 $return = $item[$#item] unless defined $return;
27426 0 0       0 if (defined $::RD_TRACE) {
27427 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
27428             "", q{subtype_treatment}, $tracelevel);
27429 0         0 Parse::RecDescent::_trace(
27430             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
27431             Parse::RecDescent::_tracefirst($text),
27432             , q{subtype_treatment}, $tracelevel
27433             );
27434             }
27435 0         0 $_[1] = $text;
27436 0         0 return $return;
27437             }
27438              
27439             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
27440             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression {
27441 0     0   0 my $thisparser = $_[0];
27442 1     1   10 use vars q{$tracelevel};
  1         4  
  1         620  
27443 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
27444 0         0 $ERRORS = 0;
27445 0         0 my $thisrule = $thisparser->{"rules"}{"expression"};
27446              
27447 0 0       0 Parse::RecDescent::_trace(
27448             q{Trying rule: [expression]},
27449             Parse::RecDescent::_tracefirst($_[1]),
27450             q{expression}, $tracelevel
27451             ) if defined $::RD_TRACE;
27452              
27453 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
27454              
27455 0         0 my $score;
27456             my $score_return;
27457 0         0 my $_tok;
27458 0         0 my $return = undef;
27459 0         0 my $_matched = 0;
27460 0         0 my $commit = 0;
27461 0         0 my @item = ();
27462 0         0 my %item = ();
27463 0   0     0 my $repeating = defined($_[2]) && $_[2];
27464 0   0     0 my $_noactions = defined($_[3]) && $_[3];
27465 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
27466 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
27467 0         0 my $text;
27468 0         0 my $lastsep = "";
27469 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
27470 0         0 $expectation->at($_[1]);
27471              
27472 0         0 my $thisline;
27473 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
27474              
27475 0   0     0 while (!$_matched && !$commit) {
27476              
27477 0 0       0 Parse::RecDescent::_trace(
27478             q{Trying production: []},
27479             Parse::RecDescent::_tracefirst($_[1]),
27480             q{expression}, $tracelevel
27481             ) if defined $::RD_TRACE;
27482 0         0 my $thisprod = $thisrule->{"prods"}[0];
27483 0         0 $text = $_[1];
27484 0         0 my $_savetext;
27485 0         0 @item = (q{expression});
27486 0         0 %item = (__RULE__ => q{expression});
27487 0         0 my $repcount = 0;
27488              
27489 0 0       0 Parse::RecDescent::_trace(
27490             q{Trying operator: []},
27491             Parse::RecDescent::_tracefirst($text),
27492             q{expression}, $tracelevel
27493             ) if defined $::RD_TRACE;
27494 0         0 $expectation->is(q{})->at($text);
27495              
27496 0         0 $_tok = undef;
27497 0         0 OPLOOP: while (1) {
27498 0         0 $repcount = 0;
27499 0         0 my @item;
27500              
27501             # MATCH LEFTARG
27502              
27503 0 0       0 Parse::RecDescent::_trace(
27504             q{Trying subrule: [_alternation_1_of_production_1_of_rule_expression]},
27505             Parse::RecDescent::_tracefirst($text),
27506             q{expression}, $tracelevel
27507             ) if defined $::RD_TRACE;
27508 0         0 if (1) {
27509 1     1   11 no strict qw{refs};
  1         3  
  1         594  
27510 0         0 $expectation->is(q{'+', or '-'})->at($text);
27511 0 0       0 unless (defined(
27512             $_tok
27513             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_expression(
27514 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
27515             )
27516             )) {
27517              
27518 0 0       0 Parse::RecDescent::_trace(
27519             q{<>},
27520             Parse::RecDescent::_tracefirst($text),
27521             q{expression}, $tracelevel
27522             ) if defined $::RD_TRACE;
27523 0         0 $expectation->failed();
27524 0         0 last;
27525             }
27526             Parse::RecDescent::_trace(
27527 0 0       0 q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_expression]<< (return value: [}
27528             . $_tok . q{]},
27529              
27530             Parse::RecDescent::_tracefirst($text),
27531             q{expression},
27532             $tracelevel
27533             ) if defined $::RD_TRACE;
27534 0         0 $item{q{_alternation_1_of_production_1_of_rule_expression}} = $_tok;
27535 0         0 push @item, $_tok;
27536              
27537             }
27538              
27539 0         0 $repcount++;
27540              
27541 0         0 my $savetext = $text;
27542 0         0 my $backtrack;
27543              
27544             # MATCH (OP RIGHTARG)(s)
27545 0         0 while ($repcount < 100000000) {
27546 0         0 $backtrack = 0;
27547              
27548 0 0       0 Parse::RecDescent::_trace(
27549             q{Trying terminal: [/operator/]},
27550             Parse::RecDescent::_tracefirst($text),
27551             q{expression}, $tracelevel
27552             ) if defined $::RD_TRACE;
27553 0         0 $lastsep = "";
27554 0         0 $expectation->is(q{/operator/})->at($text);
27555              
27556 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
27557             and $text =~ s/\A(?:operator)//) {
27558              
27559 0         0 $expectation->failed();
27560 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
27561             if defined $::RD_TRACE;
27562              
27563 0         0 last;
27564             }
27565 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
27566             Parse::RecDescent::_tracefirst($text))
27567             if defined $::RD_TRACE;
27568 0         0 push @item, $item{__PATTERN1__} = $&;
27569              
27570 0         0 pop @item;
27571 0 0       0 if (defined $1) {
27572 0         0 push @item, $item{'_alternation_1_of_production_1_of_rule_expression(s)'} = $1;
27573 0         0 $backtrack = 1;
27574             }
27575              
27576             Parse::RecDescent::_trace(
27577 0 0       0 q{Trying subrule: [_alternation_1_of_production_1_of_rule_expression]},
27578             Parse::RecDescent::_tracefirst($text),
27579             q{expression}, $tracelevel
27580             ) if defined $::RD_TRACE;
27581 0         0 if (1) {
27582 1     1   10 no strict qw{refs};
  1         2  
  1         1009  
27583 0         0 $expectation->is(q{'+', or '-'})->at($text);
27584 0 0       0 unless (defined(
27585             $_tok
27586             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_expression(
27587 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
27588             )
27589             )) {
27590              
27591 0 0       0 Parse::RecDescent::_trace(
27592             q{<>},
27593             Parse::RecDescent::_tracefirst($text),
27594             q{expression}, $tracelevel
27595             ) if defined $::RD_TRACE;
27596 0         0 $expectation->failed();
27597 0         0 last;
27598             }
27599             Parse::RecDescent::_trace(
27600 0 0       0 q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_expression]<< (return value: [}
27601             . $_tok . q{]},
27602              
27603             Parse::RecDescent::_tracefirst($text),
27604             q{expression},
27605             $tracelevel
27606             ) if defined $::RD_TRACE;
27607 0         0 $item{q{_alternation_1_of_production_1_of_rule_expression}} = $_tok;
27608 0         0 push @item, $_tok;
27609              
27610             }
27611              
27612 0         0 $savetext = $text;
27613 0         0 $repcount++;
27614             }
27615 0         0 $text = $savetext;
27616 0 0       0 pop @item if $backtrack;
27617              
27618 0 0       0 unless (@item) { undef $_tok; last }
  0         0  
  0         0  
27619 0         0 $_tok = [@item];
27620 0         0 last;
27621             }
27622              
27623 0 0       0 unless ($repcount >= 1) {
27624 0 0       0 Parse::RecDescent::_trace(
27625             q{<]>>},
27626             Parse::RecDescent::_tracefirst($text),
27627             q{expression}, $tracelevel
27628             ) if defined $::RD_TRACE;
27629 0         0 $expectation->failed();
27630 0         0 last;
27631             }
27632             Parse::RecDescent::_trace(
27633 0 0       0 q{>>Matched operator: []<< (return value: [}
27634 0 0       0 . qq{@{$_tok||[]}} . q{]},
27635             Parse::RecDescent::_tracefirst($text), q{expression}, $tracelevel
27636             ) if defined $::RD_TRACE;
27637              
27638 0   0     0 push @item, $item{'_alternation_1_of_production_1_of_rule_expression(s)'} = $_tok || [];
27639              
27640 0 0       0 Parse::RecDescent::_trace(
27641             q{>>Matched production: []<<},
27642             Parse::RecDescent::_tracefirst($text),
27643             q{expression}, $tracelevel
27644             ) if defined $::RD_TRACE;
27645 0         0 $_matched = 1;
27646 0         0 last;
27647             }
27648              
27649 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
27650              
27651 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
27652 0 0       0 Parse::RecDescent::_trace(
27653             q{<>},
27654             Parse::RecDescent::_tracefirst($_[1]),
27655             q{expression}, $tracelevel
27656             ) if defined $::RD_TRACE;
27657 0         0 return undef;
27658             }
27659 0 0 0     0 if (!defined($return) && defined($score)) {
27660 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{expression}, $tracelevel)
27661             if defined $::RD_TRACE;
27662 0         0 $return = $score_return;
27663             }
27664 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
27665 0 0       0 $return = $item[$#item] unless defined $return;
27666 0 0       0 if (defined $::RD_TRACE) {
27667 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{expression}, $tracelevel);
27668 0         0 Parse::RecDescent::_trace(
27669             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
27670             Parse::RecDescent::_tracefirst($text),
27671             , q{expression}, $tracelevel
27672             );
27673             }
27674 0         0 $_[1] = $text;
27675 0         0 return $return;
27676             }
27677              
27678             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
27679             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression
27680             {
27681 0     0   0 my $thisparser = $_[0];
27682 1     1   12 use vars q{$tracelevel};
  1         2  
  1         508  
27683 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
27684 0         0 $ERRORS = 0;
27685             my $thisrule = $thisparser->{"rules"}
27686 0         0 {"_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression"};
27687              
27688 0 0       0 Parse::RecDescent::_trace(
27689             q{Trying rule: [_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression]},
27690             Parse::RecDescent::_tracefirst($_[1]),
27691             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
27692             $tracelevel
27693             ) if defined $::RD_TRACE;
27694              
27695 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
27696              
27697 0         0 my $score;
27698             my $score_return;
27699 0         0 my $_tok;
27700 0         0 my $return = undef;
27701 0         0 my $_matched = 0;
27702 0         0 my $commit = 0;
27703 0         0 my @item = ();
27704 0         0 my %item = ();
27705 0   0     0 my $repeating = defined($_[2]) && $_[2];
27706 0   0     0 my $_noactions = defined($_[3]) && $_[3];
27707 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
27708 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
27709 0         0 my $text;
27710 0         0 my $lastsep = "";
27711 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
27712 0         0 $expectation->at($_[1]);
27713              
27714 0         0 my $thisline;
27715 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
27716              
27717 0   0     0 while (!$_matched && !$commit) {
27718              
27719 0 0       0 Parse::RecDescent::_trace(
27720             q{Trying production: [function]},
27721             Parse::RecDescent::_tracefirst($_[1]),
27722             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
27723             ) if defined $::RD_TRACE;
27724 0         0 my $thisprod = $thisrule->{"prods"}[0];
27725 0         0 $text = $_[1];
27726 0         0 my $_savetext;
27727 0         0 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
27728 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
27729 0         0 my $repcount = 0;
27730              
27731 0 0       0 Parse::RecDescent::_trace(
27732             q{Trying subrule: [function]},
27733             Parse::RecDescent::_tracefirst($text),
27734             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
27735             ) if defined $::RD_TRACE;
27736 0         0 if (1) {
27737 1     1   10 no strict qw{refs};
  1         2  
  1         731  
27738 0         0 $expectation->is(q{})->at($text);
27739 0 0       0 unless (defined(
27740             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::function(
27741 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
27742             )
27743             )) {
27744              
27745 0 0       0 Parse::RecDescent::_trace(
27746             q{<>},
27747             Parse::RecDescent::_tracefirst($text),
27748             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
27749             $tracelevel
27750             ) if defined $::RD_TRACE;
27751 0         0 $expectation->failed();
27752 0         0 last;
27753             }
27754             Parse::RecDescent::_trace(
27755 0 0       0 q{>>Matched subrule: [function]<< (return value: [} . $_tok . q{]},
27756              
27757             Parse::RecDescent::_tracefirst($text),
27758             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
27759             $tracelevel
27760             ) if defined $::RD_TRACE;
27761 0         0 $item{q{function}} = $_tok;
27762 0         0 push @item, $_tok;
27763              
27764             }
27765              
27766             Parse::RecDescent::_trace(
27767 0 0       0 q{>>Matched production: [function]<<},
27768             Parse::RecDescent::_tracefirst($text),
27769             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
27770             ) if defined $::RD_TRACE;
27771 0         0 $_matched = 1;
27772 0         0 last;
27773             }
27774              
27775 0   0     0 while (!$_matched && !$commit) {
27776              
27777 0 0       0 Parse::RecDescent::_trace(
27778             q{Trying production: ['(' expression ')']},
27779             Parse::RecDescent::_tracefirst($_[1]),
27780             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
27781             ) if defined $::RD_TRACE;
27782 0         0 my $thisprod = $thisrule->{"prods"}[1];
27783 0         0 $text = $_[1];
27784 0         0 my $_savetext;
27785 0         0 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
27786 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
27787 0         0 my $repcount = 0;
27788              
27789 0 0       0 Parse::RecDescent::_trace(
27790             q{Trying terminal: ['(']},
27791             Parse::RecDescent::_tracefirst($text),
27792             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
27793             ) if defined $::RD_TRACE;
27794 0         0 $lastsep = "";
27795 0         0 $expectation->is(q{})->at($text);
27796              
27797 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
27798             and $text =~ s/\A\(//) {
27799              
27800 0         0 $expectation->failed();
27801 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
27802             if defined $::RD_TRACE;
27803 0         0 last;
27804             }
27805 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
27806             Parse::RecDescent::_tracefirst($text))
27807             if defined $::RD_TRACE;
27808 0         0 push @item, $item{__STRING1__} = $&;
27809              
27810 0 0       0 Parse::RecDescent::_trace(
27811             q{Trying subrule: [expression]},
27812             Parse::RecDescent::_tracefirst($text),
27813             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
27814             ) if defined $::RD_TRACE;
27815 0         0 if (1) {
27816 1     1   10 no strict qw{refs};
  1         2  
  1         610  
27817 0         0 $expectation->is(q{expression})->at($text);
27818 0 0       0 unless (defined(
27819             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression(
27820 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
27821             )
27822             )) {
27823              
27824 0 0       0 Parse::RecDescent::_trace(
27825             q{<>},
27826             Parse::RecDescent::_tracefirst($text),
27827             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
27828             $tracelevel
27829             ) if defined $::RD_TRACE;
27830 0         0 $expectation->failed();
27831 0         0 last;
27832             }
27833             Parse::RecDescent::_trace(
27834 0 0       0 q{>>Matched subrule: [expression]<< (return value: [} . $_tok . q{]},
27835              
27836             Parse::RecDescent::_tracefirst($text),
27837             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
27838             $tracelevel
27839             ) if defined $::RD_TRACE;
27840 0         0 $item{q{expression}} = $_tok;
27841 0         0 push @item, $_tok;
27842              
27843             }
27844              
27845             Parse::RecDescent::_trace(
27846 0 0       0 q{Trying terminal: [')']},
27847             Parse::RecDescent::_tracefirst($text),
27848             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
27849             ) if defined $::RD_TRACE;
27850 0         0 $lastsep = "";
27851 0         0 $expectation->is(q{')'})->at($text);
27852              
27853 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
27854             and $text =~ s/\A\)//) {
27855              
27856 0         0 $expectation->failed();
27857 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
27858             if defined $::RD_TRACE;
27859 0         0 last;
27860             }
27861 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
27862             Parse::RecDescent::_tracefirst($text))
27863             if defined $::RD_TRACE;
27864 0         0 push @item, $item{__STRING2__} = $&;
27865              
27866 0 0       0 Parse::RecDescent::_trace(
27867             q{>>Matched production: ['(' expression ')']<<},
27868             Parse::RecDescent::_tracefirst($text),
27869             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
27870             ) if defined $::RD_TRACE;
27871 0         0 $_matched = 1;
27872 0         0 last;
27873             }
27874              
27875 0   0     0 while (!$_matched && !$commit) {
27876              
27877 0 0       0 Parse::RecDescent::_trace(
27878             q{Trying production: [constant]},
27879             Parse::RecDescent::_tracefirst($_[1]),
27880             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
27881             ) if defined $::RD_TRACE;
27882 0         0 my $thisprod = $thisrule->{"prods"}[2];
27883 0         0 $text = $_[1];
27884 0         0 my $_savetext;
27885 0         0 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
27886 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
27887 0         0 my $repcount = 0;
27888              
27889 0 0       0 Parse::RecDescent::_trace(
27890             q{Trying subrule: [constant]},
27891             Parse::RecDescent::_tracefirst($text),
27892             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
27893             ) if defined $::RD_TRACE;
27894 0         0 if (1) {
27895 1     1   11 no strict qw{refs};
  1         3  
  1         456  
27896 0         0 $expectation->is(q{})->at($text);
27897 0 0       0 unless (defined(
27898             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::constant(
27899 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
27900             )
27901             )) {
27902              
27903 0 0       0 Parse::RecDescent::_trace(
27904             q{<>},
27905             Parse::RecDescent::_tracefirst($text),
27906             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
27907             $tracelevel
27908             ) if defined $::RD_TRACE;
27909 0         0 $expectation->failed();
27910 0         0 last;
27911             }
27912             Parse::RecDescent::_trace(
27913 0 0       0 q{>>Matched subrule: [constant]<< (return value: [} . $_tok . q{]},
27914              
27915             Parse::RecDescent::_tracefirst($text),
27916             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
27917             $tracelevel
27918             ) if defined $::RD_TRACE;
27919 0         0 $item{q{constant}} = $_tok;
27920 0         0 push @item, $_tok;
27921              
27922             }
27923              
27924             Parse::RecDescent::_trace(
27925 0 0       0 q{>>Matched production: [constant]<<},
27926             Parse::RecDescent::_tracefirst($text),
27927             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
27928             ) if defined $::RD_TRACE;
27929 0         0 $_matched = 1;
27930 0         0 last;
27931             }
27932              
27933 0   0     0 while (!$_matched && !$commit) {
27934              
27935 0 0       0 Parse::RecDescent::_trace(
27936             q{Trying production: [column_name]},
27937             Parse::RecDescent::_tracefirst($_[1]),
27938             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
27939             ) if defined $::RD_TRACE;
27940 0         0 my $thisprod = $thisrule->{"prods"}[3];
27941 0         0 $text = $_[1];
27942 0         0 my $_savetext;
27943 0         0 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
27944 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
27945 0         0 my $repcount = 0;
27946              
27947 0 0       0 Parse::RecDescent::_trace(
27948             q{Trying subrule: [column_name]},
27949             Parse::RecDescent::_tracefirst($text),
27950             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
27951             ) if defined $::RD_TRACE;
27952 0         0 if (1) {
27953 1     1   10 no strict qw{refs};
  1         3  
  1         480  
27954 0         0 $expectation->is(q{})->at($text);
27955 0 0       0 unless (defined(
27956             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name(
27957 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
27958             )
27959             )) {
27960              
27961 0 0       0 Parse::RecDescent::_trace(
27962             q{<>},
27963             Parse::RecDescent::_tracefirst($text),
27964             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
27965             $tracelevel
27966             ) if defined $::RD_TRACE;
27967 0         0 $expectation->failed();
27968 0         0 last;
27969             }
27970             Parse::RecDescent::_trace(
27971 0 0       0 q{>>Matched subrule: [column_name]<< (return value: [} . $_tok . q{]},
27972              
27973             Parse::RecDescent::_tracefirst($text),
27974             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
27975             $tracelevel
27976             ) if defined $::RD_TRACE;
27977 0         0 $item{q{column_name}} = $_tok;
27978 0         0 push @item, $_tok;
27979              
27980             }
27981              
27982             Parse::RecDescent::_trace(
27983 0 0       0 q{>>Matched production: [column_name]<<},
27984             Parse::RecDescent::_tracefirst($text),
27985             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
27986             ) if defined $::RD_TRACE;
27987 0         0 $_matched = 1;
27988 0         0 last;
27989             }
27990              
27991 0   0     0 while (!$_matched && !$commit) {
27992              
27993 0 0       0 Parse::RecDescent::_trace(
27994             q{Trying production: [host_variable]},
27995             Parse::RecDescent::_tracefirst($_[1]),
27996             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
27997             ) if defined $::RD_TRACE;
27998 0         0 my $thisprod = $thisrule->{"prods"}[4];
27999 0         0 $text = $_[1];
28000 0         0 my $_savetext;
28001 0         0 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
28002 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
28003 0         0 my $repcount = 0;
28004              
28005 0 0       0 Parse::RecDescent::_trace(
28006             q{Trying subrule: [host_variable]},
28007             Parse::RecDescent::_tracefirst($text),
28008             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28009             ) if defined $::RD_TRACE;
28010 0         0 if (1) {
28011 1     1   11 no strict qw{refs};
  1         4  
  1         473  
28012 0         0 $expectation->is(q{})->at($text);
28013 0 0       0 unless (defined(
28014             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::host_variable(
28015 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
28016             )
28017             )) {
28018              
28019 0 0       0 Parse::RecDescent::_trace(
28020             q{<>},
28021             Parse::RecDescent::_tracefirst($text),
28022             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
28023             $tracelevel
28024             ) if defined $::RD_TRACE;
28025 0         0 $expectation->failed();
28026 0         0 last;
28027             }
28028             Parse::RecDescent::_trace(
28029 0 0       0 q{>>Matched subrule: [host_variable]<< (return value: [} . $_tok . q{]},
28030              
28031             Parse::RecDescent::_tracefirst($text),
28032             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
28033             $tracelevel
28034             ) if defined $::RD_TRACE;
28035 0         0 $item{q{host_variable}} = $_tok;
28036 0         0 push @item, $_tok;
28037              
28038             }
28039              
28040             Parse::RecDescent::_trace(
28041 0 0       0 q{>>Matched production: [host_variable]<<},
28042             Parse::RecDescent::_tracefirst($text),
28043             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28044             ) if defined $::RD_TRACE;
28045 0         0 $_matched = 1;
28046 0         0 last;
28047             }
28048              
28049 0   0     0 while (!$_matched && !$commit) {
28050              
28051 0 0       0 Parse::RecDescent::_trace(
28052             q{Trying production: [special_register]},
28053             Parse::RecDescent::_tracefirst($_[1]),
28054             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28055             ) if defined $::RD_TRACE;
28056 0         0 my $thisprod = $thisrule->{"prods"}[5];
28057 0         0 $text = $_[1];
28058 0         0 my $_savetext;
28059 0         0 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
28060 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
28061 0         0 my $repcount = 0;
28062              
28063 0 0       0 Parse::RecDescent::_trace(
28064             q{Trying subrule: [special_register]},
28065             Parse::RecDescent::_tracefirst($text),
28066             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28067             ) if defined $::RD_TRACE;
28068 0         0 if (1) {
28069 1     1   11 no strict qw{refs};
  1         3  
  1         729  
28070 0         0 $expectation->is(q{})->at($text);
28071 0 0       0 unless (defined(
28072             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::special_register(
28073 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
28074             )
28075             )) {
28076              
28077 0 0       0 Parse::RecDescent::_trace(
28078             q{<>},
28079             Parse::RecDescent::_tracefirst($text),
28080             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
28081             $tracelevel
28082             ) if defined $::RD_TRACE;
28083 0         0 $expectation->failed();
28084 0         0 last;
28085             }
28086             Parse::RecDescent::_trace(
28087 0 0       0 q{>>Matched subrule: [special_register]<< (return value: [} . $_tok . q{]},
28088              
28089             Parse::RecDescent::_tracefirst($text),
28090             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
28091             $tracelevel
28092             ) if defined $::RD_TRACE;
28093 0         0 $item{q{special_register}} = $_tok;
28094 0         0 push @item, $_tok;
28095              
28096             }
28097              
28098             Parse::RecDescent::_trace(
28099 0 0       0 q{>>Matched production: [special_register]<<},
28100             Parse::RecDescent::_tracefirst($text),
28101             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28102             ) if defined $::RD_TRACE;
28103 0         0 $_matched = 1;
28104 0         0 last;
28105             }
28106              
28107 0   0     0 while (!$_matched && !$commit) {
28108              
28109 0 0       0 Parse::RecDescent::_trace(
28110             q{Trying production: ['(' scalar_fullselect ')']},
28111             Parse::RecDescent::_tracefirst($_[1]),
28112             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28113             ) if defined $::RD_TRACE;
28114 0         0 my $thisprod = $thisrule->{"prods"}[6];
28115 0         0 $text = $_[1];
28116 0         0 my $_savetext;
28117 0         0 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
28118 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
28119 0         0 my $repcount = 0;
28120              
28121 0 0       0 Parse::RecDescent::_trace(
28122             q{Trying terminal: ['(']},
28123             Parse::RecDescent::_tracefirst($text),
28124             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28125             ) if defined $::RD_TRACE;
28126 0         0 $lastsep = "";
28127 0         0 $expectation->is(q{})->at($text);
28128              
28129 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
28130             and $text =~ s/\A\(//) {
28131              
28132 0         0 $expectation->failed();
28133 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
28134             if defined $::RD_TRACE;
28135 0         0 last;
28136             }
28137 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
28138             Parse::RecDescent::_tracefirst($text))
28139             if defined $::RD_TRACE;
28140 0         0 push @item, $item{__STRING1__} = $&;
28141              
28142 0 0       0 Parse::RecDescent::_trace(
28143             q{Trying subrule: [scalar_fullselect]},
28144             Parse::RecDescent::_tracefirst($text),
28145             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28146             ) if defined $::RD_TRACE;
28147 0         0 if (1) {
28148 1     1   9 no strict qw{refs};
  1         4  
  1         721  
28149 0         0 $expectation->is(q{scalar_fullselect})->at($text);
28150 0 0       0 unless (defined(
28151             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::scalar_fullselect(
28152 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
28153             )
28154             )) {
28155              
28156 0 0       0 Parse::RecDescent::_trace(
28157             q{<>},
28158             Parse::RecDescent::_tracefirst($text),
28159             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
28160             $tracelevel
28161             ) if defined $::RD_TRACE;
28162 0         0 $expectation->failed();
28163 0         0 last;
28164             }
28165             Parse::RecDescent::_trace(
28166 0 0       0 q{>>Matched subrule: [scalar_fullselect]<< (return value: [} . $_tok . q{]},
28167              
28168             Parse::RecDescent::_tracefirst($text),
28169             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
28170             $tracelevel
28171             ) if defined $::RD_TRACE;
28172 0         0 $item{q{scalar_fullselect}} = $_tok;
28173 0         0 push @item, $_tok;
28174              
28175             }
28176              
28177             Parse::RecDescent::_trace(
28178 0 0       0 q{Trying terminal: [')']},
28179             Parse::RecDescent::_tracefirst($text),
28180             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28181             ) if defined $::RD_TRACE;
28182 0         0 $lastsep = "";
28183 0         0 $expectation->is(q{')'})->at($text);
28184              
28185 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
28186             and $text =~ s/\A\)//) {
28187              
28188 0         0 $expectation->failed();
28189 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
28190             if defined $::RD_TRACE;
28191 0         0 last;
28192             }
28193 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
28194             Parse::RecDescent::_tracefirst($text))
28195             if defined $::RD_TRACE;
28196 0         0 push @item, $item{__STRING2__} = $&;
28197              
28198 0 0       0 Parse::RecDescent::_trace(
28199             q{>>Matched production: ['(' scalar_fullselect ')']<<},
28200             Parse::RecDescent::_tracefirst($text),
28201             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28202             ) if defined $::RD_TRACE;
28203 0         0 $_matched = 1;
28204 0         0 last;
28205             }
28206              
28207 0   0     0 while (!$_matched && !$commit) {
28208              
28209 0 0       0 Parse::RecDescent::_trace(
28210             q{Trying production: [labeled_duration]},
28211             Parse::RecDescent::_tracefirst($_[1]),
28212             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28213             ) if defined $::RD_TRACE;
28214 0         0 my $thisprod = $thisrule->{"prods"}[7];
28215 0         0 $text = $_[1];
28216 0         0 my $_savetext;
28217 0         0 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
28218 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
28219 0         0 my $repcount = 0;
28220              
28221 0 0       0 Parse::RecDescent::_trace(
28222             q{Trying subrule: [labeled_duration]},
28223             Parse::RecDescent::_tracefirst($text),
28224             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28225             ) if defined $::RD_TRACE;
28226 0         0 if (1) {
28227 1     1   13 no strict qw{refs};
  1         3  
  1         520  
28228 0         0 $expectation->is(q{})->at($text);
28229 0 0       0 unless (defined(
28230             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::labeled_duration(
28231 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
28232             )
28233             )) {
28234              
28235 0 0       0 Parse::RecDescent::_trace(
28236             q{<>},
28237             Parse::RecDescent::_tracefirst($text),
28238             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
28239             $tracelevel
28240             ) if defined $::RD_TRACE;
28241 0         0 $expectation->failed();
28242 0         0 last;
28243             }
28244             Parse::RecDescent::_trace(
28245 0 0       0 q{>>Matched subrule: [labeled_duration]<< (return value: [} . $_tok . q{]},
28246              
28247             Parse::RecDescent::_tracefirst($text),
28248             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
28249             $tracelevel
28250             ) if defined $::RD_TRACE;
28251 0         0 $item{q{labeled_duration}} = $_tok;
28252 0         0 push @item, $_tok;
28253              
28254             }
28255              
28256             Parse::RecDescent::_trace(
28257 0 0       0 q{>>Matched production: [labeled_duration]<<},
28258             Parse::RecDescent::_tracefirst($text),
28259             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28260             ) if defined $::RD_TRACE;
28261 0         0 $_matched = 1;
28262 0         0 last;
28263             }
28264              
28265 0   0     0 while (!$_matched && !$commit) {
28266              
28267 0 0       0 Parse::RecDescent::_trace(
28268             q{Trying production: [case_expression]},
28269             Parse::RecDescent::_tracefirst($_[1]),
28270             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28271             ) if defined $::RD_TRACE;
28272 0         0 my $thisprod = $thisrule->{"prods"}[8];
28273 0         0 $text = $_[1];
28274 0         0 my $_savetext;
28275 0         0 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
28276 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
28277 0         0 my $repcount = 0;
28278              
28279 0 0       0 Parse::RecDescent::_trace(
28280             q{Trying subrule: [case_expression]},
28281             Parse::RecDescent::_tracefirst($text),
28282             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28283             ) if defined $::RD_TRACE;
28284 0         0 if (1) {
28285 1     1   11 no strict qw{refs};
  1         3  
  1         514  
28286 0         0 $expectation->is(q{})->at($text);
28287 0 0       0 unless (defined(
28288             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::case_expression(
28289 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
28290             )
28291             )) {
28292              
28293 0 0       0 Parse::RecDescent::_trace(
28294             q{<>},
28295             Parse::RecDescent::_tracefirst($text),
28296             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
28297             $tracelevel
28298             ) if defined $::RD_TRACE;
28299 0         0 $expectation->failed();
28300 0         0 last;
28301             }
28302             Parse::RecDescent::_trace(
28303 0 0       0 q{>>Matched subrule: [case_expression]<< (return value: [} . $_tok . q{]},
28304              
28305             Parse::RecDescent::_tracefirst($text),
28306             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
28307             $tracelevel
28308             ) if defined $::RD_TRACE;
28309 0         0 $item{q{case_expression}} = $_tok;
28310 0         0 push @item, $_tok;
28311              
28312             }
28313              
28314             Parse::RecDescent::_trace(
28315 0 0       0 q{>>Matched production: [case_expression]<<},
28316             Parse::RecDescent::_tracefirst($text),
28317             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28318             ) if defined $::RD_TRACE;
28319 0         0 $_matched = 1;
28320 0         0 last;
28321             }
28322              
28323 0   0     0 while (!$_matched && !$commit) {
28324              
28325 0 0       0 Parse::RecDescent::_trace(
28326             q{Trying production: [cast_specification]},
28327             Parse::RecDescent::_tracefirst($_[1]),
28328             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28329             ) if defined $::RD_TRACE;
28330 0         0 my $thisprod = $thisrule->{"prods"}[9];
28331 0         0 $text = $_[1];
28332 0         0 my $_savetext;
28333 0         0 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
28334 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
28335 0         0 my $repcount = 0;
28336              
28337 0 0       0 Parse::RecDescent::_trace(
28338             q{Trying subrule: [cast_specification]},
28339             Parse::RecDescent::_tracefirst($text),
28340             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28341             ) if defined $::RD_TRACE;
28342 0         0 if (1) {
28343 1     1   12 no strict qw{refs};
  1         3  
  1         562  
28344 0         0 $expectation->is(q{})->at($text);
28345 0 0       0 unless (defined(
28346             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::cast_specification(
28347 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
28348             )
28349             )) {
28350              
28351 0 0       0 Parse::RecDescent::_trace(
28352             q{<>},
28353             Parse::RecDescent::_tracefirst($text),
28354             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
28355             $tracelevel
28356             ) if defined $::RD_TRACE;
28357 0         0 $expectation->failed();
28358 0         0 last;
28359             }
28360             Parse::RecDescent::_trace(
28361 0 0       0 q{>>Matched subrule: [cast_specification]<< (return value: [} . $_tok . q{]},
28362              
28363             Parse::RecDescent::_tracefirst($text),
28364             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
28365             $tracelevel
28366             ) if defined $::RD_TRACE;
28367 0         0 $item{q{cast_specification}} = $_tok;
28368 0         0 push @item, $_tok;
28369              
28370             }
28371              
28372             Parse::RecDescent::_trace(
28373 0 0       0 q{>>Matched production: [cast_specification]<<},
28374             Parse::RecDescent::_tracefirst($text),
28375             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28376             ) if defined $::RD_TRACE;
28377 0         0 $_matched = 1;
28378 0         0 last;
28379             }
28380              
28381 0   0     0 while (!$_matched && !$commit) {
28382              
28383 0 0       0 Parse::RecDescent::_trace(
28384             q{Trying production: [OLAP_function]},
28385             Parse::RecDescent::_tracefirst($_[1]),
28386             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28387             ) if defined $::RD_TRACE;
28388 0         0 my $thisprod = $thisrule->{"prods"}[10];
28389 0         0 $text = $_[1];
28390 0         0 my $_savetext;
28391 0         0 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
28392 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
28393 0         0 my $repcount = 0;
28394              
28395 0 0       0 Parse::RecDescent::_trace(
28396             q{Trying subrule: [OLAP_function]},
28397             Parse::RecDescent::_tracefirst($text),
28398             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28399             ) if defined $::RD_TRACE;
28400 0         0 if (1) {
28401 1     1   11 no strict qw{refs};
  1         4  
  1         576  
28402 0         0 $expectation->is(q{})->at($text);
28403 0 0       0 unless (defined(
28404             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::OLAP_function(
28405 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
28406             )
28407             )) {
28408              
28409 0 0       0 Parse::RecDescent::_trace(
28410             q{<>},
28411             Parse::RecDescent::_tracefirst($text),
28412             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
28413             $tracelevel
28414             ) if defined $::RD_TRACE;
28415 0         0 $expectation->failed();
28416 0         0 last;
28417             }
28418             Parse::RecDescent::_trace(
28419 0 0       0 q{>>Matched subrule: [OLAP_function]<< (return value: [} . $_tok . q{]},
28420              
28421             Parse::RecDescent::_tracefirst($text),
28422             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
28423             $tracelevel
28424             ) if defined $::RD_TRACE;
28425 0         0 $item{q{OLAP_function}} = $_tok;
28426 0         0 push @item, $_tok;
28427              
28428             }
28429              
28430             Parse::RecDescent::_trace(
28431 0 0       0 q{>>Matched production: [OLAP_function]<<},
28432             Parse::RecDescent::_tracefirst($text),
28433             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28434             ) if defined $::RD_TRACE;
28435 0         0 $_matched = 1;
28436 0         0 last;
28437             }
28438              
28439 0   0     0 while (!$_matched && !$commit) {
28440              
28441 0 0       0 Parse::RecDescent::_trace(
28442             q{Trying production: [method_invocation]},
28443             Parse::RecDescent::_tracefirst($_[1]),
28444             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28445             ) if defined $::RD_TRACE;
28446 0         0 my $thisprod = $thisrule->{"prods"}[11];
28447 0         0 $text = $_[1];
28448 0         0 my $_savetext;
28449 0         0 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
28450 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
28451 0         0 my $repcount = 0;
28452              
28453 0 0       0 Parse::RecDescent::_trace(
28454             q{Trying subrule: [method_invocation]},
28455             Parse::RecDescent::_tracefirst($text),
28456             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28457             ) if defined $::RD_TRACE;
28458 0         0 if (1) {
28459 1     1   11 no strict qw{refs};
  1         3  
  1         499  
28460 0         0 $expectation->is(q{})->at($text);
28461 0 0       0 unless (defined(
28462             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::method_invocation(
28463 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
28464             )
28465             )) {
28466              
28467 0 0       0 Parse::RecDescent::_trace(
28468             q{<>},
28469             Parse::RecDescent::_tracefirst($text),
28470             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
28471             $tracelevel
28472             ) if defined $::RD_TRACE;
28473 0         0 $expectation->failed();
28474 0         0 last;
28475             }
28476             Parse::RecDescent::_trace(
28477 0 0       0 q{>>Matched subrule: [method_invocation]<< (return value: [} . $_tok . q{]},
28478              
28479             Parse::RecDescent::_tracefirst($text),
28480             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
28481             $tracelevel
28482             ) if defined $::RD_TRACE;
28483 0         0 $item{q{method_invocation}} = $_tok;
28484 0         0 push @item, $_tok;
28485              
28486             }
28487              
28488             Parse::RecDescent::_trace(
28489 0 0       0 q{>>Matched production: [method_invocation]<<},
28490             Parse::RecDescent::_tracefirst($text),
28491             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28492             ) if defined $::RD_TRACE;
28493 0         0 $_matched = 1;
28494 0         0 last;
28495             }
28496              
28497 0   0     0 while (!$_matched && !$commit) {
28498              
28499 0 0       0 Parse::RecDescent::_trace(
28500             q{Trying production: [subtype_treatment]},
28501             Parse::RecDescent::_tracefirst($_[1]),
28502             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28503             ) if defined $::RD_TRACE;
28504 0         0 my $thisprod = $thisrule->{"prods"}[12];
28505 0         0 $text = $_[1];
28506 0         0 my $_savetext;
28507 0         0 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
28508 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
28509 0         0 my $repcount = 0;
28510              
28511 0 0       0 Parse::RecDescent::_trace(
28512             q{Trying subrule: [subtype_treatment]},
28513             Parse::RecDescent::_tracefirst($text),
28514             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28515             ) if defined $::RD_TRACE;
28516 0         0 if (1) {
28517 1     1   10 no strict qw{refs};
  1         3  
  1         548  
28518 0         0 $expectation->is(q{})->at($text);
28519 0 0       0 unless (defined(
28520             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::subtype_treatment(
28521 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
28522             )
28523             )) {
28524              
28525 0 0       0 Parse::RecDescent::_trace(
28526             q{<>},
28527             Parse::RecDescent::_tracefirst($text),
28528             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
28529             $tracelevel
28530             ) if defined $::RD_TRACE;
28531 0         0 $expectation->failed();
28532 0         0 last;
28533             }
28534             Parse::RecDescent::_trace(
28535 0 0       0 q{>>Matched subrule: [subtype_treatment]<< (return value: [} . $_tok . q{]},
28536              
28537             Parse::RecDescent::_tracefirst($text),
28538             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
28539             $tracelevel
28540             ) if defined $::RD_TRACE;
28541 0         0 $item{q{subtype_treatment}} = $_tok;
28542 0         0 push @item, $_tok;
28543              
28544             }
28545              
28546             Parse::RecDescent::_trace(
28547 0 0       0 q{>>Matched production: [subtype_treatment]<<},
28548             Parse::RecDescent::_tracefirst($text),
28549             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28550             ) if defined $::RD_TRACE;
28551 0         0 $_matched = 1;
28552 0         0 last;
28553             }
28554              
28555 0   0     0 while (!$_matched && !$commit) {
28556              
28557 0 0       0 Parse::RecDescent::_trace(
28558             q{Trying production: [sequence_reference]},
28559             Parse::RecDescent::_tracefirst($_[1]),
28560             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28561             ) if defined $::RD_TRACE;
28562 0         0 my $thisprod = $thisrule->{"prods"}[13];
28563 0         0 $text = $_[1];
28564 0         0 my $_savetext;
28565 0         0 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
28566 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
28567 0         0 my $repcount = 0;
28568              
28569 0 0       0 Parse::RecDescent::_trace(
28570             q{Trying subrule: [sequence_reference]},
28571             Parse::RecDescent::_tracefirst($text),
28572             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28573             ) if defined $::RD_TRACE;
28574 0         0 if (1) {
28575 1     1   12 no strict qw{refs};
  1         4  
  1         1211  
28576 0         0 $expectation->is(q{})->at($text);
28577 0 0       0 unless (defined(
28578             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sequence_reference(
28579 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
28580             )
28581             )) {
28582              
28583 0 0       0 Parse::RecDescent::_trace(
28584             q{<>},
28585             Parse::RecDescent::_tracefirst($text),
28586             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
28587             $tracelevel
28588             ) if defined $::RD_TRACE;
28589 0         0 $expectation->failed();
28590 0         0 last;
28591             }
28592             Parse::RecDescent::_trace(
28593 0 0       0 q{>>Matched subrule: [sequence_reference]<< (return value: [} . $_tok . q{]},
28594              
28595             Parse::RecDescent::_tracefirst($text),
28596             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
28597             $tracelevel
28598             ) if defined $::RD_TRACE;
28599 0         0 $item{q{sequence_reference}} = $_tok;
28600 0         0 push @item, $_tok;
28601              
28602             }
28603              
28604             Parse::RecDescent::_trace(
28605 0 0       0 q{>>Matched production: [sequence_reference]<<},
28606             Parse::RecDescent::_tracefirst($text),
28607             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28608             ) if defined $::RD_TRACE;
28609 0         0 $_matched = 1;
28610 0         0 last;
28611             }
28612              
28613 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
28614              
28615 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
28616 0 0       0 Parse::RecDescent::_trace(
28617             q{<>},
28618             Parse::RecDescent::_tracefirst($_[1]),
28619             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}, $tracelevel
28620             ) if defined $::RD_TRACE;
28621 0         0 return undef;
28622             }
28623 0 0 0     0 if (!defined($return) && defined($score)) {
28624 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
28625             "", q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
28626             $tracelevel)
28627             if defined $::RD_TRACE;
28628 0         0 $return = $score_return;
28629             }
28630 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
28631 0 0       0 $return = $item[$#item] unless defined $return;
28632 0 0       0 if (defined $::RD_TRACE) {
28633 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
28634             "", q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
28635             $tracelevel);
28636 0         0 Parse::RecDescent::_trace(
28637             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
28638             Parse::RecDescent::_tracefirst($text),
28639             ,
28640             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
28641             $tracelevel
28642             );
28643             }
28644 0         0 $_[1] = $text;
28645 0         0 return $return;
28646             }
28647              
28648             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
28649             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::startrule {
28650 1     1   148 my $thisparser = $_[0];
28651 1     1   11 use vars q{$tracelevel};
  1         4  
  1         737  
28652 1   50     9 local $tracelevel = ($tracelevel || 0) + 1;
28653 1         3 $ERRORS = 0;
28654 1         4 my $thisrule = $thisparser->{"rules"}{"startrule"};
28655              
28656 1 50       6 Parse::RecDescent::_trace(
28657             q{Trying rule: [startrule]},
28658             Parse::RecDescent::_tracefirst($_[1]),
28659             q{startrule}, $tracelevel
28660             ) if defined $::RD_TRACE;
28661              
28662 1         2 my $err_at = @{ $thisparser->{errors} };
  1         4  
28663              
28664 1         5 my $score;
28665             my $score_return;
28666 1         0 my $_tok;
28667 1         4 my $return = undef;
28668 1         3 my $_matched = 0;
28669 1         2 my $commit = 0;
28670 1         2 my @item = ();
28671 1         4 my %item = ();
28672 1   33     4 my $repeating = defined($_[2]) && $_[2];
28673 1   33     4 my $_noactions = defined($_[3]) && $_[3];
28674 1 50       5 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  1         2  
  1         45  
28675 1 50       11 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
28676 1         3 my $text;
28677 1         4 my $lastsep = "";
28678 1         9 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
28679 1         82 $expectation->at($_[1]);
28680              
28681 1         6 my $thisline;
28682 1         14 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
28683              
28684 1   33     19 while (!$_matched && !$commit) {
28685              
28686 1 50       18 Parse::RecDescent::_trace(
28687             q{Trying production: [statement eofile]},
28688             Parse::RecDescent::_tracefirst($_[1]),
28689             q{startrule}, $tracelevel
28690             ) if defined $::RD_TRACE;
28691 1         5 my $thisprod = $thisrule->{"prods"}[0];
28692 1         2 $text = $_[1];
28693 1         3 my $_savetext;
28694 1         4 @item = (q{startrule});
28695 1         4 %item = (__RULE__ => q{startrule});
28696 1         3 my $repcount = 0;
28697              
28698 1 50       4 Parse::RecDescent::_trace(
28699             q{Trying repeated subrule: [statement]},
28700             Parse::RecDescent::_tracefirst($text),
28701             q{startrule}, $tracelevel
28702             ) if defined $::RD_TRACE;
28703 1         6 $expectation->is(q{})->at($text);
28704              
28705 1 50       14 unless (defined(
28706             $_tok = $thisparser->_parserepeat(
28707             $text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::statement,
28708             1, 100000000, $_noactions, $expectation, undef
28709             )
28710             )) {
28711 1 50       24 Parse::RecDescent::_trace(
28712             q{<>},
28713             Parse::RecDescent::_tracefirst($text),
28714             q{startrule}, $tracelevel
28715             ) if defined $::RD_TRACE;
28716 1         4 last;
28717             }
28718             Parse::RecDescent::_trace(
28719 0 0       0 q{>>Matched repeated subrule: [statement]<< (} . @$_tok . q{ times)},
28720              
28721             Parse::RecDescent::_tracefirst($text),
28722             q{startrule},
28723             $tracelevel
28724             ) if defined $::RD_TRACE;
28725 0         0 $item{q{statement(s)}} = $_tok;
28726 0         0 push @item, $_tok;
28727              
28728 0 0       0 Parse::RecDescent::_trace(
28729             q{Trying subrule: [eofile]},
28730             Parse::RecDescent::_tracefirst($text),
28731             q{startrule}, $tracelevel
28732             ) if defined $::RD_TRACE;
28733 0         0 if (1) {
28734 1     1   12 no strict qw{refs};
  1         3  
  1         898  
28735 0         0 $expectation->is(q{eofile})->at($text);
28736 0 0       0 unless (defined(
28737             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::eofile(
28738 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
28739             )
28740             )) {
28741              
28742 0 0       0 Parse::RecDescent::_trace(
28743             q{<>},
28744             Parse::RecDescent::_tracefirst($text),
28745             q{startrule}, $tracelevel
28746             ) if defined $::RD_TRACE;
28747 0         0 $expectation->failed();
28748 0         0 last;
28749             }
28750             Parse::RecDescent::_trace(
28751 0 0       0 q{>>Matched subrule: [eofile]<< (return value: [} . $_tok . q{]},
28752              
28753             Parse::RecDescent::_tracefirst($text),
28754             q{startrule},
28755             $tracelevel
28756             ) if defined $::RD_TRACE;
28757 0         0 $item{q{eofile}} = $_tok;
28758 0         0 push @item, $_tok;
28759              
28760             }
28761              
28762 0 0       0 Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{startrule}, $tracelevel)
28763             if defined $::RD_TRACE;
28764              
28765 0 0       0 $_tok = ($_noactions) ? 0 : do {
28766 0         0 $return = {
28767             tables => \%tables,
28768             views => \@views,
28769             triggers => \@triggers,
28770             };
28771             };
28772 0 0       0 unless (defined $_tok) {
28773 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
28774             if defined $::RD_TRACE;
28775 0         0 last;
28776             }
28777 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])},
28778             Parse::RecDescent::_tracefirst($text))
28779             if defined $::RD_TRACE;
28780 0         0 push @item, $_tok;
28781 0         0 $item{__ACTION1__} = $_tok;
28782              
28783 0 0       0 Parse::RecDescent::_trace(
28784             q{>>Matched production: [statement eofile]<<},
28785             Parse::RecDescent::_tracefirst($text),
28786             q{startrule}, $tracelevel
28787             ) if defined $::RD_TRACE;
28788 0         0 $_matched = 1;
28789 0         0 last;
28790             }
28791              
28792 1 50 33     12 unless ($_matched || defined($return) || defined($score)) {
      33        
28793              
28794 1         4 $_[1] = $text; # NOT SURE THIS IS NEEDED
28795 1 50       6 Parse::RecDescent::_trace(
28796             q{<>},
28797             Parse::RecDescent::_tracefirst($_[1]),
28798             q{startrule}, $tracelevel
28799             ) if defined $::RD_TRACE;
28800 1         11 return undef;
28801             }
28802 0 0 0     0 if (!defined($return) && defined($score)) {
28803 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{startrule}, $tracelevel)
28804             if defined $::RD_TRACE;
28805 0         0 $return = $score_return;
28806             }
28807 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
28808 0 0       0 $return = $item[$#item] unless defined $return;
28809 0 0       0 if (defined $::RD_TRACE) {
28810 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{startrule}, $tracelevel);
28811 0         0 Parse::RecDescent::_trace(
28812             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
28813             Parse::RecDescent::_tracefirst($text),
28814             , q{startrule}, $tracelevel
28815             );
28816             }
28817 0         0 $_[1] = $text;
28818 0         0 return $return;
28819             }
28820              
28821             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
28822             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_cast_specification
28823             {
28824 0     0   0 my $thisparser = $_[0];
28825 1     1   13 use vars q{$tracelevel};
  1         3  
  1         521  
28826 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
28827 0         0 $ERRORS = 0;
28828 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_cast_specification"};
28829              
28830 0 0       0 Parse::RecDescent::_trace(
28831             q{Trying rule: [_alternation_1_of_production_1_of_rule_cast_specification]},
28832             Parse::RecDescent::_tracefirst($_[1]),
28833             q{_alternation_1_of_production_1_of_rule_cast_specification}, $tracelevel
28834             ) if defined $::RD_TRACE;
28835              
28836 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
28837              
28838 0         0 my $score;
28839             my $score_return;
28840 0         0 my $_tok;
28841 0         0 my $return = undef;
28842 0         0 my $_matched = 0;
28843 0         0 my $commit = 0;
28844 0         0 my @item = ();
28845 0         0 my %item = ();
28846 0   0     0 my $repeating = defined($_[2]) && $_[2];
28847 0   0     0 my $_noactions = defined($_[3]) && $_[3];
28848 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
28849 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
28850 0         0 my $text;
28851 0         0 my $lastsep = "";
28852 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
28853 0         0 $expectation->at($_[1]);
28854              
28855 0         0 my $thisline;
28856 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
28857              
28858 0   0     0 while (!$_matched && !$commit) {
28859              
28860 0 0       0 Parse::RecDescent::_trace(
28861             q{Trying production: [expression]},
28862             Parse::RecDescent::_tracefirst($_[1]),
28863             q{_alternation_1_of_production_1_of_rule_cast_specification}, $tracelevel
28864             ) if defined $::RD_TRACE;
28865 0         0 my $thisprod = $thisrule->{"prods"}[0];
28866 0         0 $text = $_[1];
28867 0         0 my $_savetext;
28868 0         0 @item = (q{_alternation_1_of_production_1_of_rule_cast_specification});
28869 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_cast_specification});
28870 0         0 my $repcount = 0;
28871              
28872 0 0       0 Parse::RecDescent::_trace(
28873             q{Trying subrule: [expression]},
28874             Parse::RecDescent::_tracefirst($text),
28875             q{_alternation_1_of_production_1_of_rule_cast_specification}, $tracelevel
28876             ) if defined $::RD_TRACE;
28877 0         0 if (1) {
28878 1     1   12 no strict qw{refs};
  1         2  
  1         767  
28879 0         0 $expectation->is(q{})->at($text);
28880 0 0       0 unless (defined(
28881             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression(
28882 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
28883             )
28884             )) {
28885              
28886 0 0       0 Parse::RecDescent::_trace(
28887             q{<>},
28888             Parse::RecDescent::_tracefirst($text),
28889             q{_alternation_1_of_production_1_of_rule_cast_specification}, $tracelevel
28890             ) if defined $::RD_TRACE;
28891 0         0 $expectation->failed();
28892 0         0 last;
28893             }
28894             Parse::RecDescent::_trace(
28895 0 0       0 q{>>Matched subrule: [expression]<< (return value: [} . $_tok . q{]},
28896              
28897             Parse::RecDescent::_tracefirst($text),
28898             q{_alternation_1_of_production_1_of_rule_cast_specification},
28899             $tracelevel
28900             ) if defined $::RD_TRACE;
28901 0         0 $item{q{expression}} = $_tok;
28902 0         0 push @item, $_tok;
28903              
28904             }
28905              
28906             Parse::RecDescent::_trace(
28907 0 0       0 q{>>Matched production: [expression]<<},
28908             Parse::RecDescent::_tracefirst($text),
28909             q{_alternation_1_of_production_1_of_rule_cast_specification}, $tracelevel
28910             ) if defined $::RD_TRACE;
28911 0         0 $_matched = 1;
28912 0         0 last;
28913             }
28914              
28915 0   0     0 while (!$_matched && !$commit) {
28916              
28917 0 0       0 Parse::RecDescent::_trace(
28918             q{Trying production: [/NULL/i]},
28919             Parse::RecDescent::_tracefirst($_[1]),
28920             q{_alternation_1_of_production_1_of_rule_cast_specification}, $tracelevel
28921             ) if defined $::RD_TRACE;
28922 0         0 my $thisprod = $thisrule->{"prods"}[1];
28923 0         0 $text = $_[1];
28924 0         0 my $_savetext;
28925 0         0 @item = (q{_alternation_1_of_production_1_of_rule_cast_specification});
28926 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_cast_specification});
28927 0         0 my $repcount = 0;
28928              
28929 0 0       0 Parse::RecDescent::_trace(
28930             q{Trying terminal: [/NULL/i]},
28931             Parse::RecDescent::_tracefirst($text),
28932             q{_alternation_1_of_production_1_of_rule_cast_specification}, $tracelevel
28933             ) if defined $::RD_TRACE;
28934 0         0 $lastsep = "";
28935 0         0 $expectation->is(q{})->at($text);
28936              
28937 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
28938             and $text =~ s/\A(?:NULL)//i) {
28939              
28940 0         0 $expectation->failed();
28941 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
28942             if defined $::RD_TRACE;
28943              
28944 0         0 last;
28945             }
28946 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
28947             Parse::RecDescent::_tracefirst($text))
28948             if defined $::RD_TRACE;
28949 0         0 push @item, $item{__PATTERN1__} = $&;
28950              
28951 0 0       0 Parse::RecDescent::_trace(
28952             q{>>Matched production: [/NULL/i]<<},
28953             Parse::RecDescent::_tracefirst($text),
28954             q{_alternation_1_of_production_1_of_rule_cast_specification}, $tracelevel
28955             ) if defined $::RD_TRACE;
28956 0         0 $_matched = 1;
28957 0         0 last;
28958             }
28959              
28960 0   0     0 while (!$_matched && !$commit) {
28961              
28962 0 0       0 Parse::RecDescent::_trace(
28963             q{Trying production: [parameter_marker]},
28964             Parse::RecDescent::_tracefirst($_[1]),
28965             q{_alternation_1_of_production_1_of_rule_cast_specification}, $tracelevel
28966             ) if defined $::RD_TRACE;
28967 0         0 my $thisprod = $thisrule->{"prods"}[2];
28968 0         0 $text = $_[1];
28969 0         0 my $_savetext;
28970 0         0 @item = (q{_alternation_1_of_production_1_of_rule_cast_specification});
28971 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_cast_specification});
28972 0         0 my $repcount = 0;
28973              
28974 0 0       0 Parse::RecDescent::_trace(
28975             q{Trying subrule: [parameter_marker]},
28976             Parse::RecDescent::_tracefirst($text),
28977             q{_alternation_1_of_production_1_of_rule_cast_specification}, $tracelevel
28978             ) if defined $::RD_TRACE;
28979 0         0 if (1) {
28980 1     1   11 no strict qw{refs};
  1         3  
  1         843  
28981 0         0 $expectation->is(q{})->at($text);
28982 0 0       0 unless (defined(
28983             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::parameter_marker(
28984 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
28985             )
28986             )) {
28987              
28988 0 0       0 Parse::RecDescent::_trace(
28989             q{<>},
28990             Parse::RecDescent::_tracefirst($text),
28991             q{_alternation_1_of_production_1_of_rule_cast_specification}, $tracelevel
28992             ) if defined $::RD_TRACE;
28993 0         0 $expectation->failed();
28994 0         0 last;
28995             }
28996             Parse::RecDescent::_trace(
28997 0 0       0 q{>>Matched subrule: [parameter_marker]<< (return value: [} . $_tok . q{]},
28998              
28999             Parse::RecDescent::_tracefirst($text),
29000             q{_alternation_1_of_production_1_of_rule_cast_specification},
29001             $tracelevel
29002             ) if defined $::RD_TRACE;
29003 0         0 $item{q{parameter_marker}} = $_tok;
29004 0         0 push @item, $_tok;
29005              
29006             }
29007              
29008             Parse::RecDescent::_trace(
29009 0 0       0 q{>>Matched production: [parameter_marker]<<},
29010             Parse::RecDescent::_tracefirst($text),
29011             q{_alternation_1_of_production_1_of_rule_cast_specification}, $tracelevel
29012             ) if defined $::RD_TRACE;
29013 0         0 $_matched = 1;
29014 0         0 last;
29015             }
29016              
29017 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
29018              
29019 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
29020 0 0       0 Parse::RecDescent::_trace(
29021             q{<>},
29022             Parse::RecDescent::_tracefirst($_[1]),
29023             q{_alternation_1_of_production_1_of_rule_cast_specification}, $tracelevel
29024             ) if defined $::RD_TRACE;
29025 0         0 return undef;
29026             }
29027 0 0 0     0 if (!defined($return) && defined($score)) {
29028 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
29029             "", q{_alternation_1_of_production_1_of_rule_cast_specification}, $tracelevel)
29030             if defined $::RD_TRACE;
29031 0         0 $return = $score_return;
29032             }
29033 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
29034 0 0       0 $return = $item[$#item] unless defined $return;
29035 0 0       0 if (defined $::RD_TRACE) {
29036 0         0 Parse::RecDescent::_trace(
29037             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
29038             q{_alternation_1_of_production_1_of_rule_cast_specification}, $tracelevel
29039             );
29040 0         0 Parse::RecDescent::_trace(
29041             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
29042             Parse::RecDescent::_tracefirst($text),
29043             , q{_alternation_1_of_production_1_of_rule_cast_specification}, $tracelevel
29044             );
29045             }
29046 0         0 $_[1] = $text;
29047 0         0 return $return;
29048             }
29049              
29050             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
29051             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::before {
29052 0     0   0 my $thisparser = $_[0];
29053 1     1   12 use vars q{$tracelevel};
  1         2  
  1         1120  
29054 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
29055 0         0 $ERRORS = 0;
29056 0         0 my $thisrule = $thisparser->{"rules"}{"before"};
29057              
29058 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [before]}, Parse::RecDescent::_tracefirst($_[1]), q{before}, $tracelevel)
29059             if defined $::RD_TRACE;
29060              
29061 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
29062              
29063 0         0 my $score;
29064             my $score_return;
29065 0         0 my $_tok;
29066 0         0 my $return = undef;
29067 0         0 my $_matched = 0;
29068 0         0 my $commit = 0;
29069 0         0 my @item = ();
29070 0         0 my %item = ();
29071 0   0     0 my $repeating = defined($_[2]) && $_[2];
29072 0   0     0 my $_noactions = defined($_[3]) && $_[3];
29073 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
29074 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
29075 0         0 my $text;
29076 0         0 my $lastsep = "";
29077 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
29078 0         0 $expectation->at($_[1]);
29079              
29080 0         0 my $thisline;
29081 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
29082              
29083 0   0     0 while (!$_matched && !$commit) {
29084              
29085 0 0       0 Parse::RecDescent::_trace(
29086             q{Trying production: [/NO CASCADE BEFORE/i]},
29087             Parse::RecDescent::_tracefirst($_[1]),
29088             q{before}, $tracelevel
29089             ) if defined $::RD_TRACE;
29090 0         0 my $thisprod = $thisrule->{"prods"}[0];
29091 0         0 $text = $_[1];
29092 0         0 my $_savetext;
29093 0         0 @item = (q{before});
29094 0         0 %item = (__RULE__ => q{before});
29095 0         0 my $repcount = 0;
29096              
29097 0 0       0 Parse::RecDescent::_trace(
29098             q{Trying terminal: [/NO CASCADE BEFORE/i]},
29099             Parse::RecDescent::_tracefirst($text),
29100             q{before}, $tracelevel
29101             ) if defined $::RD_TRACE;
29102 0         0 $lastsep = "";
29103 0         0 $expectation->is(q{})->at($text);
29104              
29105 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
29106             and $text =~ s/\A(?:NO CASCADE BEFORE)//i) {
29107              
29108 0         0 $expectation->failed();
29109 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
29110             if defined $::RD_TRACE;
29111              
29112 0         0 last;
29113             }
29114 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
29115             Parse::RecDescent::_tracefirst($text))
29116             if defined $::RD_TRACE;
29117 0         0 push @item, $item{__PATTERN1__} = $&;
29118              
29119 0 0       0 Parse::RecDescent::_trace(
29120             q{>>Matched production: [/NO CASCADE BEFORE/i]<<},
29121             Parse::RecDescent::_tracefirst($text),
29122             q{before}, $tracelevel
29123             ) if defined $::RD_TRACE;
29124 0         0 $_matched = 1;
29125 0         0 last;
29126             }
29127              
29128 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
29129              
29130 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
29131 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{before}, $tracelevel)
29132             if defined $::RD_TRACE;
29133 0         0 return undef;
29134             }
29135 0 0 0     0 if (!defined($return) && defined($score)) {
29136 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{before}, $tracelevel)
29137             if defined $::RD_TRACE;
29138 0         0 $return = $score_return;
29139             }
29140 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
29141 0 0       0 $return = $item[$#item] unless defined $return;
29142 0 0       0 if (defined $::RD_TRACE) {
29143 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{before}, $tracelevel);
29144 0         0 Parse::RecDescent::_trace(
29145             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
29146             Parse::RecDescent::_tracefirst($text),
29147             , q{before}, $tracelevel
29148             );
29149             }
29150 0         0 $_[1] = $text;
29151 0         0 return $return;
29152             }
29153              
29154             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
29155             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_83_of_rule_sysibm_function
29156             {
29157 0     0   0 my $thisparser = $_[0];
29158 1     1   11 use vars q{$tracelevel};
  1         2  
  1         1583  
29159 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
29160 0         0 $ERRORS = 0;
29161 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_83_of_rule_sysibm_function"};
29162              
29163 0 0       0 Parse::RecDescent::_trace(
29164             q{Trying rule: [_alternation_1_of_production_83_of_rule_sysibm_function]},
29165             Parse::RecDescent::_tracefirst($_[1]),
29166             q{_alternation_1_of_production_83_of_rule_sysibm_function}, $tracelevel
29167             ) if defined $::RD_TRACE;
29168              
29169 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
29170              
29171 0         0 my $score;
29172             my $score_return;
29173 0         0 my $_tok;
29174 0         0 my $return = undef;
29175 0         0 my $_matched = 0;
29176 0         0 my $commit = 0;
29177 0         0 my @item = ();
29178 0         0 my %item = ();
29179 0   0     0 my $repeating = defined($_[2]) && $_[2];
29180 0   0     0 my $_noactions = defined($_[3]) && $_[3];
29181 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
29182 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
29183 0         0 my $text;
29184 0         0 my $lastsep = "";
29185 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
29186 0         0 $expectation->at($_[1]);
29187              
29188 0         0 my $thisline;
29189 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
29190              
29191 0   0     0 while (!$_matched && !$commit) {
29192              
29193 0 0       0 Parse::RecDescent::_trace(
29194             q{Trying production: [/UCASE/i]},
29195             Parse::RecDescent::_tracefirst($_[1]),
29196             q{_alternation_1_of_production_83_of_rule_sysibm_function}, $tracelevel
29197             ) if defined $::RD_TRACE;
29198 0         0 my $thisprod = $thisrule->{"prods"}[0];
29199 0         0 $text = $_[1];
29200 0         0 my $_savetext;
29201 0         0 @item = (q{_alternation_1_of_production_83_of_rule_sysibm_function});
29202 0         0 %item = (__RULE__ => q{_alternation_1_of_production_83_of_rule_sysibm_function});
29203 0         0 my $repcount = 0;
29204              
29205 0 0       0 Parse::RecDescent::_trace(
29206             q{Trying terminal: [/UCASE/i]},
29207             Parse::RecDescent::_tracefirst($text),
29208             q{_alternation_1_of_production_83_of_rule_sysibm_function}, $tracelevel
29209             ) if defined $::RD_TRACE;
29210 0         0 $lastsep = "";
29211 0         0 $expectation->is(q{})->at($text);
29212              
29213 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
29214             and $text =~ s/\A(?:UCASE)//i) {
29215              
29216 0         0 $expectation->failed();
29217 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
29218             if defined $::RD_TRACE;
29219              
29220 0         0 last;
29221             }
29222 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
29223             Parse::RecDescent::_tracefirst($text))
29224             if defined $::RD_TRACE;
29225 0         0 push @item, $item{__PATTERN1__} = $&;
29226              
29227 0 0       0 Parse::RecDescent::_trace(
29228             q{>>Matched production: [/UCASE/i]<<},
29229             Parse::RecDescent::_tracefirst($text),
29230             q{_alternation_1_of_production_83_of_rule_sysibm_function}, $tracelevel
29231             ) if defined $::RD_TRACE;
29232 0         0 $_matched = 1;
29233 0         0 last;
29234             }
29235              
29236 0   0     0 while (!$_matched && !$commit) {
29237              
29238 0 0       0 Parse::RecDescent::_trace(
29239             q{Trying production: [/UPPER/i]},
29240             Parse::RecDescent::_tracefirst($_[1]),
29241             q{_alternation_1_of_production_83_of_rule_sysibm_function}, $tracelevel
29242             ) if defined $::RD_TRACE;
29243 0         0 my $thisprod = $thisrule->{"prods"}[1];
29244 0         0 $text = $_[1];
29245 0         0 my $_savetext;
29246 0         0 @item = (q{_alternation_1_of_production_83_of_rule_sysibm_function});
29247 0         0 %item = (__RULE__ => q{_alternation_1_of_production_83_of_rule_sysibm_function});
29248 0         0 my $repcount = 0;
29249              
29250 0 0       0 Parse::RecDescent::_trace(
29251             q{Trying terminal: [/UPPER/i]},
29252             Parse::RecDescent::_tracefirst($text),
29253             q{_alternation_1_of_production_83_of_rule_sysibm_function}, $tracelevel
29254             ) if defined $::RD_TRACE;
29255 0         0 $lastsep = "";
29256 0         0 $expectation->is(q{})->at($text);
29257              
29258 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
29259             and $text =~ s/\A(?:UPPER)//i) {
29260              
29261 0         0 $expectation->failed();
29262 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
29263             if defined $::RD_TRACE;
29264              
29265 0         0 last;
29266             }
29267 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
29268             Parse::RecDescent::_tracefirst($text))
29269             if defined $::RD_TRACE;
29270 0         0 push @item, $item{__PATTERN1__} = $&;
29271              
29272 0 0       0 Parse::RecDescent::_trace(
29273             q{>>Matched production: [/UPPER/i]<<},
29274             Parse::RecDescent::_tracefirst($text),
29275             q{_alternation_1_of_production_83_of_rule_sysibm_function}, $tracelevel
29276             ) if defined $::RD_TRACE;
29277 0         0 $_matched = 1;
29278 0         0 last;
29279             }
29280              
29281 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
29282              
29283 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
29284 0 0       0 Parse::RecDescent::_trace(
29285             q{<>},
29286             Parse::RecDescent::_tracefirst($_[1]),
29287             q{_alternation_1_of_production_83_of_rule_sysibm_function}, $tracelevel
29288             ) if defined $::RD_TRACE;
29289 0         0 return undef;
29290             }
29291 0 0 0     0 if (!defined($return) && defined($score)) {
29292 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
29293             "", q{_alternation_1_of_production_83_of_rule_sysibm_function}, $tracelevel)
29294             if defined $::RD_TRACE;
29295 0         0 $return = $score_return;
29296             }
29297 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
29298 0 0       0 $return = $item[$#item] unless defined $return;
29299 0 0       0 if (defined $::RD_TRACE) {
29300 0         0 Parse::RecDescent::_trace(
29301             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
29302             q{_alternation_1_of_production_83_of_rule_sysibm_function}, $tracelevel
29303             );
29304 0         0 Parse::RecDescent::_trace(
29305             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
29306             Parse::RecDescent::_tracefirst($text),
29307             , q{_alternation_1_of_production_83_of_rule_sysibm_function}, $tracelevel
29308             );
29309             }
29310 0         0 $_[1] = $text;
29311 0         0 return $return;
29312             }
29313              
29314             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
29315             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ranking_function {
29316 0     0   0 my $thisparser = $_[0];
29317 1     1   10 use vars q{$tracelevel};
  1         3  
  1         540  
29318 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
29319 0         0 $ERRORS = 0;
29320 0         0 my $thisrule = $thisparser->{"rules"}{"ranking_function"};
29321              
29322 0 0       0 Parse::RecDescent::_trace(
29323             q{Trying rule: [ranking_function]},
29324             Parse::RecDescent::_tracefirst($_[1]),
29325             q{ranking_function}, $tracelevel
29326             ) if defined $::RD_TRACE;
29327              
29328 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
29329              
29330 0         0 my $score;
29331             my $score_return;
29332 0         0 my $_tok;
29333 0         0 my $return = undef;
29334 0         0 my $_matched = 0;
29335 0         0 my $commit = 0;
29336 0         0 my @item = ();
29337 0         0 my %item = ();
29338 0   0     0 my $repeating = defined($_[2]) && $_[2];
29339 0   0     0 my $_noactions = defined($_[3]) && $_[3];
29340 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
29341 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
29342 0         0 my $text;
29343 0         0 my $lastsep = "";
29344 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
29345 0         0 $expectation->at($_[1]);
29346              
29347 0         0 my $thisline;
29348 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
29349              
29350 0   0     0 while (!$_matched && !$commit) {
29351              
29352 0 0       0 Parse::RecDescent::_trace(
29353             q{Trying production: [/RANK/, or /DENSE_RANK|DENSERANK/i /OVER/i '(' window_partition_clause window_order_clause ')']},
29354             Parse::RecDescent::_tracefirst($_[1]), q{ranking_function}, $tracelevel
29355             ) if defined $::RD_TRACE;
29356 0         0 my $thisprod = $thisrule->{"prods"}[0];
29357 0         0 $text = $_[1];
29358 0         0 my $_savetext;
29359 0         0 @item = (q{ranking_function});
29360 0         0 %item = (__RULE__ => q{ranking_function});
29361 0         0 my $repcount = 0;
29362              
29363 0 0       0 Parse::RecDescent::_trace(
29364             q{Trying subrule: [_alternation_1_of_production_1_of_rule_ranking_function]},
29365             Parse::RecDescent::_tracefirst($text),
29366             q{ranking_function}, $tracelevel
29367             ) if defined $::RD_TRACE;
29368 0         0 if (1) {
29369 1     1   10 no strict qw{refs};
  1         2  
  1         887  
29370 0         0 $expectation->is(q{})->at($text);
29371 0 0       0 unless (defined(
29372             $_tok
29373             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_ranking_function(
29374 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
29375             )
29376             )) {
29377              
29378 0 0       0 Parse::RecDescent::_trace(
29379             q{<>},
29380             Parse::RecDescent::_tracefirst($text),
29381             q{ranking_function}, $tracelevel
29382             ) if defined $::RD_TRACE;
29383 0         0 $expectation->failed();
29384 0         0 last;
29385             }
29386             Parse::RecDescent::_trace(
29387 0 0       0 q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_ranking_function]<< (return value: [}
29388             . $_tok . q{]},
29389              
29390             Parse::RecDescent::_tracefirst($text),
29391             q{ranking_function},
29392             $tracelevel
29393             ) if defined $::RD_TRACE;
29394 0         0 $item{q{_alternation_1_of_production_1_of_rule_ranking_function}} = $_tok;
29395 0         0 push @item, $_tok;
29396              
29397             }
29398              
29399             Parse::RecDescent::_trace(
29400 0 0       0 q{Trying terminal: [/OVER/i]},
29401             Parse::RecDescent::_tracefirst($text),
29402             q{ranking_function}, $tracelevel
29403             ) if defined $::RD_TRACE;
29404 0         0 $lastsep = "";
29405 0         0 $expectation->is(q{/OVER/i})->at($text);
29406              
29407 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
29408             and $text =~ s/\A(?:OVER)//i) {
29409              
29410 0         0 $expectation->failed();
29411 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
29412             if defined $::RD_TRACE;
29413              
29414 0         0 last;
29415             }
29416 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
29417             Parse::RecDescent::_tracefirst($text))
29418             if defined $::RD_TRACE;
29419 0         0 push @item, $item{__PATTERN1__} = $&;
29420              
29421 0 0       0 Parse::RecDescent::_trace(
29422             q{Trying terminal: ['(']},
29423             Parse::RecDescent::_tracefirst($text),
29424             q{ranking_function}, $tracelevel
29425             ) if defined $::RD_TRACE;
29426 0         0 $lastsep = "";
29427 0         0 $expectation->is(q{'('})->at($text);
29428              
29429 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
29430             and $text =~ s/\A\(//) {
29431              
29432 0         0 $expectation->failed();
29433 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
29434             if defined $::RD_TRACE;
29435 0         0 last;
29436             }
29437 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
29438             Parse::RecDescent::_tracefirst($text))
29439             if defined $::RD_TRACE;
29440 0         0 push @item, $item{__STRING1__} = $&;
29441              
29442 0 0       0 Parse::RecDescent::_trace(
29443             q{Trying repeated subrule: [window_partition_clause]},
29444             Parse::RecDescent::_tracefirst($text),
29445             q{ranking_function}, $tracelevel
29446             ) if defined $::RD_TRACE;
29447 0         0 $expectation->is(q{window_partition_clause})->at($text);
29448              
29449 0 0       0 unless (defined(
29450             $_tok = $thisparser->_parserepeat(
29451             $text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_partition_clause,
29452             0, 1, $_noactions, $expectation, undef
29453             )
29454             )) {
29455 0 0       0 Parse::RecDescent::_trace(
29456             q{<>},
29457             Parse::RecDescent::_tracefirst($text),
29458             q{ranking_function}, $tracelevel
29459             ) if defined $::RD_TRACE;
29460 0         0 last;
29461             }
29462             Parse::RecDescent::_trace(
29463 0 0       0 q{>>Matched repeated subrule: [window_partition_clause]<< (} . @$_tok . q{ times)},
29464              
29465             Parse::RecDescent::_tracefirst($text),
29466             q{ranking_function},
29467             $tracelevel
29468             ) if defined $::RD_TRACE;
29469 0         0 $item{q{window_partition_clause(?)}} = $_tok;
29470 0         0 push @item, $_tok;
29471              
29472 0 0       0 Parse::RecDescent::_trace(
29473             q{Trying subrule: [window_order_clause]},
29474             Parse::RecDescent::_tracefirst($text),
29475             q{ranking_function}, $tracelevel
29476             ) if defined $::RD_TRACE;
29477 0         0 if (1) {
29478 1     1   10 no strict qw{refs};
  1         4  
  1         965  
29479 0         0 $expectation->is(q{window_order_clause})->at($text);
29480 0 0       0 unless (defined(
29481             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_order_clause(
29482 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
29483             )
29484             )) {
29485              
29486 0 0       0 Parse::RecDescent::_trace(
29487             q{<>},
29488             Parse::RecDescent::_tracefirst($text),
29489             q{ranking_function}, $tracelevel
29490             ) if defined $::RD_TRACE;
29491 0         0 $expectation->failed();
29492 0         0 last;
29493             }
29494             Parse::RecDescent::_trace(
29495 0 0       0 q{>>Matched subrule: [window_order_clause]<< (return value: [} . $_tok . q{]},
29496              
29497             Parse::RecDescent::_tracefirst($text),
29498             q{ranking_function},
29499             $tracelevel
29500             ) if defined $::RD_TRACE;
29501 0         0 $item{q{window_order_clause}} = $_tok;
29502 0         0 push @item, $_tok;
29503              
29504             }
29505              
29506             Parse::RecDescent::_trace(
29507 0 0       0 q{Trying terminal: [')']},
29508             Parse::RecDescent::_tracefirst($text),
29509             q{ranking_function}, $tracelevel
29510             ) if defined $::RD_TRACE;
29511 0         0 $lastsep = "";
29512 0         0 $expectation->is(q{')'})->at($text);
29513              
29514 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
29515             and $text =~ s/\A\)//) {
29516              
29517 0         0 $expectation->failed();
29518 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
29519             if defined $::RD_TRACE;
29520 0         0 last;
29521             }
29522 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
29523             Parse::RecDescent::_tracefirst($text))
29524             if defined $::RD_TRACE;
29525 0         0 push @item, $item{__STRING2__} = $&;
29526              
29527 0 0       0 Parse::RecDescent::_trace(
29528             q{>>Matched production: [/RANK/, or /DENSE_RANK|DENSERANK/i /OVER/i '(' window_partition_clause window_order_clause ')']<<},
29529             Parse::RecDescent::_tracefirst($text), q{ranking_function}, $tracelevel
29530             ) if defined $::RD_TRACE;
29531 0         0 $_matched = 1;
29532 0         0 last;
29533             }
29534              
29535 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
29536              
29537 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
29538 0 0       0 Parse::RecDescent::_trace(
29539             q{<>},
29540             Parse::RecDescent::_tracefirst($_[1]),
29541             q{ranking_function}, $tracelevel
29542             ) if defined $::RD_TRACE;
29543 0         0 return undef;
29544             }
29545 0 0 0     0 if (!defined($return) && defined($score)) {
29546 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{ranking_function}, $tracelevel)
29547             if defined $::RD_TRACE;
29548 0         0 $return = $score_return;
29549             }
29550 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
29551 0 0       0 $return = $item[$#item] unless defined $return;
29552 0 0       0 if (defined $::RD_TRACE) {
29553 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
29554             "", q{ranking_function}, $tracelevel);
29555 0         0 Parse::RecDescent::_trace(
29556             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
29557             Parse::RecDescent::_tracefirst($text),
29558             , q{ranking_function}, $tracelevel
29559             );
29560             }
29561 0         0 $_[1] = $text;
29562 0         0 return $return;
29563             }
29564              
29565             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
29566             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition
29567             {
29568 0     0   0 my $thisparser = $_[0];
29569 1     1   11 use vars q{$tracelevel};
  1         3  
  1         741  
29570 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
29571 0         0 $ERRORS = 0;
29572             my $thisrule = $thisparser->{"rules"}
29573 0         0 {"_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition"};
29574              
29575 0 0       0 Parse::RecDescent::_trace(
29576             q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition]},
29577             Parse::RecDescent::_tracefirst($_[1]),
29578             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
29579             $tracelevel
29580             ) if defined $::RD_TRACE;
29581              
29582 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
29583              
29584 0         0 my $score;
29585             my $score_return;
29586 0         0 my $_tok;
29587 0         0 my $return = undef;
29588 0         0 my $_matched = 0;
29589 0         0 my $commit = 0;
29590 0         0 my @item = ();
29591 0         0 my %item = ();
29592 0   0     0 my $repeating = defined($_[2]) && $_[2];
29593 0   0     0 my $_noactions = defined($_[3]) && $_[3];
29594 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
29595 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
29596 0         0 my $text;
29597 0         0 my $lastsep = "";
29598 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
29599 0         0 $expectation->at($_[1]);
29600              
29601 0         0 my $thisline;
29602 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
29603              
29604 0   0     0 while (!$_matched && !$commit) {
29605              
29606 0 0       0 Parse::RecDescent::_trace(
29607             q{Trying production: [/SELECTIVITY/i numeric_constant]},
29608             Parse::RecDescent::_tracefirst($_[1]),
29609             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
29610             $tracelevel
29611             ) if defined $::RD_TRACE;
29612 0         0 my $thisprod = $thisrule->{"prods"}[0];
29613 0         0 $text = $_[1];
29614 0         0 my $_savetext;
29615 0         0 @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition});
29616 0         0 %item = (__RULE__ =>
29617             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition});
29618 0         0 my $repcount = 0;
29619              
29620 0 0       0 Parse::RecDescent::_trace(
29621             q{Trying terminal: [/SELECTIVITY/i]},
29622             Parse::RecDescent::_tracefirst($text),
29623             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
29624             $tracelevel
29625             ) if defined $::RD_TRACE;
29626 0         0 $lastsep = "";
29627 0         0 $expectation->is(q{})->at($text);
29628              
29629 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
29630             and $text =~ s/\A(?:SELECTIVITY)//i) {
29631              
29632 0         0 $expectation->failed();
29633 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
29634             if defined $::RD_TRACE;
29635              
29636 0         0 last;
29637             }
29638 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
29639             Parse::RecDescent::_tracefirst($text))
29640             if defined $::RD_TRACE;
29641 0         0 push @item, $item{__PATTERN1__} = $&;
29642              
29643 0 0       0 Parse::RecDescent::_trace(
29644             q{Trying subrule: [numeric_constant]},
29645             Parse::RecDescent::_tracefirst($text),
29646             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
29647             $tracelevel
29648             ) if defined $::RD_TRACE;
29649 0         0 if (1) {
29650 1     1   11 no strict qw{refs};
  1         4  
  1         708  
29651 0         0 $expectation->is(q{numeric_constant})->at($text);
29652 0 0       0 unless (defined(
29653             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::numeric_constant(
29654 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
29655             )
29656             )) {
29657              
29658 0 0       0 Parse::RecDescent::_trace(
29659             q{<>},
29660             Parse::RecDescent::_tracefirst($text),
29661             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
29662             $tracelevel
29663             ) if defined $::RD_TRACE;
29664 0         0 $expectation->failed();
29665 0         0 last;
29666             }
29667             Parse::RecDescent::_trace(
29668 0 0       0 q{>>Matched subrule: [numeric_constant]<< (return value: [} . $_tok . q{]},
29669              
29670             Parse::RecDescent::_tracefirst($text),
29671             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
29672             $tracelevel
29673             ) if defined $::RD_TRACE;
29674 0         0 $item{q{numeric_constant}} = $_tok;
29675 0         0 push @item, $_tok;
29676              
29677             }
29678              
29679             Parse::RecDescent::_trace(
29680 0 0       0 q{>>Matched production: [/SELECTIVITY/i numeric_constant]<<},
29681             Parse::RecDescent::_tracefirst($text),
29682             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
29683             $tracelevel
29684             ) if defined $::RD_TRACE;
29685 0         0 $_matched = 1;
29686 0         0 last;
29687             }
29688              
29689 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
29690              
29691 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
29692 0 0       0 Parse::RecDescent::_trace(
29693             q{<>},
29694             Parse::RecDescent::_tracefirst($_[1]),
29695             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
29696             $tracelevel
29697             ) if defined $::RD_TRACE;
29698 0         0 return undef;
29699             }
29700 0 0 0     0 if (!defined($return) && defined($score)) {
29701 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
29702             "", q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
29703             $tracelevel)
29704             if defined $::RD_TRACE;
29705 0         0 $return = $score_return;
29706             }
29707 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
29708 0 0       0 $return = $item[$#item] unless defined $return;
29709 0 0       0 if (defined $::RD_TRACE) {
29710 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
29711             "", q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
29712             $tracelevel);
29713 0         0 Parse::RecDescent::_trace(
29714             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
29715             Parse::RecDescent::_tracefirst($text),
29716             ,
29717             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
29718             $tracelevel
29719             );
29720             }
29721 0         0 $_[1] = $text;
29722 0         0 return $return;
29723             }
29724              
29725             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
29726             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_sysibm_function {
29727 0     0   0 my $thisparser = $_[0];
29728 1     1   10 use vars q{$tracelevel};
  1         2  
  1         1560  
29729 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
29730 0         0 $ERRORS = 0;
29731 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_sysibm_function"};
29732              
29733 0 0       0 Parse::RecDescent::_trace(
29734             q{Trying rule: [_alternation_1_of_production_1_of_rule_sysibm_function]},
29735             Parse::RecDescent::_tracefirst($_[1]),
29736             q{_alternation_1_of_production_1_of_rule_sysibm_function}, $tracelevel
29737             ) if defined $::RD_TRACE;
29738              
29739 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
29740              
29741 0         0 my $score;
29742             my $score_return;
29743 0         0 my $_tok;
29744 0         0 my $return = undef;
29745 0         0 my $_matched = 0;
29746 0         0 my $commit = 0;
29747 0         0 my @item = ();
29748 0         0 my %item = ();
29749 0   0     0 my $repeating = defined($_[2]) && $_[2];
29750 0   0     0 my $_noactions = defined($_[3]) && $_[3];
29751 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
29752 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
29753 0         0 my $text;
29754 0         0 my $lastsep = "";
29755 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
29756 0         0 $expectation->at($_[1]);
29757              
29758 0         0 my $thisline;
29759 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
29760              
29761 0   0     0 while (!$_matched && !$commit) {
29762              
29763 0 0       0 Parse::RecDescent::_trace(
29764             q{Trying production: [/ABS/i]},
29765             Parse::RecDescent::_tracefirst($_[1]),
29766             q{_alternation_1_of_production_1_of_rule_sysibm_function}, $tracelevel
29767             ) if defined $::RD_TRACE;
29768 0         0 my $thisprod = $thisrule->{"prods"}[0];
29769 0         0 $text = $_[1];
29770 0         0 my $_savetext;
29771 0         0 @item = (q{_alternation_1_of_production_1_of_rule_sysibm_function});
29772 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_sysibm_function});
29773 0         0 my $repcount = 0;
29774              
29775 0 0       0 Parse::RecDescent::_trace(
29776             q{Trying terminal: [/ABS/i]},
29777             Parse::RecDescent::_tracefirst($text),
29778             q{_alternation_1_of_production_1_of_rule_sysibm_function}, $tracelevel
29779             ) if defined $::RD_TRACE;
29780 0         0 $lastsep = "";
29781 0         0 $expectation->is(q{})->at($text);
29782              
29783 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
29784             and $text =~ s/\A(?:ABS)//i) {
29785              
29786 0         0 $expectation->failed();
29787 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
29788             if defined $::RD_TRACE;
29789              
29790 0         0 last;
29791             }
29792 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
29793             Parse::RecDescent::_tracefirst($text))
29794             if defined $::RD_TRACE;
29795 0         0 push @item, $item{__PATTERN1__} = $&;
29796              
29797 0 0       0 Parse::RecDescent::_trace(
29798             q{>>Matched production: [/ABS/i]<<},
29799             Parse::RecDescent::_tracefirst($text),
29800             q{_alternation_1_of_production_1_of_rule_sysibm_function}, $tracelevel
29801             ) if defined $::RD_TRACE;
29802 0         0 $_matched = 1;
29803 0         0 last;
29804             }
29805              
29806 0   0     0 while (!$_matched && !$commit) {
29807              
29808 0 0       0 Parse::RecDescent::_trace(
29809             q{Trying production: [/ABSVAL/i]},
29810             Parse::RecDescent::_tracefirst($_[1]),
29811             q{_alternation_1_of_production_1_of_rule_sysibm_function}, $tracelevel
29812             ) if defined $::RD_TRACE;
29813 0         0 my $thisprod = $thisrule->{"prods"}[1];
29814 0         0 $text = $_[1];
29815 0         0 my $_savetext;
29816 0         0 @item = (q{_alternation_1_of_production_1_of_rule_sysibm_function});
29817 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_sysibm_function});
29818 0         0 my $repcount = 0;
29819              
29820 0 0       0 Parse::RecDescent::_trace(
29821             q{Trying terminal: [/ABSVAL/i]},
29822             Parse::RecDescent::_tracefirst($text),
29823             q{_alternation_1_of_production_1_of_rule_sysibm_function}, $tracelevel
29824             ) if defined $::RD_TRACE;
29825 0         0 $lastsep = "";
29826 0         0 $expectation->is(q{})->at($text);
29827              
29828 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
29829             and $text =~ s/\A(?:ABSVAL)//i) {
29830              
29831 0         0 $expectation->failed();
29832 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
29833             if defined $::RD_TRACE;
29834              
29835 0         0 last;
29836             }
29837 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
29838             Parse::RecDescent::_tracefirst($text))
29839             if defined $::RD_TRACE;
29840 0         0 push @item, $item{__PATTERN1__} = $&;
29841              
29842 0 0       0 Parse::RecDescent::_trace(
29843             q{>>Matched production: [/ABSVAL/i]<<},
29844             Parse::RecDescent::_tracefirst($text),
29845             q{_alternation_1_of_production_1_of_rule_sysibm_function}, $tracelevel
29846             ) if defined $::RD_TRACE;
29847 0         0 $_matched = 1;
29848 0         0 last;
29849             }
29850              
29851 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
29852              
29853 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
29854 0 0       0 Parse::RecDescent::_trace(
29855             q{<>},
29856             Parse::RecDescent::_tracefirst($_[1]),
29857             q{_alternation_1_of_production_1_of_rule_sysibm_function}, $tracelevel
29858             ) if defined $::RD_TRACE;
29859 0         0 return undef;
29860             }
29861 0 0 0     0 if (!defined($return) && defined($score)) {
29862 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
29863             "", q{_alternation_1_of_production_1_of_rule_sysibm_function}, $tracelevel)
29864             if defined $::RD_TRACE;
29865 0         0 $return = $score_return;
29866             }
29867 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
29868 0 0       0 $return = $item[$#item] unless defined $return;
29869 0 0       0 if (defined $::RD_TRACE) {
29870 0         0 Parse::RecDescent::_trace(
29871             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
29872             q{_alternation_1_of_production_1_of_rule_sysibm_function}, $tracelevel
29873             );
29874 0         0 Parse::RecDescent::_trace(
29875             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
29876             Parse::RecDescent::_tracefirst($text),
29877             , q{_alternation_1_of_production_1_of_rule_sysibm_function}, $tracelevel
29878             );
29879             }
29880 0         0 $_[1] = $text;
29881 0         0 return $return;
29882             }
29883              
29884             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
29885             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::reference_b {
29886 0     0   0 my $thisparser = $_[0];
29887 1     1   11 use vars q{$tracelevel};
  1         3  
  1         1465  
29888 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
29889 0         0 $ERRORS = 0;
29890 0         0 my $thisrule = $thisparser->{"rules"}{"reference_b"};
29891              
29892 0 0       0 Parse::RecDescent::_trace(
29893             q{Trying rule: [reference_b]},
29894             Parse::RecDescent::_tracefirst($_[1]),
29895             q{reference_b}, $tracelevel
29896             ) if defined $::RD_TRACE;
29897              
29898 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
29899              
29900 0         0 my $score;
29901             my $score_return;
29902 0         0 my $_tok;
29903 0         0 my $return = undef;
29904 0         0 my $_matched = 0;
29905 0         0 my $commit = 0;
29906 0         0 my @item = ();
29907 0         0 my %item = ();
29908 0   0     0 my $repeating = defined($_[2]) && $_[2];
29909 0   0     0 my $_noactions = defined($_[3]) && $_[3];
29910 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
29911 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
29912 0         0 my $text;
29913 0         0 my $lastsep = "";
29914 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
29915 0         0 $expectation->at($_[1]);
29916              
29917 0         0 my $thisline;
29918 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
29919              
29920 0   0     0 while (!$_matched && !$commit) {
29921              
29922 0 0       0 Parse::RecDescent::_trace(
29923             q{Trying production: [/REFERENCING/i old_new_corr]},
29924             Parse::RecDescent::_tracefirst($_[1]),
29925             q{reference_b}, $tracelevel
29926             ) if defined $::RD_TRACE;
29927 0         0 my $thisprod = $thisrule->{"prods"}[0];
29928 0         0 $text = $_[1];
29929 0         0 my $_savetext;
29930 0         0 @item = (q{reference_b});
29931 0         0 %item = (__RULE__ => q{reference_b});
29932 0         0 my $repcount = 0;
29933              
29934 0 0       0 Parse::RecDescent::_trace(
29935             q{Trying terminal: [/REFERENCING/i]},
29936             Parse::RecDescent::_tracefirst($text),
29937             q{reference_b}, $tracelevel
29938             ) if defined $::RD_TRACE;
29939 0         0 $lastsep = "";
29940 0         0 $expectation->is(q{})->at($text);
29941              
29942 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
29943             and $text =~ s/\A(?:REFERENCING)//i) {
29944              
29945 0         0 $expectation->failed();
29946 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
29947             if defined $::RD_TRACE;
29948              
29949 0         0 last;
29950             }
29951 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
29952             Parse::RecDescent::_tracefirst($text))
29953             if defined $::RD_TRACE;
29954 0         0 push @item, $item{__PATTERN1__} = $&;
29955              
29956 0 0       0 Parse::RecDescent::_trace(
29957             q{Trying repeated subrule: [old_new_corr]},
29958             Parse::RecDescent::_tracefirst($text),
29959             q{reference_b}, $tracelevel
29960             ) if defined $::RD_TRACE;
29961 0         0 $expectation->is(q{old_new_corr})->at($text);
29962              
29963 0 0       0 unless (defined(
29964             $_tok = $thisparser->_parserepeat(
29965             $text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::old_new_corr,
29966             0, 2, $_noactions, $expectation, undef
29967             )
29968             )) {
29969 0 0       0 Parse::RecDescent::_trace(
29970             q{<>},
29971             Parse::RecDescent::_tracefirst($text),
29972             q{reference_b}, $tracelevel
29973             ) if defined $::RD_TRACE;
29974 0         0 last;
29975             }
29976             Parse::RecDescent::_trace(
29977 0 0       0 q{>>Matched repeated subrule: [old_new_corr]<< (} . @$_tok . q{ times)},
29978              
29979             Parse::RecDescent::_tracefirst($text),
29980             q{reference_b},
29981             $tracelevel
29982             ) if defined $::RD_TRACE;
29983 0         0 $item{q{old_new_corr(0..2)}} = $_tok;
29984 0         0 push @item, $_tok;
29985              
29986 0 0       0 Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{reference_b}, $tracelevel)
29987             if defined $::RD_TRACE;
29988              
29989             $_tok
29990             = ($_noactions)
29991             ? 0
29992 0 0       0 : do { $return = join(' ', $item[1], join(' ', @{ $item[2] })) };
  0         0  
  0         0  
29993 0 0       0 unless (defined $_tok) {
29994 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
29995             if defined $::RD_TRACE;
29996 0         0 last;
29997             }
29998 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])},
29999             Parse::RecDescent::_tracefirst($text))
30000             if defined $::RD_TRACE;
30001 0         0 push @item, $_tok;
30002 0         0 $item{__ACTION1__} = $_tok;
30003              
30004 0 0       0 Parse::RecDescent::_trace(
30005             q{>>Matched production: [/REFERENCING/i old_new_corr]<<},
30006             Parse::RecDescent::_tracefirst($text),
30007             q{reference_b}, $tracelevel
30008             ) if defined $::RD_TRACE;
30009 0         0 $_matched = 1;
30010 0         0 last;
30011             }
30012              
30013 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
30014              
30015 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
30016 0 0       0 Parse::RecDescent::_trace(
30017             q{<>},
30018             Parse::RecDescent::_tracefirst($_[1]),
30019             q{reference_b}, $tracelevel
30020             ) if defined $::RD_TRACE;
30021 0         0 return undef;
30022             }
30023 0 0 0     0 if (!defined($return) && defined($score)) {
30024 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{reference_b}, $tracelevel)
30025             if defined $::RD_TRACE;
30026 0         0 $return = $score_return;
30027             }
30028 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
30029 0 0       0 $return = $item[$#item] unless defined $return;
30030 0 0       0 if (defined $::RD_TRACE) {
30031 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{reference_b},
30032             $tracelevel);
30033 0         0 Parse::RecDescent::_trace(
30034             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
30035             Parse::RecDescent::_tracefirst($text),
30036             , q{reference_b}, $tracelevel
30037             );
30038             }
30039 0         0 $_[1] = $text;
30040 0         0 return $return;
30041             }
30042              
30043             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
30044             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_simple_when_clause
30045             {
30046 0     0   0 my $thisparser = $_[0];
30047 1     1   11 use vars q{$tracelevel};
  1         3  
  1         765  
30048 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
30049 0         0 $ERRORS = 0;
30050 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_simple_when_clause"};
30051              
30052 0 0       0 Parse::RecDescent::_trace(
30053             q{Trying rule: [_alternation_1_of_production_1_of_rule_simple_when_clause]},
30054             Parse::RecDescent::_tracefirst($_[1]),
30055             q{_alternation_1_of_production_1_of_rule_simple_when_clause}, $tracelevel
30056             ) if defined $::RD_TRACE;
30057              
30058 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
30059              
30060 0         0 my $score;
30061             my $score_return;
30062 0         0 my $_tok;
30063 0         0 my $return = undef;
30064 0         0 my $_matched = 0;
30065 0         0 my $commit = 0;
30066 0         0 my @item = ();
30067 0         0 my %item = ();
30068 0   0     0 my $repeating = defined($_[2]) && $_[2];
30069 0   0     0 my $_noactions = defined($_[3]) && $_[3];
30070 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
30071 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
30072 0         0 my $text;
30073 0         0 my $lastsep = "";
30074 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
30075 0         0 $expectation->at($_[1]);
30076              
30077 0         0 my $thisline;
30078 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
30079              
30080 0   0     0 while (!$_matched && !$commit) {
30081              
30082 0 0       0 Parse::RecDescent::_trace(
30083             q{Trying production: [/WHEN/i search_condition /THEN/i result_expression, or /NULL/i]},
30084             Parse::RecDescent::_tracefirst($_[1]),
30085             q{_alternation_1_of_production_1_of_rule_simple_when_clause}, $tracelevel
30086             ) if defined $::RD_TRACE;
30087 0         0 my $thisprod = $thisrule->{"prods"}[0];
30088 0         0 $text = $_[1];
30089 0         0 my $_savetext;
30090 0         0 @item = (q{_alternation_1_of_production_1_of_rule_simple_when_clause});
30091 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_simple_when_clause});
30092 0         0 my $repcount = 0;
30093              
30094 0 0       0 Parse::RecDescent::_trace(
30095             q{Trying terminal: [/WHEN/i]},
30096             Parse::RecDescent::_tracefirst($text),
30097             q{_alternation_1_of_production_1_of_rule_simple_when_clause}, $tracelevel
30098             ) if defined $::RD_TRACE;
30099 0         0 $lastsep = "";
30100 0         0 $expectation->is(q{})->at($text);
30101              
30102 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
30103             and $text =~ s/\A(?:WHEN)//i) {
30104              
30105 0         0 $expectation->failed();
30106 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
30107             if defined $::RD_TRACE;
30108              
30109 0         0 last;
30110             }
30111 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
30112             Parse::RecDescent::_tracefirst($text))
30113             if defined $::RD_TRACE;
30114 0         0 push @item, $item{__PATTERN1__} = $&;
30115              
30116 0 0       0 Parse::RecDescent::_trace(
30117             q{Trying subrule: [search_condition]},
30118             Parse::RecDescent::_tracefirst($text),
30119             q{_alternation_1_of_production_1_of_rule_simple_when_clause}, $tracelevel
30120             ) if defined $::RD_TRACE;
30121 0         0 if (1) {
30122 1     1   9 no strict qw{refs};
  1         2  
  1         545  
30123 0         0 $expectation->is(q{search_condition})->at($text);
30124 0 0       0 unless (defined(
30125             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition(
30126 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
30127             )
30128             )) {
30129              
30130 0 0       0 Parse::RecDescent::_trace(
30131             q{<>},
30132             Parse::RecDescent::_tracefirst($text),
30133             q{_alternation_1_of_production_1_of_rule_simple_when_clause}, $tracelevel
30134             ) if defined $::RD_TRACE;
30135 0         0 $expectation->failed();
30136 0         0 last;
30137             }
30138             Parse::RecDescent::_trace(
30139 0 0       0 q{>>Matched subrule: [search_condition]<< (return value: [} . $_tok . q{]},
30140              
30141             Parse::RecDescent::_tracefirst($text),
30142             q{_alternation_1_of_production_1_of_rule_simple_when_clause},
30143             $tracelevel
30144             ) if defined $::RD_TRACE;
30145 0         0 $item{q{search_condition}} = $_tok;
30146 0         0 push @item, $_tok;
30147              
30148             }
30149              
30150             Parse::RecDescent::_trace(
30151 0 0       0 q{Trying terminal: [/THEN/i]},
30152             Parse::RecDescent::_tracefirst($text),
30153             q{_alternation_1_of_production_1_of_rule_simple_when_clause}, $tracelevel
30154             ) if defined $::RD_TRACE;
30155 0         0 $lastsep = "";
30156 0         0 $expectation->is(q{/THEN/i})->at($text);
30157              
30158 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
30159             and $text =~ s/\A(?:THEN)//i) {
30160              
30161 0         0 $expectation->failed();
30162 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
30163             if defined $::RD_TRACE;
30164              
30165 0         0 last;
30166             }
30167 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
30168             Parse::RecDescent::_tracefirst($text))
30169             if defined $::RD_TRACE;
30170 0         0 push @item, $item{__PATTERN2__} = $&;
30171              
30172 0 0       0 Parse::RecDescent::_trace(
30173             q{Trying subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause]},
30174             Parse::RecDescent::_tracefirst($text),
30175             q{_alternation_1_of_production_1_of_rule_simple_when_clause},
30176             $tracelevel
30177             ) if defined $::RD_TRACE;
30178 0         0 if (1) {
30179 1     1   10 no strict qw{refs};
  1         4  
  1         742  
30180 0         0 $expectation->is(q{result_expression, or /NULL/i})->at($text);
30181 0 0       0 unless (defined(
30182             $_tok
30183             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause(
30184 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
30185             )
30186             )) {
30187              
30188 0 0       0 Parse::RecDescent::_trace(
30189             q{<>},
30190             Parse::RecDescent::_tracefirst($text),
30191             q{_alternation_1_of_production_1_of_rule_simple_when_clause},
30192             $tracelevel
30193             ) if defined $::RD_TRACE;
30194 0         0 $expectation->failed();
30195 0         0 last;
30196             }
30197             Parse::RecDescent::_trace(
30198 0 0       0 q{>>Matched subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause]<< (return value: [}
30199             . $_tok . q{]},
30200              
30201             Parse::RecDescent::_tracefirst($text),
30202             q{_alternation_1_of_production_1_of_rule_simple_when_clause},
30203             $tracelevel
30204             ) if defined $::RD_TRACE;
30205 0         0 $item{q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause}}
30206             = $_tok;
30207 0         0 push @item, $_tok;
30208              
30209             }
30210              
30211             Parse::RecDescent::_trace(
30212 0 0       0 q{>>Matched production: [/WHEN/i search_condition /THEN/i result_expression, or /NULL/i]<<},
30213             Parse::RecDescent::_tracefirst($text),
30214             q{_alternation_1_of_production_1_of_rule_simple_when_clause}, $tracelevel
30215             ) if defined $::RD_TRACE;
30216 0         0 $_matched = 1;
30217 0         0 last;
30218             }
30219              
30220 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
30221              
30222 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
30223 0 0       0 Parse::RecDescent::_trace(
30224             q{<>},
30225             Parse::RecDescent::_tracefirst($_[1]),
30226             q{_alternation_1_of_production_1_of_rule_simple_when_clause}, $tracelevel
30227             ) if defined $::RD_TRACE;
30228 0         0 return undef;
30229             }
30230 0 0 0     0 if (!defined($return) && defined($score)) {
30231 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
30232             "", q{_alternation_1_of_production_1_of_rule_simple_when_clause}, $tracelevel)
30233             if defined $::RD_TRACE;
30234 0         0 $return = $score_return;
30235             }
30236 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
30237 0 0       0 $return = $item[$#item] unless defined $return;
30238 0 0       0 if (defined $::RD_TRACE) {
30239 0         0 Parse::RecDescent::_trace(
30240             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
30241             q{_alternation_1_of_production_1_of_rule_simple_when_clause}, $tracelevel
30242             );
30243 0         0 Parse::RecDescent::_trace(
30244             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
30245             Parse::RecDescent::_tracefirst($text),
30246             , q{_alternation_1_of_production_1_of_rule_simple_when_clause}, $tracelevel
30247             );
30248             }
30249 0         0 $_[1] = $text;
30250 0         0 return $return;
30251             }
30252              
30253             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
30254             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_9_of_rule_sysibm_function {
30255 0     0   0 my $thisparser = $_[0];
30256 1     1   12 use vars q{$tracelevel};
  1         2  
  1         1546  
30257 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
30258 0         0 $ERRORS = 0;
30259 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_9_of_rule_sysibm_function"};
30260              
30261 0 0       0 Parse::RecDescent::_trace(
30262             q{Trying rule: [_alternation_1_of_production_9_of_rule_sysibm_function]},
30263             Parse::RecDescent::_tracefirst($_[1]),
30264             q{_alternation_1_of_production_9_of_rule_sysibm_function}, $tracelevel
30265             ) if defined $::RD_TRACE;
30266              
30267 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
30268              
30269 0         0 my $score;
30270             my $score_return;
30271 0         0 my $_tok;
30272 0         0 my $return = undef;
30273 0         0 my $_matched = 0;
30274 0         0 my $commit = 0;
30275 0         0 my @item = ();
30276 0         0 my %item = ();
30277 0   0     0 my $repeating = defined($_[2]) && $_[2];
30278 0   0     0 my $_noactions = defined($_[3]) && $_[3];
30279 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
30280 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
30281 0         0 my $text;
30282 0         0 my $lastsep = "";
30283 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
30284 0         0 $expectation->at($_[1]);
30285              
30286 0         0 my $thisline;
30287 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
30288              
30289 0   0     0 while (!$_matched && !$commit) {
30290              
30291 0 0       0 Parse::RecDescent::_trace(
30292             q{Trying production: [/CORRELATION/i]},
30293             Parse::RecDescent::_tracefirst($_[1]),
30294             q{_alternation_1_of_production_9_of_rule_sysibm_function}, $tracelevel
30295             ) if defined $::RD_TRACE;
30296 0         0 my $thisprod = $thisrule->{"prods"}[0];
30297 0         0 $text = $_[1];
30298 0         0 my $_savetext;
30299 0         0 @item = (q{_alternation_1_of_production_9_of_rule_sysibm_function});
30300 0         0 %item = (__RULE__ => q{_alternation_1_of_production_9_of_rule_sysibm_function});
30301 0         0 my $repcount = 0;
30302              
30303 0 0       0 Parse::RecDescent::_trace(
30304             q{Trying terminal: [/CORRELATION/i]},
30305             Parse::RecDescent::_tracefirst($text),
30306             q{_alternation_1_of_production_9_of_rule_sysibm_function}, $tracelevel
30307             ) if defined $::RD_TRACE;
30308 0         0 $lastsep = "";
30309 0         0 $expectation->is(q{})->at($text);
30310              
30311 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
30312             and $text =~ s/\A(?:CORRELATION)//i) {
30313              
30314 0         0 $expectation->failed();
30315 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
30316             if defined $::RD_TRACE;
30317              
30318 0         0 last;
30319             }
30320 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
30321             Parse::RecDescent::_tracefirst($text))
30322             if defined $::RD_TRACE;
30323 0         0 push @item, $item{__PATTERN1__} = $&;
30324              
30325 0 0       0 Parse::RecDescent::_trace(
30326             q{>>Matched production: [/CORRELATION/i]<<},
30327             Parse::RecDescent::_tracefirst($text),
30328             q{_alternation_1_of_production_9_of_rule_sysibm_function}, $tracelevel
30329             ) if defined $::RD_TRACE;
30330 0         0 $_matched = 1;
30331 0         0 last;
30332             }
30333              
30334 0   0     0 while (!$_matched && !$commit) {
30335              
30336 0 0       0 Parse::RecDescent::_trace(
30337             q{Trying production: [/CORR/]},
30338             Parse::RecDescent::_tracefirst($_[1]),
30339             q{_alternation_1_of_production_9_of_rule_sysibm_function}, $tracelevel
30340             ) if defined $::RD_TRACE;
30341 0         0 my $thisprod = $thisrule->{"prods"}[1];
30342 0         0 $text = $_[1];
30343 0         0 my $_savetext;
30344 0         0 @item = (q{_alternation_1_of_production_9_of_rule_sysibm_function});
30345 0         0 %item = (__RULE__ => q{_alternation_1_of_production_9_of_rule_sysibm_function});
30346 0         0 my $repcount = 0;
30347              
30348 0 0       0 Parse::RecDescent::_trace(
30349             q{Trying terminal: [/CORR/]},
30350             Parse::RecDescent::_tracefirst($text),
30351             q{_alternation_1_of_production_9_of_rule_sysibm_function}, $tracelevel
30352             ) if defined $::RD_TRACE;
30353 0         0 $lastsep = "";
30354 0         0 $expectation->is(q{})->at($text);
30355              
30356 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
30357             and $text =~ s/\A(?:CORR)//) {
30358              
30359 0         0 $expectation->failed();
30360 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
30361             if defined $::RD_TRACE;
30362              
30363 0         0 last;
30364             }
30365 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
30366             Parse::RecDescent::_tracefirst($text))
30367             if defined $::RD_TRACE;
30368 0         0 push @item, $item{__PATTERN1__} = $&;
30369              
30370 0 0       0 Parse::RecDescent::_trace(
30371             q{>>Matched production: [/CORR/]<<},
30372             Parse::RecDescent::_tracefirst($text),
30373             q{_alternation_1_of_production_9_of_rule_sysibm_function}, $tracelevel
30374             ) if defined $::RD_TRACE;
30375 0         0 $_matched = 1;
30376 0         0 last;
30377             }
30378              
30379 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
30380              
30381 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
30382 0 0       0 Parse::RecDescent::_trace(
30383             q{<>},
30384             Parse::RecDescent::_tracefirst($_[1]),
30385             q{_alternation_1_of_production_9_of_rule_sysibm_function}, $tracelevel
30386             ) if defined $::RD_TRACE;
30387 0         0 return undef;
30388             }
30389 0 0 0     0 if (!defined($return) && defined($score)) {
30390 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
30391             "", q{_alternation_1_of_production_9_of_rule_sysibm_function}, $tracelevel)
30392             if defined $::RD_TRACE;
30393 0         0 $return = $score_return;
30394             }
30395 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
30396 0 0       0 $return = $item[$#item] unless defined $return;
30397 0 0       0 if (defined $::RD_TRACE) {
30398 0         0 Parse::RecDescent::_trace(
30399             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
30400             q{_alternation_1_of_production_9_of_rule_sysibm_function}, $tracelevel
30401             );
30402 0         0 Parse::RecDescent::_trace(
30403             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
30404             Parse::RecDescent::_tracefirst($text),
30405             , q{_alternation_1_of_production_9_of_rule_sysibm_function}, $tracelevel
30406             );
30407             }
30408 0         0 $_[1] = $text;
30409 0         0 return $return;
30410             }
30411              
30412             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
30413             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_7_of_rule_sysfun {
30414 0     0   0 my $thisparser = $_[0];
30415 1     1   10 use vars q{$tracelevel};
  1         4  
  1         1531  
30416 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
30417 0         0 $ERRORS = 0;
30418 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_7_of_rule_sysfun"};
30419              
30420 0 0       0 Parse::RecDescent::_trace(
30421             q{Trying rule: [_alternation_1_of_production_7_of_rule_sysfun]},
30422             Parse::RecDescent::_tracefirst($_[1]),
30423             q{_alternation_1_of_production_7_of_rule_sysfun}, $tracelevel
30424             ) if defined $::RD_TRACE;
30425              
30426 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
30427              
30428 0         0 my $score;
30429             my $score_return;
30430 0         0 my $_tok;
30431 0         0 my $return = undef;
30432 0         0 my $_matched = 0;
30433 0         0 my $commit = 0;
30434 0         0 my @item = ();
30435 0         0 my %item = ();
30436 0   0     0 my $repeating = defined($_[2]) && $_[2];
30437 0   0     0 my $_noactions = defined($_[3]) && $_[3];
30438 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
30439 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
30440 0         0 my $text;
30441 0         0 my $lastsep = "";
30442 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
30443 0         0 $expectation->at($_[1]);
30444              
30445 0         0 my $thisline;
30446 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
30447              
30448 0   0     0 while (!$_matched && !$commit) {
30449              
30450 0 0       0 Parse::RecDescent::_trace(
30451             q{Trying production: [/CEIL/i]},
30452             Parse::RecDescent::_tracefirst($_[1]),
30453             q{_alternation_1_of_production_7_of_rule_sysfun}, $tracelevel
30454             ) if defined $::RD_TRACE;
30455 0         0 my $thisprod = $thisrule->{"prods"}[0];
30456 0         0 $text = $_[1];
30457 0         0 my $_savetext;
30458 0         0 @item = (q{_alternation_1_of_production_7_of_rule_sysfun});
30459 0         0 %item = (__RULE__ => q{_alternation_1_of_production_7_of_rule_sysfun});
30460 0         0 my $repcount = 0;
30461              
30462 0 0       0 Parse::RecDescent::_trace(
30463             q{Trying terminal: [/CEIL/i]},
30464             Parse::RecDescent::_tracefirst($text),
30465             q{_alternation_1_of_production_7_of_rule_sysfun}, $tracelevel
30466             ) if defined $::RD_TRACE;
30467 0         0 $lastsep = "";
30468 0         0 $expectation->is(q{})->at($text);
30469              
30470 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
30471             and $text =~ s/\A(?:CEIL)//i) {
30472              
30473 0         0 $expectation->failed();
30474 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
30475             if defined $::RD_TRACE;
30476              
30477 0         0 last;
30478             }
30479 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
30480             Parse::RecDescent::_tracefirst($text))
30481             if defined $::RD_TRACE;
30482 0         0 push @item, $item{__PATTERN1__} = $&;
30483              
30484 0 0       0 Parse::RecDescent::_trace(
30485             q{>>Matched production: [/CEIL/i]<<},
30486             Parse::RecDescent::_tracefirst($text),
30487             q{_alternation_1_of_production_7_of_rule_sysfun}, $tracelevel
30488             ) if defined $::RD_TRACE;
30489 0         0 $_matched = 1;
30490 0         0 last;
30491             }
30492              
30493 0   0     0 while (!$_matched && !$commit) {
30494              
30495 0 0       0 Parse::RecDescent::_trace(
30496             q{Trying production: [/CEILING/i]},
30497             Parse::RecDescent::_tracefirst($_[1]),
30498             q{_alternation_1_of_production_7_of_rule_sysfun}, $tracelevel
30499             ) if defined $::RD_TRACE;
30500 0         0 my $thisprod = $thisrule->{"prods"}[1];
30501 0         0 $text = $_[1];
30502 0         0 my $_savetext;
30503 0         0 @item = (q{_alternation_1_of_production_7_of_rule_sysfun});
30504 0         0 %item = (__RULE__ => q{_alternation_1_of_production_7_of_rule_sysfun});
30505 0         0 my $repcount = 0;
30506              
30507 0 0       0 Parse::RecDescent::_trace(
30508             q{Trying terminal: [/CEILING/i]},
30509             Parse::RecDescent::_tracefirst($text),
30510             q{_alternation_1_of_production_7_of_rule_sysfun}, $tracelevel
30511             ) if defined $::RD_TRACE;
30512 0         0 $lastsep = "";
30513 0         0 $expectation->is(q{})->at($text);
30514              
30515 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
30516             and $text =~ s/\A(?:CEILING)//i) {
30517              
30518 0         0 $expectation->failed();
30519 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
30520             if defined $::RD_TRACE;
30521              
30522 0         0 last;
30523             }
30524 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
30525             Parse::RecDescent::_tracefirst($text))
30526             if defined $::RD_TRACE;
30527 0         0 push @item, $item{__PATTERN1__} = $&;
30528              
30529 0 0       0 Parse::RecDescent::_trace(
30530             q{>>Matched production: [/CEILING/i]<<},
30531             Parse::RecDescent::_tracefirst($text),
30532             q{_alternation_1_of_production_7_of_rule_sysfun}, $tracelevel
30533             ) if defined $::RD_TRACE;
30534 0         0 $_matched = 1;
30535 0         0 last;
30536             }
30537              
30538 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
30539              
30540 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
30541 0 0       0 Parse::RecDescent::_trace(
30542             q{<>},
30543             Parse::RecDescent::_tracefirst($_[1]),
30544             q{_alternation_1_of_production_7_of_rule_sysfun}, $tracelevel
30545             ) if defined $::RD_TRACE;
30546 0         0 return undef;
30547             }
30548 0 0 0     0 if (!defined($return) && defined($score)) {
30549 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
30550             "", q{_alternation_1_of_production_7_of_rule_sysfun}, $tracelevel)
30551             if defined $::RD_TRACE;
30552 0         0 $return = $score_return;
30553             }
30554 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
30555 0 0       0 $return = $item[$#item] unless defined $return;
30556 0 0       0 if (defined $::RD_TRACE) {
30557 0         0 Parse::RecDescent::_trace(
30558             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
30559             q{_alternation_1_of_production_7_of_rule_sysfun}, $tracelevel
30560             );
30561 0         0 Parse::RecDescent::_trace(
30562             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
30563             Parse::RecDescent::_tracefirst($text),
30564             , q{_alternation_1_of_production_7_of_rule_sysfun}, $tracelevel
30565             );
30566             }
30567 0         0 $_[1] = $text;
30568 0         0 return $return;
30569             }
30570              
30571             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
30572             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::prevval_expression {
30573 0     0   0 my $thisparser = $_[0];
30574 1     1   12 use vars q{$tracelevel};
  1         3  
  1         754  
30575 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
30576 0         0 $ERRORS = 0;
30577 0         0 my $thisrule = $thisparser->{"rules"}{"prevval_expression"};
30578              
30579 0 0       0 Parse::RecDescent::_trace(
30580             q{Trying rule: [prevval_expression]},
30581             Parse::RecDescent::_tracefirst($_[1]),
30582             q{prevval_expression}, $tracelevel
30583             ) if defined $::RD_TRACE;
30584              
30585 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
30586              
30587 0         0 my $score;
30588             my $score_return;
30589 0         0 my $_tok;
30590 0         0 my $return = undef;
30591 0         0 my $_matched = 0;
30592 0         0 my $commit = 0;
30593 0         0 my @item = ();
30594 0         0 my %item = ();
30595 0   0     0 my $repeating = defined($_[2]) && $_[2];
30596 0   0     0 my $_noactions = defined($_[3]) && $_[3];
30597 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
30598 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
30599 0         0 my $text;
30600 0         0 my $lastsep = "";
30601 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
30602 0         0 $expectation->at($_[1]);
30603              
30604 0         0 my $thisline;
30605 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
30606              
30607 0   0     0 while (!$_matched && !$commit) {
30608              
30609 0 0       0 Parse::RecDescent::_trace(
30610             q{Trying production: [/PREVVAL\\s+FOR/i sequence_name]},
30611             Parse::RecDescent::_tracefirst($_[1]),
30612             q{prevval_expression}, $tracelevel
30613             ) if defined $::RD_TRACE;
30614 0         0 my $thisprod = $thisrule->{"prods"}[0];
30615 0         0 $text = $_[1];
30616 0         0 my $_savetext;
30617 0         0 @item = (q{prevval_expression});
30618 0         0 %item = (__RULE__ => q{prevval_expression});
30619 0         0 my $repcount = 0;
30620              
30621 0 0       0 Parse::RecDescent::_trace(
30622             q{Trying terminal: [/PREVVAL\\s+FOR/i]},
30623             Parse::RecDescent::_tracefirst($text),
30624             q{prevval_expression}, $tracelevel
30625             ) if defined $::RD_TRACE;
30626 0         0 $lastsep = "";
30627 0         0 $expectation->is(q{})->at($text);
30628              
30629 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
30630             and $text =~ s/\A(?:PREVVAL\s+FOR)//i) {
30631              
30632 0         0 $expectation->failed();
30633 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
30634             if defined $::RD_TRACE;
30635              
30636 0         0 last;
30637             }
30638 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
30639             Parse::RecDescent::_tracefirst($text))
30640             if defined $::RD_TRACE;
30641 0         0 push @item, $item{__PATTERN1__} = $&;
30642              
30643 0 0       0 Parse::RecDescent::_trace(
30644             q{Trying subrule: [sequence_name]},
30645             Parse::RecDescent::_tracefirst($text),
30646             q{prevval_expression}, $tracelevel
30647             ) if defined $::RD_TRACE;
30648 0         0 if (1) {
30649 1     1   11 no strict qw{refs};
  1         3  
  1         718  
30650 0         0 $expectation->is(q{sequence_name})->at($text);
30651 0 0       0 unless (defined(
30652             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sequence_name(
30653 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
30654             )
30655             )) {
30656              
30657 0 0       0 Parse::RecDescent::_trace(
30658             q{<>},
30659             Parse::RecDescent::_tracefirst($text),
30660             q{prevval_expression}, $tracelevel
30661             ) if defined $::RD_TRACE;
30662 0         0 $expectation->failed();
30663 0         0 last;
30664             }
30665             Parse::RecDescent::_trace(
30666 0 0       0 q{>>Matched subrule: [sequence_name]<< (return value: [} . $_tok . q{]},
30667              
30668             Parse::RecDescent::_tracefirst($text),
30669             q{prevval_expression},
30670             $tracelevel
30671             ) if defined $::RD_TRACE;
30672 0         0 $item{q{sequence_name}} = $_tok;
30673 0         0 push @item, $_tok;
30674              
30675             }
30676              
30677             Parse::RecDescent::_trace(
30678 0 0       0 q{>>Matched production: [/PREVVAL\\s+FOR/i sequence_name]<<},
30679             Parse::RecDescent::_tracefirst($text),
30680             q{prevval_expression}, $tracelevel
30681             ) if defined $::RD_TRACE;
30682 0         0 $_matched = 1;
30683 0         0 last;
30684             }
30685              
30686 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
30687              
30688 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
30689 0 0       0 Parse::RecDescent::_trace(
30690             q{<>},
30691             Parse::RecDescent::_tracefirst($_[1]),
30692             q{prevval_expression}, $tracelevel
30693             ) if defined $::RD_TRACE;
30694 0         0 return undef;
30695             }
30696 0 0 0     0 if (!defined($return) && defined($score)) {
30697 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{prevval_expression}, $tracelevel)
30698             if defined $::RD_TRACE;
30699 0         0 $return = $score_return;
30700             }
30701 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
30702 0 0       0 $return = $item[$#item] unless defined $return;
30703 0 0       0 if (defined $::RD_TRACE) {
30704 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
30705             "", q{prevval_expression}, $tracelevel);
30706 0         0 Parse::RecDescent::_trace(
30707             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
30708             Parse::RecDescent::_tracefirst($text),
30709             , q{prevval_expression}, $tracelevel
30710             );
30711             }
30712 0         0 $_[1] = $text;
30713 0         0 return $return;
30714             }
30715              
30716             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
30717             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::where_clause {
30718 0     0   0 my $thisparser = $_[0];
30719 1     1   10 use vars q{$tracelevel};
  1         3  
  1         530  
30720 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
30721 0         0 $ERRORS = 0;
30722 0         0 my $thisrule = $thisparser->{"rules"}{"where_clause"};
30723              
30724 0 0       0 Parse::RecDescent::_trace(
30725             q{Trying rule: [where_clause]},
30726             Parse::RecDescent::_tracefirst($_[1]),
30727             q{where_clause}, $tracelevel
30728             ) if defined $::RD_TRACE;
30729              
30730 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
30731              
30732 0         0 my $score;
30733             my $score_return;
30734 0         0 my $_tok;
30735 0         0 my $return = undef;
30736 0         0 my $_matched = 0;
30737 0         0 my $commit = 0;
30738 0         0 my @item = ();
30739 0         0 my %item = ();
30740 0   0     0 my $repeating = defined($_[2]) && $_[2];
30741 0   0     0 my $_noactions = defined($_[3]) && $_[3];
30742 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
30743 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
30744 0         0 my $text;
30745 0         0 my $lastsep = "";
30746 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
30747 0         0 $expectation->at($_[1]);
30748              
30749 0         0 my $thisline;
30750 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
30751              
30752 0   0     0 while (!$_matched && !$commit) {
30753              
30754 0 0       0 Parse::RecDescent::_trace(
30755             q{Trying production: [WHERE search_condition]},
30756             Parse::RecDescent::_tracefirst($_[1]),
30757             q{where_clause}, $tracelevel
30758             ) if defined $::RD_TRACE;
30759 0         0 my $thisprod = $thisrule->{"prods"}[0];
30760 0         0 $text = $_[1];
30761 0         0 my $_savetext;
30762 0         0 @item = (q{where_clause});
30763 0         0 %item = (__RULE__ => q{where_clause});
30764 0         0 my $repcount = 0;
30765              
30766 0 0       0 Parse::RecDescent::_trace(
30767             q{Trying subrule: [WHERE]},
30768             Parse::RecDescent::_tracefirst($text),
30769             q{where_clause}, $tracelevel
30770             ) if defined $::RD_TRACE;
30771 0         0 if (1) {
30772 1     1   11 no strict qw{refs};
  1         2  
  1         247  
30773 0         0 $expectation->is(q{})->at($text);
30774 0 0       0 unless (defined(
30775             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::WHERE(
30776 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
30777             )
30778             )) {
30779              
30780 0 0       0 Parse::RecDescent::_trace(
30781             q{<>},
30782             Parse::RecDescent::_tracefirst($text),
30783             q{where_clause}, $tracelevel
30784             ) if defined $::RD_TRACE;
30785 0         0 $expectation->failed();
30786 0         0 last;
30787             }
30788             Parse::RecDescent::_trace(
30789 0 0       0 q{>>Matched subrule: [WHERE]<< (return value: [} . $_tok . q{]},
30790              
30791             Parse::RecDescent::_tracefirst($text),
30792             q{where_clause},
30793             $tracelevel
30794             ) if defined $::RD_TRACE;
30795 0         0 $item{q{WHERE}} = $_tok;
30796 0         0 push @item, $_tok;
30797              
30798             }
30799              
30800             Parse::RecDescent::_trace(
30801 0 0       0 q{Trying subrule: [search_condition]},
30802             Parse::RecDescent::_tracefirst($text),
30803             q{where_clause}, $tracelevel
30804             ) if defined $::RD_TRACE;
30805 0         0 if (1) {
30806 1     1   9 no strict qw{refs};
  1         3  
  1         718  
30807 0         0 $expectation->is(q{search_condition})->at($text);
30808 0 0       0 unless (defined(
30809             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition(
30810 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
30811             )
30812             )) {
30813              
30814 0 0       0 Parse::RecDescent::_trace(
30815             q{<>},
30816             Parse::RecDescent::_tracefirst($text),
30817             q{where_clause}, $tracelevel
30818             ) if defined $::RD_TRACE;
30819 0         0 $expectation->failed();
30820 0         0 last;
30821             }
30822             Parse::RecDescent::_trace(
30823 0 0       0 q{>>Matched subrule: [search_condition]<< (return value: [} . $_tok . q{]},
30824              
30825             Parse::RecDescent::_tracefirst($text),
30826             q{where_clause},
30827             $tracelevel
30828             ) if defined $::RD_TRACE;
30829 0         0 $item{q{search_condition}} = $_tok;
30830 0         0 push @item, $_tok;
30831              
30832             }
30833              
30834             Parse::RecDescent::_trace(
30835 0 0       0 q{>>Matched production: [WHERE search_condition]<<},
30836             Parse::RecDescent::_tracefirst($text),
30837             q{where_clause}, $tracelevel
30838             ) if defined $::RD_TRACE;
30839 0         0 $_matched = 1;
30840 0         0 last;
30841             }
30842              
30843 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
30844              
30845 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
30846 0 0       0 Parse::RecDescent::_trace(
30847             q{<>},
30848             Parse::RecDescent::_tracefirst($_[1]),
30849             q{where_clause}, $tracelevel
30850             ) if defined $::RD_TRACE;
30851 0         0 return undef;
30852             }
30853 0 0 0     0 if (!defined($return) && defined($score)) {
30854 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{where_clause}, $tracelevel)
30855             if defined $::RD_TRACE;
30856 0         0 $return = $score_return;
30857             }
30858 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
30859 0 0       0 $return = $item[$#item] unless defined $return;
30860 0 0       0 if (defined $::RD_TRACE) {
30861 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
30862             "", q{where_clause}, $tracelevel);
30863 0         0 Parse::RecDescent::_trace(
30864             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
30865             Parse::RecDescent::_tracefirst($text),
30866             , q{where_clause}, $tracelevel
30867             );
30868             }
30869 0         0 $_[1] = $text;
30870 0         0 return $return;
30871             }
30872              
30873             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
30874             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_start {
30875 0     0   0 my $thisparser = $_[0];
30876 1     1   11 use vars q{$tracelevel};
  1         3  
  1         962  
30877 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
30878 0         0 $ERRORS = 0;
30879 0         0 my $thisrule = $thisparser->{"rules"}{"group_start"};
30880              
30881 0 0       0 Parse::RecDescent::_trace(
30882             q{Trying rule: [group_start]},
30883             Parse::RecDescent::_tracefirst($_[1]),
30884             q{group_start}, $tracelevel
30885             ) if defined $::RD_TRACE;
30886              
30887 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
30888              
30889 0         0 my $score;
30890             my $score_return;
30891 0         0 my $_tok;
30892 0         0 my $return = undef;
30893 0         0 my $_matched = 0;
30894 0         0 my $commit = 0;
30895 0         0 my @item = ();
30896 0         0 my %item = ();
30897 0   0     0 my $repeating = defined($_[2]) && $_[2];
30898 0   0     0 my $_noactions = defined($_[3]) && $_[3];
30899 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
30900 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
30901 0         0 my $text;
30902 0         0 my $lastsep = "";
30903 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
30904 0         0 $expectation->at($_[1]);
30905              
30906 0         0 my $thisline;
30907 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
30908              
30909 0   0     0 while (!$_matched && !$commit) {
30910              
30911 0 0       0 Parse::RecDescent::_trace(
30912             q{Trying production: [/UNBOUNDED\\s+PRECEDING/i]},
30913             Parse::RecDescent::_tracefirst($_[1]),
30914             q{group_start}, $tracelevel
30915             ) if defined $::RD_TRACE;
30916 0         0 my $thisprod = $thisrule->{"prods"}[0];
30917 0         0 $text = $_[1];
30918 0         0 my $_savetext;
30919 0         0 @item = (q{group_start});
30920 0         0 %item = (__RULE__ => q{group_start});
30921 0         0 my $repcount = 0;
30922              
30923 0 0       0 Parse::RecDescent::_trace(
30924             q{Trying terminal: [/UNBOUNDED\\s+PRECEDING/i]},
30925             Parse::RecDescent::_tracefirst($text),
30926             q{group_start}, $tracelevel
30927             ) if defined $::RD_TRACE;
30928 0         0 $lastsep = "";
30929 0         0 $expectation->is(q{})->at($text);
30930              
30931 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
30932             and $text =~ s/\A(?:UNBOUNDED\s+PRECEDING)//i) {
30933              
30934 0         0 $expectation->failed();
30935 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
30936             if defined $::RD_TRACE;
30937              
30938 0         0 last;
30939             }
30940 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
30941             Parse::RecDescent::_tracefirst($text))
30942             if defined $::RD_TRACE;
30943 0         0 push @item, $item{__PATTERN1__} = $&;
30944              
30945 0 0       0 Parse::RecDescent::_trace(
30946             q{>>Matched production: [/UNBOUNDED\\s+PRECEDING/i]<<},
30947             Parse::RecDescent::_tracefirst($text),
30948             q{group_start}, $tracelevel
30949             ) if defined $::RD_TRACE;
30950 0         0 $_matched = 1;
30951 0         0 last;
30952             }
30953              
30954 0   0     0 while (!$_matched && !$commit) {
30955              
30956 0 0       0 Parse::RecDescent::_trace(
30957             q{Trying production: [unsigned_constant /PRECEDING/i]},
30958             Parse::RecDescent::_tracefirst($_[1]),
30959             q{group_start}, $tracelevel
30960             ) if defined $::RD_TRACE;
30961 0         0 my $thisprod = $thisrule->{"prods"}[1];
30962 0         0 $text = $_[1];
30963 0         0 my $_savetext;
30964 0         0 @item = (q{group_start});
30965 0         0 %item = (__RULE__ => q{group_start});
30966 0         0 my $repcount = 0;
30967              
30968 0 0       0 Parse::RecDescent::_trace(
30969             q{Trying subrule: [unsigned_constant]},
30970             Parse::RecDescent::_tracefirst($text),
30971             q{group_start}, $tracelevel
30972             ) if defined $::RD_TRACE;
30973 0         0 if (1) {
30974 1     1   10 no strict qw{refs};
  1         3  
  1         1326  
30975 0         0 $expectation->is(q{})->at($text);
30976 0 0       0 unless (defined(
30977             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::unsigned_constant(
30978 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
30979             )
30980             )) {
30981              
30982 0 0       0 Parse::RecDescent::_trace(
30983             q{<>},
30984             Parse::RecDescent::_tracefirst($text),
30985             q{group_start}, $tracelevel
30986             ) if defined $::RD_TRACE;
30987 0         0 $expectation->failed();
30988 0         0 last;
30989             }
30990             Parse::RecDescent::_trace(
30991 0 0       0 q{>>Matched subrule: [unsigned_constant]<< (return value: [} . $_tok . q{]},
30992              
30993             Parse::RecDescent::_tracefirst($text),
30994             q{group_start},
30995             $tracelevel
30996             ) if defined $::RD_TRACE;
30997 0         0 $item{q{unsigned_constant}} = $_tok;
30998 0         0 push @item, $_tok;
30999              
31000             }
31001              
31002             Parse::RecDescent::_trace(
31003 0 0       0 q{Trying terminal: [/PRECEDING/i]},
31004             Parse::RecDescent::_tracefirst($text),
31005             q{group_start}, $tracelevel
31006             ) if defined $::RD_TRACE;
31007 0         0 $lastsep = "";
31008 0         0 $expectation->is(q{/PRECEDING/i})->at($text);
31009              
31010 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
31011             and $text =~ s/\A(?:PRECEDING)//i) {
31012              
31013 0         0 $expectation->failed();
31014 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
31015             if defined $::RD_TRACE;
31016              
31017 0         0 last;
31018             }
31019 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
31020             Parse::RecDescent::_tracefirst($text))
31021             if defined $::RD_TRACE;
31022 0         0 push @item, $item{__PATTERN1__} = $&;
31023              
31024 0 0       0 Parse::RecDescent::_trace(
31025             q{>>Matched production: [unsigned_constant /PRECEDING/i]<<},
31026             Parse::RecDescent::_tracefirst($text),
31027             q{group_start}, $tracelevel
31028             ) if defined $::RD_TRACE;
31029 0         0 $_matched = 1;
31030 0         0 last;
31031             }
31032              
31033 0   0     0 while (!$_matched && !$commit) {
31034              
31035 0 0       0 Parse::RecDescent::_trace(
31036             q{Trying production: [/CURRENT\\s+ROW/i]},
31037             Parse::RecDescent::_tracefirst($_[1]),
31038             q{group_start}, $tracelevel
31039             ) if defined $::RD_TRACE;
31040 0         0 my $thisprod = $thisrule->{"prods"}[2];
31041 0         0 $text = $_[1];
31042 0         0 my $_savetext;
31043 0         0 @item = (q{group_start});
31044 0         0 %item = (__RULE__ => q{group_start});
31045 0         0 my $repcount = 0;
31046              
31047 0 0       0 Parse::RecDescent::_trace(
31048             q{Trying terminal: [/CURRENT\\s+ROW/i]},
31049             Parse::RecDescent::_tracefirst($text),
31050             q{group_start}, $tracelevel
31051             ) if defined $::RD_TRACE;
31052 0         0 $lastsep = "";
31053 0         0 $expectation->is(q{})->at($text);
31054              
31055 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
31056             and $text =~ s/\A(?:CURRENT\s+ROW)//i) {
31057              
31058 0         0 $expectation->failed();
31059 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
31060             if defined $::RD_TRACE;
31061              
31062 0         0 last;
31063             }
31064 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
31065             Parse::RecDescent::_tracefirst($text))
31066             if defined $::RD_TRACE;
31067 0         0 push @item, $item{__PATTERN1__} = $&;
31068              
31069 0 0       0 Parse::RecDescent::_trace(
31070             q{>>Matched production: [/CURRENT\\s+ROW/i]<<},
31071             Parse::RecDescent::_tracefirst($text),
31072             q{group_start}, $tracelevel
31073             ) if defined $::RD_TRACE;
31074 0         0 $_matched = 1;
31075 0         0 last;
31076             }
31077              
31078 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
31079              
31080 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
31081 0 0       0 Parse::RecDescent::_trace(
31082             q{<>},
31083             Parse::RecDescent::_tracefirst($_[1]),
31084             q{group_start}, $tracelevel
31085             ) if defined $::RD_TRACE;
31086 0         0 return undef;
31087             }
31088 0 0 0     0 if (!defined($return) && defined($score)) {
31089 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{group_start}, $tracelevel)
31090             if defined $::RD_TRACE;
31091 0         0 $return = $score_return;
31092             }
31093 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
31094 0 0       0 $return = $item[$#item] unless defined $return;
31095 0 0       0 if (defined $::RD_TRACE) {
31096 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{group_start},
31097             $tracelevel);
31098 0         0 Parse::RecDescent::_trace(
31099             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
31100             Parse::RecDescent::_tracefirst($text),
31101             , q{group_start}, $tracelevel
31102             );
31103             }
31104 0         0 $_[1] = $text;
31105 0         0 return $return;
31106             }
31107              
31108             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
31109             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::correlation_name {
31110 0     0   0 my $thisparser = $_[0];
31111 1     1   12 use vars q{$tracelevel};
  1         3  
  1         491  
31112 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
31113 0         0 $ERRORS = 0;
31114 0         0 my $thisrule = $thisparser->{"rules"}{"correlation_name"};
31115              
31116 0 0       0 Parse::RecDescent::_trace(
31117             q{Trying rule: [correlation_name]},
31118             Parse::RecDescent::_tracefirst($_[1]),
31119             q{correlation_name}, $tracelevel
31120             ) if defined $::RD_TRACE;
31121              
31122 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
31123              
31124 0         0 my $score;
31125             my $score_return;
31126 0         0 my $_tok;
31127 0         0 my $return = undef;
31128 0         0 my $_matched = 0;
31129 0         0 my $commit = 0;
31130 0         0 my @item = ();
31131 0         0 my %item = ();
31132 0   0     0 my $repeating = defined($_[2]) && $_[2];
31133 0   0     0 my $_noactions = defined($_[3]) && $_[3];
31134 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
31135 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
31136 0         0 my $text;
31137 0         0 my $lastsep = "";
31138 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
31139 0         0 $expectation->at($_[1]);
31140              
31141 0         0 my $thisline;
31142 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
31143              
31144 0   0     0 while (!$_matched && !$commit) {
31145              
31146 0 0       0 Parse::RecDescent::_trace(
31147             q{Trying production: [NAME]},
31148             Parse::RecDescent::_tracefirst($_[1]),
31149             q{correlation_name}, $tracelevel
31150             ) if defined $::RD_TRACE;
31151 0         0 my $thisprod = $thisrule->{"prods"}[0];
31152 0         0 $text = $_[1];
31153 0         0 my $_savetext;
31154 0         0 @item = (q{correlation_name});
31155 0         0 %item = (__RULE__ => q{correlation_name});
31156 0         0 my $repcount = 0;
31157              
31158 0 0       0 Parse::RecDescent::_trace(
31159             q{Trying subrule: [NAME]},
31160             Parse::RecDescent::_tracefirst($text),
31161             q{correlation_name}, $tracelevel
31162             ) if defined $::RD_TRACE;
31163 0         0 if (1) {
31164 1     1   39 no strict qw{refs};
  1         2  
  1         694  
31165 0         0 $expectation->is(q{})->at($text);
31166 0 0       0 unless (defined(
31167             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME(
31168 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
31169             )
31170             )) {
31171              
31172 0 0       0 Parse::RecDescent::_trace(
31173             q{<>},
31174             Parse::RecDescent::_tracefirst($text),
31175             q{correlation_name}, $tracelevel
31176             ) if defined $::RD_TRACE;
31177 0         0 $expectation->failed();
31178 0         0 last;
31179             }
31180             Parse::RecDescent::_trace(
31181 0 0       0 q{>>Matched subrule: [NAME]<< (return value: [} . $_tok . q{]},
31182              
31183             Parse::RecDescent::_tracefirst($text),
31184             q{correlation_name},
31185             $tracelevel
31186             ) if defined $::RD_TRACE;
31187 0         0 $item{q{NAME}} = $_tok;
31188 0         0 push @item, $_tok;
31189              
31190             }
31191              
31192             Parse::RecDescent::_trace(
31193 0 0       0 q{>>Matched production: [NAME]<<},
31194             Parse::RecDescent::_tracefirst($text),
31195             q{correlation_name}, $tracelevel
31196             ) if defined $::RD_TRACE;
31197 0         0 $_matched = 1;
31198 0         0 last;
31199             }
31200              
31201 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
31202              
31203 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
31204 0 0       0 Parse::RecDescent::_trace(
31205             q{<>},
31206             Parse::RecDescent::_tracefirst($_[1]),
31207             q{correlation_name}, $tracelevel
31208             ) if defined $::RD_TRACE;
31209 0         0 return undef;
31210             }
31211 0 0 0     0 if (!defined($return) && defined($score)) {
31212 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{correlation_name}, $tracelevel)
31213             if defined $::RD_TRACE;
31214 0         0 $return = $score_return;
31215             }
31216 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
31217 0 0       0 $return = $item[$#item] unless defined $return;
31218 0 0       0 if (defined $::RD_TRACE) {
31219 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
31220             "", q{correlation_name}, $tracelevel);
31221 0         0 Parse::RecDescent::_trace(
31222             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
31223             Parse::RecDescent::_tracefirst($text),
31224             , q{correlation_name}, $tracelevel
31225             );
31226             }
31227 0         0 $_[1] = $text;
31228 0         0 return $return;
31229             }
31230              
31231             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
31232             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SQL_procedure_statement {
31233 0     0   0 my $thisparser = $_[0];
31234 1     1   10 use vars q{$tracelevel};
  1         3  
  1         1549  
31235 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
31236 0         0 $ERRORS = 0;
31237 0         0 my $thisrule = $thisparser->{"rules"}{"SQL_procedure_statement"};
31238              
31239 0 0       0 Parse::RecDescent::_trace(
31240             q{Trying rule: [SQL_procedure_statement]},
31241             Parse::RecDescent::_tracefirst($_[1]),
31242             q{SQL_procedure_statement}, $tracelevel
31243             ) if defined $::RD_TRACE;
31244              
31245 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
31246              
31247 0         0 my $score;
31248             my $score_return;
31249 0         0 my $_tok;
31250 0         0 my $return = undef;
31251 0         0 my $_matched = 0;
31252 0         0 my $commit = 0;
31253 0         0 my @item = ();
31254 0         0 my %item = ();
31255 0   0     0 my $repeating = defined($_[2]) && $_[2];
31256 0   0     0 my $_noactions = defined($_[3]) && $_[3];
31257 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
31258 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
31259 0         0 my $text;
31260 0         0 my $lastsep = "";
31261 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
31262 0         0 $expectation->at($_[1]);
31263              
31264 0         0 my $thisline;
31265 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
31266              
31267 0   0     0 while (!$_matched && !$commit) {
31268              
31269 0 0       0 Parse::RecDescent::_trace(
31270             q{Trying production: [/[^;]*/ /(;|\\z)/]},
31271             Parse::RecDescent::_tracefirst($_[1]),
31272             q{SQL_procedure_statement}, $tracelevel
31273             ) if defined $::RD_TRACE;
31274 0         0 my $thisprod = $thisrule->{"prods"}[0];
31275 0         0 $text = $_[1];
31276 0         0 my $_savetext;
31277 0         0 @item = (q{SQL_procedure_statement});
31278 0         0 %item = (__RULE__ => q{SQL_procedure_statement});
31279 0         0 my $repcount = 0;
31280              
31281 0 0       0 Parse::RecDescent::_trace(
31282             q{Trying terminal: [/[^;]*/]},
31283             Parse::RecDescent::_tracefirst($text),
31284             q{SQL_procedure_statement}, $tracelevel
31285             ) if defined $::RD_TRACE;
31286 0         0 $lastsep = "";
31287 0         0 $expectation->is(q{})->at($text);
31288              
31289 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
31290             and $text =~ s/\A(?:[^;]*)//) {
31291              
31292 0         0 $expectation->failed();
31293 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
31294             if defined $::RD_TRACE;
31295              
31296 0         0 last;
31297             }
31298 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
31299             Parse::RecDescent::_tracefirst($text))
31300             if defined $::RD_TRACE;
31301 0         0 push @item, $item{__PATTERN1__} = $&;
31302              
31303 0 0       0 Parse::RecDescent::_trace(
31304             q{Trying terminal: [/(;|\\z)/]},
31305             Parse::RecDescent::_tracefirst($text),
31306             q{SQL_procedure_statement}, $tracelevel
31307             ) if defined $::RD_TRACE;
31308 0         0 $lastsep = "";
31309 0         0 $expectation->is(q{/(;|\\z)/})->at($text);
31310              
31311 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
31312             and $text =~ s/\A(?:(;|\z))//) {
31313              
31314 0         0 $expectation->failed();
31315 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
31316             if defined $::RD_TRACE;
31317              
31318 0         0 last;
31319             }
31320 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
31321             Parse::RecDescent::_tracefirst($text))
31322             if defined $::RD_TRACE;
31323 0         0 push @item, $item{__PATTERN2__} = $&;
31324              
31325 0 0       0 Parse::RecDescent::_trace(
31326             q{Trying action},
31327             Parse::RecDescent::_tracefirst($text),
31328             q{SQL_procedure_statement}, $tracelevel
31329             ) if defined $::RD_TRACE;
31330              
31331 0 0       0 $_tok = ($_noactions) ? 0 : do { $return = $item[1] . $item[2] };
  0         0  
31332 0 0       0 unless (defined $_tok) {
31333 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
31334             if defined $::RD_TRACE;
31335 0         0 last;
31336             }
31337 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])},
31338             Parse::RecDescent::_tracefirst($text))
31339             if defined $::RD_TRACE;
31340 0         0 push @item, $_tok;
31341 0         0 $item{__ACTION1__} = $_tok;
31342              
31343 0 0       0 Parse::RecDescent::_trace(
31344             q{>>Matched production: [/[^;]*/ /(;|\\z)/]<<},
31345             Parse::RecDescent::_tracefirst($text),
31346             q{SQL_procedure_statement}, $tracelevel
31347             ) if defined $::RD_TRACE;
31348 0         0 $_matched = 1;
31349 0         0 last;
31350             }
31351              
31352 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
31353              
31354 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
31355 0 0       0 Parse::RecDescent::_trace(
31356             q{<>},
31357             Parse::RecDescent::_tracefirst($_[1]),
31358             q{SQL_procedure_statement}, $tracelevel
31359             ) if defined $::RD_TRACE;
31360 0         0 return undef;
31361             }
31362 0 0 0     0 if (!defined($return) && defined($score)) {
31363 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{SQL_procedure_statement}, $tracelevel)
31364             if defined $::RD_TRACE;
31365 0         0 $return = $score_return;
31366             }
31367 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
31368 0 0       0 $return = $item[$#item] unless defined $return;
31369 0 0       0 if (defined $::RD_TRACE) {
31370 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
31371             "", q{SQL_procedure_statement}, $tracelevel);
31372 0         0 Parse::RecDescent::_trace(
31373             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
31374             Parse::RecDescent::_tracefirst($text),
31375             , q{SQL_procedure_statement}, $tracelevel
31376             );
31377             }
31378 0         0 $_[1] = $text;
31379 0         0 return $return;
31380             }
31381              
31382             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
31383             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_between {
31384 0     0   0 my $thisparser = $_[0];
31385 1     1   10 use vars q{$tracelevel};
  1         2  
  1         764  
31386 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
31387 0         0 $ERRORS = 0;
31388 0         0 my $thisrule = $thisparser->{"rules"}{"group_between"};
31389              
31390 0 0       0 Parse::RecDescent::_trace(
31391             q{Trying rule: [group_between]},
31392             Parse::RecDescent::_tracefirst($_[1]),
31393             q{group_between}, $tracelevel
31394             ) if defined $::RD_TRACE;
31395              
31396 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
31397              
31398 0         0 my $score;
31399             my $score_return;
31400 0         0 my $_tok;
31401 0         0 my $return = undef;
31402 0         0 my $_matched = 0;
31403 0         0 my $commit = 0;
31404 0         0 my @item = ();
31405 0         0 my %item = ();
31406 0   0     0 my $repeating = defined($_[2]) && $_[2];
31407 0   0     0 my $_noactions = defined($_[3]) && $_[3];
31408 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
31409 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
31410 0         0 my $text;
31411 0         0 my $lastsep = "";
31412 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
31413 0         0 $expectation->at($_[1]);
31414              
31415 0         0 my $thisline;
31416 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
31417              
31418 0   0     0 while (!$_matched && !$commit) {
31419              
31420 0 0       0 Parse::RecDescent::_trace(
31421             q{Trying production: [/BETWEEN/i group_bound1 /AND/i group_bound2]},
31422             Parse::RecDescent::_tracefirst($_[1]),
31423             q{group_between}, $tracelevel
31424             ) if defined $::RD_TRACE;
31425 0         0 my $thisprod = $thisrule->{"prods"}[0];
31426 0         0 $text = $_[1];
31427 0         0 my $_savetext;
31428 0         0 @item = (q{group_between});
31429 0         0 %item = (__RULE__ => q{group_between});
31430 0         0 my $repcount = 0;
31431              
31432 0 0       0 Parse::RecDescent::_trace(
31433             q{Trying terminal: [/BETWEEN/i]},
31434             Parse::RecDescent::_tracefirst($text),
31435             q{group_between}, $tracelevel
31436             ) if defined $::RD_TRACE;
31437 0         0 $lastsep = "";
31438 0         0 $expectation->is(q{})->at($text);
31439              
31440 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
31441             and $text =~ s/\A(?:BETWEEN)//i) {
31442              
31443 0         0 $expectation->failed();
31444 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
31445             if defined $::RD_TRACE;
31446              
31447 0         0 last;
31448             }
31449 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
31450             Parse::RecDescent::_tracefirst($text))
31451             if defined $::RD_TRACE;
31452 0         0 push @item, $item{__PATTERN1__} = $&;
31453              
31454 0 0       0 Parse::RecDescent::_trace(
31455             q{Trying subrule: [group_bound1]},
31456             Parse::RecDescent::_tracefirst($text),
31457             q{group_between}, $tracelevel
31458             ) if defined $::RD_TRACE;
31459 0         0 if (1) {
31460 1     1   11 no strict qw{refs};
  1         2  
  1         480  
31461 0         0 $expectation->is(q{group_bound1})->at($text);
31462 0 0       0 unless (defined(
31463             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_bound1(
31464 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
31465             )
31466             )) {
31467              
31468 0 0       0 Parse::RecDescent::_trace(
31469             q{<>},
31470             Parse::RecDescent::_tracefirst($text),
31471             q{group_between}, $tracelevel
31472             ) if defined $::RD_TRACE;
31473 0         0 $expectation->failed();
31474 0         0 last;
31475             }
31476             Parse::RecDescent::_trace(
31477 0 0       0 q{>>Matched subrule: [group_bound1]<< (return value: [} . $_tok . q{]},
31478              
31479             Parse::RecDescent::_tracefirst($text),
31480             q{group_between},
31481             $tracelevel
31482             ) if defined $::RD_TRACE;
31483 0         0 $item{q{group_bound1}} = $_tok;
31484 0         0 push @item, $_tok;
31485              
31486             }
31487              
31488             Parse::RecDescent::_trace(
31489 0 0       0 q{Trying terminal: [/AND/i]},
31490             Parse::RecDescent::_tracefirst($text),
31491             q{group_between}, $tracelevel
31492             ) if defined $::RD_TRACE;
31493 0         0 $lastsep = "";
31494 0         0 $expectation->is(q{/AND/i})->at($text);
31495              
31496 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
31497             and $text =~ s/\A(?:AND)//i) {
31498              
31499 0         0 $expectation->failed();
31500 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
31501             if defined $::RD_TRACE;
31502              
31503 0         0 last;
31504             }
31505 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
31506             Parse::RecDescent::_tracefirst($text))
31507             if defined $::RD_TRACE;
31508 0         0 push @item, $item{__PATTERN2__} = $&;
31509              
31510 0 0       0 Parse::RecDescent::_trace(
31511             q{Trying subrule: [group_bound2]},
31512             Parse::RecDescent::_tracefirst($text),
31513             q{group_between}, $tracelevel
31514             ) if defined $::RD_TRACE;
31515 0         0 if (1) {
31516 1     1   10 no strict qw{refs};
  1         3  
  1         765  
31517 0         0 $expectation->is(q{group_bound2})->at($text);
31518 0 0       0 unless (defined(
31519             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_bound2(
31520 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
31521             )
31522             )) {
31523              
31524 0 0       0 Parse::RecDescent::_trace(
31525             q{<>},
31526             Parse::RecDescent::_tracefirst($text),
31527             q{group_between}, $tracelevel
31528             ) if defined $::RD_TRACE;
31529 0         0 $expectation->failed();
31530 0         0 last;
31531             }
31532             Parse::RecDescent::_trace(
31533 0 0       0 q{>>Matched subrule: [group_bound2]<< (return value: [} . $_tok . q{]},
31534              
31535             Parse::RecDescent::_tracefirst($text),
31536             q{group_between},
31537             $tracelevel
31538             ) if defined $::RD_TRACE;
31539 0         0 $item{q{group_bound2}} = $_tok;
31540 0         0 push @item, $_tok;
31541              
31542             }
31543              
31544             Parse::RecDescent::_trace(
31545 0 0       0 q{>>Matched production: [/BETWEEN/i group_bound1 /AND/i group_bound2]<<},
31546             Parse::RecDescent::_tracefirst($text),
31547             q{group_between}, $tracelevel
31548             ) if defined $::RD_TRACE;
31549 0         0 $_matched = 1;
31550 0         0 last;
31551             }
31552              
31553 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
31554              
31555 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
31556 0 0       0 Parse::RecDescent::_trace(
31557             q{<>},
31558             Parse::RecDescent::_tracefirst($_[1]),
31559             q{group_between}, $tracelevel
31560             ) if defined $::RD_TRACE;
31561 0         0 return undef;
31562             }
31563 0 0 0     0 if (!defined($return) && defined($score)) {
31564 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{group_between}, $tracelevel)
31565             if defined $::RD_TRACE;
31566 0         0 $return = $score_return;
31567             }
31568 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
31569 0 0       0 $return = $item[$#item] unless defined $return;
31570 0 0       0 if (defined $::RD_TRACE) {
31571 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
31572             "", q{group_between}, $tracelevel);
31573 0         0 Parse::RecDescent::_trace(
31574             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
31575             Parse::RecDescent::_tracefirst($text),
31576             , q{group_between}, $tracelevel
31577             );
31578             }
31579 0         0 $_[1] = $text;
31580 0         0 return $return;
31581             }
31582              
31583             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
31584             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::nextval_expression {
31585 0     0   0 my $thisparser = $_[0];
31586 1     1   12 use vars q{$tracelevel};
  1         3  
  1         728  
31587 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
31588 0         0 $ERRORS = 0;
31589 0         0 my $thisrule = $thisparser->{"rules"}{"nextval_expression"};
31590              
31591 0 0       0 Parse::RecDescent::_trace(
31592             q{Trying rule: [nextval_expression]},
31593             Parse::RecDescent::_tracefirst($_[1]),
31594             q{nextval_expression}, $tracelevel
31595             ) if defined $::RD_TRACE;
31596              
31597 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
31598              
31599 0         0 my $score;
31600             my $score_return;
31601 0         0 my $_tok;
31602 0         0 my $return = undef;
31603 0         0 my $_matched = 0;
31604 0         0 my $commit = 0;
31605 0         0 my @item = ();
31606 0         0 my %item = ();
31607 0   0     0 my $repeating = defined($_[2]) && $_[2];
31608 0   0     0 my $_noactions = defined($_[3]) && $_[3];
31609 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
31610 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
31611 0         0 my $text;
31612 0         0 my $lastsep = "";
31613 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
31614 0         0 $expectation->at($_[1]);
31615              
31616 0         0 my $thisline;
31617 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
31618              
31619 0   0     0 while (!$_matched && !$commit) {
31620              
31621 0 0       0 Parse::RecDescent::_trace(
31622             q{Trying production: [/NEXTVAL\\s+FOR/i sequence_name]},
31623             Parse::RecDescent::_tracefirst($_[1]),
31624             q{nextval_expression}, $tracelevel
31625             ) if defined $::RD_TRACE;
31626 0         0 my $thisprod = $thisrule->{"prods"}[0];
31627 0         0 $text = $_[1];
31628 0         0 my $_savetext;
31629 0         0 @item = (q{nextval_expression});
31630 0         0 %item = (__RULE__ => q{nextval_expression});
31631 0         0 my $repcount = 0;
31632              
31633 0 0       0 Parse::RecDescent::_trace(
31634             q{Trying terminal: [/NEXTVAL\\s+FOR/i]},
31635             Parse::RecDescent::_tracefirst($text),
31636             q{nextval_expression}, $tracelevel
31637             ) if defined $::RD_TRACE;
31638 0         0 $lastsep = "";
31639 0         0 $expectation->is(q{})->at($text);
31640              
31641 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
31642             and $text =~ s/\A(?:NEXTVAL\s+FOR)//i) {
31643              
31644 0         0 $expectation->failed();
31645 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
31646             if defined $::RD_TRACE;
31647              
31648 0         0 last;
31649             }
31650 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
31651             Parse::RecDescent::_tracefirst($text))
31652             if defined $::RD_TRACE;
31653 0         0 push @item, $item{__PATTERN1__} = $&;
31654              
31655 0 0       0 Parse::RecDescent::_trace(
31656             q{Trying subrule: [sequence_name]},
31657             Parse::RecDescent::_tracefirst($text),
31658             q{nextval_expression}, $tracelevel
31659             ) if defined $::RD_TRACE;
31660 0         0 if (1) {
31661 1     1   11 no strict qw{refs};
  1         2  
  1         657  
31662 0         0 $expectation->is(q{sequence_name})->at($text);
31663 0 0       0 unless (defined(
31664             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sequence_name(
31665 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
31666             )
31667             )) {
31668              
31669 0 0       0 Parse::RecDescent::_trace(
31670             q{<>},
31671             Parse::RecDescent::_tracefirst($text),
31672             q{nextval_expression}, $tracelevel
31673             ) if defined $::RD_TRACE;
31674 0         0 $expectation->failed();
31675 0         0 last;
31676             }
31677             Parse::RecDescent::_trace(
31678 0 0       0 q{>>Matched subrule: [sequence_name]<< (return value: [} . $_tok . q{]},
31679              
31680             Parse::RecDescent::_tracefirst($text),
31681             q{nextval_expression},
31682             $tracelevel
31683             ) if defined $::RD_TRACE;
31684 0         0 $item{q{sequence_name}} = $_tok;
31685 0         0 push @item, $_tok;
31686              
31687             }
31688              
31689             Parse::RecDescent::_trace(
31690 0 0       0 q{>>Matched production: [/NEXTVAL\\s+FOR/i sequence_name]<<},
31691             Parse::RecDescent::_tracefirst($text),
31692             q{nextval_expression}, $tracelevel
31693             ) if defined $::RD_TRACE;
31694 0         0 $_matched = 1;
31695 0         0 last;
31696             }
31697              
31698 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
31699              
31700 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
31701 0 0       0 Parse::RecDescent::_trace(
31702             q{<>},
31703             Parse::RecDescent::_tracefirst($_[1]),
31704             q{nextval_expression}, $tracelevel
31705             ) if defined $::RD_TRACE;
31706 0         0 return undef;
31707             }
31708 0 0 0     0 if (!defined($return) && defined($score)) {
31709 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{nextval_expression}, $tracelevel)
31710             if defined $::RD_TRACE;
31711 0         0 $return = $score_return;
31712             }
31713 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
31714 0 0       0 $return = $item[$#item] unless defined $return;
31715 0 0       0 if (defined $::RD_TRACE) {
31716 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
31717             "", q{nextval_expression}, $tracelevel);
31718 0         0 Parse::RecDescent::_trace(
31719             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
31720             Parse::RecDescent::_tracefirst($text),
31721             , q{nextval_expression}, $tracelevel
31722             );
31723             }
31724 0         0 $_[1] = $text;
31725 0         0 return $return;
31726             }
31727              
31728             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
31729             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::desc_option {
31730 0     0   0 my $thisparser = $_[0];
31731 1     1   11 use vars q{$tracelevel};
  1         5  
  1         1404  
31732 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
31733 0         0 $ERRORS = 0;
31734 0         0 my $thisrule = $thisparser->{"rules"}{"desc_option"};
31735              
31736 0 0       0 Parse::RecDescent::_trace(
31737             q{Trying rule: [desc_option]},
31738             Parse::RecDescent::_tracefirst($_[1]),
31739             q{desc_option}, $tracelevel
31740             ) if defined $::RD_TRACE;
31741              
31742 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
31743              
31744 0         0 my $score;
31745             my $score_return;
31746 0         0 my $_tok;
31747 0         0 my $return = undef;
31748 0         0 my $_matched = 0;
31749 0         0 my $commit = 0;
31750 0         0 my @item = ();
31751 0         0 my %item = ();
31752 0   0     0 my $repeating = defined($_[2]) && $_[2];
31753 0   0     0 my $_noactions = defined($_[3]) && $_[3];
31754 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
31755 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
31756 0         0 my $text;
31757 0         0 my $lastsep = "";
31758 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
31759 0         0 $expectation->at($_[1]);
31760              
31761 0         0 my $thisline;
31762 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
31763              
31764 0   0     0 while (!$_matched && !$commit) {
31765              
31766 0 0       0 Parse::RecDescent::_trace(
31767             q{Trying production: [/DESC/i /NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]},
31768             Parse::RecDescent::_tracefirst($_[1]),
31769             q{desc_option}, $tracelevel
31770             ) if defined $::RD_TRACE;
31771 0         0 my $thisprod = $thisrule->{"prods"}[0];
31772 0         0 $text = $_[1];
31773 0         0 my $_savetext;
31774 0         0 @item = (q{desc_option});
31775 0         0 %item = (__RULE__ => q{desc_option});
31776 0         0 my $repcount = 0;
31777              
31778 0 0       0 Parse::RecDescent::_trace(
31779             q{Trying terminal: [/DESC/i]},
31780             Parse::RecDescent::_tracefirst($text),
31781             q{desc_option}, $tracelevel
31782             ) if defined $::RD_TRACE;
31783 0         0 $lastsep = "";
31784 0         0 $expectation->is(q{})->at($text);
31785              
31786 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
31787             and $text =~ s/\A(?:DESC)//i) {
31788              
31789 0         0 $expectation->failed();
31790 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
31791             if defined $::RD_TRACE;
31792              
31793 0         0 last;
31794             }
31795 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
31796             Parse::RecDescent::_tracefirst($text))
31797             if defined $::RD_TRACE;
31798 0         0 push @item, $item{__PATTERN1__} = $&;
31799              
31800 0 0       0 Parse::RecDescent::_trace(
31801             q{Trying repeated subrule: [/NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]},
31802             Parse::RecDescent::_tracefirst($text),
31803             q{desc_option}, $tracelevel
31804             ) if defined $::RD_TRACE;
31805 0         0 $expectation->is(q{/NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i})
31806             ->at($text);
31807              
31808 0 0       0 unless (defined(
31809             $_tok = $thisparser->_parserepeat(
31810             $text,
31811             \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_desc_option,
31812             0,
31813             1,
31814             $_noactions,
31815             $expectation,
31816             undef
31817             )
31818             )) {
31819 0 0       0 Parse::RecDescent::_trace(
31820             q{<>},
31821             Parse::RecDescent::_tracefirst($text),
31822             q{desc_option}, $tracelevel
31823             ) if defined $::RD_TRACE;
31824 0         0 last;
31825             }
31826             Parse::RecDescent::_trace(
31827 0 0       0 q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_desc_option]<< (}
31828             . @$_tok
31829             . q{ times)},
31830              
31831             Parse::RecDescent::_tracefirst($text),
31832             q{desc_option},
31833             $tracelevel
31834             ) if defined $::RD_TRACE;
31835 0         0 $item{q{_alternation_1_of_production_1_of_rule_desc_option(?)}} = $_tok;
31836 0         0 push @item, $_tok;
31837              
31838 0 0       0 Parse::RecDescent::_trace(
31839             q{>>Matched production: [/DESC/i /NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]<<},
31840             Parse::RecDescent::_tracefirst($text),
31841             q{desc_option}, $tracelevel
31842             ) if defined $::RD_TRACE;
31843 0         0 $_matched = 1;
31844 0         0 last;
31845             }
31846              
31847 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
31848              
31849 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
31850 0 0       0 Parse::RecDescent::_trace(
31851             q{<>},
31852             Parse::RecDescent::_tracefirst($_[1]),
31853             q{desc_option}, $tracelevel
31854             ) if defined $::RD_TRACE;
31855 0         0 return undef;
31856             }
31857 0 0 0     0 if (!defined($return) && defined($score)) {
31858 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{desc_option}, $tracelevel)
31859             if defined $::RD_TRACE;
31860 0         0 $return = $score_return;
31861             }
31862 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
31863 0 0       0 $return = $item[$#item] unless defined $return;
31864 0 0       0 if (defined $::RD_TRACE) {
31865 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{desc_option},
31866             $tracelevel);
31867 0         0 Parse::RecDescent::_trace(
31868             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
31869             Parse::RecDescent::_tracefirst($text),
31870             , q{desc_option}, $tracelevel
31871             );
31872             }
31873 0         0 $_[1] = $text;
31874 0         0 return $return;
31875             }
31876              
31877             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
31878             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_list {
31879 0     0   0 my $thisparser = $_[0];
31880 1     1   12 use vars q{$tracelevel};
  1         3  
  1         717  
31881 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
31882 0         0 $ERRORS = 0;
31883 0         0 my $thisrule = $thisparser->{"rules"}{"column_list"};
31884              
31885 0 0       0 Parse::RecDescent::_trace(
31886             q{Trying rule: [column_list]},
31887             Parse::RecDescent::_tracefirst($_[1]),
31888             q{column_list}, $tracelevel
31889             ) if defined $::RD_TRACE;
31890              
31891 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
31892              
31893 0         0 my $score;
31894             my $score_return;
31895 0         0 my $_tok;
31896 0         0 my $return = undef;
31897 0         0 my $_matched = 0;
31898 0         0 my $commit = 0;
31899 0         0 my @item = ();
31900 0         0 my %item = ();
31901 0   0     0 my $repeating = defined($_[2]) && $_[2];
31902 0   0     0 my $_noactions = defined($_[3]) && $_[3];
31903 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
31904 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
31905 0         0 my $text;
31906 0         0 my $lastsep = "";
31907 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
31908 0         0 $expectation->at($_[1]);
31909              
31910 0         0 my $thisline;
31911 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
31912              
31913 0   0     0 while (!$_matched && !$commit) {
31914              
31915 0 0       0 Parse::RecDescent::_trace(
31916             q{Trying production: ['(' ')']},
31917             Parse::RecDescent::_tracefirst($_[1]),
31918             q{column_list}, $tracelevel
31919             ) if defined $::RD_TRACE;
31920 0         0 my $thisprod = $thisrule->{"prods"}[0];
31921 0         0 $text = $_[1];
31922 0         0 my $_savetext;
31923 0         0 @item = (q{column_list});
31924 0         0 %item = (__RULE__ => q{column_list});
31925 0         0 my $repcount = 0;
31926              
31927 0 0       0 Parse::RecDescent::_trace(
31928             q{Trying terminal: ['(']},
31929             Parse::RecDescent::_tracefirst($text),
31930             q{column_list}, $tracelevel
31931             ) if defined $::RD_TRACE;
31932 0         0 $lastsep = "";
31933 0         0 $expectation->is(q{})->at($text);
31934              
31935 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
31936             and $text =~ s/\A\(//) {
31937              
31938 0         0 $expectation->failed();
31939 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
31940             if defined $::RD_TRACE;
31941 0         0 last;
31942             }
31943 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
31944             Parse::RecDescent::_tracefirst($text))
31945             if defined $::RD_TRACE;
31946 0         0 push @item, $item{__STRING1__} = $&;
31947              
31948 0 0       0 Parse::RecDescent::_trace(
31949             q{Trying operator: []},
31950             Parse::RecDescent::_tracefirst($text),
31951             q{column_list}, $tracelevel
31952             ) if defined $::RD_TRACE;
31953 0         0 $expectation->is(q{})
31954             ->at($text);
31955              
31956 0         0 $_tok = undef;
31957 0         0 OPLOOP: while (1) {
31958 0         0 $repcount = 0;
31959 0         0 my @item;
31960              
31961             # MATCH LEFTARG
31962              
31963 0 0       0 Parse::RecDescent::_trace(
31964             q{Trying subrule: [column_name]},
31965             Parse::RecDescent::_tracefirst($text),
31966             q{column_list}, $tracelevel
31967             ) if defined $::RD_TRACE;
31968 0         0 if (1) {
31969 1     1   10 no strict qw{refs};
  1         2  
  1         579  
31970 0         0 $expectation->is(q{column_name})->at($text);
31971 0 0       0 unless (defined(
31972             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name(
31973 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
31974             )
31975             )) {
31976              
31977 0 0       0 Parse::RecDescent::_trace(
31978             q{<>},
31979             Parse::RecDescent::_tracefirst($text),
31980             q{column_list}, $tracelevel
31981             ) if defined $::RD_TRACE;
31982 0         0 $expectation->failed();
31983 0         0 last;
31984             }
31985             Parse::RecDescent::_trace(
31986 0 0       0 q{>>Matched subrule: [column_name]<< (return value: [} . $_tok . q{]},
31987              
31988             Parse::RecDescent::_tracefirst($text),
31989             q{column_list},
31990             $tracelevel
31991             ) if defined $::RD_TRACE;
31992 0         0 $item{q{column_name}} = $_tok;
31993 0         0 push @item, $_tok;
31994              
31995             }
31996              
31997 0         0 $repcount++;
31998              
31999 0         0 my $savetext = $text;
32000 0         0 my $backtrack;
32001              
32002             # MATCH (OP RIGHTARG)(s)
32003 0         0 while ($repcount < 100000000) {
32004 0         0 $backtrack = 0;
32005              
32006 0 0       0 Parse::RecDescent::_trace(
32007             q{Trying terminal: [/,/]},
32008             Parse::RecDescent::_tracefirst($text),
32009             q{column_list}, $tracelevel
32010             ) if defined $::RD_TRACE;
32011 0         0 $lastsep = "";
32012 0         0 $expectation->is(q{/,/})->at($text);
32013              
32014 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
32015             and $text =~ s/\A(?:,)//) {
32016              
32017 0         0 $expectation->failed();
32018 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
32019             if defined $::RD_TRACE;
32020              
32021 0         0 last;
32022             }
32023 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
32024             Parse::RecDescent::_tracefirst($text))
32025             if defined $::RD_TRACE;
32026 0         0 push @item, $item{__PATTERN1__} = $&;
32027              
32028 0         0 pop @item;
32029 0 0       0 if (defined $1) {
32030 0         0 push @item, $item{'column_name(s)'} = $1;
32031 0         0 $backtrack = 1;
32032             }
32033              
32034             Parse::RecDescent::_trace(
32035 0 0       0 q{Trying subrule: [column_name]},
32036             Parse::RecDescent::_tracefirst($text),
32037             q{column_list}, $tracelevel
32038             ) if defined $::RD_TRACE;
32039 0         0 if (1) {
32040 1     1   11 no strict qw{refs};
  1         3  
  1         1300  
32041 0         0 $expectation->is(q{column_name})->at($text);
32042 0 0       0 unless (defined(
32043             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name(
32044 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
32045             )
32046             )) {
32047              
32048 0 0       0 Parse::RecDescent::_trace(
32049             q{<>},
32050             Parse::RecDescent::_tracefirst($text),
32051             q{column_list}, $tracelevel
32052             ) if defined $::RD_TRACE;
32053 0         0 $expectation->failed();
32054 0         0 last;
32055             }
32056             Parse::RecDescent::_trace(
32057 0 0       0 q{>>Matched subrule: [column_name]<< (return value: [} . $_tok . q{]},
32058              
32059             Parse::RecDescent::_tracefirst($text),
32060             q{column_list},
32061             $tracelevel
32062             ) if defined $::RD_TRACE;
32063 0         0 $item{q{column_name}} = $_tok;
32064 0         0 push @item, $_tok;
32065              
32066             }
32067              
32068 0         0 $savetext = $text;
32069 0         0 $repcount++;
32070             }
32071 0         0 $text = $savetext;
32072 0 0       0 pop @item if $backtrack;
32073              
32074 0 0       0 unless (@item) { undef $_tok; last }
  0         0  
  0         0  
32075 0         0 $_tok = [@item];
32076 0         0 last;
32077             }
32078              
32079 0 0       0 unless ($repcount >= 1) {
32080 0 0       0 Parse::RecDescent::_trace(
32081             q{<]>>},
32082             Parse::RecDescent::_tracefirst($text),
32083             q{column_list}, $tracelevel
32084             ) if defined $::RD_TRACE;
32085 0         0 $expectation->failed();
32086 0         0 last;
32087             }
32088             Parse::RecDescent::_trace(
32089 0 0       0 q{>>Matched operator: []<< (return value: [} . qq{@{$_tok||[]}} . q{]},
  0 0       0  
32090             Parse::RecDescent::_tracefirst($text), q{column_list}, $tracelevel
32091             ) if defined $::RD_TRACE;
32092              
32093 0   0     0 push @item, $item{'column_name(s)'} = $_tok || [];
32094              
32095 0 0       0 Parse::RecDescent::_trace(
32096             q{Trying terminal: [')']},
32097             Parse::RecDescent::_tracefirst($text),
32098             q{column_list}, $tracelevel
32099             ) if defined $::RD_TRACE;
32100 0         0 $lastsep = "";
32101 0         0 $expectation->is(q{')'})->at($text);
32102              
32103 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
32104             and $text =~ s/\A\)//) {
32105              
32106 0         0 $expectation->failed();
32107 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
32108             if defined $::RD_TRACE;
32109 0         0 last;
32110             }
32111 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
32112             Parse::RecDescent::_tracefirst($text))
32113             if defined $::RD_TRACE;
32114 0         0 push @item, $item{__STRING2__} = $&;
32115              
32116 0 0       0 Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{column_list}, $tracelevel)
32117             if defined $::RD_TRACE;
32118              
32119 0 0       0 $_tok = ($_noactions) ? 0 : do {
32120 0         0 $return = join(' ', '(', @{ $item[2] }, ')');
  0         0  
32121             };
32122 0 0       0 unless (defined $_tok) {
32123 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
32124             if defined $::RD_TRACE;
32125 0         0 last;
32126             }
32127 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])},
32128             Parse::RecDescent::_tracefirst($text))
32129             if defined $::RD_TRACE;
32130 0         0 push @item, $_tok;
32131 0         0 $item{__ACTION1__} = $_tok;
32132              
32133 0 0       0 Parse::RecDescent::_trace(
32134             q{>>Matched production: ['(' ')']<<},
32135             Parse::RecDescent::_tracefirst($text),
32136             q{column_list}, $tracelevel
32137             ) if defined $::RD_TRACE;
32138 0         0 $_matched = 1;
32139 0         0 last;
32140             }
32141              
32142 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
32143              
32144 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
32145 0 0       0 Parse::RecDescent::_trace(
32146             q{<>},
32147             Parse::RecDescent::_tracefirst($_[1]),
32148             q{column_list}, $tracelevel
32149             ) if defined $::RD_TRACE;
32150 0         0 return undef;
32151             }
32152 0 0 0     0 if (!defined($return) && defined($score)) {
32153 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{column_list}, $tracelevel)
32154             if defined $::RD_TRACE;
32155 0         0 $return = $score_return;
32156             }
32157 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
32158 0 0       0 $return = $item[$#item] unless defined $return;
32159 0 0       0 if (defined $::RD_TRACE) {
32160 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{column_list},
32161             $tracelevel);
32162 0         0 Parse::RecDescent::_trace(
32163             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
32164             Parse::RecDescent::_tracefirst($text),
32165             , q{column_list}, $tracelevel
32166             );
32167             }
32168 0         0 $_[1] = $text;
32169 0         0 return $return;
32170             }
32171              
32172             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
32173             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_63_of_rule_sysibm_function
32174             {
32175 0     0   0 my $thisparser = $_[0];
32176 1     1   11 use vars q{$tracelevel};
  1         5  
  1         1548  
32177 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
32178 0         0 $ERRORS = 0;
32179 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_63_of_rule_sysibm_function"};
32180              
32181 0 0       0 Parse::RecDescent::_trace(
32182             q{Trying rule: [_alternation_1_of_production_63_of_rule_sysibm_function]},
32183             Parse::RecDescent::_tracefirst($_[1]),
32184             q{_alternation_1_of_production_63_of_rule_sysibm_function}, $tracelevel
32185             ) if defined $::RD_TRACE;
32186              
32187 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
32188              
32189 0         0 my $score;
32190             my $score_return;
32191 0         0 my $_tok;
32192 0         0 my $return = undef;
32193 0         0 my $_matched = 0;
32194 0         0 my $commit = 0;
32195 0         0 my @item = ();
32196 0         0 my %item = ();
32197 0   0     0 my $repeating = defined($_[2]) && $_[2];
32198 0   0     0 my $_noactions = defined($_[3]) && $_[3];
32199 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
32200 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
32201 0         0 my $text;
32202 0         0 my $lastsep = "";
32203 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
32204 0         0 $expectation->at($_[1]);
32205              
32206 0         0 my $thisline;
32207 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
32208              
32209 0   0     0 while (!$_matched && !$commit) {
32210              
32211 0 0       0 Parse::RecDescent::_trace(
32212             q{Trying production: [/REGR_INTERCEPT/i]},
32213             Parse::RecDescent::_tracefirst($_[1]),
32214             q{_alternation_1_of_production_63_of_rule_sysibm_function}, $tracelevel
32215             ) if defined $::RD_TRACE;
32216 0         0 my $thisprod = $thisrule->{"prods"}[0];
32217 0         0 $text = $_[1];
32218 0         0 my $_savetext;
32219 0         0 @item = (q{_alternation_1_of_production_63_of_rule_sysibm_function});
32220 0         0 %item = (__RULE__ => q{_alternation_1_of_production_63_of_rule_sysibm_function});
32221 0         0 my $repcount = 0;
32222              
32223 0 0       0 Parse::RecDescent::_trace(
32224             q{Trying terminal: [/REGR_INTERCEPT/i]},
32225             Parse::RecDescent::_tracefirst($text),
32226             q{_alternation_1_of_production_63_of_rule_sysibm_function}, $tracelevel
32227             ) if defined $::RD_TRACE;
32228 0         0 $lastsep = "";
32229 0         0 $expectation->is(q{})->at($text);
32230              
32231 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
32232             and $text =~ s/\A(?:REGR_INTERCEPT)//i) {
32233              
32234 0         0 $expectation->failed();
32235 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
32236             if defined $::RD_TRACE;
32237              
32238 0         0 last;
32239             }
32240 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
32241             Parse::RecDescent::_tracefirst($text))
32242             if defined $::RD_TRACE;
32243 0         0 push @item, $item{__PATTERN1__} = $&;
32244              
32245 0 0       0 Parse::RecDescent::_trace(
32246             q{>>Matched production: [/REGR_INTERCEPT/i]<<},
32247             Parse::RecDescent::_tracefirst($text),
32248             q{_alternation_1_of_production_63_of_rule_sysibm_function}, $tracelevel
32249             ) if defined $::RD_TRACE;
32250 0         0 $_matched = 1;
32251 0         0 last;
32252             }
32253              
32254 0   0     0 while (!$_matched && !$commit) {
32255              
32256 0 0       0 Parse::RecDescent::_trace(
32257             q{Trying production: [/REGR_ICPT/i]},
32258             Parse::RecDescent::_tracefirst($_[1]),
32259             q{_alternation_1_of_production_63_of_rule_sysibm_function}, $tracelevel
32260             ) if defined $::RD_TRACE;
32261 0         0 my $thisprod = $thisrule->{"prods"}[1];
32262 0         0 $text = $_[1];
32263 0         0 my $_savetext;
32264 0         0 @item = (q{_alternation_1_of_production_63_of_rule_sysibm_function});
32265 0         0 %item = (__RULE__ => q{_alternation_1_of_production_63_of_rule_sysibm_function});
32266 0         0 my $repcount = 0;
32267              
32268 0 0       0 Parse::RecDescent::_trace(
32269             q{Trying terminal: [/REGR_ICPT/i]},
32270             Parse::RecDescent::_tracefirst($text),
32271             q{_alternation_1_of_production_63_of_rule_sysibm_function}, $tracelevel
32272             ) if defined $::RD_TRACE;
32273 0         0 $lastsep = "";
32274 0         0 $expectation->is(q{})->at($text);
32275              
32276 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
32277             and $text =~ s/\A(?:REGR_ICPT)//i) {
32278              
32279 0         0 $expectation->failed();
32280 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
32281             if defined $::RD_TRACE;
32282              
32283 0         0 last;
32284             }
32285 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
32286             Parse::RecDescent::_tracefirst($text))
32287             if defined $::RD_TRACE;
32288 0         0 push @item, $item{__PATTERN1__} = $&;
32289              
32290 0 0       0 Parse::RecDescent::_trace(
32291             q{>>Matched production: [/REGR_ICPT/i]<<},
32292             Parse::RecDescent::_tracefirst($text),
32293             q{_alternation_1_of_production_63_of_rule_sysibm_function}, $tracelevel
32294             ) if defined $::RD_TRACE;
32295 0         0 $_matched = 1;
32296 0         0 last;
32297             }
32298              
32299 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
32300              
32301 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
32302 0 0       0 Parse::RecDescent::_trace(
32303             q{<>},
32304             Parse::RecDescent::_tracefirst($_[1]),
32305             q{_alternation_1_of_production_63_of_rule_sysibm_function}, $tracelevel
32306             ) if defined $::RD_TRACE;
32307 0         0 return undef;
32308             }
32309 0 0 0     0 if (!defined($return) && defined($score)) {
32310 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<},
32311             "", q{_alternation_1_of_production_63_of_rule_sysibm_function}, $tracelevel)
32312             if defined $::RD_TRACE;
32313 0         0 $return = $score_return;
32314             }
32315 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
32316 0 0       0 $return = $item[$#item] unless defined $return;
32317 0 0       0 if (defined $::RD_TRACE) {
32318 0         0 Parse::RecDescent::_trace(
32319             q{>>Matched rule<< (return value: [} . $return . q{])}, "",
32320             q{_alternation_1_of_production_63_of_rule_sysibm_function}, $tracelevel
32321             );
32322 0         0 Parse::RecDescent::_trace(
32323             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
32324             Parse::RecDescent::_tracefirst($text),
32325             , q{_alternation_1_of_production_63_of_rule_sysibm_function}, $tracelevel
32326             );
32327             }
32328 0         0 $_[1] = $text;
32329 0         0 return $return;
32330             }
32331              
32332             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
32333             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::dereference_operation {
32334 0     0   0 my $thisparser = $_[0];
32335 1     1   11 use vars q{$tracelevel};
  1         2  
  1         539  
32336 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
32337 0         0 $ERRORS = 0;
32338 0         0 my $thisrule = $thisparser->{"rules"}{"dereference_operation"};
32339              
32340 0 0       0 Parse::RecDescent::_trace(
32341             q{Trying rule: [dereference_operation]},
32342             Parse::RecDescent::_tracefirst($_[1]),
32343             q{dereference_operation}, $tracelevel
32344             ) if defined $::RD_TRACE;
32345              
32346 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
32347              
32348 0         0 my $score;
32349             my $score_return;
32350 0         0 my $_tok;
32351 0         0 my $return = undef;
32352 0         0 my $_matched = 0;
32353 0         0 my $commit = 0;
32354 0         0 my @item = ();
32355 0         0 my %item = ();
32356 0   0     0 my $repeating = defined($_[2]) && $_[2];
32357 0   0     0 my $_noactions = defined($_[3]) && $_[3];
32358 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
32359 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
32360 0         0 my $text;
32361 0         0 my $lastsep = "";
32362 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
32363 0         0 $expectation->at($_[1]);
32364              
32365 0         0 my $thisline;
32366 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
32367              
32368 0   0     0 while (!$_matched && !$commit) {
32369              
32370 0 0       0 Parse::RecDescent::_trace(
32371             q{Trying production: [scoped_reference_expression '->' name1 '(']},
32372             Parse::RecDescent::_tracefirst($_[1]),
32373             q{dereference_operation}, $tracelevel
32374             ) if defined $::RD_TRACE;
32375 0         0 my $thisprod = $thisrule->{"prods"}[0];
32376 0         0 $text = $_[1];
32377 0         0 my $_savetext;
32378 0         0 @item = (q{dereference_operation});
32379 0         0 %item = (__RULE__ => q{dereference_operation});
32380 0         0 my $repcount = 0;
32381              
32382 0 0       0 Parse::RecDescent::_trace(
32383             q{Trying subrule: [scoped_reference_expression]},
32384             Parse::RecDescent::_tracefirst($text),
32385             q{dereference_operation}, $tracelevel
32386             ) if defined $::RD_TRACE;
32387 0         0 if (1) {
32388 1     1   11 no strict qw{refs};
  1         2  
  1         524  
32389 0         0 $expectation->is(q{})->at($text);
32390 0 0       0 unless (defined(
32391             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::scoped_reference_expression(
32392 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
32393             )
32394             )) {
32395              
32396 0 0       0 Parse::RecDescent::_trace(
32397             q{<>},
32398             Parse::RecDescent::_tracefirst($text),
32399             q{dereference_operation}, $tracelevel
32400             ) if defined $::RD_TRACE;
32401 0         0 $expectation->failed();
32402 0         0 last;
32403             }
32404             Parse::RecDescent::_trace(
32405 0 0       0 q{>>Matched subrule: [scoped_reference_expression]<< (return value: [} . $_tok . q{]},
32406              
32407             Parse::RecDescent::_tracefirst($text),
32408             q{dereference_operation},
32409             $tracelevel
32410             ) if defined $::RD_TRACE;
32411 0         0 $item{q{scoped_reference_expression}} = $_tok;
32412 0         0 push @item, $_tok;
32413              
32414             }
32415              
32416             Parse::RecDescent::_trace(
32417 0 0       0 q{Trying terminal: ['->']},
32418             Parse::RecDescent::_tracefirst($text),
32419             q{dereference_operation}, $tracelevel
32420             ) if defined $::RD_TRACE;
32421 0         0 $lastsep = "";
32422 0         0 $expectation->is(q{'->'})->at($text);
32423              
32424 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
32425             and $text =~ s/\A\-\>//) {
32426              
32427 0         0 $expectation->failed();
32428 0 0       0 Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text))
32429             if defined $::RD_TRACE;
32430 0         0 last;
32431             }
32432 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
32433             Parse::RecDescent::_tracefirst($text))
32434             if defined $::RD_TRACE;
32435 0         0 push @item, $item{__STRING1__} = $&;
32436              
32437 0 0       0 Parse::RecDescent::_trace(
32438             q{Trying subrule: [name1]},
32439             Parse::RecDescent::_tracefirst($text),
32440             q{dereference_operation}, $tracelevel
32441             ) if defined $::RD_TRACE;
32442 0         0 if (1) {
32443 1     1   11 no strict qw{refs};
  1         4  
  1         905  
32444 0         0 $expectation->is(q{name1})->at($text);
32445 0 0       0 unless (defined(
32446             $_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::name1(
32447 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
32448             )
32449             )) {
32450              
32451 0 0       0 Parse::RecDescent::_trace(
32452             q{<>},
32453             Parse::RecDescent::_tracefirst($text),
32454             q{dereference_operation}, $tracelevel
32455             ) if defined $::RD_TRACE;
32456 0         0 $expectation->failed();
32457 0         0 last;
32458             }
32459             Parse::RecDescent::_trace(
32460 0 0       0 q{>>Matched subrule: [name1]<< (return value: [} . $_tok . q{]},
32461              
32462             Parse::RecDescent::_tracefirst($text),
32463             q{dereference_operation},
32464             $tracelevel
32465             ) if defined $::RD_TRACE;
32466 0         0 $item{q{name1}} = $_tok;
32467 0         0 push @item, $_tok;
32468              
32469             }
32470              
32471             Parse::RecDescent::_trace(
32472 0 0       0 q{Trying repeated subrule: ['(']},
32473             Parse::RecDescent::_tracefirst($text),
32474             q{dereference_operation}, $tracelevel
32475             ) if defined $::RD_TRACE;
32476 0         0 $expectation->is(q{'('})->at($text);
32477              
32478 0 0       0 unless (defined(
32479             $_tok = $thisparser->_parserepeat(
32480             $text,
32481             \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_dereference_operation,
32482             0,
32483             1,
32484             $_noactions,
32485             $expectation,
32486             undef
32487             )
32488             )) {
32489 0 0       0 Parse::RecDescent::_trace(
32490             q{<>},
32491             Parse::RecDescent::_tracefirst($text),
32492             q{dereference_operation}, $tracelevel
32493             ) if defined $::RD_TRACE;
32494 0         0 last;
32495             }
32496             Parse::RecDescent::_trace(
32497 0 0       0 q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_dereference_operation]<< (}
32498             . @$_tok
32499             . q{ times)},
32500              
32501             Parse::RecDescent::_tracefirst($text),
32502             q{dereference_operation},
32503             $tracelevel
32504             ) if defined $::RD_TRACE;
32505 0         0 $item{q{_alternation_1_of_production_1_of_rule_dereference_operation(?)}} = $_tok;
32506 0         0 push @item, $_tok;
32507              
32508 0 0       0 Parse::RecDescent::_trace(
32509             q{>>Matched production: [scoped_reference_expression '->' name1 '(']<<},
32510             Parse::RecDescent::_tracefirst($text),
32511             q{dereference_operation}, $tracelevel
32512             ) if defined $::RD_TRACE;
32513 0         0 $_matched = 1;
32514 0         0 last;
32515             }
32516              
32517 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
32518              
32519 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
32520 0 0       0 Parse::RecDescent::_trace(
32521             q{<>},
32522             Parse::RecDescent::_tracefirst($_[1]),
32523             q{dereference_operation}, $tracelevel
32524             ) if defined $::RD_TRACE;
32525 0         0 return undef;
32526             }
32527 0 0 0     0 if (!defined($return) && defined($score)) {
32528 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{dereference_operation}, $tracelevel)
32529             if defined $::RD_TRACE;
32530 0         0 $return = $score_return;
32531             }
32532 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
32533 0 0       0 $return = $item[$#item] unless defined $return;
32534 0 0       0 if (defined $::RD_TRACE) {
32535 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
32536             "", q{dereference_operation}, $tracelevel);
32537 0         0 Parse::RecDescent::_trace(
32538             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
32539             Parse::RecDescent::_tracefirst($text),
32540             , q{dereference_operation}, $tracelevel
32541             );
32542             }
32543 0         0 $_[1] = $text;
32544 0         0 return $return;
32545             }
32546              
32547             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
32548             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::OUTER {
32549 0     0   0 my $thisparser = $_[0];
32550 1     1   10 use vars q{$tracelevel};
  1         2  
  1         1160  
32551 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
32552 0         0 $ERRORS = 0;
32553 0         0 my $thisrule = $thisparser->{"rules"}{"OUTER"};
32554              
32555 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [OUTER]}, Parse::RecDescent::_tracefirst($_[1]), q{OUTER}, $tracelevel)
32556             if defined $::RD_TRACE;
32557              
32558 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
32559              
32560 0         0 my $score;
32561             my $score_return;
32562 0         0 my $_tok;
32563 0         0 my $return = undef;
32564 0         0 my $_matched = 0;
32565 0         0 my $commit = 0;
32566 0         0 my @item = ();
32567 0         0 my %item = ();
32568 0   0     0 my $repeating = defined($_[2]) && $_[2];
32569 0   0     0 my $_noactions = defined($_[3]) && $_[3];
32570 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
32571 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
32572 0         0 my $text;
32573 0         0 my $lastsep = "";
32574 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
32575 0         0 $expectation->at($_[1]);
32576              
32577 0         0 my $thisline;
32578 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
32579              
32580 0   0     0 while (!$_matched && !$commit) {
32581              
32582 0 0       0 Parse::RecDescent::_trace(
32583             q{Trying production: [/outer/i]},
32584             Parse::RecDescent::_tracefirst($_[1]),
32585             q{OUTER}, $tracelevel
32586             ) if defined $::RD_TRACE;
32587 0         0 my $thisprod = $thisrule->{"prods"}[0];
32588 0         0 $text = $_[1];
32589 0         0 my $_savetext;
32590 0         0 @item = (q{OUTER});
32591 0         0 %item = (__RULE__ => q{OUTER});
32592 0         0 my $repcount = 0;
32593              
32594 0 0       0 Parse::RecDescent::_trace(
32595             q{Trying terminal: [/outer/i]},
32596             Parse::RecDescent::_tracefirst($text),
32597             q{OUTER}, $tracelevel
32598             ) if defined $::RD_TRACE;
32599 0         0 $lastsep = "";
32600 0         0 $expectation->is(q{})->at($text);
32601              
32602 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
32603             and $text =~ s/\A(?:outer)//i) {
32604              
32605 0         0 $expectation->failed();
32606 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
32607             if defined $::RD_TRACE;
32608              
32609 0         0 last;
32610             }
32611 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
32612             Parse::RecDescent::_tracefirst($text))
32613             if defined $::RD_TRACE;
32614 0         0 push @item, $item{__PATTERN1__} = $&;
32615              
32616 0 0       0 Parse::RecDescent::_trace(
32617             q{>>Matched production: [/outer/i]<<},
32618             Parse::RecDescent::_tracefirst($text),
32619             q{OUTER}, $tracelevel
32620             ) if defined $::RD_TRACE;
32621 0         0 $_matched = 1;
32622 0         0 last;
32623             }
32624              
32625 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
32626              
32627 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
32628 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{OUTER}, $tracelevel)
32629             if defined $::RD_TRACE;
32630 0         0 return undef;
32631             }
32632 0 0 0     0 if (!defined($return) && defined($score)) {
32633 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{OUTER}, $tracelevel)
32634             if defined $::RD_TRACE;
32635 0         0 $return = $score_return;
32636             }
32637 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
32638 0 0       0 $return = $item[$#item] unless defined $return;
32639 0 0       0 if (defined $::RD_TRACE) {
32640 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{OUTER}, $tracelevel);
32641 0         0 Parse::RecDescent::_trace(
32642             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
32643             Parse::RecDescent::_tracefirst($text),
32644             , q{OUTER}, $tracelevel
32645             );
32646             }
32647 0         0 $_[1] = $text;
32648 0         0 return $return;
32649             }
32650              
32651             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
32652             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_order_clause {
32653 0     0   0 my $thisparser = $_[0];
32654 1     1   10 use vars q{$tracelevel};
  1         4  
  1         839  
32655 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
32656 0         0 $ERRORS = 0;
32657 0         0 my $thisrule = $thisparser->{"rules"}{"window_order_clause"};
32658              
32659 0 0       0 Parse::RecDescent::_trace(
32660             q{Trying rule: [window_order_clause]},
32661             Parse::RecDescent::_tracefirst($_[1]),
32662             q{window_order_clause}, $tracelevel
32663             ) if defined $::RD_TRACE;
32664              
32665 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
32666              
32667 0         0 my $score;
32668             my $score_return;
32669 0         0 my $_tok;
32670 0         0 my $return = undef;
32671 0         0 my $_matched = 0;
32672 0         0 my $commit = 0;
32673 0         0 my @item = ();
32674 0         0 my %item = ();
32675 0   0     0 my $repeating = defined($_[2]) && $_[2];
32676 0   0     0 my $_noactions = defined($_[3]) && $_[3];
32677 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
32678 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
32679 0         0 my $text;
32680 0         0 my $lastsep = "";
32681 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
32682 0         0 $expectation->at($_[1]);
32683              
32684 0         0 my $thisline;
32685 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
32686              
32687 0   0     0 while (!$_matched && !$commit) {
32688              
32689 0 0       0 Parse::RecDescent::_trace(
32690             q{Trying production: [/ORDER\\s+BY/i ]},
32691             Parse::RecDescent::_tracefirst($_[1]),
32692             q{window_order_clause}, $tracelevel
32693             ) if defined $::RD_TRACE;
32694 0         0 my $thisprod = $thisrule->{"prods"}[0];
32695 0         0 $text = $_[1];
32696 0         0 my $_savetext;
32697 0         0 @item = (q{window_order_clause});
32698 0         0 %item = (__RULE__ => q{window_order_clause});
32699 0         0 my $repcount = 0;
32700              
32701 0 0       0 Parse::RecDescent::_trace(
32702             q{Trying terminal: [/ORDER\\s+BY/i]},
32703             Parse::RecDescent::_tracefirst($text),
32704             q{window_order_clause}, $tracelevel
32705             ) if defined $::RD_TRACE;
32706 0         0 $lastsep = "";
32707 0         0 $expectation->is(q{})->at($text);
32708              
32709 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
32710             and $text =~ s/\A(?:ORDER\s+BY)//i) {
32711              
32712 0         0 $expectation->failed();
32713 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
32714             if defined $::RD_TRACE;
32715              
32716 0         0 last;
32717             }
32718 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
32719             Parse::RecDescent::_tracefirst($text))
32720             if defined $::RD_TRACE;
32721 0         0 push @item, $item{__PATTERN1__} = $&;
32722              
32723 0 0       0 Parse::RecDescent::_trace(
32724             q{Trying operator: []},
32725             Parse::RecDescent::_tracefirst($text),
32726             q{window_order_clause}, $tracelevel
32727             ) if defined $::RD_TRACE;
32728 0         0 $expectation->is(q{})
32729             ->at($text);
32730              
32731 0         0 $_tok = undef;
32732 0         0 OPLOOP: while (1) {
32733 0         0 $repcount = 0;
32734 0         0 my @item;
32735              
32736             # MATCH LEFTARG
32737              
32738 0 0       0 Parse::RecDescent::_trace(
32739             q{Trying subrule: [_alternation_1_of_production_1_of_rule_window_order_clause]},
32740             Parse::RecDescent::_tracefirst($text),
32741             q{window_order_clause}, $tracelevel
32742             ) if defined $::RD_TRACE;
32743 0         0 if (1) {
32744 1     1   12 no strict qw{refs};
  1         2  
  1         613  
32745 0         0 $expectation->is(q{sort_key_expression})->at($text);
32746 0 0       0 unless (defined(
32747             $_tok
32748             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_window_order_clause(
32749 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
32750             )
32751             )) {
32752              
32753 0 0       0 Parse::RecDescent::_trace(
32754             q{<>},
32755             Parse::RecDescent::_tracefirst($text),
32756             q{window_order_clause}, $tracelevel
32757             ) if defined $::RD_TRACE;
32758 0         0 $expectation->failed();
32759 0         0 last;
32760             }
32761             Parse::RecDescent::_trace(
32762 0 0       0 q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_window_order_clause]<< (return value: [}
32763             . $_tok . q{]},
32764              
32765             Parse::RecDescent::_tracefirst($text),
32766             q{window_order_clause},
32767             $tracelevel
32768             ) if defined $::RD_TRACE;
32769 0         0 $item{q{_alternation_1_of_production_1_of_rule_window_order_clause}} = $_tok;
32770 0         0 push @item, $_tok;
32771              
32772             }
32773              
32774 0         0 $repcount++;
32775              
32776 0         0 my $savetext = $text;
32777 0         0 my $backtrack;
32778              
32779             # MATCH (OP RIGHTARG)(s)
32780 0         0 while ($repcount < 100000000) {
32781 0         0 $backtrack = 0;
32782              
32783 0 0       0 Parse::RecDescent::_trace(
32784             q{Trying terminal: [/,/]},
32785             Parse::RecDescent::_tracefirst($text),
32786             q{window_order_clause}, $tracelevel
32787             ) if defined $::RD_TRACE;
32788 0         0 $lastsep = "";
32789 0         0 $expectation->is(q{/,/})->at($text);
32790              
32791 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
32792             and $text =~ s/\A(?:,)//) {
32793              
32794 0         0 $expectation->failed();
32795 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
32796             if defined $::RD_TRACE;
32797              
32798 0         0 last;
32799             }
32800 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
32801             Parse::RecDescent::_tracefirst($text))
32802             if defined $::RD_TRACE;
32803 0         0 push @item, $item{__PATTERN2__} = $&;
32804              
32805 0         0 pop @item;
32806 0 0       0 if (defined $1) {
32807 0         0 push @item, $item{'_alternation_1_of_production_1_of_rule_window_order_clause(s)'} = $1;
32808 0         0 $backtrack = 1;
32809             }
32810              
32811             Parse::RecDescent::_trace(
32812 0 0       0 q{Trying subrule: [_alternation_1_of_production_1_of_rule_window_order_clause]},
32813             Parse::RecDescent::_tracefirst($text),
32814             q{window_order_clause}, $tracelevel
32815             ) if defined $::RD_TRACE;
32816 0         0 if (1) {
32817 1     1   11 no strict qw{refs};
  1         4  
  1         923  
32818 0         0 $expectation->is(q{sort_key_expression})->at($text);
32819 0 0       0 unless (defined(
32820             $_tok
32821             = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_window_order_clause(
32822 0     0   0 $thisparser, $text, $repeating, $_noactions, sub { \@arg }
32823             )
32824             )) {
32825              
32826 0 0       0 Parse::RecDescent::_trace(
32827             q{<>},
32828             Parse::RecDescent::_tracefirst($text),
32829             q{window_order_clause}, $tracelevel
32830             ) if defined $::RD_TRACE;
32831 0         0 $expectation->failed();
32832 0         0 last;
32833             }
32834             Parse::RecDescent::_trace(
32835 0 0       0 q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_window_order_clause]<< (return value: [}
32836             . $_tok . q{]},
32837              
32838             Parse::RecDescent::_tracefirst($text),
32839             q{window_order_clause},
32840             $tracelevel
32841             ) if defined $::RD_TRACE;
32842 0         0 $item{q{_alternation_1_of_production_1_of_rule_window_order_clause}} = $_tok;
32843 0         0 push @item, $_tok;
32844              
32845             }
32846              
32847 0         0 $savetext = $text;
32848 0         0 $repcount++;
32849             }
32850 0         0 $text = $savetext;
32851 0 0       0 pop @item if $backtrack;
32852              
32853 0 0       0 unless (@item) { undef $_tok; last }
  0         0  
  0         0  
32854 0         0 $_tok = [@item];
32855 0         0 last;
32856             }
32857              
32858 0 0       0 unless ($repcount >= 1) {
32859 0 0       0 Parse::RecDescent::_trace(
32860             q{<]>>},
32861             Parse::RecDescent::_tracefirst($text),
32862             q{window_order_clause}, $tracelevel
32863             ) if defined $::RD_TRACE;
32864 0         0 $expectation->failed();
32865 0         0 last;
32866             }
32867             Parse::RecDescent::_trace(
32868 0 0       0 q{>>Matched operator: []<< (return value: [}
32869 0 0       0 . qq{@{$_tok||[]}} . q{]},
32870             Parse::RecDescent::_tracefirst($text), q{window_order_clause}, $tracelevel
32871             ) if defined $::RD_TRACE;
32872              
32873 0   0     0 push @item, $item{'_alternation_1_of_production_1_of_rule_window_order_clause(s)'} = $_tok || [];
32874              
32875 0 0       0 Parse::RecDescent::_trace(
32876             q{>>Matched production: [/ORDER\\s+BY/i ]<<},
32877             Parse::RecDescent::_tracefirst($text),
32878             q{window_order_clause}, $tracelevel
32879             ) if defined $::RD_TRACE;
32880 0         0 $_matched = 1;
32881 0         0 last;
32882             }
32883              
32884 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
32885              
32886 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
32887 0 0       0 Parse::RecDescent::_trace(
32888             q{<>},
32889             Parse::RecDescent::_tracefirst($_[1]),
32890             q{window_order_clause}, $tracelevel
32891             ) if defined $::RD_TRACE;
32892 0         0 return undef;
32893             }
32894 0 0 0     0 if (!defined($return) && defined($score)) {
32895 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{window_order_clause}, $tracelevel)
32896             if defined $::RD_TRACE;
32897 0         0 $return = $score_return;
32898             }
32899 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
32900 0 0       0 $return = $item[$#item] unless defined $return;
32901 0 0       0 if (defined $::RD_TRACE) {
32902 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])},
32903             "", q{window_order_clause}, $tracelevel);
32904 0         0 Parse::RecDescent::_trace(
32905             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
32906             Parse::RecDescent::_tracefirst($text),
32907             , q{window_order_clause}, $tracelevel
32908             );
32909             }
32910 0         0 $_[1] = $text;
32911 0         0 return $return;
32912             }
32913              
32914             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
32915             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::TRIGGER {
32916 0     0   0 my $thisparser = $_[0];
32917 1     1   12 use vars q{$tracelevel};
  1         3  
  1         1204  
32918 0   0     0 local $tracelevel = ($tracelevel || 0) + 1;
32919 0         0 $ERRORS = 0;
32920 0         0 my $thisrule = $thisparser->{"rules"}{"TRIGGER"};
32921              
32922 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [TRIGGER]}, Parse::RecDescent::_tracefirst($_[1]), q{TRIGGER}, $tracelevel)
32923             if defined $::RD_TRACE;
32924              
32925 0         0 my $err_at = @{ $thisparser->{errors} };
  0         0  
32926              
32927 0         0 my $score;
32928             my $score_return;
32929 0         0 my $_tok;
32930 0         0 my $return = undef;
32931 0         0 my $_matched = 0;
32932 0         0 my $commit = 0;
32933 0         0 my @item = ();
32934 0         0 my %item = ();
32935 0   0     0 my $repeating = defined($_[2]) && $_[2];
32936 0   0     0 my $_noactions = defined($_[3]) && $_[3];
32937 0 0       0 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  0         0  
  0         0  
32938 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
32939 0         0 my $text;
32940 0         0 my $lastsep = "";
32941 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
32942 0         0 $expectation->at($_[1]);
32943              
32944 0         0 my $thisline;
32945 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
32946              
32947 0   0     0 while (!$_matched && !$commit) {
32948              
32949 0 0       0 Parse::RecDescent::_trace(
32950             q{Trying production: [/trigger/i]},
32951             Parse::RecDescent::_tracefirst($_[1]),
32952             q{TRIGGER}, $tracelevel
32953             ) if defined $::RD_TRACE;
32954 0         0 my $thisprod = $thisrule->{"prods"}[0];
32955 0         0 $text = $_[1];
32956 0         0 my $_savetext;
32957 0         0 @item = (q{TRIGGER});
32958 0         0 %item = (__RULE__ => q{TRIGGER});
32959 0         0 my $repcount = 0;
32960              
32961 0 0       0 Parse::RecDescent::_trace(
32962             q{Trying terminal: [/trigger/i]},
32963             Parse::RecDescent::_tracefirst($text),
32964             q{TRIGGER}, $tracelevel
32965             ) if defined $::RD_TRACE;
32966 0         0 $lastsep = "";
32967 0         0 $expectation->is(q{})->at($text);
32968              
32969 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  0 0       0  
32970             and $text =~ s/\A(?:trigger)//i) {
32971              
32972 0         0 $expectation->failed();
32973 0 0       0 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
32974             if defined $::RD_TRACE;
32975              
32976 0         0 last;
32977             }
32978 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
32979             Parse::RecDescent::_tracefirst($text))
32980             if defined $::RD_TRACE;
32981 0         0 push @item, $item{__PATTERN1__} = $&;
32982              
32983 0 0       0 Parse::RecDescent::_trace(
32984             q{>>Matched production: [/trigger/i]<<},
32985             Parse::RecDescent::_tracefirst($text),
32986             q{TRIGGER}, $tracelevel
32987             ) if defined $::RD_TRACE;
32988 0         0 $_matched = 1;
32989 0         0 last;
32990             }
32991              
32992 0 0 0     0 unless ($_matched || defined($return) || defined($score)) {
      0        
32993              
32994 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
32995 0 0       0 Parse::RecDescent::_trace(
32996             q{<>},
32997             Parse::RecDescent::_tracefirst($_[1]),
32998             q{TRIGGER}, $tracelevel
32999             ) if defined $::RD_TRACE;
33000 0         0 return undef;
33001             }
33002 0 0 0     0 if (!defined($return) && defined($score)) {
33003 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{TRIGGER}, $tracelevel)
33004             if defined $::RD_TRACE;
33005 0         0 $return = $score_return;
33006             }
33007 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
33008 0 0       0 $return = $item[$#item] unless defined $return;
33009 0 0       0 if (defined $::RD_TRACE) {
33010 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{TRIGGER}, $tracelevel);
33011 0         0 Parse::RecDescent::_trace(
33012             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
33013             Parse::RecDescent::_tracefirst($text),
33014             , q{TRIGGER}, $tracelevel
33015             );
33016             }
33017 0         0 $_[1] = $text;
33018 0         0 return $return;
33019             }
33020              
33021             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
33022             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::comment {
33023 1     1   3 my $thisparser = $_[0];
33024 1     1   10 use vars q{$tracelevel};
  1         5  
  1         39375  
33025 1   50     7 local $tracelevel = ($tracelevel || 0) + 1;
33026 1         2 $ERRORS = 0;
33027 1         4 my $thisrule = $thisparser->{"rules"}{"comment"};
33028              
33029 1 50       4 Parse::RecDescent::_trace(q{Trying rule: [comment]}, Parse::RecDescent::_tracefirst($_[1]), q{comment}, $tracelevel)
33030             if defined $::RD_TRACE;
33031              
33032 1         10 my $err_at = @{ $thisparser->{errors} };
  1         4  
33033              
33034 1         5 my $score;
33035             my $score_return;
33036 1         0 my $_tok;
33037 1         2 my $return = undef;
33038 1         2 my $_matched = 0;
33039 1         4 my $commit = 0;
33040 1         3 my @item = ();
33041 1         2 my %item = ();
33042 1   33     7 my $repeating = defined($_[2]) && $_[2];
33043 1   33     7 my $_noactions = defined($_[3]) && $_[3];
33044 1 50       3 my @arg = defined $_[4] ? @{ &{ $_[4] } } : ();
  1         2  
  1         4  
33045 1 50       6 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
33046 1         2 my $text;
33047 1         2 my $lastsep = "";
33048 1         11 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
33049 1         47 $expectation->at($_[1]);
33050              
33051 1         5 my $thisline;
33052 1         6 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
33053              
33054 1   33     12 while (!$_matched && !$commit) {
33055              
33056 1 50       4 Parse::RecDescent::_trace(
33057             q{Trying production: [/^\\s*-\{2\}.*\\n/]},
33058             Parse::RecDescent::_tracefirst($_[1]),
33059             q{comment}, $tracelevel
33060             ) if defined $::RD_TRACE;
33061 1         3 my $thisprod = $thisrule->{"prods"}[0];
33062 1         4 $text = $_[1];
33063 1         3 my $_savetext;
33064 1         2 @item = (q{comment});
33065 1         3 %item = (__RULE__ => q{comment});
33066 1         2 my $repcount = 0;
33067              
33068 1 50       4 Parse::RecDescent::_trace(
33069             q{Trying terminal: [/^\\s*-\{2\}.*\\n/]},
33070             Parse::RecDescent::_tracefirst($text),
33071             q{comment}, $tracelevel
33072             ) if defined $::RD_TRACE;
33073 1         4 $lastsep = "";
33074 1         5 $expectation->is(q{})->at($text);
33075              
33076 1 50 33     57 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e
  1 50       30  
33077             and $text =~ s/\A(?:^\s*-{2}.*\n)//) {
33078              
33079 1         25 $expectation->failed();
33080 1 50       7 Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text))
33081             if defined $::RD_TRACE;
33082              
33083 1         4 last;
33084             }
33085 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])},
33086             Parse::RecDescent::_tracefirst($text))
33087             if defined $::RD_TRACE;
33088 0         0 push @item, $item{__PATTERN1__} = $&;
33089              
33090 0 0       0 Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{comment}, $tracelevel)
33091             if defined $::RD_TRACE;
33092              
33093 0 0       0 $_tok = ($_noactions) ? 0 : do {
33094 0         0 my $comment = $item[1];
33095 0         0 $comment =~ s/^\s*(-{2})\s*//;
33096 0         0 $comment =~ s/\s*$//;
33097 0         0 $return = $comment;
33098             };
33099 0 0       0 unless (defined $_tok) {
33100 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
33101             if defined $::RD_TRACE;
33102 0         0 last;
33103             }
33104 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])},
33105             Parse::RecDescent::_tracefirst($text))
33106             if defined $::RD_TRACE;
33107 0         0 push @item, $_tok;
33108 0         0 $item{__ACTION1__} = $_tok;
33109              
33110 0 0       0 Parse::RecDescent::_trace(
33111             q{>>Matched production: [/^\\s*-\{2\}.*\\n/]<<},
33112             Parse::RecDescent::_tracefirst($text),
33113             q{comment}, $tracelevel
33114             ) if defined $::RD_TRACE;
33115 0         0 $_matched = 1;
33116 0         0 last;
33117             }
33118              
33119 1 50 33     12 unless ($_matched || defined($return) || defined($score)) {
      33        
33120              
33121 1         3 $_[1] = $text; # NOT SURE THIS IS NEEDED
33122 1 50       5 Parse::RecDescent::_trace(
33123             q{<>},
33124             Parse::RecDescent::_tracefirst($_[1]),
33125             q{comment}, $tracelevel
33126             ) if defined $::RD_TRACE;
33127 1         20 return undef;
33128             }
33129 0 0 0     0 if (!defined($return) && defined($score)) {
33130 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{comment}, $tracelevel)
33131             if defined $::RD_TRACE;
33132 0         0 $return = $score_return;
33133             }
33134 0         0 splice @{ $thisparser->{errors} }, $err_at;
  0         0  
33135 0 0       0 $return = $item[$#item] unless defined $return;
33136 0 0       0 if (defined $::RD_TRACE) {
33137 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{comment}, $tracelevel);
33138 0         0 Parse::RecDescent::_trace(
33139             q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1], 0, -length($text))) . q{])},
33140             Parse::RecDescent::_tracefirst($text),
33141             , q{comment}, $tracelevel
33142             );
33143             }
33144 0         0 $_[1] = $text;
33145 0         0 return $return;
33146             }
33147             }
33148              
33149             package SQL::Translator::Parser::DB2::Grammar;
33150              
33151             sub new {
33152 2     2 0 10478 my $self = bless(
33153             {
33154             '_AUTOTREE' => undef,
33155             'localvars' => '',
33156             'startcode' => '',
33157             '_check' => {
33158             'thisoffset' => '',
33159             'itempos' => '',
33160             'prevoffset' => '',
33161             'prevline' => '',
33162             'prevcolumn' => '',
33163             'thiscolumn' => ''
33164             },
33165             'namespace' => 'Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar',
33166             '_AUTOACTION' => undef,
33167             'rules' => {
33168             '_alternation_1_of_production_17_of_rule_sysibm_function' => bless(
33169             {
33170             'impcount' => 0,
33171             'calls' => [],
33172             'changed' => 0,
33173             'opcount' => 0,
33174             'prods' => [
33175             bless(
33176             {
33177             'number' => '0',
33178             'strcount' => 0,
33179             'dircount' => 0,
33180             'uncommit' => undef,
33181             'error' => undef,
33182             'patcount' => 1,
33183             'actcount' => 0,
33184             'items' => [
33185             bless(
33186             {
33187             'pattern' => 'DECIMAL',
33188             'hashname' => '__PATTERN1__',
33189             'description' => '/DECIMAL/i',
33190             'lookahead' => 0,
33191             'rdelim' => '/',
33192             'line' => 628,
33193             'mod' => 'i',
33194             'ldelim' => '/'
33195             },
33196             'Parse::RecDescent::Token'
33197             )
33198             ],
33199             'line' => undef
33200             },
33201             'Parse::RecDescent::Production'
33202             ),
33203             bless(
33204             {
33205             'number' => '1',
33206             'strcount' => 0,
33207             'dircount' => 0,
33208             'uncommit' => undef,
33209             'error' => undef,
33210             'patcount' => 1,
33211             'actcount' => 0,
33212             'items' => [
33213             bless(
33214             {
33215             'pattern' => 'DEC',
33216             'hashname' => '__PATTERN1__',
33217             'description' => '/DEC/i',
33218             'lookahead' => 0,
33219             'rdelim' => '/',
33220             'line' => 628,
33221             'mod' => 'i',
33222             'ldelim' => '/'
33223             },
33224             'Parse::RecDescent::Token'
33225             )
33226             ],
33227             'line' => 628
33228             },
33229             'Parse::RecDescent::Production'
33230             )
33231             ],
33232             'name' => '_alternation_1_of_production_17_of_rule_sysibm_function',
33233             'vars' => '',
33234             'line' => 628
33235             },
33236             'Parse::RecDescent::Rule'
33237             ),
33238             'triggered_action' => bless(
33239             {
33240             'impcount' => 0,
33241             'calls' => [ 'when_clause', 'SQL_procedure_statement' ],
33242             'changed' => 0,
33243             'opcount' => 0,
33244             'prods' => [
33245             bless(
33246             {
33247             'number' => '0',
33248             'strcount' => 0,
33249             'dircount' => 0,
33250             'uncommit' => undef,
33251             'error' => undef,
33252             'patcount' => 0,
33253             'actcount' => 1,
33254             'items' => [
33255             bless(
33256             {
33257             'subrule' => 'when_clause',
33258             'expected' => undef,
33259             'min' => 0,
33260             'argcode' => undef,
33261             'max' => 1,
33262             'matchrule' => 0,
33263             'repspec' => '?',
33264             'lookahead' => 0,
33265             'line' => 263
33266             },
33267             'Parse::RecDescent::Repetition'
33268             ),
33269             bless(
33270             {
33271             'subrule' => 'SQL_procedure_statement',
33272             'matchrule' => 0,
33273             'implicit' => undef,
33274             'argcode' => undef,
33275             'lookahead' => 0,
33276             'line' => 263
33277             },
33278             'Parse::RecDescent::Subrule'
33279             ),
33280             bless(
33281             {
33282             'hashname' => '__ACTION1__',
33283             'lookahead' => 0,
33284             'line' => 264,
33285             'code' => '{ $return = { \'condition\' => $item[1][0],
33286             \'statement\' => $item{\'SQL_procedure_statement\'} };
33287             }'
33288             },
33289             'Parse::RecDescent::Action'
33290             )
33291             ],
33292             'line' => undef
33293             },
33294             'Parse::RecDescent::Production'
33295             )
33296             ],
33297             'name' => 'triggered_action',
33298             'vars' => '',
33299             'line' => 263
33300             },
33301             'Parse::RecDescent::Rule'
33302             ),
33303             '_alternation_1_of_production_2_of_rule_search_condition' => bless(
33304             {
33305             'impcount' => 0,
33306             'calls' => [
33307             'predicate',
33308             '_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition',
33309             'search_condition'
33310             ],
33311             'changed' => 0,
33312             'opcount' => 0,
33313             'prods' => [
33314             bless(
33315             {
33316             'number' => '0',
33317             'strcount' => 0,
33318             'dircount' => 0,
33319             'uncommit' => undef,
33320             'error' => undef,
33321             'patcount' => 0,
33322             'actcount' => 0,
33323             'items' => [
33324             bless(
33325             {
33326             'subrule' => 'predicate',
33327             'matchrule' => 0,
33328             'implicit' => undef,
33329             'argcode' => undef,
33330             'lookahead' => 0,
33331             'line' => 628
33332             },
33333             'Parse::RecDescent::Subrule'
33334             ),
33335             bless(
33336             {
33337             'subrule' =>
33338             '_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition',
33339             'expected' => '/SELECTIVITY/i',
33340             'min' => 0,
33341             'argcode' => undef,
33342             'max' => 1,
33343             'matchrule' => 0,
33344             'repspec' => '?',
33345             'lookahead' => 0,
33346             'line' => 628
33347             },
33348             'Parse::RecDescent::Repetition'
33349             )
33350             ],
33351             'line' => undef
33352             },
33353             'Parse::RecDescent::Production'
33354             ),
33355             bless(
33356             {
33357             'number' => '1',
33358             'strcount' => 2,
33359             'dircount' => 0,
33360             'uncommit' => undef,
33361             'error' => undef,
33362             'patcount' => 0,
33363             'actcount' => 0,
33364             'items' => [
33365             bless(
33366             {
33367             'pattern' => '(',
33368             'hashname' => '__STRING1__',
33369             'description' => '\'(\'',
33370             'lookahead' => 0,
33371             'line' => 628
33372             },
33373             'Parse::RecDescent::Literal'
33374             ),
33375             bless(
33376             {
33377             'subrule' => 'search_condition',
33378             'matchrule' => 0,
33379             'implicit' => undef,
33380             'argcode' => undef,
33381             'lookahead' => 0,
33382             'line' => 628
33383             },
33384             'Parse::RecDescent::Subrule'
33385             ),
33386             bless(
33387             {
33388             'pattern' => ')',
33389             'hashname' => '__STRING2__',
33390             'description' => '\')\'',
33391             'lookahead' => 0,
33392             'line' => 628
33393             },
33394             'Parse::RecDescent::Literal'
33395             )
33396             ],
33397             'line' => 628
33398             },
33399             'Parse::RecDescent::Production'
33400             )
33401             ],
33402             'name' => '_alternation_1_of_production_2_of_rule_search_condition',
33403             'vars' => '',
33404             'line' => 628
33405             },
33406             'Parse::RecDescent::Rule'
33407             ),
33408             'name1' => bless(
33409             {
33410             'impcount' => 0,
33411             'calls' => ['NAME'],
33412             'changed' => 0,
33413             'opcount' => 0,
33414             'prods' => [
33415             bless(
33416             {
33417             'number' => '0',
33418             'strcount' => 0,
33419             'dircount' => 0,
33420             'uncommit' => undef,
33421             'error' => undef,
33422             'patcount' => 0,
33423             'actcount' => 0,
33424             'items' => [
33425             bless(
33426             {
33427             'subrule' => 'NAME',
33428             'matchrule' => 0,
33429             'implicit' => undef,
33430             'argcode' => undef,
33431             'lookahead' => 0,
33432             'line' => 536
33433             },
33434             'Parse::RecDescent::Subrule'
33435             )
33436             ],
33437             'line' => undef
33438             },
33439             'Parse::RecDescent::Production'
33440             )
33441             ],
33442             'name' => 'name1',
33443             'vars' => '',
33444             'line' => 536
33445             },
33446             'Parse::RecDescent::Rule'
33447             ),
33448             '_alternation_2_of_production_1_of_rule_cond' => bless(
33449             {
33450             'impcount' => 0,
33451             'calls' => [
33452             'predicate',
33453             '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond',
33454             'search_condition'
33455             ],
33456             'changed' => 0,
33457             'opcount' => 0,
33458             'prods' => [
33459             bless(
33460             {
33461             'number' => '0',
33462             'strcount' => 0,
33463             'dircount' => 0,
33464             'uncommit' => undef,
33465             'error' => undef,
33466             'patcount' => 0,
33467             'actcount' => 0,
33468             'items' => [
33469             bless(
33470             {
33471             'subrule' => 'predicate',
33472             'matchrule' => 0,
33473             'implicit' => undef,
33474             'argcode' => undef,
33475             'lookahead' => 0,
33476             'line' => 628
33477             },
33478             'Parse::RecDescent::Subrule'
33479             ),
33480             bless(
33481             {
33482             'subrule' =>
33483             '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond',
33484             'expected' => '/SELECTIVITY/i',
33485             'min' => 0,
33486             'argcode' => undef,
33487             'max' => 1,
33488             'matchrule' => 0,
33489             'repspec' => '?',
33490             'lookahead' => 0,
33491             'line' => 628
33492             },
33493             'Parse::RecDescent::Repetition'
33494             )
33495             ],
33496             'line' => undef
33497             },
33498             'Parse::RecDescent::Production'
33499             ),
33500             bless(
33501             {
33502             'number' => '1',
33503             'strcount' => 2,
33504             'dircount' => 0,
33505             'uncommit' => undef,
33506             'error' => undef,
33507             'patcount' => 0,
33508             'actcount' => 0,
33509             'items' => [
33510             bless(
33511             {
33512             'pattern' => '(',
33513             'hashname' => '__STRING1__',
33514             'description' => '\'(\'',
33515             'lookahead' => 0,
33516             'line' => 628
33517             },
33518             'Parse::RecDescent::Literal'
33519             ),
33520             bless(
33521             {
33522             'subrule' => 'search_condition',
33523             'matchrule' => 0,
33524             'implicit' => undef,
33525             'argcode' => undef,
33526             'lookahead' => 0,
33527             'line' => 628
33528             },
33529             'Parse::RecDescent::Subrule'
33530             ),
33531             bless(
33532             {
33533             'pattern' => ')',
33534             'hashname' => '__STRING2__',
33535             'description' => '\')\'',
33536             'lookahead' => 0,
33537             'line' => 628
33538             },
33539             'Parse::RecDescent::Literal'
33540             )
33541             ],
33542             'line' => 628
33543             },
33544             'Parse::RecDescent::Production'
33545             )
33546             ],
33547             'name' => '_alternation_2_of_production_1_of_rule_cond',
33548             'vars' => '',
33549             'line' => 628
33550             },
33551             'Parse::RecDescent::Rule'
33552             ),
33553             '_alternation_1_of_production_1_of_rule_expression' => bless(
33554             {
33555             'impcount' => 2,
33556             'calls' => [
33557             '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression',
33558             '_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression'
33559             ],
33560             'changed' => 0,
33561             'opcount' => 0,
33562             'prods' => [
33563             bless(
33564             {
33565             'number' => '0',
33566             'strcount' => 0,
33567             'dircount' => 0,
33568             'uncommit' => undef,
33569             'error' => undef,
33570             'patcount' => 0,
33571             'actcount' => 0,
33572             'items' => [
33573             bless(
33574             {
33575             'subrule' =>
33576             '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression',
33577             'expected' => '\'+\', or \'-\'',
33578             'min' => 0,
33579             'argcode' => undef,
33580             'max' => 1,
33581             'matchrule' => 0,
33582             'repspec' => '?',
33583             'lookahead' => 0,
33584             'line' => 611
33585             },
33586             'Parse::RecDescent::Repetition'
33587             ),
33588             bless(
33589             {
33590             'subrule' =>
33591             '_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression',
33592             'matchrule' => 0,
33593             'implicit' =>
33594             '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',
33595             'argcode' => undef,
33596             'lookahead' => 0,
33597             'line' => 627
33598             },
33599             'Parse::RecDescent::Subrule'
33600             )
33601             ],
33602             'line' => undef
33603             },
33604             'Parse::RecDescent::Production'
33605             )
33606             ],
33607             'name' => '_alternation_1_of_production_1_of_rule_expression',
33608             'vars' => '',
33609             'line' => 608
33610             },
33611             'Parse::RecDescent::Rule'
33612             ),
33613             'SCHEMA' => bless(
33614             {
33615             'impcount' => 0,
33616             'calls' => [],
33617             'changed' => 0,
33618             'opcount' => 0,
33619             'prods' => [
33620             bless(
33621             {
33622             'number' => '0',
33623             'strcount' => 0,
33624             'dircount' => 0,
33625             'uncommit' => undef,
33626             'error' => undef,
33627             'patcount' => 1,
33628             'actcount' => 0,
33629             'items' => [
33630             bless(
33631             {
33632             'pattern' => '\\w+',
33633             'hashname' => '__PATTERN1__',
33634             'description' => '/\\\\w+/',
33635             'lookahead' => 0,
33636             'rdelim' => '/',
33637             'line' => 142,
33638             'mod' => '',
33639             'ldelim' => '/'
33640             },
33641             'Parse::RecDescent::Token'
33642             )
33643             ],
33644             'line' => undef
33645             },
33646             'Parse::RecDescent::Production'
33647             ),
33648             bless(
33649             {
33650             'number' => '1',
33651             'strcount' => 0,
33652             'dircount' => 0,
33653             'uncommit' => undef,
33654             'error' => undef,
33655             'patcount' => 1,
33656             'actcount' => 0,
33657             'items' => [
33658             bless(
33659             {
33660             'pattern' => '\\w{1,128}',
33661             'hashname' => '__PATTERN1__',
33662             'description' => '/\\\\w\\{1,128\\}/',
33663             'lookahead' => 0,
33664             'rdelim' => '/',
33665             'line' => 144,
33666             'mod' => '',
33667             'ldelim' => '/'
33668             },
33669             'Parse::RecDescent::Token'
33670             )
33671             ],
33672             'line' => undef
33673             },
33674             'Parse::RecDescent::Production'
33675             )
33676             ],
33677             'name' => 'SCHEMA',
33678             'vars' => '',
33679             'line' => 142
33680             },
33681             'Parse::RecDescent::Rule'
33682             ),
33683             '_alternation_1_of_production_87_of_rule_sysibm_function' => bless(
33684             {
33685             'impcount' => 0,
33686             'calls' => [],
33687             'changed' => 0,
33688             'opcount' => 0,
33689             'prods' => [
33690             bless(
33691             {
33692             'number' => '0',
33693             'strcount' => 0,
33694             'dircount' => 0,
33695             'uncommit' => undef,
33696             'error' => undef,
33697             'patcount' => 1,
33698             'actcount' => 0,
33699             'items' => [
33700             bless(
33701             {
33702             'pattern' => 'VARIANCE',
33703             'hashname' => '__PATTERN1__',
33704             'description' => '/VARIANCE/i',
33705             'lookahead' => 0,
33706             'rdelim' => '/',
33707             'line' => 628,
33708             'mod' => 'i',
33709             'ldelim' => '/'
33710             },
33711             'Parse::RecDescent::Token'
33712             )
33713             ],
33714             'line' => undef
33715             },
33716             'Parse::RecDescent::Production'
33717             ),
33718             bless(
33719             {
33720             'number' => '1',
33721             'strcount' => 0,
33722             'dircount' => 0,
33723             'uncommit' => undef,
33724             'error' => undef,
33725             'patcount' => 1,
33726             'actcount' => 0,
33727             'items' => [
33728             bless(
33729             {
33730             'pattern' => 'VAR',
33731             'hashname' => '__PATTERN1__',
33732             'description' => '/VAR/i',
33733             'lookahead' => 0,
33734             'rdelim' => '/',
33735             'line' => 628,
33736             'mod' => 'i',
33737             'ldelim' => '/'
33738             },
33739             'Parse::RecDescent::Token'
33740             )
33741             ],
33742             'line' => 628
33743             },
33744             'Parse::RecDescent::Production'
33745             )
33746             ],
33747             'name' => '_alternation_1_of_production_87_of_rule_sysibm_function',
33748             'vars' => '',
33749             'line' => 628
33750             },
33751             'Parse::RecDescent::Rule'
33752             ),
33753             '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression' => bless(
33754             {
33755             'impcount' => 0,
33756             'calls' => [],
33757             'changed' => 0,
33758             'opcount' => 0,
33759             'prods' => [
33760             bless(
33761             {
33762             'number' => '0',
33763             'strcount' => 1,
33764             'dircount' => 0,
33765             'uncommit' => undef,
33766             'error' => undef,
33767             'patcount' => 0,
33768             'actcount' => 0,
33769             'items' => [
33770             bless(
33771             {
33772             'pattern' => '+',
33773             'hashname' => '__STRING1__',
33774             'description' => '\'+\'',
33775             'lookahead' => 0,
33776             'line' => 626
33777             },
33778             'Parse::RecDescent::Literal'
33779             )
33780             ],
33781             'line' => undef
33782             },
33783             'Parse::RecDescent::Production'
33784             ),
33785             bless(
33786             {
33787             'number' => '1',
33788             'strcount' => 1,
33789             'dircount' => 0,
33790             'uncommit' => undef,
33791             'error' => undef,
33792             'patcount' => 0,
33793             'actcount' => 0,
33794             'items' => [
33795             bless(
33796             {
33797             'pattern' => '-',
33798             'hashname' => '__STRING1__',
33799             'description' => '\'-\'',
33800             'lookahead' => 0,
33801             'line' => 627
33802             },
33803             'Parse::RecDescent::Literal'
33804             )
33805             ],
33806             'line' => 627
33807             },
33808             'Parse::RecDescent::Production'
33809             )
33810             ],
33811             'name' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression',
33812             'vars' => '',
33813             'line' => 626
33814             },
33815             'Parse::RecDescent::Rule'
33816             ),
33817             'get_bracketed' => bless(
33818             {
33819             'impcount' => 0,
33820             'calls' => [],
33821             'changed' => 0,
33822             'opcount' => 0,
33823             'prods' => [
33824             bless(
33825             {
33826             'number' => '0',
33827             'strcount' => 0,
33828             'dircount' => 0,
33829             'uncommit' => undef,
33830             'error' => undef,
33831             'patcount' => 0,
33832             'actcount' => 1,
33833             'items' => [
33834             bless(
33835             {
33836             'hashname' => '__ACTION1__',
33837             'lookahead' => 0,
33838             'line' => 170,
33839             'code' => '{
33840             extract_bracketed($text, \'(\');
33841             }'
33842             },
33843             'Parse::RecDescent::Action'
33844             )
33845             ],
33846             'line' => undef
33847             },
33848             'Parse::RecDescent::Production'
33849             )
33850             ],
33851             'name' => 'get_bracketed',
33852             'vars' => '',
33853             'line' => 169
33854             },
33855             'Parse::RecDescent::Rule'
33856             ),
33857             'labeled_duration' => bless(
33858             {
33859             'impcount' => 0,
33860             'calls' => [
33861             'ld_type',
33862             'ld_duration'
33863             ],
33864             'changed' => 0,
33865             'opcount' => 0,
33866             'prods' => [
33867             bless(
33868             {
33869             'number' => '0',
33870             'strcount' => 0,
33871             'dircount' => 0,
33872             'uncommit' => undef,
33873             'error' => undef,
33874             'patcount' => 0,
33875             'actcount' => 0,
33876             'items' => [
33877             bless(
33878             {
33879             'subrule' => 'ld_type',
33880             'matchrule' => 0,
33881             'implicit' => undef,
33882             'argcode' => undef,
33883             'lookahead' => 0,
33884             'line' => 480
33885             },
33886             'Parse::RecDescent::Subrule'
33887             ),
33888             bless(
33889             {
33890             'subrule' => 'ld_duration',
33891             'matchrule' => 0,
33892             'implicit' => undef,
33893             'argcode' => undef,
33894             'lookahead' => 0,
33895             'line' => 480
33896             },
33897             'Parse::RecDescent::Subrule'
33898             )
33899             ],
33900             'line' => undef
33901             },
33902             'Parse::RecDescent::Production'
33903             )
33904             ],
33905             'name' => 'labeled_duration',
33906             'vars' => '',
33907             'line' => 480
33908             },
33909             'Parse::RecDescent::Rule'
33910             ),
33911             'group_end' => bless(
33912             {
33913             'impcount' => 0,
33914             'calls' => ['unsigned_constant'],
33915             'changed' => 0,
33916             'opcount' => 0,
33917             'prods' => [
33918             bless(
33919             {
33920             'number' => '0',
33921             'strcount' => 0,
33922             'dircount' => 0,
33923             'uncommit' => undef,
33924             'error' => undef,
33925             'patcount' => 1,
33926             'actcount' => 0,
33927             'items' => [
33928             bless(
33929             {
33930             'pattern' => 'UNBOUNDED\\s+PRECEDING',
33931             'hashname' => '__PATTERN1__',
33932             'description' => '/UNBOUNDED\\\\s+PRECEDING/i',
33933             'lookahead' => 0,
33934             'rdelim' => '/',
33935             'line' => 590,
33936             'mod' => 'i',
33937             'ldelim' => '/'
33938             },
33939             'Parse::RecDescent::Token'
33940             )
33941             ],
33942             'line' => undef
33943             },
33944             'Parse::RecDescent::Production'
33945             ),
33946             bless(
33947             {
33948             'number' => '1',
33949             'strcount' => 0,
33950             'dircount' => 0,
33951             'uncommit' => undef,
33952             'error' => undef,
33953             'patcount' => 1,
33954             'actcount' => 0,
33955             'items' => [
33956             bless(
33957             {
33958             'subrule' => 'unsigned_constant',
33959             'matchrule' => 0,
33960             'implicit' => undef,
33961             'argcode' => undef,
33962             'lookahead' => 0,
33963             'line' => 591
33964             },
33965             'Parse::RecDescent::Subrule'
33966             ),
33967             bless(
33968             {
33969             'pattern' => 'FOLLOWING',
33970             'hashname' => '__PATTERN1__',
33971             'description' => '/FOLLOWING/i',
33972             'lookahead' => 0,
33973             'rdelim' => '/',
33974             'line' => 591,
33975             'mod' => 'i',
33976             'ldelim' => '/'
33977             },
33978             'Parse::RecDescent::Token'
33979             )
33980             ],
33981             'line' => 591
33982             },
33983             'Parse::RecDescent::Production'
33984             )
33985             ],
33986             'name' => 'group_end',
33987             'vars' => '',
33988             'line' => 590
33989             },
33990             'Parse::RecDescent::Rule'
33991             ),
33992             'statement' => bless(
33993             {
33994             'impcount' => 0,
33995             'calls' => [
33996             'comment',
33997             'create'
33998             ],
33999             'changed' => 0,
34000             'opcount' => 0,
34001             'prods' => [
34002             bless(
34003             {
34004             'number' => '0',
34005             'strcount' => 0,
34006             'dircount' => 0,
34007             'uncommit' => undef,
34008             'error' => undef,
34009             'patcount' => 0,
34010             'actcount' => 0,
34011             'items' => [
34012             bless(
34013             {
34014             'subrule' => 'comment',
34015             'matchrule' => 0,
34016             'implicit' => undef,
34017             'argcode' => undef,
34018             'lookahead' => 0,
34019             'line' => 23
34020             },
34021             'Parse::RecDescent::Subrule'
34022             )
34023             ],
34024             'line' => undef
34025             },
34026             'Parse::RecDescent::Production'
34027             ),
34028             bless(
34029             {
34030             'number' => '1',
34031             'strcount' => 0,
34032             'dircount' => 0,
34033             'uncommit' => undef,
34034             'error' => undef,
34035             'patcount' => 0,
34036             'actcount' => 0,
34037             'items' => [
34038             bless(
34039             {
34040             'subrule' => 'create',
34041             'matchrule' => 0,
34042             'implicit' => undef,
34043             'argcode' => undef,
34044             'lookahead' => 0,
34045             'line' => 24
34046             },
34047             'Parse::RecDescent::Subrule'
34048             )
34049             ],
34050             'line' => 24
34051             },
34052             'Parse::RecDescent::Production'
34053             ),
34054             bless(
34055             {
34056             'number' => '2',
34057             'strcount' => 0,
34058             'dircount' => 1,
34059             'uncommit' => 0,
34060             'error' => 1,
34061             'patcount' => 0,
34062             'actcount' => 0,
34063             'items' => [
34064             bless(
34065             {
34066             'msg' => '',
34067             'hashname' => '__DIRECTIVE1__',
34068             'commitonly' => '',
34069             'lookahead' => 0,
34070             'line' => 25
34071             },
34072             'Parse::RecDescent::Error'
34073             )
34074             ],
34075             'line' => 25
34076             },
34077             'Parse::RecDescent::Production'
34078             )
34079             ],
34080             'name' => 'statement',
34081             'vars' => '',
34082             'line' => 22
34083             },
34084             'Parse::RecDescent::Rule'
34085             ),
34086             '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause' =>
34087             bless(
34088             {
34089             'impcount' => 0,
34090             'calls' => ['result_expression'],
34091             'changed' => 0,
34092             'opcount' => 0,
34093             'prods' => [
34094             bless(
34095             {
34096             'number' => '0',
34097             'strcount' => 0,
34098             'dircount' => 0,
34099             'uncommit' => undef,
34100             'error' => undef,
34101             'patcount' => 0,
34102             'actcount' => 0,
34103             'items' => [
34104             bless(
34105             {
34106             'subrule' => 'result_expression',
34107             'matchrule' => 0,
34108             'implicit' => undef,
34109             'argcode' => undef,
34110             'lookahead' => 0,
34111             'line' => 626
34112             },
34113             'Parse::RecDescent::Subrule'
34114             )
34115             ],
34116             'line' => undef
34117             },
34118             'Parse::RecDescent::Production'
34119             ),
34120             bless(
34121             {
34122             'number' => '1',
34123             'strcount' => 0,
34124             'dircount' => 0,
34125             'uncommit' => undef,
34126             'error' => undef,
34127             'patcount' => 1,
34128             'actcount' => 0,
34129             'items' => [
34130             bless(
34131             {
34132             'pattern' => 'NULL',
34133             'hashname' => '__PATTERN1__',
34134             'description' => '/NULL/i',
34135             'lookahead' => 0,
34136             'rdelim' => '/',
34137             'line' => 627,
34138             'mod' => 'i',
34139             'ldelim' => '/'
34140             },
34141             'Parse::RecDescent::Token'
34142             )
34143             ],
34144             'line' => 627
34145             },
34146             'Parse::RecDescent::Production'
34147             )
34148             ],
34149             'name' =>
34150             '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause',
34151             'vars' => '',
34152             'line' => 626
34153             },
34154             'Parse::RecDescent::Rule'
34155             ),
34156             '_alternation_2_of_production_1_of_rule_case_expression' => bless(
34157             {
34158             'impcount' => 0,
34159             'calls' => ['result_expression'],
34160             'changed' => 0,
34161             'opcount' => 0,
34162             'prods' => [
34163             bless(
34164             {
34165             'number' => '0',
34166             'strcount' => 0,
34167             'dircount' => 0,
34168             'uncommit' => undef,
34169             'error' => undef,
34170             'patcount' => 1,
34171             'actcount' => 0,
34172             'items' => [
34173             bless(
34174             {
34175             'pattern' => 'ELSE\\s+NULL',
34176             'hashname' => '__PATTERN1__',
34177             'description' => '/ELSE\\\\s+NULL/i',
34178             'lookahead' => 0,
34179             'rdelim' => '/',
34180             'line' => 626,
34181             'mod' => 'i',
34182             'ldelim' => '/'
34183             },
34184             'Parse::RecDescent::Token'
34185             )
34186             ],
34187             'line' => undef
34188             },
34189             'Parse::RecDescent::Production'
34190             ),
34191             bless(
34192             {
34193             'number' => '1',
34194             'strcount' => 0,
34195             'dircount' => 0,
34196             'uncommit' => undef,
34197             'error' => undef,
34198             'patcount' => 1,
34199             'actcount' => 0,
34200             'items' => [
34201             bless(
34202             {
34203             'pattern' => 'ELSE',
34204             'hashname' => '__PATTERN1__',
34205             'description' => '/ELSE/i',
34206             'lookahead' => 0,
34207             'rdelim' => '/',
34208             'line' => 627,
34209             'mod' => 'i',
34210             'ldelim' => '/'
34211             },
34212             'Parse::RecDescent::Token'
34213             ),
34214             bless(
34215             {
34216             'subrule' => 'result_expression',
34217             'matchrule' => 0,
34218             'implicit' => undef,
34219             'argcode' => undef,
34220             'lookahead' => 0,
34221             'line' => 627
34222             },
34223             'Parse::RecDescent::Subrule'
34224             )
34225             ],
34226             'line' => 627
34227             },
34228             'Parse::RecDescent::Production'
34229             )
34230             ],
34231             'name' => '_alternation_2_of_production_1_of_rule_case_expression',
34232             'vars' => '',
34233             'line' => 626
34234             },
34235             'Parse::RecDescent::Rule'
34236             ),
34237             'subject_expression' => bless(
34238             {
34239             'impcount' => 0,
34240             'calls' => ['expression'],
34241             'changed' => 0,
34242             'opcount' => 0,
34243             'prods' => [
34244             bless(
34245             {
34246             'number' => '0',
34247             'strcount' => 0,
34248             'dircount' => 0,
34249             'uncommit' => undef,
34250             'error' => undef,
34251             'patcount' => 0,
34252             'actcount' => 1,
34253             'items' => [
34254             bless(
34255             {
34256             'subrule' => 'expression',
34257             'matchrule' => 0,
34258             'implicit' => undef,
34259             'argcode' => undef,
34260             'lookahead' => 0,
34261             'line' => 598
34262             },
34263             'Parse::RecDescent::Subrule'
34264             ),
34265             bless(
34266             {
34267             'hashname' => '__ACTION1__',
34268             'lookahead' => 0,
34269             'line' => 599,
34270             'code' => '{ # with static result type that is a used-defined struct type
34271             }'
34272             },
34273             'Parse::RecDescent::Action'
34274             )
34275             ],
34276             'line' => undef
34277             },
34278             'Parse::RecDescent::Production'
34279             )
34280             ],
34281             'name' => 'subject_expression',
34282             'vars' => '',
34283             'line' => 598
34284             },
34285             'Parse::RecDescent::Rule'
34286             ),
34287             '_alternation_1_of_production_1_of_rule_desc_option' => bless(
34288             {
34289             'impcount' => 0,
34290             'calls' => [],
34291             'changed' => 0,
34292             'opcount' => 0,
34293             'prods' => [
34294             bless(
34295             {
34296             'number' => '0',
34297             'strcount' => 0,
34298             'dircount' => 0,
34299             'uncommit' => undef,
34300             'error' => undef,
34301             'patcount' => 1,
34302             'actcount' => 0,
34303             'items' => [
34304             bless(
34305             {
34306             'pattern' => 'NULLS\\s+FIRST',
34307             'hashname' => '__PATTERN1__',
34308             'description' => '/NULLS\\\\s+FIRST/i',
34309             'lookahead' => 0,
34310             'rdelim' => '/',
34311             'line' => 628,
34312             'mod' => 'i',
34313             'ldelim' => '/'
34314             },
34315             'Parse::RecDescent::Token'
34316             )
34317             ],
34318             'line' => undef
34319             },
34320             'Parse::RecDescent::Production'
34321             ),
34322             bless(
34323             {
34324             'number' => '1',
34325             'strcount' => 0,
34326             'dircount' => 0,
34327             'uncommit' => undef,
34328             'error' => undef,
34329             'patcount' => 1,
34330             'actcount' => 0,
34331             'items' => [
34332             bless(
34333             {
34334             'pattern' => 'NULLS\\s+LAST',
34335             'hashname' => '__PATTERN1__',
34336             'description' => '/NULLS\\\\s+LAST/i',
34337             'lookahead' => 0,
34338             'rdelim' => '/',
34339             'line' => 628,
34340             'mod' => 'i',
34341             'ldelim' => '/'
34342             },
34343             'Parse::RecDescent::Token'
34344             )
34345             ],
34346             'line' => 628
34347             },
34348             'Parse::RecDescent::Production'
34349             )
34350             ],
34351             'name' => '_alternation_1_of_production_1_of_rule_desc_option',
34352             'vars' => '',
34353             'line' => 628
34354             },
34355             'Parse::RecDescent::Rule'
34356             ),
34357             'view_name' => bless(
34358             {
34359             'impcount' => 0,
34360             'calls' => [
34361             'SCHEMA',
34362             'NAME'
34363             ],
34364             'changed' => 0,
34365             'opcount' => 0,
34366             'prods' => [
34367             bless(
34368             {
34369             'number' => '0',
34370             'strcount' => 1,
34371             'dircount' => 0,
34372             'uncommit' => undef,
34373             'error' => undef,
34374             'patcount' => 0,
34375             'actcount' => 1,
34376             'items' => [
34377             bless(
34378             {
34379             'subrule' => 'SCHEMA',
34380             'matchrule' => 0,
34381             'implicit' => undef,
34382             'argcode' => undef,
34383             'lookahead' => 0,
34384             'line' => 129
34385             },
34386             'Parse::RecDescent::Subrule'
34387             ),
34388             bless(
34389             {
34390             'pattern' => '.',
34391             'hashname' => '__STRING1__',
34392             'description' => '\'.\'',
34393             'lookahead' => 0,
34394             'line' => 129
34395             },
34396             'Parse::RecDescent::Literal'
34397             ),
34398             bless(
34399             {
34400             'subrule' => 'NAME',
34401             'matchrule' => 0,
34402             'implicit' => undef,
34403             'argcode' => undef,
34404             'lookahead' => 0,
34405             'line' => 129
34406             },
34407             'Parse::RecDescent::Subrule'
34408             ),
34409             bless(
34410             {
34411             'hashname' => '__ACTION1__',
34412             'lookahead' => 0,
34413             'line' => 130,
34414             'code' => '{ $return = { schema => $item[1], name => $item[3] } }'
34415             },
34416             'Parse::RecDescent::Action'
34417             )
34418             ],
34419             'line' => undef
34420             },
34421             'Parse::RecDescent::Production'
34422             ),
34423             bless(
34424             {
34425             'number' => '1',
34426             'strcount' => 0,
34427             'dircount' => 0,
34428             'uncommit' => undef,
34429             'error' => undef,
34430             'patcount' => 0,
34431             'actcount' => 1,
34432             'items' => [
34433             bless(
34434             {
34435             'subrule' => 'NAME',
34436             'matchrule' => 0,
34437             'implicit' => undef,
34438             'argcode' => undef,
34439             'lookahead' => 0,
34440             'line' => 131
34441             },
34442             'Parse::RecDescent::Subrule'
34443             ),
34444             bless(
34445             {
34446             'hashname' => '__ACTION1__',
34447             'lookahead' => 0,
34448             'line' => 132,
34449             'code' => '{ $return = { name => $item[1] } }'
34450             },
34451             'Parse::RecDescent::Action'
34452             )
34453             ],
34454             'line' => 131
34455             },
34456             'Parse::RecDescent::Production'
34457             )
34458             ],
34459             'name' => 'view_name',
34460             'vars' => '',
34461             'line' => 129
34462             },
34463             'Parse::RecDescent::Rule'
34464             ),
34465             '_alternation_1_of_production_1_of_rule_cond' => bless(
34466             {
34467             'impcount' => 0,
34468             'calls' => [],
34469             'changed' => 0,
34470             'opcount' => 0,
34471             'prods' => [
34472             bless(
34473             {
34474             'number' => '0',
34475             'strcount' => 0,
34476             'dircount' => 0,
34477             'uncommit' => undef,
34478             'error' => undef,
34479             'patcount' => 1,
34480             'actcount' => 0,
34481             'items' => [
34482             bless(
34483             {
34484             'pattern' => 'AND',
34485             'hashname' => '__PATTERN1__',
34486             'description' => '/AND/i',
34487             'lookahead' => 0,
34488             'rdelim' => '/',
34489             'line' => 628,
34490             'mod' => 'i',
34491             'ldelim' => '/'
34492             },
34493             'Parse::RecDescent::Token'
34494             )
34495             ],
34496             'line' => undef
34497             },
34498             'Parse::RecDescent::Production'
34499             ),
34500             bless(
34501             {
34502             'number' => '1',
34503             'strcount' => 0,
34504             'dircount' => 0,
34505             'uncommit' => undef,
34506             'error' => undef,
34507             'patcount' => 1,
34508             'actcount' => 0,
34509             'items' => [
34510             bless(
34511             {
34512             'pattern' => 'OR',
34513             'hashname' => '__PATTERN1__',
34514             'description' => '/OR/i',
34515             'lookahead' => 0,
34516             'rdelim' => '/',
34517             'line' => 628,
34518             'mod' => 'i',
34519             'ldelim' => '/'
34520             },
34521             'Parse::RecDescent::Token'
34522             )
34523             ],
34524             'line' => 628
34525             },
34526             'Parse::RecDescent::Production'
34527             )
34528             ],
34529             'name' => '_alternation_1_of_production_1_of_rule_cond',
34530             'vars' => '',
34531             'line' => 628
34532             },
34533             'Parse::RecDescent::Rule'
34534             ),
34535             'numbering_function' => bless(
34536             {
34537             'impcount' => 2,
34538             'calls' => [
34539             'window_partition_clause',
34540             '_alternation_1_of_production_1_of_rule_numbering_function',
34541             '_alternation_2_of_production_1_of_rule_numbering_function'
34542             ],
34543             'changed' => 0,
34544             'opcount' => 0,
34545             'prods' => [
34546             bless(
34547             {
34548             'number' => '0',
34549             'strcount' => 3,
34550             'dircount' => 0,
34551             'uncommit' => undef,
34552             'error' => undef,
34553             'patcount' => 2,
34554             'actcount' => 0,
34555             'items' => [
34556             bless(
34557             {
34558             'pattern' => 'ROW_NUMBER|ROWNUMBER',
34559             'hashname' => '__PATTERN1__',
34560             'description' => '/ROW_NUMBER|ROWNUMBER/i',
34561             'lookahead' => 0,
34562             'rdelim' => '/',
34563             'line' => 546,
34564             'mod' => 'i',
34565             'ldelim' => '/'
34566             },
34567             'Parse::RecDescent::Token'
34568             ),
34569             bless(
34570             {
34571             'pattern' => '()',
34572             'hashname' => '__STRING1__',
34573             'description' => '\'()\'',
34574             'lookahead' => 0,
34575             'line' => 546
34576             },
34577             'Parse::RecDescent::Literal'
34578             ),
34579             bless(
34580             {
34581             'pattern' => 'OVER',
34582             'hashname' => '__PATTERN2__',
34583             'description' => '/OVER/i',
34584             'lookahead' => 0,
34585             'rdelim' => '/',
34586             'line' => 546,
34587             'mod' => 'i',
34588             'ldelim' => '/'
34589             },
34590             'Parse::RecDescent::Token'
34591             ),
34592             bless(
34593             {
34594             'pattern' => '(',
34595             'hashname' => '__STRING2__',
34596             'description' => '\'(\'',
34597             'lookahead' => 0,
34598             'line' => 546
34599             },
34600             'Parse::RecDescent::Literal'
34601             ),
34602             bless(
34603             {
34604             'subrule' => 'window_partition_clause',
34605             'expected' => undef,
34606             'min' => 0,
34607             'argcode' => undef,
34608             'max' => 1,
34609             'matchrule' => 0,
34610             'repspec' => '?',
34611             'lookahead' => 0,
34612             'line' => 546
34613             },
34614             'Parse::RecDescent::Repetition'
34615             ),
34616             bless(
34617             {
34618             'subrule' => '_alternation_1_of_production_1_of_rule_numbering_function',
34619             'expected' => 'window_order_clause',
34620             'min' => 0,
34621             'argcode' => undef,
34622             'max' => 1,
34623             'matchrule' => 0,
34624             'repspec' => '?',
34625             'lookahead' => 0,
34626             'line' => 548
34627             },
34628             'Parse::RecDescent::Repetition'
34629             ),
34630             bless(
34631             {
34632             'subrule' => '_alternation_2_of_production_1_of_rule_numbering_function',
34633             'expected' =>
34634             '/RANGE\\\\s+BETWEEN\\\\s+UNBOUNDED\\\\s+PRECEDING\\\\s+AND\\\\s+UNBBOUNDED\\\\s+FOLLOWING/i, or window_aggregation_group_clause',
34635             'min' => 0,
34636             'argcode' => undef,
34637             'max' => 1,
34638             'matchrule' => 0,
34639             'repspec' => '?',
34640             'lookahead' => 0,
34641             'line' => 551
34642             },
34643             'Parse::RecDescent::Repetition'
34644             ),
34645             bless(
34646             {
34647             'pattern' => ')',
34648             'hashname' => '__STRING3__',
34649             'description' => '\')\'',
34650             'lookahead' => 0,
34651             'line' => 551
34652             },
34653             'Parse::RecDescent::Literal'
34654             )
34655             ],
34656             'line' => undef
34657             },
34658             'Parse::RecDescent::Production'
34659             )
34660             ],
34661             'name' => 'numbering_function',
34662             'vars' => '',
34663             'line' => 546
34664             },
34665             'Parse::RecDescent::Rule'
34666             ),
34667             '_alternation_1_of_production_1_of_rule_window_aggregation_group_clause' => bless(
34668             {
34669             'impcount' => 0,
34670             'calls' => [],
34671             'changed' => 0,
34672             'opcount' => 0,
34673             'prods' => [
34674             bless(
34675             {
34676             'number' => '0',
34677             'strcount' => 0,
34678             'dircount' => 0,
34679             'uncommit' => undef,
34680             'error' => undef,
34681             'patcount' => 1,
34682             'actcount' => 0,
34683             'items' => [
34684             bless(
34685             {
34686             'pattern' => 'ROWS',
34687             'hashname' => '__PATTERN1__',
34688             'description' => '/ROWS/i',
34689             'lookahead' => 0,
34690             'rdelim' => '/',
34691             'line' => 626,
34692             'mod' => 'i',
34693             'ldelim' => '/'
34694             },
34695             'Parse::RecDescent::Token'
34696             )
34697             ],
34698             'line' => undef
34699             },
34700             'Parse::RecDescent::Production'
34701             ),
34702             bless(
34703             {
34704             'number' => '1',
34705             'strcount' => 0,
34706             'dircount' => 0,
34707             'uncommit' => undef,
34708             'error' => undef,
34709             'patcount' => 1,
34710             'actcount' => 0,
34711             'items' => [
34712             bless(
34713             {
34714             'pattern' => 'RANGE',
34715             'hashname' => '__PATTERN1__',
34716             'description' => '/RANGE/i',
34717             'lookahead' => 0,
34718             'rdelim' => '/',
34719             'line' => 627,
34720             'mod' => 'i',
34721             'ldelim' => '/'
34722             },
34723             'Parse::RecDescent::Token'
34724             )
34725             ],
34726             'line' => 627
34727             },
34728             'Parse::RecDescent::Production'
34729             )
34730             ],
34731             'name' => '_alternation_1_of_production_1_of_rule_window_aggregation_group_clause',
34732             'vars' => '',
34733             'line' => 626
34734             },
34735             'Parse::RecDescent::Rule'
34736             ),
34737             'group_bound1' => bless(
34738             {
34739             'impcount' => 0,
34740             'calls' => ['unsigned_constant'],
34741             'changed' => 0,
34742             'opcount' => 0,
34743             'prods' => [
34744             bless(
34745             {
34746             'number' => '0',
34747             'strcount' => 0,
34748             'dircount' => 0,
34749             'uncommit' => undef,
34750             'error' => undef,
34751             'patcount' => 1,
34752             'actcount' => 0,
34753             'items' => [
34754             bless(
34755             {
34756             'pattern' => 'UNBOUNDED\\s+PRECEDING',
34757             'hashname' => '__PATTERN1__',
34758             'description' => '/UNBOUNDED\\\\s+PRECEDING/i',
34759             'lookahead' => 0,
34760             'rdelim' => '/',
34761             'line' => 580,
34762             'mod' => 'i',
34763             'ldelim' => '/'
34764             },
34765             'Parse::RecDescent::Token'
34766             )
34767             ],
34768             'line' => undef
34769             },
34770             'Parse::RecDescent::Production'
34771             ),
34772             bless(
34773             {
34774             'number' => '1',
34775             'strcount' => 0,
34776             'dircount' => 0,
34777             'uncommit' => undef,
34778             'error' => undef,
34779             'patcount' => 1,
34780             'actcount' => 0,
34781             'items' => [
34782             bless(
34783             {
34784             'subrule' => 'unsigned_constant',
34785             'matchrule' => 0,
34786             'implicit' => undef,
34787             'argcode' => undef,
34788             'lookahead' => 0,
34789             'line' => 581
34790             },
34791             'Parse::RecDescent::Subrule'
34792             ),
34793             bless(
34794             {
34795             'pattern' => 'PRECEDING',
34796             'hashname' => '__PATTERN1__',
34797             'description' => '/PRECEDING/i',
34798             'lookahead' => 0,
34799             'rdelim' => '/',
34800             'line' => 581,
34801             'mod' => 'i',
34802             'ldelim' => '/'
34803             },
34804             'Parse::RecDescent::Token'
34805             )
34806             ],
34807             'line' => 581
34808             },
34809             'Parse::RecDescent::Production'
34810             ),
34811             bless(
34812             {
34813             'number' => '2',
34814             'strcount' => 0,
34815             'dircount' => 0,
34816             'uncommit' => undef,
34817             'error' => undef,
34818             'patcount' => 1,
34819             'actcount' => 0,
34820             'items' => [
34821             bless(
34822             {
34823             'subrule' => 'unsigned_constant',
34824             'matchrule' => 0,
34825             'implicit' => undef,
34826             'argcode' => undef,
34827             'lookahead' => 0,
34828             'line' => 582
34829             },
34830             'Parse::RecDescent::Subrule'
34831             ),
34832             bless(
34833             {
34834             'pattern' => 'FOLLOWING',
34835             'hashname' => '__PATTERN1__',
34836             'description' => '/FOLLOWING/i',
34837             'lookahead' => 0,
34838             'rdelim' => '/',
34839             'line' => 582,
34840             'mod' => 'i',
34841             'ldelim' => '/'
34842             },
34843             'Parse::RecDescent::Token'
34844             )
34845             ],
34846             'line' => 582
34847             },
34848             'Parse::RecDescent::Production'
34849             ),
34850             bless(
34851             {
34852             'number' => '3',
34853             'strcount' => 0,
34854             'dircount' => 0,
34855             'uncommit' => undef,
34856             'error' => undef,
34857             'patcount' => 1,
34858             'actcount' => 0,
34859             'items' => [
34860             bless(
34861             {
34862             'pattern' => 'CURRENT\\s+ROW',
34863             'hashname' => '__PATTERN1__',
34864             'description' => '/CURRENT\\\\s+ROW/i',
34865             'lookahead' => 0,
34866             'rdelim' => '/',
34867             'line' => 583,
34868             'mod' => 'i',
34869             'ldelim' => '/'
34870             },
34871             'Parse::RecDescent::Token'
34872             )
34873             ],
34874             'line' => 583
34875             },
34876             'Parse::RecDescent::Production'
34877             )
34878             ],
34879             'name' => 'group_bound1',
34880             'vars' => '',
34881             'line' => 580
34882             },
34883             'Parse::RecDescent::Rule'
34884             ),
34885             'OLAP_function' => bless(
34886             {
34887             'impcount' => 0,
34888             'calls' => [
34889             'ranking_function',
34890             'numbering_function',
34891             'aggregation_function'
34892             ],
34893             'changed' => 0,
34894             'opcount' => 0,
34895             'prods' => [
34896             bless(
34897             {
34898             'number' => '0',
34899             'strcount' => 0,
34900             'dircount' => 0,
34901             'uncommit' => undef,
34902             'error' => undef,
34903             'patcount' => 0,
34904             'actcount' => 0,
34905             'items' => [
34906             bless(
34907             {
34908             'subrule' => 'ranking_function',
34909             'matchrule' => 0,
34910             'implicit' => undef,
34911             'argcode' => undef,
34912             'lookahead' => 0,
34913             'line' => 538
34914             },
34915             'Parse::RecDescent::Subrule'
34916             )
34917             ],
34918             'line' => undef
34919             },
34920             'Parse::RecDescent::Production'
34921             ),
34922             bless(
34923             {
34924             'number' => '1',
34925             'strcount' => 0,
34926             'dircount' => 0,
34927             'uncommit' => undef,
34928             'error' => undef,
34929             'patcount' => 0,
34930             'actcount' => 0,
34931             'items' => [
34932             bless(
34933             {
34934             'subrule' => 'numbering_function',
34935             'matchrule' => 0,
34936             'implicit' => undef,
34937             'argcode' => undef,
34938             'lookahead' => 0,
34939             'line' => 539
34940             },
34941             'Parse::RecDescent::Subrule'
34942             )
34943             ],
34944             'line' => 539
34945             },
34946             'Parse::RecDescent::Production'
34947             ),
34948             bless(
34949             {
34950             'number' => '2',
34951             'strcount' => 0,
34952             'dircount' => 0,
34953             'uncommit' => undef,
34954             'error' => undef,
34955             'patcount' => 0,
34956             'actcount' => 0,
34957             'items' => [
34958             bless(
34959             {
34960             'subrule' => 'aggregation_function',
34961             'matchrule' => 0,
34962             'implicit' => undef,
34963             'argcode' => undef,
34964             'lookahead' => 0,
34965             'line' => 540
34966             },
34967             'Parse::RecDescent::Subrule'
34968             )
34969             ],
34970             'line' => 540
34971             },
34972             'Parse::RecDescent::Production'
34973             )
34974             ],
34975             'name' => 'OLAP_function',
34976             'vars' => '',
34977             'line' => 538
34978             },
34979             'Parse::RecDescent::Rule'
34980             ),
34981             '_alternation_1_of_production_30_of_rule_sysibm_function' => bless(
34982             {
34983             'impcount' => 0,
34984             'calls' => [],
34985             'changed' => 0,
34986             'opcount' => 0,
34987             'prods' => [
34988             bless(
34989             {
34990             'number' => '0',
34991             'strcount' => 0,
34992             'dircount' => 0,
34993             'uncommit' => undef,
34994             'error' => undef,
34995             'patcount' => 1,
34996             'actcount' => 0,
34997             'items' => [
34998             bless(
34999             {
35000             'pattern' => 'DOUBLE',
35001             'hashname' => '__PATTERN1__',
35002             'description' => '/DOUBLE/i',
35003             'lookahead' => 0,
35004             'rdelim' => '/',
35005             'line' => 628,
35006             'mod' => 'i',
35007             'ldelim' => '/'
35008             },
35009             'Parse::RecDescent::Token'
35010             )
35011             ],
35012             'line' => undef
35013             },
35014             'Parse::RecDescent::Production'
35015             ),
35016             bless(
35017             {
35018             'number' => '1',
35019             'strcount' => 0,
35020             'dircount' => 0,
35021             'uncommit' => undef,
35022             'error' => undef,
35023             'patcount' => 1,
35024             'actcount' => 0,
35025             'items' => [
35026             bless(
35027             {
35028             'pattern' => 'DOUBLE_PRECISION',
35029             'hashname' => '__PATTERN1__',
35030             'description' => '/DOUBLE_PRECISION/i',
35031             'lookahead' => 0,
35032             'rdelim' => '/',
35033             'line' => 628,
35034             'mod' => 'i',
35035             'ldelim' => '/'
35036             },
35037             'Parse::RecDescent::Token'
35038             )
35039             ],
35040             'line' => 628
35041             },
35042             'Parse::RecDescent::Production'
35043             )
35044             ],
35045             'name' => '_alternation_1_of_production_30_of_rule_sysibm_function',
35046             'vars' => '',
35047             'line' => 628
35048             },
35049             'Parse::RecDescent::Rule'
35050             ),
35051             'FULL' => bless(
35052             {
35053             'impcount' => 0,
35054             'calls' => [],
35055             'changed' => 0,
35056             'opcount' => 0,
35057             'prods' => [
35058             bless(
35059             {
35060             'number' => '0',
35061             'strcount' => 0,
35062             'dircount' => 0,
35063             'uncommit' => undef,
35064             'error' => undef,
35065             'patcount' => 1,
35066             'actcount' => 0,
35067             'items' => [
35068             bless(
35069             {
35070             'pattern' => 'full',
35071             'hashname' => '__PATTERN1__',
35072             'description' => '/full/i',
35073             'lookahead' => 0,
35074             'rdelim' => '/',
35075             'line' => 113,
35076             'mod' => 'i',
35077             'ldelim' => '/'
35078             },
35079             'Parse::RecDescent::Token'
35080             )
35081             ],
35082             'line' => undef
35083             },
35084             'Parse::RecDescent::Production'
35085             )
35086             ],
35087             'name' => 'FULL',
35088             'vars' => '',
35089             'line' => 113
35090             },
35091             'Parse::RecDescent::Rule'
35092             ),
35093             '_alternation_2_of_production_1_of_rule_cast_specification' => bless(
35094             {
35095             'impcount' => 1,
35096             'calls' =>
35097             ['_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification'],
35098             'changed' => 0,
35099             'opcount' => 0,
35100             'prods' => [
35101             bless(
35102             {
35103             'number' => '0',
35104             'strcount' => 0,
35105             'dircount' => 0,
35106             'uncommit' => undef,
35107             'error' => undef,
35108             'patcount' => 1,
35109             'actcount' => 0,
35110             'items' => [
35111             bless(
35112             {
35113             'pattern' => 'SCOPE',
35114             'hashname' => '__PATTERN1__',
35115             'description' => '/SCOPE/',
35116             'lookahead' => 0,
35117             'rdelim' => '/',
35118             'line' => 625,
35119             'mod' => '',
35120             'ldelim' => '/'
35121             },
35122             'Parse::RecDescent::Token'
35123             ),
35124             bless(
35125             {
35126             'subrule' =>
35127             '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification',
35128             'matchrule' => 0,
35129             'implicit' => 'typed_table_name, or typed_view_name',
35130             'argcode' => undef,
35131             'lookahead' => 0,
35132             'line' => 627
35133             },
35134             'Parse::RecDescent::Subrule'
35135             )
35136             ],
35137             'line' => undef
35138             },
35139             'Parse::RecDescent::Production'
35140             )
35141             ],
35142             'name' => '_alternation_2_of_production_1_of_rule_cast_specification',
35143             'vars' => '',
35144             'line' => 625
35145             },
35146             'Parse::RecDescent::Rule'
35147             ),
35148             'case_expression' => bless(
35149             {
35150             'impcount' => 2,
35151             'calls' => [
35152             '_alternation_1_of_production_1_of_rule_case_expression',
35153             '_alternation_2_of_production_1_of_rule_case_expression'
35154             ],
35155             'changed' => 0,
35156             'opcount' => 0,
35157             'prods' => [
35158             bless(
35159             {
35160             'number' => '0',
35161             'strcount' => 0,
35162             'dircount' => 0,
35163             'uncommit' => undef,
35164             'error' => undef,
35165             'patcount' => 2,
35166             'actcount' => 0,
35167             'items' => [
35168             bless(
35169             {
35170             'pattern' => 'CASE',
35171             'hashname' => '__PATTERN1__',
35172             'description' => '/CASE/i',
35173             'lookahead' => 0,
35174             'rdelim' => '/',
35175             'line' => 496,
35176             'mod' => 'i',
35177             'ldelim' => '/'
35178             },
35179             'Parse::RecDescent::Token'
35180             ),
35181             bless(
35182             {
35183             'subrule' => '_alternation_1_of_production_1_of_rule_case_expression',
35184             'matchrule' => 0,
35185             'implicit' => 'searched_when_clause, or simple_when_clause',
35186             'argcode' => undef,
35187             'lookahead' => 0,
35188             'line' => 498
35189             },
35190             'Parse::RecDescent::Subrule'
35191             ),
35192             bless(
35193             {
35194             'subrule' => '_alternation_2_of_production_1_of_rule_case_expression',
35195             'expected' => '/ELSE\\\\s+NULL/i, or /ELSE/i',
35196             'min' => 0,
35197             'argcode' => undef,
35198             'max' => 1,
35199             'matchrule' => 0,
35200             'repspec' => '?',
35201             'lookahead' => 0,
35202             'line' => 501
35203             },
35204             'Parse::RecDescent::Repetition'
35205             ),
35206             bless(
35207             {
35208             'pattern' => 'END',
35209             'hashname' => '__PATTERN2__',
35210             'description' => '/END/i',
35211             'lookahead' => 0,
35212             'rdelim' => '/',
35213             'line' => 501,
35214             'mod' => 'i',
35215             'ldelim' => '/'
35216             },
35217             'Parse::RecDescent::Token'
35218             )
35219             ],
35220             'line' => undef
35221             },
35222             'Parse::RecDescent::Production'
35223             )
35224             ],
35225             'name' => 'case_expression',
35226             'vars' => '',
35227             'line' => 496
35228             },
35229             'Parse::RecDescent::Rule'
35230             ),
35231             'operator' => bless(
35232             {
35233             'impcount' => 0,
35234             'calls' => ['_alternation_1_of_production_1_of_rule_operator'],
35235             'changed' => 0,
35236             'opcount' => 0,
35237             'prods' => [
35238             bless(
35239             {
35240             'number' => '0',
35241             'strcount' => 0,
35242             'dircount' => 0,
35243             'uncommit' => undef,
35244             'error' => undef,
35245             'patcount' => 0,
35246             'actcount' => 0,
35247             'items' => [
35248             bless(
35249             {
35250             'subrule' => '_alternation_1_of_production_1_of_rule_operator',
35251             'matchrule' => 0,
35252             'implicit' => '/CONCAT/i, or \'||\'',
35253             'argcode' => undef,
35254             'lookahead' => 0,
35255             'line' => 321
35256             },
35257             'Parse::RecDescent::Subrule'
35258             )
35259             ],
35260             'line' => undef
35261             },
35262             'Parse::RecDescent::Production'
35263             ),
35264             bless(
35265             {
35266             'number' => '1',
35267             'strcount' => 1,
35268             'dircount' => 0,
35269             'uncommit' => undef,
35270             'error' => undef,
35271             'patcount' => 0,
35272             'actcount' => 0,
35273             'items' => [
35274             bless(
35275             {
35276             'pattern' => '/',
35277             'hashname' => '__STRING1__',
35278             'description' => '\'/\'',
35279             'lookahead' => 0,
35280             'line' => 321
35281             },
35282             'Parse::RecDescent::Literal'
35283             )
35284             ],
35285             'line' => 321
35286             },
35287             'Parse::RecDescent::Production'
35288             ),
35289             bless(
35290             {
35291             'number' => '2',
35292             'strcount' => 1,
35293             'dircount' => 0,
35294             'uncommit' => undef,
35295             'error' => undef,
35296             'patcount' => 0,
35297             'actcount' => 0,
35298             'items' => [
35299             bless(
35300             {
35301             'pattern' => '*',
35302             'hashname' => '__STRING1__',
35303             'description' => '\'*\'',
35304             'lookahead' => 0,
35305             'line' => 321
35306             },
35307             'Parse::RecDescent::Literal'
35308             )
35309             ],
35310             'line' => 321
35311             },
35312             'Parse::RecDescent::Production'
35313             ),
35314             bless(
35315             {
35316             'number' => '3',
35317             'strcount' => 1,
35318             'dircount' => 0,
35319             'uncommit' => undef,
35320             'error' => undef,
35321             'patcount' => 0,
35322             'actcount' => 0,
35323             'items' => [
35324             bless(
35325             {
35326             'pattern' => '+',
35327             'hashname' => '__STRING1__',
35328             'description' => '\'+\'',
35329             'lookahead' => 0,
35330             'line' => 321
35331             },
35332             'Parse::RecDescent::Literal'
35333             )
35334             ],
35335             'line' => 321
35336             },
35337             'Parse::RecDescent::Production'
35338             ),
35339             bless(
35340             {
35341             'number' => '4',
35342             'strcount' => 1,
35343             'dircount' => 0,
35344             'uncommit' => undef,
35345             'error' => undef,
35346             'patcount' => 0,
35347             'actcount' => 0,
35348             'items' => [
35349             bless(
35350             {
35351             'pattern' => '-',
35352             'hashname' => '__STRING1__',
35353             'description' => '\'-\'',
35354             'lookahead' => 0,
35355             'line' => 321
35356             },
35357             'Parse::RecDescent::Literal'
35358             )
35359             ],
35360             'line' => 321
35361             },
35362             'Parse::RecDescent::Production'
35363             )
35364             ],
35365             'name' => 'operator',
35366             'vars' => '',
35367             'line' => 321
35368             },
35369             'Parse::RecDescent::Rule'
35370             ),
35371             '_alternation_1_of_production_2_of_rule_type' => bless(
35372             {
35373             'impcount' => 0,
35374             'calls' => [],
35375             'changed' => 0,
35376             'opcount' => 0,
35377             'prods' => [
35378             bless(
35379             {
35380             'number' => '0',
35381             'strcount' => 0,
35382             'dircount' => 0,
35383             'uncommit' => undef,
35384             'error' => undef,
35385             'patcount' => 1,
35386             'actcount' => 0,
35387             'items' => [
35388             bless(
35389             {
35390             'pattern' => 'INSERT',
35391             'hashname' => '__PATTERN1__',
35392             'description' => '/INSERT/i',
35393             'lookahead' => 0,
35394             'rdelim' => '/',
35395             'line' => 628,
35396             'mod' => 'i',
35397             'ldelim' => '/'
35398             },
35399             'Parse::RecDescent::Token'
35400             )
35401             ],
35402             'line' => undef
35403             },
35404             'Parse::RecDescent::Production'
35405             ),
35406             bless(
35407             {
35408             'number' => '1',
35409             'strcount' => 0,
35410             'dircount' => 0,
35411             'uncommit' => undef,
35412             'error' => undef,
35413             'patcount' => 1,
35414             'actcount' => 0,
35415             'items' => [
35416             bless(
35417             {
35418             'pattern' => 'DELETE',
35419             'hashname' => '__PATTERN1__',
35420             'description' => '/DELETE/i',
35421             'lookahead' => 0,
35422             'rdelim' => '/',
35423             'line' => 628,
35424             'mod' => 'i',
35425             'ldelim' => '/'
35426             },
35427             'Parse::RecDescent::Token'
35428             )
35429             ],
35430             'line' => 628
35431             },
35432             'Parse::RecDescent::Production'
35433             ),
35434             bless(
35435             {
35436             'number' => '2',
35437             'strcount' => 0,
35438             'dircount' => 0,
35439             'uncommit' => undef,
35440             'error' => undef,
35441             'patcount' => 1,
35442             'actcount' => 0,
35443             'items' => [
35444             bless(
35445             {
35446             'pattern' => 'UPDATE',
35447             'hashname' => '__PATTERN1__',
35448             'description' => '/UPDATE/i',
35449             'lookahead' => 0,
35450             'rdelim' => '/',
35451             'line' => 628,
35452             'mod' => 'i',
35453             'ldelim' => '/'
35454             },
35455             'Parse::RecDescent::Token'
35456             )
35457             ],
35458             'line' => 628
35459             },
35460             'Parse::RecDescent::Production'
35461             )
35462             ],
35463             'name' => '_alternation_1_of_production_2_of_rule_type',
35464             'vars' => '',
35465             'line' => 628
35466             },
35467             'Parse::RecDescent::Rule'
35468             ),
35469             '_alternation_1_of_production_8_of_rule_sysibm_function' => bless(
35470             {
35471             'impcount' => 0,
35472             'calls' => [],
35473             'changed' => 0,
35474             'opcount' => 0,
35475             'prods' => [
35476             bless(
35477             {
35478             'number' => '0',
35479             'strcount' => 0,
35480             'dircount' => 0,
35481             'uncommit' => undef,
35482             'error' => undef,
35483             'patcount' => 1,
35484             'actcount' => 0,
35485             'items' => [
35486             bless(
35487             {
35488             'pattern' => 'CONCAT',
35489             'hashname' => '__PATTERN1__',
35490             'description' => '/CONCAT/',
35491             'lookahead' => 0,
35492             'rdelim' => '/',
35493             'line' => 628,
35494             'mod' => '',
35495             'ldelim' => '/'
35496             },
35497             'Parse::RecDescent::Token'
35498             )
35499             ],
35500             'line' => undef
35501             },
35502             'Parse::RecDescent::Production'
35503             ),
35504             bless(
35505             {
35506             'number' => '1',
35507             'strcount' => 1,
35508             'dircount' => 0,
35509             'uncommit' => undef,
35510             'error' => undef,
35511             'patcount' => 0,
35512             'actcount' => 0,
35513             'items' => [
35514             bless(
35515             {
35516             'pattern' => '||',
35517             'hashname' => '__STRING1__',
35518             'description' => '\'||\'',
35519             'lookahead' => 0,
35520             'line' => 628
35521             },
35522             'Parse::RecDescent::Literal'
35523             )
35524             ],
35525             'line' => 628
35526             },
35527             'Parse::RecDescent::Production'
35528             )
35529             ],
35530             'name' => '_alternation_1_of_production_8_of_rule_sysibm_function',
35531             'vars' => '',
35532             'line' => 628
35533             },
35534             'Parse::RecDescent::Rule'
35535             ),
35536             'sequence_reference' => bless(
35537             {
35538             'impcount' => 0,
35539             'calls' => [
35540             'nextval_expression',
35541             'prevval_expression'
35542             ],
35543             'changed' => 0,
35544             'opcount' => 0,
35545             'prods' => [
35546             bless(
35547             {
35548             'number' => '0',
35549             'strcount' => 0,
35550             'dircount' => 0,
35551             'uncommit' => undef,
35552             'error' => undef,
35553             'patcount' => 0,
35554             'actcount' => 0,
35555             'items' => [
35556             bless(
35557             {
35558             'subrule' => 'nextval_expression',
35559             'matchrule' => 0,
35560             'implicit' => undef,
35561             'argcode' => undef,
35562             'lookahead' => 0,
35563             'line' => 608
35564             },
35565             'Parse::RecDescent::Subrule'
35566             )
35567             ],
35568             'line' => undef
35569             },
35570             'Parse::RecDescent::Production'
35571             ),
35572             bless(
35573             {
35574             'number' => '1',
35575             'strcount' => 0,
35576             'dircount' => 0,
35577             'uncommit' => undef,
35578             'error' => undef,
35579             'patcount' => 0,
35580             'actcount' => 0,
35581             'items' => [
35582             bless(
35583             {
35584             'subrule' => 'prevval_expression',
35585             'matchrule' => 0,
35586             'implicit' => undef,
35587             'argcode' => undef,
35588             'lookahead' => 0,
35589             'line' => 609
35590             },
35591             'Parse::RecDescent::Subrule'
35592             )
35593             ],
35594             'line' => 609
35595             },
35596             'Parse::RecDescent::Production'
35597             )
35598             ],
35599             'name' => 'sequence_reference',
35600             'vars' => '',
35601             'line' => 608
35602             },
35603             'Parse::RecDescent::Rule'
35604             ),
35605             'sysibm_function' => bless(
35606             {
35607             'impcount' => 0,
35608             'calls' => [
35609             '_alternation_1_of_production_1_of_rule_sysibm_function',
35610             '_alternation_1_of_production_8_of_rule_sysibm_function',
35611             '_alternation_1_of_production_9_of_rule_sysibm_function',
35612             '_alternation_1_of_production_12_of_rule_sysibm_function',
35613             '_alternation_1_of_production_17_of_rule_sysibm_function',
35614             '_alternation_1_of_production_30_of_rule_sysibm_function',
35615             '_alternation_1_of_production_41_of_rule_sysibm_function',
35616             '_alternation_1_of_production_42_of_rule_sysibm_function',
35617             '_alternation_1_of_production_63_of_rule_sysibm_function',
35618             '_alternation_1_of_production_83_of_rule_sysibm_function',
35619             '_alternation_1_of_production_87_of_rule_sysibm_function'
35620             ],
35621             'changed' => 0,
35622             'opcount' => 0,
35623             'prods' => [
35624             bless(
35625             {
35626             'number' => '0',
35627             'strcount' => 0,
35628             'dircount' => 0,
35629             'uncommit' => undef,
35630             'error' => undef,
35631             'patcount' => 0,
35632             'actcount' => 0,
35633             'items' => [
35634             bless(
35635             {
35636             'subrule' => '_alternation_1_of_production_1_of_rule_sysibm_function',
35637             'matchrule' => 0,
35638             'implicit' => '/ABS/i, or /ABSVAL/i',
35639             'argcode' => undef,
35640             'lookahead' => 0,
35641             'line' => 332
35642             },
35643             'Parse::RecDescent::Subrule'
35644             )
35645             ],
35646             'line' => undef
35647             },
35648             'Parse::RecDescent::Production'
35649             ),
35650             bless(
35651             {
35652             'number' => '1',
35653             'strcount' => 0,
35654             'dircount' => 0,
35655             'uncommit' => undef,
35656             'error' => undef,
35657             'patcount' => 1,
35658             'actcount' => 0,
35659             'items' => [
35660             bless(
35661             {
35662             'pattern' => 'AVG',
35663             'hashname' => '__PATTERN1__',
35664             'description' => '/AVG/i',
35665             'lookahead' => 0,
35666             'rdelim' => '/',
35667             'line' => 333,
35668             'mod' => 'i',
35669             'ldelim' => '/'
35670             },
35671             'Parse::RecDescent::Token'
35672             )
35673             ],
35674             'line' => 333
35675             },
35676             'Parse::RecDescent::Production'
35677             ),
35678             bless(
35679             {
35680             'number' => '2',
35681             'strcount' => 0,
35682             'dircount' => 0,
35683             'uncommit' => undef,
35684             'error' => undef,
35685             'patcount' => 1,
35686             'actcount' => 0,
35687             'items' => [
35688             bless(
35689             {
35690             'pattern' => 'BIGINT',
35691             'hashname' => '__PATTERN1__',
35692             'description' => '/BIGINT/i',
35693             'lookahead' => 0,
35694             'rdelim' => '/',
35695             'line' => 334,
35696             'mod' => 'i',
35697             'ldelim' => '/'
35698             },
35699             'Parse::RecDescent::Token'
35700             )
35701             ],
35702             'line' => 334
35703             },
35704             'Parse::RecDescent::Production'
35705             ),
35706             bless(
35707             {
35708             'number' => '3',
35709             'strcount' => 0,
35710             'dircount' => 0,
35711             'uncommit' => undef,
35712             'error' => undef,
35713             'patcount' => 1,
35714             'actcount' => 0,
35715             'items' => [
35716             bless(
35717             {
35718             'pattern' => 'BLOB',
35719             'hashname' => '__PATTERN1__',
35720             'description' => '/BLOB/i',
35721             'lookahead' => 0,
35722             'rdelim' => '/',
35723             'line' => 335,
35724             'mod' => 'i',
35725             'ldelim' => '/'
35726             },
35727             'Parse::RecDescent::Token'
35728             )
35729             ],
35730             'line' => 335
35731             },
35732             'Parse::RecDescent::Production'
35733             ),
35734             bless(
35735             {
35736             'number' => '4',
35737             'strcount' => 0,
35738             'dircount' => 0,
35739             'uncommit' => undef,
35740             'error' => undef,
35741             'patcount' => 1,
35742             'actcount' => 0,
35743             'items' => [
35744             bless(
35745             {
35746             'pattern' => 'CHAR',
35747             'hashname' => '__PATTERN1__',
35748             'description' => '/CHAR/i',
35749             'lookahead' => 0,
35750             'rdelim' => '/',
35751             'line' => 336,
35752             'mod' => 'i',
35753             'ldelim' => '/'
35754             },
35755             'Parse::RecDescent::Token'
35756             )
35757             ],
35758             'line' => 336
35759             },
35760             'Parse::RecDescent::Production'
35761             ),
35762             bless(
35763             {
35764             'number' => '5',
35765             'strcount' => 0,
35766             'dircount' => 0,
35767             'uncommit' => undef,
35768             'error' => undef,
35769             'patcount' => 1,
35770             'actcount' => 0,
35771             'items' => [
35772             bless(
35773             {
35774             'pattern' => 'CLOB',
35775             'hashname' => '__PATTERN1__',
35776             'description' => '/CLOB/i',
35777             'lookahead' => 0,
35778             'rdelim' => '/',
35779             'line' => 337,
35780             'mod' => 'i',
35781             'ldelim' => '/'
35782             },
35783             'Parse::RecDescent::Token'
35784             )
35785             ],
35786             'line' => 337
35787             },
35788             'Parse::RecDescent::Production'
35789             ),
35790             bless(
35791             {
35792             'number' => '6',
35793             'strcount' => 0,
35794             'dircount' => 0,
35795             'uncommit' => undef,
35796             'error' => undef,
35797             'patcount' => 1,
35798             'actcount' => 0,
35799             'items' => [
35800             bless(
35801             {
35802             'pattern' => 'COALESCE',
35803             'hashname' => '__PATTERN1__',
35804             'description' => '/COALESCE/i',
35805             'lookahead' => 0,
35806             'rdelim' => '/',
35807             'line' => 338,
35808             'mod' => 'i',
35809             'ldelim' => '/'
35810             },
35811             'Parse::RecDescent::Token'
35812             )
35813             ],
35814             'line' => 338
35815             },
35816             'Parse::RecDescent::Production'
35817             ),
35818             bless(
35819             {
35820             'number' => '7',
35821             'strcount' => 0,
35822             'dircount' => 0,
35823             'uncommit' => undef,
35824             'error' => undef,
35825             'patcount' => 0,
35826             'actcount' => 0,
35827             'items' => [
35828             bless(
35829             {
35830             'subrule' => '_alternation_1_of_production_8_of_rule_sysibm_function',
35831             'matchrule' => 0,
35832             'implicit' => '/CONCAT/, or \'||\'',
35833             'argcode' => undef,
35834             'lookahead' => 0,
35835             'line' => 339
35836             },
35837             'Parse::RecDescent::Subrule'
35838             )
35839             ],
35840             'line' => 339
35841             },
35842             'Parse::RecDescent::Production'
35843             ),
35844             bless(
35845             {
35846             'number' => '8',
35847             'strcount' => 0,
35848             'dircount' => 0,
35849             'uncommit' => undef,
35850             'error' => undef,
35851             'patcount' => 0,
35852             'actcount' => 0,
35853             'items' => [
35854             bless(
35855             {
35856             'subrule' => '_alternation_1_of_production_9_of_rule_sysibm_function',
35857             'matchrule' => 0,
35858             'implicit' => '/CORRELATION/i, or /CORR/',
35859             'argcode' => undef,
35860             'lookahead' => 0,
35861             'line' => 340
35862             },
35863             'Parse::RecDescent::Subrule'
35864             )
35865             ],
35866             'line' => 340
35867             },
35868             'Parse::RecDescent::Production'
35869             ),
35870             bless(
35871             {
35872             'number' => '9',
35873             'strcount' => 0,
35874             'dircount' => 0,
35875             'uncommit' => undef,
35876             'error' => undef,
35877             'patcount' => 1,
35878             'actcount' => 0,
35879             'items' => [
35880             bless(
35881             {
35882             'pattern' => 'COUNT',
35883             'hashname' => '__PATTERN1__',
35884             'description' => '/COUNT/i',
35885             'lookahead' => 0,
35886             'rdelim' => '/',
35887             'line' => 341,
35888             'mod' => 'i',
35889             'ldelim' => '/'
35890             },
35891             'Parse::RecDescent::Token'
35892             )
35893             ],
35894             'line' => 341
35895             },
35896             'Parse::RecDescent::Production'
35897             ),
35898             bless(
35899             {
35900             'number' => '10',
35901             'strcount' => 0,
35902             'dircount' => 0,
35903             'uncommit' => undef,
35904             'error' => undef,
35905             'patcount' => 1,
35906             'actcount' => 0,
35907             'items' => [
35908             bless(
35909             {
35910             'pattern' => 'COUNT_BIG',
35911             'hashname' => '__PATTERN1__',
35912             'description' => '/COUNT_BIG/i',
35913             'lookahead' => 0,
35914             'rdelim' => '/',
35915             'line' => 342,
35916             'mod' => 'i',
35917             'ldelim' => '/'
35918             },
35919             'Parse::RecDescent::Token'
35920             )
35921             ],
35922             'line' => 342
35923             },
35924             'Parse::RecDescent::Production'
35925             ),
35926             bless(
35927             {
35928             'number' => '11',
35929             'strcount' => 0,
35930             'dircount' => 0,
35931             'uncommit' => undef,
35932             'error' => undef,
35933             'patcount' => 0,
35934             'actcount' => 0,
35935             'items' => [
35936             bless(
35937             {
35938             'subrule' => '_alternation_1_of_production_12_of_rule_sysibm_function',
35939             'matchrule' => 0,
35940             'implicit' => '/COVARIANCE/i, or /COVAR/i',
35941             'argcode' => undef,
35942             'lookahead' => 0,
35943             'line' => 343
35944             },
35945             'Parse::RecDescent::Subrule'
35946             )
35947             ],
35948             'line' => 343
35949             },
35950             'Parse::RecDescent::Production'
35951             ),
35952             bless(
35953             {
35954             'number' => '12',
35955             'strcount' => 0,
35956             'dircount' => 0,
35957             'uncommit' => undef,
35958             'error' => undef,
35959             'patcount' => 1,
35960             'actcount' => 0,
35961             'items' => [
35962             bless(
35963             {
35964             'pattern' => 'DATE',
35965             'hashname' => '__PATTERN1__',
35966             'description' => '/DATE/i',
35967             'lookahead' => 0,
35968             'rdelim' => '/',
35969             'line' => 344,
35970             'mod' => 'i',
35971             'ldelim' => '/'
35972             },
35973             'Parse::RecDescent::Token'
35974             )
35975             ],
35976             'line' => 344
35977             },
35978             'Parse::RecDescent::Production'
35979             ),
35980             bless(
35981             {
35982             'number' => '13',
35983             'strcount' => 0,
35984             'dircount' => 0,
35985             'uncommit' => undef,
35986             'error' => undef,
35987             'patcount' => 1,
35988             'actcount' => 0,
35989             'items' => [
35990             bless(
35991             {
35992             'pattern' => 'DAY',
35993             'hashname' => '__PATTERN1__',
35994             'description' => '/DAY/i',
35995             'lookahead' => 0,
35996             'rdelim' => '/',
35997             'line' => 345,
35998             'mod' => 'i',
35999             'ldelim' => '/'
36000             },
36001             'Parse::RecDescent::Token'
36002             )
36003             ],
36004             'line' => 345
36005             },
36006             'Parse::RecDescent::Production'
36007             ),
36008             bless(
36009             {
36010             'number' => '14',
36011             'strcount' => 0,
36012             'dircount' => 0,
36013             'uncommit' => undef,
36014             'error' => undef,
36015             'patcount' => 1,
36016             'actcount' => 0,
36017             'items' => [
36018             bless(
36019             {
36020             'pattern' => 'DAYS',
36021             'hashname' => '__PATTERN1__',
36022             'description' => '/DAYS/i',
36023             'lookahead' => 0,
36024             'rdelim' => '/',
36025             'line' => 346,
36026             'mod' => 'i',
36027             'ldelim' => '/'
36028             },
36029             'Parse::RecDescent::Token'
36030             )
36031             ],
36032             'line' => 346
36033             },
36034             'Parse::RecDescent::Production'
36035             ),
36036             bless(
36037             {
36038             'number' => '15',
36039             'strcount' => 0,
36040             'dircount' => 0,
36041             'uncommit' => undef,
36042             'error' => undef,
36043             'patcount' => 1,
36044             'actcount' => 0,
36045             'items' => [
36046             bless(
36047             {
36048             'pattern' => 'DBCLOB',
36049             'hashname' => '__PATTERN1__',
36050             'description' => '/DBCLOB/i',
36051             'lookahead' => 0,
36052             'rdelim' => '/',
36053             'line' => 347,
36054             'mod' => 'i',
36055             'ldelim' => '/'
36056             },
36057             'Parse::RecDescent::Token'
36058             )
36059             ],
36060             'line' => 347
36061             },
36062             'Parse::RecDescent::Production'
36063             ),
36064             bless(
36065             {
36066             'number' => '16',
36067             'strcount' => 0,
36068             'dircount' => 0,
36069             'uncommit' => undef,
36070             'error' => undef,
36071             'patcount' => 0,
36072             'actcount' => 0,
36073             'items' => [
36074             bless(
36075             {
36076             'subrule' => '_alternation_1_of_production_17_of_rule_sysibm_function',
36077             'matchrule' => 0,
36078             'implicit' => '/DECIMAL/i, or /DEC/i',
36079             'argcode' => undef,
36080             'lookahead' => 0,
36081             'line' => 348
36082             },
36083             'Parse::RecDescent::Subrule'
36084             )
36085             ],
36086             'line' => 348
36087             },
36088             'Parse::RecDescent::Production'
36089             ),
36090             bless(
36091             {
36092             'number' => '17',
36093             'strcount' => 0,
36094             'dircount' => 0,
36095             'uncommit' => undef,
36096             'error' => undef,
36097             'patcount' => 1,
36098             'actcount' => 0,
36099             'items' => [
36100             bless(
36101             {
36102             'pattern' => 'DECRYPT_BIN',
36103             'hashname' => '__PATTERN1__',
36104             'description' => '/DECRYPT_BIN/i',
36105             'lookahead' => 0,
36106             'rdelim' => '/',
36107             'line' => 349,
36108             'mod' => 'i',
36109             'ldelim' => '/'
36110             },
36111             'Parse::RecDescent::Token'
36112             )
36113             ],
36114             'line' => 349
36115             },
36116             'Parse::RecDescent::Production'
36117             ),
36118             bless(
36119             {
36120             'number' => '18',
36121             'strcount' => 0,
36122             'dircount' => 0,
36123             'uncommit' => undef,
36124             'error' => undef,
36125             'patcount' => 1,
36126             'actcount' => 0,
36127             'items' => [
36128             bless(
36129             {
36130             'pattern' => 'DECRYPT_CHAR',
36131             'hashname' => '__PATTERN1__',
36132             'description' => '/DECRYPT_CHAR/i',
36133             'lookahead' => 0,
36134             'rdelim' => '/',
36135             'line' => 350,
36136             'mod' => 'i',
36137             'ldelim' => '/'
36138             },
36139             'Parse::RecDescent::Token'
36140             )
36141             ],
36142             'line' => 350
36143             },
36144             'Parse::RecDescent::Production'
36145             ),
36146             bless(
36147             {
36148             'number' => '19',
36149             'strcount' => 0,
36150             'dircount' => 0,
36151             'uncommit' => undef,
36152             'error' => undef,
36153             'patcount' => 1,
36154             'actcount' => 0,
36155             'items' => [
36156             bless(
36157             {
36158             'pattern' => 'DEREF',
36159             'hashname' => '__PATTERN1__',
36160             'description' => '/DEREF/i',
36161             'lookahead' => 0,
36162             'rdelim' => '/',
36163             'line' => 351,
36164             'mod' => 'i',
36165             'ldelim' => '/'
36166             },
36167             'Parse::RecDescent::Token'
36168             )
36169             ],
36170             'line' => 351
36171             },
36172             'Parse::RecDescent::Production'
36173             ),
36174             bless(
36175             {
36176             'number' => '20',
36177             'strcount' => 0,
36178             'dircount' => 0,
36179             'uncommit' => undef,
36180             'error' => undef,
36181             'patcount' => 1,
36182             'actcount' => 0,
36183             'items' => [
36184             bless(
36185             {
36186             'pattern' => 'DIGITS',
36187             'hashname' => '__PATTERN1__',
36188             'description' => '/DIGITS/i',
36189             'lookahead' => 0,
36190             'rdelim' => '/',
36191             'line' => 352,
36192             'mod' => 'i',
36193             'ldelim' => '/'
36194             },
36195             'Parse::RecDescent::Token'
36196             )
36197             ],
36198             'line' => 352
36199             },
36200             'Parse::RecDescent::Production'
36201             ),
36202             bless(
36203             {
36204             'number' => '21',
36205             'strcount' => 0,
36206             'dircount' => 0,
36207             'uncommit' => undef,
36208             'error' => undef,
36209             'patcount' => 1,
36210             'actcount' => 0,
36211             'items' => [
36212             bless(
36213             {
36214             'pattern' => 'DLCOMMENT',
36215             'hashname' => '__PATTERN1__',
36216             'description' => '/DLCOMMENT/i',
36217             'lookahead' => 0,
36218             'rdelim' => '/',
36219             'line' => 353,
36220             'mod' => 'i',
36221             'ldelim' => '/'
36222             },
36223             'Parse::RecDescent::Token'
36224             )
36225             ],
36226             'line' => 353
36227             },
36228             'Parse::RecDescent::Production'
36229             ),
36230             bless(
36231             {
36232             'number' => '22',
36233             'strcount' => 0,
36234             'dircount' => 0,
36235             'uncommit' => undef,
36236             'error' => undef,
36237             'patcount' => 1,
36238             'actcount' => 0,
36239             'items' => [
36240             bless(
36241             {
36242             'pattern' => 'DLLINKTYPE',
36243             'hashname' => '__PATTERN1__',
36244             'description' => '/DLLINKTYPE/i',
36245             'lookahead' => 0,
36246             'rdelim' => '/',
36247             'line' => 354,
36248             'mod' => 'i',
36249             'ldelim' => '/'
36250             },
36251             'Parse::RecDescent::Token'
36252             )
36253             ],
36254             'line' => 354
36255             },
36256             'Parse::RecDescent::Production'
36257             ),
36258             bless(
36259             {
36260             'number' => '23',
36261             'strcount' => 0,
36262             'dircount' => 0,
36263             'uncommit' => undef,
36264             'error' => undef,
36265             'patcount' => 1,
36266             'actcount' => 0,
36267             'items' => [
36268             bless(
36269             {
36270             'pattern' => 'DLURLCOMPLETE',
36271             'hashname' => '__PATTERN1__',
36272             'description' => '/DLURLCOMPLETE/i',
36273             'lookahead' => 0,
36274             'rdelim' => '/',
36275             'line' => 355,
36276             'mod' => 'i',
36277             'ldelim' => '/'
36278             },
36279             'Parse::RecDescent::Token'
36280             )
36281             ],
36282             'line' => 355
36283             },
36284             'Parse::RecDescent::Production'
36285             ),
36286             bless(
36287             {
36288             'number' => '24',
36289             'strcount' => 0,
36290             'dircount' => 0,
36291             'uncommit' => undef,
36292             'error' => undef,
36293             'patcount' => 1,
36294             'actcount' => 0,
36295             'items' => [
36296             bless(
36297             {
36298             'pattern' => 'DLURLPATH',
36299             'hashname' => '__PATTERN1__',
36300             'description' => '/DLURLPATH/i',
36301             'lookahead' => 0,
36302             'rdelim' => '/',
36303             'line' => 356,
36304             'mod' => 'i',
36305             'ldelim' => '/'
36306             },
36307             'Parse::RecDescent::Token'
36308             )
36309             ],
36310             'line' => 356
36311             },
36312             'Parse::RecDescent::Production'
36313             ),
36314             bless(
36315             {
36316             'number' => '25',
36317             'strcount' => 0,
36318             'dircount' => 0,
36319             'uncommit' => undef,
36320             'error' => undef,
36321             'patcount' => 1,
36322             'actcount' => 0,
36323             'items' => [
36324             bless(
36325             {
36326             'pattern' => 'DLURLPATHONLY',
36327             'hashname' => '__PATTERN1__',
36328             'description' => '/DLURLPATHONLY/i',
36329             'lookahead' => 0,
36330             'rdelim' => '/',
36331             'line' => 357,
36332             'mod' => 'i',
36333             'ldelim' => '/'
36334             },
36335             'Parse::RecDescent::Token'
36336             )
36337             ],
36338             'line' => 357
36339             },
36340             'Parse::RecDescent::Production'
36341             ),
36342             bless(
36343             {
36344             'number' => '26',
36345             'strcount' => 0,
36346             'dircount' => 0,
36347             'uncommit' => undef,
36348             'error' => undef,
36349             'patcount' => 1,
36350             'actcount' => 0,
36351             'items' => [
36352             bless(
36353             {
36354             'pattern' => 'DLURLSCHEME',
36355             'hashname' => '__PATTERN1__',
36356             'description' => '/DLURLSCHEME/i',
36357             'lookahead' => 0,
36358             'rdelim' => '/',
36359             'line' => 358,
36360             'mod' => 'i',
36361             'ldelim' => '/'
36362             },
36363             'Parse::RecDescent::Token'
36364             )
36365             ],
36366             'line' => 358
36367             },
36368             'Parse::RecDescent::Production'
36369             ),
36370             bless(
36371             {
36372             'number' => '27',
36373             'strcount' => 0,
36374             'dircount' => 0,
36375             'uncommit' => undef,
36376             'error' => undef,
36377             'patcount' => 1,
36378             'actcount' => 0,
36379             'items' => [
36380             bless(
36381             {
36382             'pattern' => 'DLURLSERVER',
36383             'hashname' => '__PATTERN1__',
36384             'description' => '/DLURLSERVER/i',
36385             'lookahead' => 0,
36386             'rdelim' => '/',
36387             'line' => 359,
36388             'mod' => 'i',
36389             'ldelim' => '/'
36390             },
36391             'Parse::RecDescent::Token'
36392             )
36393             ],
36394             'line' => 359
36395             },
36396             'Parse::RecDescent::Production'
36397             ),
36398             bless(
36399             {
36400             'number' => '28',
36401             'strcount' => 0,
36402             'dircount' => 0,
36403             'uncommit' => undef,
36404             'error' => undef,
36405             'patcount' => 1,
36406             'actcount' => 0,
36407             'items' => [
36408             bless(
36409             {
36410             'pattern' => 'DLVALUE',
36411             'hashname' => '__PATTERN1__',
36412             'description' => '/DLVALUE/i',
36413             'lookahead' => 0,
36414             'rdelim' => '/',
36415             'line' => 360,
36416             'mod' => 'i',
36417             'ldelim' => '/'
36418             },
36419             'Parse::RecDescent::Token'
36420             )
36421             ],
36422             'line' => 360
36423             },
36424             'Parse::RecDescent::Production'
36425             ),
36426             bless(
36427             {
36428             'number' => '29',
36429             'strcount' => 0,
36430             'dircount' => 0,
36431             'uncommit' => undef,
36432             'error' => undef,
36433             'patcount' => 0,
36434             'actcount' => 0,
36435             'items' => [
36436             bless(
36437             {
36438             'subrule' => '_alternation_1_of_production_30_of_rule_sysibm_function',
36439             'matchrule' => 0,
36440             'implicit' => '/DOUBLE/i, or /DOUBLE_PRECISION/i',
36441             'argcode' => undef,
36442             'lookahead' => 0,
36443             'line' => 361
36444             },
36445             'Parse::RecDescent::Subrule'
36446             )
36447             ],
36448             'line' => 361
36449             },
36450             'Parse::RecDescent::Production'
36451             ),
36452             bless(
36453             {
36454             'number' => '30',
36455             'strcount' => 0,
36456             'dircount' => 0,
36457             'uncommit' => undef,
36458             'error' => undef,
36459             'patcount' => 1,
36460             'actcount' => 0,
36461             'items' => [
36462             bless(
36463             {
36464             'pattern' => 'ENCRYPT',
36465             'hashname' => '__PATTERN1__',
36466             'description' => '/ENCRYPT/i',
36467             'lookahead' => 0,
36468             'rdelim' => '/',
36469             'line' => 362,
36470             'mod' => 'i',
36471             'ldelim' => '/'
36472             },
36473             'Parse::RecDescent::Token'
36474             )
36475             ],
36476             'line' => 362
36477             },
36478             'Parse::RecDescent::Production'
36479             ),
36480             bless(
36481             {
36482             'number' => '31',
36483             'strcount' => 0,
36484             'dircount' => 0,
36485             'uncommit' => undef,
36486             'error' => undef,
36487             'patcount' => 1,
36488             'actcount' => 0,
36489             'items' => [
36490             bless(
36491             {
36492             'pattern' => 'EVENT_MON_STATE',
36493             'hashname' => '__PATTERN1__',
36494             'description' => '/EVENT_MON_STATE/i',
36495             'lookahead' => 0,
36496             'rdelim' => '/',
36497             'line' => 363,
36498             'mod' => 'i',
36499             'ldelim' => '/'
36500             },
36501             'Parse::RecDescent::Token'
36502             )
36503             ],
36504             'line' => 363
36505             },
36506             'Parse::RecDescent::Production'
36507             ),
36508             bless(
36509             {
36510             'number' => '32',
36511             'strcount' => 0,
36512             'dircount' => 0,
36513             'uncommit' => undef,
36514             'error' => undef,
36515             'patcount' => 1,
36516             'actcount' => 0,
36517             'items' => [
36518             bless(
36519             {
36520             'pattern' => 'FLOAT',
36521             'hashname' => '__PATTERN1__',
36522             'description' => '/FLOAT/i',
36523             'lookahead' => 0,
36524             'rdelim' => '/',
36525             'line' => 364,
36526             'mod' => 'i',
36527             'ldelim' => '/'
36528             },
36529             'Parse::RecDescent::Token'
36530             )
36531             ],
36532             'line' => 364
36533             },
36534             'Parse::RecDescent::Production'
36535             ),
36536             bless(
36537             {
36538             'number' => '33',
36539             'strcount' => 0,
36540             'dircount' => 0,
36541             'uncommit' => undef,
36542             'error' => undef,
36543             'patcount' => 1,
36544             'actcount' => 0,
36545             'items' => [
36546             bless(
36547             {
36548             'pattern' => 'GETHINT',
36549             'hashname' => '__PATTERN1__',
36550             'description' => '/GETHINT/i',
36551             'lookahead' => 0,
36552             'rdelim' => '/',
36553             'line' => 365,
36554             'mod' => 'i',
36555             'ldelim' => '/'
36556             },
36557             'Parse::RecDescent::Token'
36558             )
36559             ],
36560             'line' => 365
36561             },
36562             'Parse::RecDescent::Production'
36563             ),
36564             bless(
36565             {
36566             'number' => '34',
36567             'strcount' => 0,
36568             'dircount' => 0,
36569             'uncommit' => undef,
36570             'error' => undef,
36571             'patcount' => 1,
36572             'actcount' => 0,
36573             'items' => [
36574             bless(
36575             {
36576             'pattern' => 'GENERATE_UNIQUE',
36577             'hashname' => '__PATTERN1__',
36578             'description' => '/GENERATE_UNIQUE/i',
36579             'lookahead' => 0,
36580             'rdelim' => '/',
36581             'line' => 366,
36582             'mod' => 'i',
36583             'ldelim' => '/'
36584             },
36585             'Parse::RecDescent::Token'
36586             )
36587             ],
36588             'line' => 366
36589             },
36590             'Parse::RecDescent::Production'
36591             ),
36592             bless(
36593             {
36594             'number' => '35',
36595             'strcount' => 0,
36596             'dircount' => 0,
36597             'uncommit' => undef,
36598             'error' => undef,
36599             'patcount' => 1,
36600             'actcount' => 0,
36601             'items' => [
36602             bless(
36603             {
36604             'pattern' => 'GRAPHIC',
36605             'hashname' => '__PATTERN1__',
36606             'description' => '/GRAPHIC/i',
36607             'lookahead' => 0,
36608             'rdelim' => '/',
36609             'line' => 367,
36610             'mod' => 'i',
36611             'ldelim' => '/'
36612             },
36613             'Parse::RecDescent::Token'
36614             )
36615             ],
36616             'line' => 367
36617             },
36618             'Parse::RecDescent::Production'
36619             ),
36620             bless(
36621             {
36622             'number' => '36',
36623             'strcount' => 0,
36624             'dircount' => 0,
36625             'uncommit' => undef,
36626             'error' => undef,
36627             'patcount' => 1,
36628             'actcount' => 0,
36629             'items' => [
36630             bless(
36631             {
36632             'pattern' => 'GROUPING',
36633             'hashname' => '__PATTERN1__',
36634             'description' => '/GROUPING/i',
36635             'lookahead' => 0,
36636             'rdelim' => '/',
36637             'line' => 368,
36638             'mod' => 'i',
36639             'ldelim' => '/'
36640             },
36641             'Parse::RecDescent::Token'
36642             )
36643             ],
36644             'line' => 368
36645             },
36646             'Parse::RecDescent::Production'
36647             ),
36648             bless(
36649             {
36650             'number' => '37',
36651             'strcount' => 0,
36652             'dircount' => 0,
36653             'uncommit' => undef,
36654             'error' => undef,
36655             'patcount' => 1,
36656             'actcount' => 0,
36657             'items' => [
36658             bless(
36659             {
36660             'pattern' => 'HEX',
36661             'hashname' => '__PATTERN1__',
36662             'description' => '/HEX/i',
36663             'lookahead' => 0,
36664             'rdelim' => '/',
36665             'line' => 369,
36666             'mod' => 'i',
36667             'ldelim' => '/'
36668             },
36669             'Parse::RecDescent::Token'
36670             )
36671             ],
36672             'line' => 369
36673             },
36674             'Parse::RecDescent::Production'
36675             ),
36676             bless(
36677             {
36678             'number' => '38',
36679             'strcount' => 0,
36680             'dircount' => 0,
36681             'uncommit' => undef,
36682             'error' => undef,
36683             'patcount' => 1,
36684             'actcount' => 0,
36685             'items' => [
36686             bless(
36687             {
36688             'pattern' => 'HOUR',
36689             'hashname' => '__PATTERN1__',
36690             'description' => '/HOUR/i',
36691             'lookahead' => 0,
36692             'rdelim' => '/',
36693             'line' => 370,
36694             'mod' => 'i',
36695             'ldelim' => '/'
36696             },
36697             'Parse::RecDescent::Token'
36698             )
36699             ],
36700             'line' => 370
36701             },
36702             'Parse::RecDescent::Production'
36703             ),
36704             bless(
36705             {
36706             'number' => '39',
36707             'strcount' => 0,
36708             'dircount' => 0,
36709             'uncommit' => undef,
36710             'error' => undef,
36711             'patcount' => 1,
36712             'actcount' => 0,
36713             'items' => [
36714             bless(
36715             {
36716             'pattern' => 'IDENTITY_VAL_LOCAL',
36717             'hashname' => '__PATTERN1__',
36718             'description' => '/IDENTITY_VAL_LOCAL/i',
36719             'lookahead' => 0,
36720             'rdelim' => '/',
36721             'line' => 371,
36722             'mod' => 'i',
36723             'ldelim' => '/'
36724             },
36725             'Parse::RecDescent::Token'
36726             )
36727             ],
36728             'line' => 371
36729             },
36730             'Parse::RecDescent::Production'
36731             ),
36732             bless(
36733             {
36734             'number' => '40',
36735             'strcount' => 0,
36736             'dircount' => 0,
36737             'uncommit' => undef,
36738             'error' => undef,
36739             'patcount' => 0,
36740             'actcount' => 0,
36741             'items' => [
36742             bless(
36743             {
36744             'subrule' => '_alternation_1_of_production_41_of_rule_sysibm_function',
36745             'matchrule' => 0,
36746             'implicit' => '/INTEGER/i, or /INT/',
36747             'argcode' => undef,
36748             'lookahead' => 0,
36749             'line' => 372
36750             },
36751             'Parse::RecDescent::Subrule'
36752             )
36753             ],
36754             'line' => 372
36755             },
36756             'Parse::RecDescent::Production'
36757             ),
36758             bless(
36759             {
36760             'number' => '41',
36761             'strcount' => 0,
36762             'dircount' => 0,
36763             'uncommit' => undef,
36764             'error' => undef,
36765             'patcount' => 0,
36766             'actcount' => 0,
36767             'items' => [
36768             bless(
36769             {
36770             'subrule' => '_alternation_1_of_production_42_of_rule_sysibm_function',
36771             'matchrule' => 0,
36772             'implicit' => '/LCASE/i, or /LOWER/',
36773             'argcode' => undef,
36774             'lookahead' => 0,
36775             'line' => 373
36776             },
36777             'Parse::RecDescent::Subrule'
36778             )
36779             ],
36780             'line' => 373
36781             },
36782             'Parse::RecDescent::Production'
36783             ),
36784             bless(
36785             {
36786             'number' => '42',
36787             'strcount' => 0,
36788             'dircount' => 0,
36789             'uncommit' => undef,
36790             'error' => undef,
36791             'patcount' => 1,
36792             'actcount' => 0,
36793             'items' => [
36794             bless(
36795             {
36796             'pattern' => 'LENGTH',
36797             'hashname' => '__PATTERN1__',
36798             'description' => '/LENGTH/i',
36799             'lookahead' => 0,
36800             'rdelim' => '/',
36801             'line' => 374,
36802             'mod' => 'i',
36803             'ldelim' => '/'
36804             },
36805             'Parse::RecDescent::Token'
36806             )
36807             ],
36808             'line' => 374
36809             },
36810             'Parse::RecDescent::Production'
36811             ),
36812             bless(
36813             {
36814             'number' => '43',
36815             'strcount' => 0,
36816             'dircount' => 0,
36817             'uncommit' => undef,
36818             'error' => undef,
36819             'patcount' => 1,
36820             'actcount' => 0,
36821             'items' => [
36822             bless(
36823             {
36824             'pattern' => 'LONG_VARCHAR',
36825             'hashname' => '__PATTERN1__',
36826             'description' => '/LONG_VARCHAR/i',
36827             'lookahead' => 0,
36828             'rdelim' => '/',
36829             'line' => 375,
36830             'mod' => 'i',
36831             'ldelim' => '/'
36832             },
36833             'Parse::RecDescent::Token'
36834             )
36835             ],
36836             'line' => 375
36837             },
36838             'Parse::RecDescent::Production'
36839             ),
36840             bless(
36841             {
36842             'number' => '44',
36843             'strcount' => 0,
36844             'dircount' => 0,
36845             'uncommit' => undef,
36846             'error' => undef,
36847             'patcount' => 1,
36848             'actcount' => 0,
36849             'items' => [
36850             bless(
36851             {
36852             'pattern' => 'LONG_VARGRAPHIC',
36853             'hashname' => '__PATTERN1__',
36854             'description' => '/LONG_VARGRAPHIC/i',
36855             'lookahead' => 0,
36856             'rdelim' => '/',
36857             'line' => 376,
36858             'mod' => 'i',
36859             'ldelim' => '/'
36860             },
36861             'Parse::RecDescent::Token'
36862             )
36863             ],
36864             'line' => 376
36865             },
36866             'Parse::RecDescent::Production'
36867             ),
36868             bless(
36869             {
36870             'number' => '45',
36871             'strcount' => 0,
36872             'dircount' => 0,
36873             'uncommit' => undef,
36874             'error' => undef,
36875             'patcount' => 1,
36876             'actcount' => 0,
36877             'items' => [
36878             bless(
36879             {
36880             'pattern' => 'LTRIM',
36881             'hashname' => '__PATTERN1__',
36882             'description' => '/LTRIM/i',
36883             'lookahead' => 0,
36884             'rdelim' => '/',
36885             'line' => 377,
36886             'mod' => 'i',
36887             'ldelim' => '/'
36888             },
36889             'Parse::RecDescent::Token'
36890             )
36891             ],
36892             'line' => 377
36893             },
36894             'Parse::RecDescent::Production'
36895             ),
36896             bless(
36897             {
36898             'number' => '46',
36899             'strcount' => 0,
36900             'dircount' => 0,
36901             'uncommit' => undef,
36902             'error' => undef,
36903             'patcount' => 1,
36904             'actcount' => 0,
36905             'items' => [
36906             bless(
36907             {
36908             'pattern' => 'MAX',
36909             'hashname' => '__PATTERN1__',
36910             'description' => '/MAX/i',
36911             'lookahead' => 0,
36912             'rdelim' => '/',
36913             'line' => 378,
36914             'mod' => 'i',
36915             'ldelim' => '/'
36916             },
36917             'Parse::RecDescent::Token'
36918             )
36919             ],
36920             'line' => 378
36921             },
36922             'Parse::RecDescent::Production'
36923             ),
36924             bless(
36925             {
36926             'number' => '47',
36927             'strcount' => 0,
36928             'dircount' => 0,
36929             'uncommit' => undef,
36930             'error' => undef,
36931             'patcount' => 1,
36932             'actcount' => 0,
36933             'items' => [
36934             bless(
36935             {
36936             'pattern' => 'MICROSECOND',
36937             'hashname' => '__PATTERN1__',
36938             'description' => '/MICROSECOND/i',
36939             'lookahead' => 0,
36940             'rdelim' => '/',
36941             'line' => 379,
36942             'mod' => 'i',
36943             'ldelim' => '/'
36944             },
36945             'Parse::RecDescent::Token'
36946             )
36947             ],
36948             'line' => 379
36949             },
36950             'Parse::RecDescent::Production'
36951             ),
36952             bless(
36953             {
36954             'number' => '48',
36955             'strcount' => 0,
36956             'dircount' => 0,
36957             'uncommit' => undef,
36958             'error' => undef,
36959             'patcount' => 1,
36960             'actcount' => 0,
36961             'items' => [
36962             bless(
36963             {
36964             'pattern' => 'MIN',
36965             'hashname' => '__PATTERN1__',
36966             'description' => '/MIN/i',
36967             'lookahead' => 0,
36968             'rdelim' => '/',
36969             'line' => 380,
36970             'mod' => 'i',
36971             'ldelim' => '/'
36972             },
36973             'Parse::RecDescent::Token'
36974             )
36975             ],
36976             'line' => 380
36977             },
36978             'Parse::RecDescent::Production'
36979             ),
36980             bless(
36981             {
36982             'number' => '49',
36983             'strcount' => 0,
36984             'dircount' => 0,
36985             'uncommit' => undef,
36986             'error' => undef,
36987             'patcount' => 1,
36988             'actcount' => 0,
36989             'items' => [
36990             bless(
36991             {
36992             'pattern' => 'MINUTE',
36993             'hashname' => '__PATTERN1__',
36994             'description' => '/MINUTE/i',
36995             'lookahead' => 0,
36996             'rdelim' => '/',
36997             'line' => 381,
36998             'mod' => 'i',
36999             'ldelim' => '/'
37000             },
37001             'Parse::RecDescent::Token'
37002             )
37003             ],
37004             'line' => 381
37005             },
37006             'Parse::RecDescent::Production'
37007             ),
37008             bless(
37009             {
37010             'number' => '50',
37011             'strcount' => 0,
37012             'dircount' => 0,
37013             'uncommit' => undef,
37014             'error' => undef,
37015             'patcount' => 1,
37016             'actcount' => 0,
37017             'items' => [
37018             bless(
37019             {
37020             'pattern' => 'MONTH',
37021             'hashname' => '__PATTERN1__',
37022             'description' => '/MONTH/i',
37023             'lookahead' => 0,
37024             'rdelim' => '/',
37025             'line' => 382,
37026             'mod' => 'i',
37027             'ldelim' => '/'
37028             },
37029             'Parse::RecDescent::Token'
37030             )
37031             ],
37032             'line' => 382
37033             },
37034             'Parse::RecDescent::Production'
37035             ),
37036             bless(
37037             {
37038             'number' => '51',
37039             'strcount' => 0,
37040             'dircount' => 0,
37041             'uncommit' => undef,
37042             'error' => undef,
37043             'patcount' => 1,
37044             'actcount' => 0,
37045             'items' => [
37046             bless(
37047             {
37048             'pattern' => 'MULTIPLY_ACT',
37049             'hashname' => '__PATTERN1__',
37050             'description' => '/MULTIPLY_ACT/i',
37051             'lookahead' => 0,
37052             'rdelim' => '/',
37053             'line' => 383,
37054             'mod' => 'i',
37055             'ldelim' => '/'
37056             },
37057             'Parse::RecDescent::Token'
37058             )
37059             ],
37060             'line' => 383
37061             },
37062             'Parse::RecDescent::Production'
37063             ),
37064             bless(
37065             {
37066             'number' => '52',
37067             'strcount' => 0,
37068             'dircount' => 0,
37069             'uncommit' => undef,
37070             'error' => undef,
37071             'patcount' => 1,
37072             'actcount' => 0,
37073             'items' => [
37074             bless(
37075             {
37076             'pattern' => 'NODENUMBER',
37077             'hashname' => '__PATTERN1__',
37078             'description' => '/NODENUMBER/i',
37079             'lookahead' => 0,
37080             'rdelim' => '/',
37081             'line' => 384,
37082             'mod' => 'i',
37083             'ldelim' => '/'
37084             },
37085             'Parse::RecDescent::Token'
37086             )
37087             ],
37088             'line' => 384
37089             },
37090             'Parse::RecDescent::Production'
37091             ),
37092             bless(
37093             {
37094             'number' => '53',
37095             'strcount' => 0,
37096             'dircount' => 0,
37097             'uncommit' => undef,
37098             'error' => undef,
37099             'patcount' => 1,
37100             'actcount' => 0,
37101             'items' => [
37102             bless(
37103             {
37104             'pattern' => 'NULLIF',
37105             'hashname' => '__PATTERN1__',
37106             'description' => '/NULLIF/i',
37107             'lookahead' => 0,
37108             'rdelim' => '/',
37109             'line' => 385,
37110             'mod' => 'i',
37111             'ldelim' => '/'
37112             },
37113             'Parse::RecDescent::Token'
37114             )
37115             ],
37116             'line' => 385
37117             },
37118             'Parse::RecDescent::Production'
37119             ),
37120             bless(
37121             {
37122             'number' => '54',
37123             'strcount' => 0,
37124             'dircount' => 0,
37125             'uncommit' => undef,
37126             'error' => undef,
37127             'patcount' => 1,
37128             'actcount' => 0,
37129             'items' => [
37130             bless(
37131             {
37132             'pattern' => 'PARTITON',
37133             'hashname' => '__PATTERN1__',
37134             'description' => '/PARTITON/i',
37135             'lookahead' => 0,
37136             'rdelim' => '/',
37137             'line' => 386,
37138             'mod' => 'i',
37139             'ldelim' => '/'
37140             },
37141             'Parse::RecDescent::Token'
37142             )
37143             ],
37144             'line' => 386
37145             },
37146             'Parse::RecDescent::Production'
37147             ),
37148             bless(
37149             {
37150             'number' => '55',
37151             'strcount' => 0,
37152             'dircount' => 0,
37153             'uncommit' => undef,
37154             'error' => undef,
37155             'patcount' => 1,
37156             'actcount' => 0,
37157             'items' => [
37158             bless(
37159             {
37160             'pattern' => 'POSSTR',
37161             'hashname' => '__PATTERN1__',
37162             'description' => '/POSSTR/i',
37163             'lookahead' => 0,
37164             'rdelim' => '/',
37165             'line' => 387,
37166             'mod' => 'i',
37167             'ldelim' => '/'
37168             },
37169             'Parse::RecDescent::Token'
37170             )
37171             ],
37172             'line' => 387
37173             },
37174             'Parse::RecDescent::Production'
37175             ),
37176             bless(
37177             {
37178             'number' => '56',
37179             'strcount' => 0,
37180             'dircount' => 0,
37181             'uncommit' => undef,
37182             'error' => undef,
37183             'patcount' => 1,
37184             'actcount' => 0,
37185             'items' => [
37186             bless(
37187             {
37188             'pattern' => 'RAISE_ERROR',
37189             'hashname' => '__PATTERN1__',
37190             'description' => '/RAISE_ERROR/i',
37191             'lookahead' => 0,
37192             'rdelim' => '/',
37193             'line' => 388,
37194             'mod' => 'i',
37195             'ldelim' => '/'
37196             },
37197             'Parse::RecDescent::Token'
37198             )
37199             ],
37200             'line' => 388
37201             },
37202             'Parse::RecDescent::Production'
37203             ),
37204             bless(
37205             {
37206             'number' => '57',
37207             'strcount' => 0,
37208             'dircount' => 0,
37209             'uncommit' => undef,
37210             'error' => undef,
37211             'patcount' => 1,
37212             'actcount' => 0,
37213             'items' => [
37214             bless(
37215             {
37216             'pattern' => 'REAL',
37217             'hashname' => '__PATTERN1__',
37218             'description' => '/REAL/i',
37219             'lookahead' => 0,
37220             'rdelim' => '/',
37221             'line' => 389,
37222             'mod' => 'i',
37223             'ldelim' => '/'
37224             },
37225             'Parse::RecDescent::Token'
37226             )
37227             ],
37228             'line' => 389
37229             },
37230             'Parse::RecDescent::Production'
37231             ),
37232             bless(
37233             {
37234             'number' => '58',
37235             'strcount' => 0,
37236             'dircount' => 0,
37237             'uncommit' => undef,
37238             'error' => undef,
37239             'patcount' => 1,
37240             'actcount' => 0,
37241             'items' => [
37242             bless(
37243             {
37244             'pattern' => 'REC2XML',
37245             'hashname' => '__PATTERN1__',
37246             'description' => '/REC2XML/i',
37247             'lookahead' => 0,
37248             'rdelim' => '/',
37249             'line' => 390,
37250             'mod' => 'i',
37251             'ldelim' => '/'
37252             },
37253             'Parse::RecDescent::Token'
37254             )
37255             ],
37256             'line' => 390
37257             },
37258             'Parse::RecDescent::Production'
37259             ),
37260             bless(
37261             {
37262             'number' => '59',
37263             'strcount' => 0,
37264             'dircount' => 0,
37265             'uncommit' => undef,
37266             'error' => undef,
37267             'patcount' => 1,
37268             'actcount' => 0,
37269             'items' => [
37270             bless(
37271             {
37272             'pattern' => 'REGR_AVGX',
37273             'hashname' => '__PATTERN1__',
37274             'description' => '/REGR_AVGX/i',
37275             'lookahead' => 0,
37276             'rdelim' => '/',
37277             'line' => 391,
37278             'mod' => 'i',
37279             'ldelim' => '/'
37280             },
37281             'Parse::RecDescent::Token'
37282             )
37283             ],
37284             'line' => 391
37285             },
37286             'Parse::RecDescent::Production'
37287             ),
37288             bless(
37289             {
37290             'number' => '60',
37291             'strcount' => 0,
37292             'dircount' => 0,
37293             'uncommit' => undef,
37294             'error' => undef,
37295             'patcount' => 1,
37296             'actcount' => 0,
37297             'items' => [
37298             bless(
37299             {
37300             'pattern' => 'REGR_AVGY',
37301             'hashname' => '__PATTERN1__',
37302             'description' => '/REGR_AVGY/i',
37303             'lookahead' => 0,
37304             'rdelim' => '/',
37305             'line' => 392,
37306             'mod' => 'i',
37307             'ldelim' => '/'
37308             },
37309             'Parse::RecDescent::Token'
37310             )
37311             ],
37312             'line' => 392
37313             },
37314             'Parse::RecDescent::Production'
37315             ),
37316             bless(
37317             {
37318             'number' => '61',
37319             'strcount' => 0,
37320             'dircount' => 0,
37321             'uncommit' => undef,
37322             'error' => undef,
37323             'patcount' => 1,
37324             'actcount' => 0,
37325             'items' => [
37326             bless(
37327             {
37328             'pattern' => 'REGR_COUNT',
37329             'hashname' => '__PATTERN1__',
37330             'description' => '/REGR_COUNT/i',
37331             'lookahead' => 0,
37332             'rdelim' => '/',
37333             'line' => 393,
37334             'mod' => 'i',
37335             'ldelim' => '/'
37336             },
37337             'Parse::RecDescent::Token'
37338             )
37339             ],
37340             'line' => 393
37341             },
37342             'Parse::RecDescent::Production'
37343             ),
37344             bless(
37345             {
37346             'number' => '62',
37347             'strcount' => 0,
37348             'dircount' => 0,
37349             'uncommit' => undef,
37350             'error' => undef,
37351             'patcount' => 0,
37352             'actcount' => 0,
37353             'items' => [
37354             bless(
37355             {
37356             'subrule' => '_alternation_1_of_production_63_of_rule_sysibm_function',
37357             'matchrule' => 0,
37358             'implicit' => '/REGR_INTERCEPT/i, or /REGR_ICPT/i',
37359             'argcode' => undef,
37360             'lookahead' => 0,
37361             'line' => 394
37362             },
37363             'Parse::RecDescent::Subrule'
37364             )
37365             ],
37366             'line' => 394
37367             },
37368             'Parse::RecDescent::Production'
37369             ),
37370             bless(
37371             {
37372             'number' => '63',
37373             'strcount' => 0,
37374             'dircount' => 0,
37375             'uncommit' => undef,
37376             'error' => undef,
37377             'patcount' => 1,
37378             'actcount' => 0,
37379             'items' => [
37380             bless(
37381             {
37382             'pattern' => 'REGR_R2',
37383             'hashname' => '__PATTERN1__',
37384             'description' => '/REGR_R2/i',
37385             'lookahead' => 0,
37386             'rdelim' => '/',
37387             'line' => 395,
37388             'mod' => 'i',
37389             'ldelim' => '/'
37390             },
37391             'Parse::RecDescent::Token'
37392             )
37393             ],
37394             'line' => 395
37395             },
37396             'Parse::RecDescent::Production'
37397             ),
37398             bless(
37399             {
37400             'number' => '64',
37401             'strcount' => 0,
37402             'dircount' => 0,
37403             'uncommit' => undef,
37404             'error' => undef,
37405             'patcount' => 1,
37406             'actcount' => 0,
37407             'items' => [
37408             bless(
37409             {
37410             'pattern' => 'REGR_SLOPE',
37411             'hashname' => '__PATTERN1__',
37412             'description' => '/REGR_SLOPE/i',
37413             'lookahead' => 0,
37414             'rdelim' => '/',
37415             'line' => 396,
37416             'mod' => 'i',
37417             'ldelim' => '/'
37418             },
37419             'Parse::RecDescent::Token'
37420             )
37421             ],
37422             'line' => 396
37423             },
37424             'Parse::RecDescent::Production'
37425             ),
37426             bless(
37427             {
37428             'number' => '65',
37429             'strcount' => 0,
37430             'dircount' => 0,
37431             'uncommit' => undef,
37432             'error' => undef,
37433             'patcount' => 1,
37434             'actcount' => 0,
37435             'items' => [
37436             bless(
37437             {
37438             'pattern' => 'REGR_SXX',
37439             'hashname' => '__PATTERN1__',
37440             'description' => '/REGR_SXX/i',
37441             'lookahead' => 0,
37442             'rdelim' => '/',
37443             'line' => 397,
37444             'mod' => 'i',
37445             'ldelim' => '/'
37446             },
37447             'Parse::RecDescent::Token'
37448             )
37449             ],
37450             'line' => 397
37451             },
37452             'Parse::RecDescent::Production'
37453             ),
37454             bless(
37455             {
37456             'number' => '66',
37457             'strcount' => 0,
37458             'dircount' => 0,
37459             'uncommit' => undef,
37460             'error' => undef,
37461             'patcount' => 1,
37462             'actcount' => 0,
37463             'items' => [
37464             bless(
37465             {
37466             'pattern' => 'REGR_SXY',
37467             'hashname' => '__PATTERN1__',
37468             'description' => '/REGR_SXY/i',
37469             'lookahead' => 0,
37470             'rdelim' => '/',
37471             'line' => 398,
37472             'mod' => 'i',
37473             'ldelim' => '/'
37474             },
37475             'Parse::RecDescent::Token'
37476             )
37477             ],
37478             'line' => 398
37479             },
37480             'Parse::RecDescent::Production'
37481             ),
37482             bless(
37483             {
37484             'number' => '67',
37485             'strcount' => 0,
37486             'dircount' => 0,
37487             'uncommit' => undef,
37488             'error' => undef,
37489             'patcount' => 1,
37490             'actcount' => 0,
37491             'items' => [
37492             bless(
37493             {
37494             'pattern' => 'REGR_SYY',
37495             'hashname' => '__PATTERN1__',
37496             'description' => '/REGR_SYY/i',
37497             'lookahead' => 0,
37498             'rdelim' => '/',
37499             'line' => 399,
37500             'mod' => 'i',
37501             'ldelim' => '/'
37502             },
37503             'Parse::RecDescent::Token'
37504             )
37505             ],
37506             'line' => 399
37507             },
37508             'Parse::RecDescent::Production'
37509             ),
37510             bless(
37511             {
37512             'number' => '68',
37513             'strcount' => 0,
37514             'dircount' => 0,
37515             'uncommit' => undef,
37516             'error' => undef,
37517             'patcount' => 1,
37518             'actcount' => 0,
37519             'items' => [
37520             bless(
37521             {
37522             'pattern' => 'RTRIM',
37523             'hashname' => '__PATTERN1__',
37524             'description' => '/RTRIM/i',
37525             'lookahead' => 0,
37526             'rdelim' => '/',
37527             'line' => 400,
37528             'mod' => 'i',
37529             'ldelim' => '/'
37530             },
37531             'Parse::RecDescent::Token'
37532             )
37533             ],
37534             'line' => 400
37535             },
37536             'Parse::RecDescent::Production'
37537             ),
37538             bless(
37539             {
37540             'number' => '69',
37541             'strcount' => 0,
37542             'dircount' => 0,
37543             'uncommit' => undef,
37544             'error' => undef,
37545             'patcount' => 1,
37546             'actcount' => 0,
37547             'items' => [
37548             bless(
37549             {
37550             'pattern' => 'SECOND',
37551             'hashname' => '__PATTERN1__',
37552             'description' => '/SECOND/i',
37553             'lookahead' => 0,
37554             'rdelim' => '/',
37555             'line' => 401,
37556             'mod' => 'i',
37557             'ldelim' => '/'
37558             },
37559             'Parse::RecDescent::Token'
37560             )
37561             ],
37562             'line' => 401
37563             },
37564             'Parse::RecDescent::Production'
37565             ),
37566             bless(
37567             {
37568             'number' => '70',
37569             'strcount' => 0,
37570             'dircount' => 0,
37571             'uncommit' => undef,
37572             'error' => undef,
37573             'patcount' => 1,
37574             'actcount' => 0,
37575             'items' => [
37576             bless(
37577             {
37578             'pattern' => 'SMALLINT',
37579             'hashname' => '__PATTERN1__',
37580             'description' => '/SMALLINT/i',
37581             'lookahead' => 0,
37582             'rdelim' => '/',
37583             'line' => 402,
37584             'mod' => 'i',
37585             'ldelim' => '/'
37586             },
37587             'Parse::RecDescent::Token'
37588             )
37589             ],
37590             'line' => 402
37591             },
37592             'Parse::RecDescent::Production'
37593             ),
37594             bless(
37595             {
37596             'number' => '71',
37597             'strcount' => 0,
37598             'dircount' => 0,
37599             'uncommit' => undef,
37600             'error' => undef,
37601             'patcount' => 1,
37602             'actcount' => 0,
37603             'items' => [
37604             bless(
37605             {
37606             'pattern' => 'STDDEV',
37607             'hashname' => '__PATTERN1__',
37608             'description' => '/STDDEV/i',
37609             'lookahead' => 0,
37610             'rdelim' => '/',
37611             'line' => 403,
37612             'mod' => 'i',
37613             'ldelim' => '/'
37614             },
37615             'Parse::RecDescent::Token'
37616             )
37617             ],
37618             'line' => 403
37619             },
37620             'Parse::RecDescent::Production'
37621             ),
37622             bless(
37623             {
37624             'number' => '72',
37625             'strcount' => 0,
37626             'dircount' => 0,
37627             'uncommit' => undef,
37628             'error' => undef,
37629             'patcount' => 1,
37630             'actcount' => 0,
37631             'items' => [
37632             bless(
37633             {
37634             'pattern' => 'SUBSTR',
37635             'hashname' => '__PATTERN1__',
37636             'description' => '/SUBSTR/i',
37637             'lookahead' => 0,
37638             'rdelim' => '/',
37639             'line' => 404,
37640             'mod' => 'i',
37641             'ldelim' => '/'
37642             },
37643             'Parse::RecDescent::Token'
37644             )
37645             ],
37646             'line' => 404
37647             },
37648             'Parse::RecDescent::Production'
37649             ),
37650             bless(
37651             {
37652             'number' => '73',
37653             'strcount' => 0,
37654             'dircount' => 0,
37655             'uncommit' => undef,
37656             'error' => undef,
37657             'patcount' => 1,
37658             'actcount' => 0,
37659             'items' => [
37660             bless(
37661             {
37662             'pattern' => 'SUM',
37663             'hashname' => '__PATTERN1__',
37664             'description' => '/SUM/i',
37665             'lookahead' => 0,
37666             'rdelim' => '/',
37667             'line' => 405,
37668             'mod' => 'i',
37669             'ldelim' => '/'
37670             },
37671             'Parse::RecDescent::Token'
37672             )
37673             ],
37674             'line' => 405
37675             },
37676             'Parse::RecDescent::Production'
37677             ),
37678             bless(
37679             {
37680             'number' => '74',
37681             'strcount' => 0,
37682             'dircount' => 0,
37683             'uncommit' => undef,
37684             'error' => undef,
37685             'patcount' => 1,
37686             'actcount' => 0,
37687             'items' => [
37688             bless(
37689             {
37690             'pattern' => 'TABLE_NAME',
37691             'hashname' => '__PATTERN1__',
37692             'description' => '/TABLE_NAME/i',
37693             'lookahead' => 0,
37694             'rdelim' => '/',
37695             'line' => 406,
37696             'mod' => 'i',
37697             'ldelim' => '/'
37698             },
37699             'Parse::RecDescent::Token'
37700             )
37701             ],
37702             'line' => 406
37703             },
37704             'Parse::RecDescent::Production'
37705             ),
37706             bless(
37707             {
37708             'number' => '75',
37709             'strcount' => 0,
37710             'dircount' => 0,
37711             'uncommit' => undef,
37712             'error' => undef,
37713             'patcount' => 1,
37714             'actcount' => 0,
37715             'items' => [
37716             bless(
37717             {
37718             'pattern' => 'TABLE_SCHEMA',
37719             'hashname' => '__PATTERN1__',
37720             'description' => '/TABLE_SCHEMA/i',
37721             'lookahead' => 0,
37722             'rdelim' => '/',
37723             'line' => 407,
37724             'mod' => 'i',
37725             'ldelim' => '/'
37726             },
37727             'Parse::RecDescent::Token'
37728             )
37729             ],
37730             'line' => 407
37731             },
37732             'Parse::RecDescent::Production'
37733             ),
37734             bless(
37735             {
37736             'number' => '76',
37737             'strcount' => 0,
37738             'dircount' => 0,
37739             'uncommit' => undef,
37740             'error' => undef,
37741             'patcount' => 1,
37742             'actcount' => 0,
37743             'items' => [
37744             bless(
37745             {
37746             'pattern' => 'TIME',
37747             'hashname' => '__PATTERN1__',
37748             'description' => '/TIME/i',
37749             'lookahead' => 0,
37750             'rdelim' => '/',
37751             'line' => 408,
37752             'mod' => 'i',
37753             'ldelim' => '/'
37754             },
37755             'Parse::RecDescent::Token'
37756             )
37757             ],
37758             'line' => 408
37759             },
37760             'Parse::RecDescent::Production'
37761             ),
37762             bless(
37763             {
37764             'number' => '77',
37765             'strcount' => 0,
37766             'dircount' => 0,
37767             'uncommit' => undef,
37768             'error' => undef,
37769             'patcount' => 1,
37770             'actcount' => 0,
37771             'items' => [
37772             bless(
37773             {
37774             'pattern' => 'TIMESTAMP',
37775             'hashname' => '__PATTERN1__',
37776             'description' => '/TIMESTAMP/i',
37777             'lookahead' => 0,
37778             'rdelim' => '/',
37779             'line' => 409,
37780             'mod' => 'i',
37781             'ldelim' => '/'
37782             },
37783             'Parse::RecDescent::Token'
37784             )
37785             ],
37786             'line' => 409
37787             },
37788             'Parse::RecDescent::Production'
37789             ),
37790             bless(
37791             {
37792             'number' => '78',
37793             'strcount' => 0,
37794             'dircount' => 0,
37795             'uncommit' => undef,
37796             'error' => undef,
37797             'patcount' => 1,
37798             'actcount' => 0,
37799             'items' => [
37800             bless(
37801             {
37802             'pattern' => 'TRANSLATE',
37803             'hashname' => '__PATTERN1__',
37804             'description' => '/TRANSLATE/i',
37805             'lookahead' => 0,
37806             'rdelim' => '/',
37807             'line' => 410,
37808             'mod' => 'i',
37809             'ldelim' => '/'
37810             },
37811             'Parse::RecDescent::Token'
37812             )
37813             ],
37814             'line' => 410
37815             },
37816             'Parse::RecDescent::Production'
37817             ),
37818             bless(
37819             {
37820             'number' => '79',
37821             'strcount' => 0,
37822             'dircount' => 0,
37823             'uncommit' => undef,
37824             'error' => undef,
37825             'patcount' => 1,
37826             'actcount' => 0,
37827             'items' => [
37828             bless(
37829             {
37830             'pattern' => 'TYPE_ID',
37831             'hashname' => '__PATTERN1__',
37832             'description' => '/TYPE_ID/i',
37833             'lookahead' => 0,
37834             'rdelim' => '/',
37835             'line' => 411,
37836             'mod' => 'i',
37837             'ldelim' => '/'
37838             },
37839             'Parse::RecDescent::Token'
37840             )
37841             ],
37842             'line' => 411
37843             },
37844             'Parse::RecDescent::Production'
37845             ),
37846             bless(
37847             {
37848             'number' => '80',
37849             'strcount' => 0,
37850             'dircount' => 0,
37851             'uncommit' => undef,
37852             'error' => undef,
37853             'patcount' => 1,
37854             'actcount' => 0,
37855             'items' => [
37856             bless(
37857             {
37858             'pattern' => 'TYPE_NAME',
37859             'hashname' => '__PATTERN1__',
37860             'description' => '/TYPE_NAME/i',
37861             'lookahead' => 0,
37862             'rdelim' => '/',
37863             'line' => 412,
37864             'mod' => 'i',
37865             'ldelim' => '/'
37866             },
37867             'Parse::RecDescent::Token'
37868             )
37869             ],
37870             'line' => 412
37871             },
37872             'Parse::RecDescent::Production'
37873             ),
37874             bless(
37875             {
37876             'number' => '81',
37877             'strcount' => 0,
37878             'dircount' => 0,
37879             'uncommit' => undef,
37880             'error' => undef,
37881             'patcount' => 1,
37882             'actcount' => 0,
37883             'items' => [
37884             bless(
37885             {
37886             'pattern' => 'TYPE_SCHEMA',
37887             'hashname' => '__PATTERN1__',
37888             'description' => '/TYPE_SCHEMA/i',
37889             'lookahead' => 0,
37890             'rdelim' => '/',
37891             'line' => 413,
37892             'mod' => 'i',
37893             'ldelim' => '/'
37894             },
37895             'Parse::RecDescent::Token'
37896             )
37897             ],
37898             'line' => 413
37899             },
37900             'Parse::RecDescent::Production'
37901             ),
37902             bless(
37903             {
37904             'number' => '82',
37905             'strcount' => 0,
37906             'dircount' => 0,
37907             'uncommit' => undef,
37908             'error' => undef,
37909             'patcount' => 0,
37910             'actcount' => 0,
37911             'items' => [
37912             bless(
37913             {
37914             'subrule' => '_alternation_1_of_production_83_of_rule_sysibm_function',
37915             'matchrule' => 0,
37916             'implicit' => '/UCASE/i, or /UPPER/i',
37917             'argcode' => undef,
37918             'lookahead' => 0,
37919             'line' => 414
37920             },
37921             'Parse::RecDescent::Subrule'
37922             )
37923             ],
37924             'line' => 414
37925             },
37926             'Parse::RecDescent::Production'
37927             ),
37928             bless(
37929             {
37930             'number' => '83',
37931             'strcount' => 0,
37932             'dircount' => 0,
37933             'uncommit' => undef,
37934             'error' => undef,
37935             'patcount' => 1,
37936             'actcount' => 0,
37937             'items' => [
37938             bless(
37939             {
37940             'pattern' => 'VALUE',
37941             'hashname' => '__PATTERN1__',
37942             'description' => '/VALUE/i',
37943             'lookahead' => 0,
37944             'rdelim' => '/',
37945             'line' => 415,
37946             'mod' => 'i',
37947             'ldelim' => '/'
37948             },
37949             'Parse::RecDescent::Token'
37950             )
37951             ],
37952             'line' => 415
37953             },
37954             'Parse::RecDescent::Production'
37955             ),
37956             bless(
37957             {
37958             'number' => '84',
37959             'strcount' => 0,
37960             'dircount' => 0,
37961             'uncommit' => undef,
37962             'error' => undef,
37963             'patcount' => 1,
37964             'actcount' => 0,
37965             'items' => [
37966             bless(
37967             {
37968             'pattern' => 'VARCHAR',
37969             'hashname' => '__PATTERN1__',
37970             'description' => '/VARCHAR/i',
37971             'lookahead' => 0,
37972             'rdelim' => '/',
37973             'line' => 416,
37974             'mod' => 'i',
37975             'ldelim' => '/'
37976             },
37977             'Parse::RecDescent::Token'
37978             )
37979             ],
37980             'line' => 416
37981             },
37982             'Parse::RecDescent::Production'
37983             ),
37984             bless(
37985             {
37986             'number' => '85',
37987             'strcount' => 0,
37988             'dircount' => 0,
37989             'uncommit' => undef,
37990             'error' => undef,
37991             'patcount' => 1,
37992             'actcount' => 0,
37993             'items' => [
37994             bless(
37995             {
37996             'pattern' => 'VARGRAPHIC',
37997             'hashname' => '__PATTERN1__',
37998             'description' => '/VARGRAPHIC/i',
37999             'lookahead' => 0,
38000             'rdelim' => '/',
38001             'line' => 417,
38002             'mod' => 'i',
38003             'ldelim' => '/'
38004             },
38005             'Parse::RecDescent::Token'
38006             )
38007             ],
38008             'line' => 417
38009             },
38010             'Parse::RecDescent::Production'
38011             ),
38012             bless(
38013             {
38014             'number' => '86',
38015             'strcount' => 0,
38016             'dircount' => 0,
38017             'uncommit' => undef,
38018             'error' => undef,
38019             'patcount' => 0,
38020             'actcount' => 0,
38021             'items' => [
38022             bless(
38023             {
38024             'subrule' => '_alternation_1_of_production_87_of_rule_sysibm_function',
38025             'matchrule' => 0,
38026             'implicit' => '/VARIANCE/i, or /VAR/i',
38027             'argcode' => undef,
38028             'lookahead' => 0,
38029             'line' => 418
38030             },
38031             'Parse::RecDescent::Subrule'
38032             )
38033             ],
38034             'line' => 418
38035             },
38036             'Parse::RecDescent::Production'
38037             ),
38038             bless(
38039             {
38040             'number' => '87',
38041             'strcount' => 0,
38042             'dircount' => 0,
38043             'uncommit' => undef,
38044             'error' => undef,
38045             'patcount' => 1,
38046             'actcount' => 0,
38047             'items' => [
38048             bless(
38049             {
38050             'pattern' => 'YEAR',
38051             'hashname' => '__PATTERN1__',
38052             'description' => '/YEAR/i',
38053             'lookahead' => 0,
38054             'rdelim' => '/',
38055             'line' => 419,
38056             'mod' => 'i',
38057             'ldelim' => '/'
38058             },
38059             'Parse::RecDescent::Token'
38060             )
38061             ],
38062             'line' => 419
38063             },
38064             'Parse::RecDescent::Production'
38065             )
38066             ],
38067             'name' => 'sysibm_function',
38068             'vars' => '',
38069             'line' => 332
38070             },
38071             'Parse::RecDescent::Rule'
38072             ),
38073             'window_partition_clause' => bless(
38074             {
38075             'impcount' => 0,
38076             'calls' => ['partitioning_expression'],
38077             'changed' => 0,
38078             'opcount' => 0,
38079             'prods' => [
38080             bless(
38081             {
38082             'number' => '0',
38083             'strcount' => 0,
38084             'dircount' => 1,
38085             'uncommit' => undef,
38086             'error' => undef,
38087             'patcount' => 2,
38088             'actcount' => 0,
38089             'op' => [],
38090             'items' => [
38091             bless(
38092             {
38093             'pattern' => 'PARTITION\\s+BY',
38094             'hashname' => '__PATTERN1__',
38095             'description' => '/PARTITION\\\\s+BY/i',
38096             'lookahead' => 0,
38097             'rdelim' => '/',
38098             'line' => 553,
38099             'mod' => 'i',
38100             'ldelim' => '/'
38101             },
38102             'Parse::RecDescent::Token'
38103             ),
38104             bless(
38105             {
38106             'expected' => '',
38107             'min' => 1,
38108             'name' => '\'partitioning_expression(s)\'',
38109             'max' => 100000000,
38110             'leftarg' => bless(
38111             {
38112             'subrule' => 'partitioning_expression',
38113             'matchrule' => 0,
38114             'implicit' => undef,
38115             'argcode' => undef,
38116             'lookahead' => 0,
38117             'line' => 553
38118             },
38119             'Parse::RecDescent::Subrule'
38120             ),
38121             'rightarg' => bless(
38122             {
38123             'subrule' => 'partitioning_expression',
38124             'matchrule' => 0,
38125             'implicit' => undef,
38126             'argcode' => undef,
38127             'lookahead' => 0,
38128             'line' => 553
38129             },
38130             'Parse::RecDescent::Subrule'
38131             ),
38132             'hashname' => '__DIRECTIVE1__',
38133             'type' => 'leftop',
38134             'op' => bless(
38135             {
38136             'pattern' => ',',
38137             'hashname' => '__PATTERN2__',
38138             'description' => '/,/',
38139             'lookahead' => 0,
38140             'rdelim' => '/',
38141             'line' => 553,
38142             'mod' => '',
38143             'ldelim' => '/'
38144             },
38145             'Parse::RecDescent::Token'
38146             )
38147             },
38148             'Parse::RecDescent::Operator'
38149             )
38150             ],
38151             'line' => undef
38152             },
38153             'Parse::RecDescent::Production'
38154             )
38155             ],
38156             'name' => 'window_partition_clause',
38157             'vars' => '',
38158             'line' => 553
38159             },
38160             'Parse::RecDescent::Rule'
38161             ),
38162             'WHERE' => bless(
38163             {
38164             'impcount' => 0,
38165             'calls' => [],
38166             'changed' => 0,
38167             'opcount' => 0,
38168             'prods' => [
38169             bless(
38170             {
38171             'number' => '0',
38172             'strcount' => 0,
38173             'dircount' => 0,
38174             'uncommit' => undef,
38175             'error' => undef,
38176             'patcount' => 1,
38177             'actcount' => 0,
38178             'items' => [
38179             bless(
38180             {
38181             'pattern' => 'where',
38182             'hashname' => '__PATTERN1__',
38183             'description' => '/where/i',
38184             'lookahead' => 0,
38185             'rdelim' => '/',
38186             'line' => 117,
38187             'mod' => 'i',
38188             'ldelim' => '/'
38189             },
38190             'Parse::RecDescent::Token'
38191             )
38192             ],
38193             'line' => undef
38194             },
38195             'Parse::RecDescent::Production'
38196             )
38197             ],
38198             'name' => 'WHERE',
38199             'vars' => '',
38200             'line' => 117
38201             },
38202             'Parse::RecDescent::Rule'
38203             ),
38204             'CREATE' => bless(
38205             {
38206             'impcount' => 0,
38207             'calls' => [],
38208             'changed' => 0,
38209             'opcount' => 0,
38210             'prods' => [
38211             bless(
38212             {
38213             'number' => '0',
38214             'strcount' => 0,
38215             'dircount' => 0,
38216             'uncommit' => undef,
38217             'error' => undef,
38218             'patcount' => 1,
38219             'actcount' => 0,
38220             'items' => [
38221             bless(
38222             {
38223             'pattern' => 'create',
38224             'hashname' => '__PATTERN1__',
38225             'description' => '/create/i',
38226             'lookahead' => 0,
38227             'rdelim' => '/',
38228             'line' => 101,
38229             'mod' => 'i',
38230             'ldelim' => '/'
38231             },
38232             'Parse::RecDescent::Token'
38233             )
38234             ],
38235             'line' => undef
38236             },
38237             'Parse::RecDescent::Production'
38238             )
38239             ],
38240             'name' => 'CREATE',
38241             'vars' => '',
38242             'line' => 101
38243             },
38244             'Parse::RecDescent::Rule'
38245             ),
38246             '_alternation_1_of_production_1_of_rule_sysfun' => bless(
38247             {
38248             'impcount' => 0,
38249             'calls' => [],
38250             'changed' => 0,
38251             'opcount' => 0,
38252             'prods' => [
38253             bless(
38254             {
38255             'number' => '0',
38256             'strcount' => 0,
38257             'dircount' => 0,
38258             'uncommit' => undef,
38259             'error' => undef,
38260             'patcount' => 1,
38261             'actcount' => 0,
38262             'items' => [
38263             bless(
38264             {
38265             'pattern' => 'ABS',
38266             'hashname' => '__PATTERN1__',
38267             'description' => '/ABS/i',
38268             'lookahead' => 0,
38269             'rdelim' => '/',
38270             'line' => 628,
38271             'mod' => 'i',
38272             'ldelim' => '/'
38273             },
38274             'Parse::RecDescent::Token'
38275             )
38276             ],
38277             'line' => undef
38278             },
38279             'Parse::RecDescent::Production'
38280             ),
38281             bless(
38282             {
38283             'number' => '1',
38284             'strcount' => 0,
38285             'dircount' => 0,
38286             'uncommit' => undef,
38287             'error' => undef,
38288             'patcount' => 1,
38289             'actcount' => 0,
38290             'items' => [
38291             bless(
38292             {
38293             'pattern' => 'ABSVAL',
38294             'hashname' => '__PATTERN1__',
38295             'description' => '/ABSVAL/i',
38296             'lookahead' => 0,
38297             'rdelim' => '/',
38298             'line' => 628,
38299             'mod' => 'i',
38300             'ldelim' => '/'
38301             },
38302             'Parse::RecDescent::Token'
38303             )
38304             ],
38305             'line' => 628
38306             },
38307             'Parse::RecDescent::Production'
38308             )
38309             ],
38310             'name' => '_alternation_1_of_production_1_of_rule_sysfun',
38311             'vars' => '',
38312             'line' => 628
38313             },
38314             'Parse::RecDescent::Rule'
38315             ),
38316             '_alternation_1_of_production_1_of_rule_function' => bless(
38317             {
38318             'impcount' => 0,
38319             'calls' => [
38320             'sysibm_function',
38321             'sysfun_function',
38322             'userdefined_function'
38323             ],
38324             'changed' => 0,
38325             'opcount' => 0,
38326             'prods' => [
38327             bless(
38328             {
38329             'number' => '0',
38330             'strcount' => 0,
38331             'dircount' => 0,
38332             'uncommit' => undef,
38333             'error' => undef,
38334             'patcount' => 1,
38335             'actcount' => 0,
38336             'items' => [
38337             bless(
38338             {
38339             'pattern' => 'SYSIBM\\.|',
38340             'hashname' => '__PATTERN1__',
38341             'description' => '/SYSIBM\\\\.|/i',
38342             'lookahead' => 0,
38343             'rdelim' => '/',
38344             'line' => 625,
38345             'mod' => 'i',
38346             'ldelim' => '/'
38347             },
38348             'Parse::RecDescent::Token'
38349             ),
38350             bless(
38351             {
38352             'subrule' => 'sysibm_function',
38353             'matchrule' => 0,
38354             'implicit' => undef,
38355             'argcode' => undef,
38356             'lookahead' => 0,
38357             'line' => 625
38358             },
38359             'Parse::RecDescent::Subrule'
38360             )
38361             ],
38362             'line' => undef
38363             },
38364             'Parse::RecDescent::Production'
38365             ),
38366             bless(
38367             {
38368             'number' => '1',
38369             'strcount' => 0,
38370             'dircount' => 0,
38371             'uncommit' => undef,
38372             'error' => undef,
38373             'patcount' => 1,
38374             'actcount' => 0,
38375             'items' => [
38376             bless(
38377             {
38378             'pattern' => 'SYSFUN\\.|',
38379             'hashname' => '__PATTERN1__',
38380             'description' => '/SYSFUN\\\\.|/i',
38381             'lookahead' => 0,
38382             'rdelim' => '/',
38383             'line' => 626,
38384             'mod' => 'i',
38385             'ldelim' => '/'
38386             },
38387             'Parse::RecDescent::Token'
38388             ),
38389             bless(
38390             {
38391             'subrule' => 'sysfun_function',
38392             'matchrule' => 0,
38393             'implicit' => undef,
38394             'argcode' => undef,
38395             'lookahead' => 0,
38396             'line' => 626
38397             },
38398             'Parse::RecDescent::Subrule'
38399             )
38400             ],
38401             'line' => 626
38402             },
38403             'Parse::RecDescent::Production'
38404             ),
38405             bless(
38406             {
38407             'number' => '2',
38408             'strcount' => 0,
38409             'dircount' => 0,
38410             'uncommit' => undef,
38411             'error' => undef,
38412             'patcount' => 0,
38413             'actcount' => 0,
38414             'items' => [
38415             bless(
38416             {
38417             'subrule' => 'userdefined_function',
38418             'matchrule' => 0,
38419             'implicit' => undef,
38420             'argcode' => undef,
38421             'lookahead' => 0,
38422             'line' => 627
38423             },
38424             'Parse::RecDescent::Subrule'
38425             )
38426             ],
38427             'line' => 627
38428             },
38429             'Parse::RecDescent::Production'
38430             )
38431             ],
38432             'name' => '_alternation_1_of_production_1_of_rule_function',
38433             'vars' => '',
38434             'line' => 625
38435             },
38436             'Parse::RecDescent::Rule'
38437             ),
38438             'identifier' => bless(
38439             {
38440             'impcount' => 0,
38441             'calls' => ['NAME'],
38442             'changed' => 0,
38443             'opcount' => 0,
38444             'prods' => [
38445             bless(
38446             {
38447             'number' => '0',
38448             'strcount' => 0,
38449             'dircount' => 0,
38450             'uncommit' => undef,
38451             'error' => undef,
38452             'patcount' => 0,
38453             'actcount' => 0,
38454             'items' => [
38455             bless(
38456             {
38457             'subrule' => 'NAME',
38458             'matchrule' => 0,
38459             'implicit' => undef,
38460             'argcode' => undef,
38461             'lookahead' => 0,
38462             'line' => 136
38463             },
38464             'Parse::RecDescent::Subrule'
38465             )
38466             ],
38467             'line' => undef
38468             },
38469             'Parse::RecDescent::Production'
38470             )
38471             ],
38472             'name' => 'identifier',
38473             'vars' => '',
38474             'line' => 136
38475             },
38476             'Parse::RecDescent::Rule'
38477             ),
38478             '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause' =>
38479             bless(
38480             {
38481             'impcount' => 0,
38482             'calls' => [
38483             'asc_option',
38484             'desc_option'
38485             ],
38486             'changed' => 0,
38487             'opcount' => 0,
38488             'prods' => [
38489             bless(
38490             {
38491             'number' => '0',
38492             'strcount' => 0,
38493             'dircount' => 0,
38494             'uncommit' => undef,
38495             'error' => undef,
38496             'patcount' => 0,
38497             'actcount' => 0,
38498             'items' => [
38499             bless(
38500             {
38501             'subrule' => 'asc_option',
38502             'matchrule' => 0,
38503             'implicit' => undef,
38504             'argcode' => undef,
38505             'lookahead' => 0,
38506             'line' => 626
38507             },
38508             'Parse::RecDescent::Subrule'
38509             )
38510             ],
38511             'line' => undef
38512             },
38513             'Parse::RecDescent::Production'
38514             ),
38515             bless(
38516             {
38517             'number' => '1',
38518             'strcount' => 0,
38519             'dircount' => 0,
38520             'uncommit' => undef,
38521             'error' => undef,
38522             'patcount' => 0,
38523             'actcount' => 0,
38524             'items' => [
38525             bless(
38526             {
38527             'subrule' => 'desc_option',
38528             'matchrule' => 0,
38529             'implicit' => undef,
38530             'argcode' => undef,
38531             'lookahead' => 0,
38532             'line' => 627
38533             },
38534             'Parse::RecDescent::Subrule'
38535             )
38536             ],
38537             'line' => 627
38538             },
38539             'Parse::RecDescent::Production'
38540             )
38541             ],
38542             'name' =>
38543             '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause',
38544             'vars' => '',
38545             'line' => 626
38546             },
38547             'Parse::RecDescent::Rule'
38548             ),
38549             'result_expression' => bless(
38550             {
38551             'impcount' => 0,
38552             'calls' => ['expression'],
38553             'changed' => 0,
38554             'opcount' => 0,
38555             'prods' => [
38556             bless(
38557             {
38558             'number' => '0',
38559             'strcount' => 0,
38560             'dircount' => 0,
38561             'uncommit' => undef,
38562             'error' => undef,
38563             'patcount' => 0,
38564             'actcount' => 0,
38565             'items' => [
38566             bless(
38567             {
38568             'subrule' => 'expression',
38569             'matchrule' => 0,
38570             'implicit' => undef,
38571             'argcode' => undef,
38572             'lookahead' => 0,
38573             'line' => 515
38574             },
38575             'Parse::RecDescent::Subrule'
38576             )
38577             ],
38578             'line' => undef
38579             },
38580             'Parse::RecDescent::Production'
38581             )
38582             ],
38583             'name' => 'result_expression',
38584             'vars' => '',
38585             'line' => 515
38586             },
38587             'Parse::RecDescent::Rule'
38588             ),
38589             'scoped_reference_expression' => bless(
38590             {
38591             'impcount' => 0,
38592             'calls' => ['expression'],
38593             'changed' => 0,
38594             'opcount' => 0,
38595             'prods' => [
38596             bless(
38597             {
38598             'number' => '0',
38599             'strcount' => 0,
38600             'dircount' => 0,
38601             'uncommit' => undef,
38602             'error' => undef,
38603             'patcount' => 0,
38604             'actcount' => 1,
38605             'items' => [
38606             bless(
38607             {
38608             'subrule' => 'expression',
38609             'matchrule' => 0,
38610             'implicit' => undef,
38611             'argcode' => undef,
38612             'lookahead' => 0,
38613             'line' => 532
38614             },
38615             'Parse::RecDescent::Subrule'
38616             ),
38617             bless(
38618             {
38619             'hashname' => '__ACTION1__',
38620             'lookahead' => 0,
38621             'line' => 533,
38622             'code' => '{ # scoped, reference
38623             }'
38624             },
38625             'Parse::RecDescent::Action'
38626             )
38627             ],
38628             'line' => undef
38629             },
38630             'Parse::RecDescent::Production'
38631             )
38632             ],
38633             'name' => 'scoped_reference_expression',
38634             'vars' => '',
38635             'line' => 528
38636             },
38637             'Parse::RecDescent::Rule'
38638             ),
38639             '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification' =>
38640             bless(
38641             {
38642             'impcount' => 0,
38643             'calls' => [
38644             'typed_table_name',
38645             'typed_view_name'
38646             ],
38647             'changed' => 0,
38648             'opcount' => 0,
38649             'prods' => [
38650             bless(
38651             {
38652             'number' => '0',
38653             'strcount' => 0,
38654             'dircount' => 0,
38655             'uncommit' => undef,
38656             'error' => undef,
38657             'patcount' => 0,
38658             'actcount' => 0,
38659             'items' => [
38660             bless(
38661             {
38662             'subrule' => 'typed_table_name',
38663             'matchrule' => 0,
38664             'implicit' => undef,
38665             'argcode' => undef,
38666             'lookahead' => 0,
38667             'line' => 626
38668             },
38669             'Parse::RecDescent::Subrule'
38670             )
38671             ],
38672             'line' => undef
38673             },
38674             'Parse::RecDescent::Production'
38675             ),
38676             bless(
38677             {
38678             'number' => '1',
38679             'strcount' => 0,
38680             'dircount' => 0,
38681             'uncommit' => undef,
38682             'error' => undef,
38683             'patcount' => 0,
38684             'actcount' => 0,
38685             'items' => [
38686             bless(
38687             {
38688             'subrule' => 'typed_view_name',
38689             'matchrule' => 0,
38690             'implicit' => undef,
38691             'argcode' => undef,
38692             'lookahead' => 0,
38693             'line' => 627
38694             },
38695             'Parse::RecDescent::Subrule'
38696             )
38697             ],
38698             'line' => 627
38699             },
38700             'Parse::RecDescent::Production'
38701             )
38702             ],
38703             'name' =>
38704             '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification',
38705             'vars' => '',
38706             'line' => 626
38707             },
38708             'Parse::RecDescent::Rule'
38709             ),
38710             'when_clause' => bless(
38711             {
38712             'impcount' => 0,
38713             'calls' => ['search_condition'],
38714             'changed' => 0,
38715             'opcount' => 0,
38716             'prods' => [
38717             bless(
38718             {
38719             'number' => '0',
38720             'strcount' => 2,
38721             'dircount' => 0,
38722             'uncommit' => undef,
38723             'error' => undef,
38724             'patcount' => 1,
38725             'actcount' => 1,
38726             'items' => [
38727             bless(
38728             {
38729             'pattern' => 'WHEN',
38730             'hashname' => '__PATTERN1__',
38731             'description' => '/WHEN/i',
38732             'lookahead' => 0,
38733             'rdelim' => '/',
38734             'line' => 261,
38735             'mod' => 'i',
38736             'ldelim' => '/'
38737             },
38738             'Parse::RecDescent::Token'
38739             ),
38740             bless(
38741             {
38742             'pattern' => '(',
38743             'hashname' => '__STRING1__',
38744             'description' => '\'(\'',
38745             'lookahead' => 0,
38746             'line' => 261
38747             },
38748             'Parse::RecDescent::Literal'
38749             ),
38750             bless(
38751             {
38752             'subrule' => 'search_condition',
38753             'matchrule' => 0,
38754             'implicit' => undef,
38755             'argcode' => undef,
38756             'lookahead' => 0,
38757             'line' => 261
38758             },
38759             'Parse::RecDescent::Subrule'
38760             ),
38761             bless(
38762             {
38763             'pattern' => ')',
38764             'hashname' => '__STRING2__',
38765             'description' => '\')\'',
38766             'lookahead' => 0,
38767             'line' => 261
38768             },
38769             'Parse::RecDescent::Literal'
38770             ),
38771             bless(
38772             {
38773             'hashname' => '__ACTION1__',
38774             'lookahead' => 0,
38775             'line' => 261,
38776             'code' => '{$return = $item[3]}'
38777             },
38778             'Parse::RecDescent::Action'
38779             )
38780             ],
38781             'line' => undef
38782             },
38783             'Parse::RecDescent::Production'
38784             )
38785             ],
38786             'name' => 'when_clause',
38787             'vars' => '',
38788             'line' => 259
38789             },
38790             'Parse::RecDescent::Rule'
38791             ),
38792             '_alternation_1_of_production_1_of_rule_asc_option' => bless(
38793             {
38794             'impcount' => 0,
38795             'calls' => [],
38796             'changed' => 0,
38797             'opcount' => 0,
38798             'prods' => [
38799             bless(
38800             {
38801             'number' => '0',
38802             'strcount' => 0,
38803             'dircount' => 0,
38804             'uncommit' => undef,
38805             'error' => undef,
38806             'patcount' => 1,
38807             'actcount' => 0,
38808             'items' => [
38809             bless(
38810             {
38811             'pattern' => 'NULLS\\s+FIRST',
38812             'hashname' => '__PATTERN1__',
38813             'description' => '/NULLS\\\\s+FIRST/i',
38814             'lookahead' => 0,
38815             'rdelim' => '/',
38816             'line' => 628,
38817             'mod' => 'i',
38818             'ldelim' => '/'
38819             },
38820             'Parse::RecDescent::Token'
38821             )
38822             ],
38823             'line' => undef
38824             },
38825             'Parse::RecDescent::Production'
38826             ),
38827             bless(
38828             {
38829             'number' => '1',
38830             'strcount' => 0,
38831             'dircount' => 0,
38832             'uncommit' => undef,
38833             'error' => undef,
38834             'patcount' => 1,
38835             'actcount' => 0,
38836             'items' => [
38837             bless(
38838             {
38839             'pattern' => 'NULLS\\s+LAST',
38840             'hashname' => '__PATTERN1__',
38841             'description' => '/NULLS\\\\s+LAST/i',
38842             'lookahead' => 0,
38843             'rdelim' => '/',
38844             'line' => 628,
38845             'mod' => 'i',
38846             'ldelim' => '/'
38847             },
38848             'Parse::RecDescent::Token'
38849             )
38850             ],
38851             'line' => 628
38852             },
38853             'Parse::RecDescent::Production'
38854             )
38855             ],
38856             'name' => '_alternation_1_of_production_1_of_rule_asc_option',
38857             'vars' => '',
38858             'line' => 628
38859             },
38860             'Parse::RecDescent::Rule'
38861             ),
38862             'sequence_name' => bless(
38863             {
38864             'impcount' => 0,
38865             'calls' => ['NAME'],
38866             'changed' => 0,
38867             'opcount' => 0,
38868             'prods' => [
38869             bless(
38870             {
38871             'number' => '0',
38872             'strcount' => 0,
38873             'dircount' => 0,
38874             'uncommit' => undef,
38875             'error' => undef,
38876             'patcount' => 0,
38877             'actcount' => 0,
38878             'items' => [
38879             bless(
38880             {
38881             'subrule' => 'NAME',
38882             'matchrule' => 0,
38883             'implicit' => undef,
38884             'argcode' => undef,
38885             'lookahead' => 0,
38886             'line' => 615
38887             },
38888             'Parse::RecDescent::Subrule'
38889             )
38890             ],
38891             'line' => undef
38892             },
38893             'Parse::RecDescent::Production'
38894             )
38895             ],
38896             'name' => 'sequence_name',
38897             'vars' => '',
38898             'line' => 615
38899             },
38900             'Parse::RecDescent::Rule'
38901             ),
38902             'ld_duration' => bless(
38903             {
38904             'impcount' => 0,
38905             'calls' => [],
38906             'changed' => 0,
38907             'opcount' => 0,
38908             'prods' => [
38909             bless(
38910             {
38911             'number' => '0',
38912             'strcount' => 0,
38913             'dircount' => 0,
38914             'uncommit' => undef,
38915             'error' => undef,
38916             'patcount' => 1,
38917             'actcount' => 0,
38918             'items' => [
38919             bless(
38920             {
38921             'pattern' => 'YEARS?',
38922             'hashname' => '__PATTERN1__',
38923             'description' => '/YEARS?/i',
38924             'lookahead' => 0,
38925             'rdelim' => '/',
38926             'line' => 488,
38927             'mod' => 'i',
38928             'ldelim' => '/'
38929             },
38930             'Parse::RecDescent::Token'
38931             )
38932             ],
38933             'line' => undef
38934             },
38935             'Parse::RecDescent::Production'
38936             ),
38937             bless(
38938             {
38939             'number' => '1',
38940             'strcount' => 0,
38941             'dircount' => 0,
38942             'uncommit' => undef,
38943             'error' => undef,
38944             'patcount' => 1,
38945             'actcount' => 0,
38946             'items' => [
38947             bless(
38948             {
38949             'pattern' => 'MONTHS?',
38950             'hashname' => '__PATTERN1__',
38951             'description' => '/MONTHS?/i',
38952             'lookahead' => 0,
38953             'rdelim' => '/',
38954             'line' => 489,
38955             'mod' => 'i',
38956             'ldelim' => '/'
38957             },
38958             'Parse::RecDescent::Token'
38959             )
38960             ],
38961             'line' => 489
38962             },
38963             'Parse::RecDescent::Production'
38964             ),
38965             bless(
38966             {
38967             'number' => '2',
38968             'strcount' => 0,
38969             'dircount' => 0,
38970             'uncommit' => undef,
38971             'error' => undef,
38972             'patcount' => 1,
38973             'actcount' => 0,
38974             'items' => [
38975             bless(
38976             {
38977             'pattern' => 'DAYS?',
38978             'hashname' => '__PATTERN1__',
38979             'description' => '/DAYS?/i',
38980             'lookahead' => 0,
38981             'rdelim' => '/',
38982             'line' => 490,
38983             'mod' => 'i',
38984             'ldelim' => '/'
38985             },
38986             'Parse::RecDescent::Token'
38987             )
38988             ],
38989             'line' => 490
38990             },
38991             'Parse::RecDescent::Production'
38992             ),
38993             bless(
38994             {
38995             'number' => '3',
38996             'strcount' => 0,
38997             'dircount' => 0,
38998             'uncommit' => undef,
38999             'error' => undef,
39000             'patcount' => 1,
39001             'actcount' => 0,
39002             'items' => [
39003             bless(
39004             {
39005             'pattern' => 'HOURS?',
39006             'hashname' => '__PATTERN1__',
39007             'description' => '/HOURS?/i',
39008             'lookahead' => 0,
39009             'rdelim' => '/',
39010             'line' => 491,
39011             'mod' => 'i',
39012             'ldelim' => '/'
39013             },
39014             'Parse::RecDescent::Token'
39015             )
39016             ],
39017             'line' => 491
39018             },
39019             'Parse::RecDescent::Production'
39020             ),
39021             bless(
39022             {
39023             'number' => '4',
39024             'strcount' => 0,
39025             'dircount' => 0,
39026             'uncommit' => undef,
39027             'error' => undef,
39028             'patcount' => 1,
39029             'actcount' => 0,
39030             'items' => [
39031             bless(
39032             {
39033             'pattern' => 'MINUTES?',
39034             'hashname' => '__PATTERN1__',
39035             'description' => '/MINUTES?/i',
39036             'lookahead' => 0,
39037             'rdelim' => '/',
39038             'line' => 492,
39039             'mod' => 'i',
39040             'ldelim' => '/'
39041             },
39042             'Parse::RecDescent::Token'
39043             )
39044             ],
39045             'line' => 492
39046             },
39047             'Parse::RecDescent::Production'
39048             ),
39049             bless(
39050             {
39051             'number' => '5',
39052             'strcount' => 0,
39053             'dircount' => 0,
39054             'uncommit' => undef,
39055             'error' => undef,
39056             'patcount' => 1,
39057             'actcount' => 0,
39058             'items' => [
39059             bless(
39060             {
39061             'pattern' => 'SECONDS?',
39062             'hashname' => '__PATTERN1__',
39063             'description' => '/SECONDS?/i',
39064             'lookahead' => 0,
39065             'rdelim' => '/',
39066             'line' => 493,
39067             'mod' => 'i',
39068             'ldelim' => '/'
39069             },
39070             'Parse::RecDescent::Token'
39071             )
39072             ],
39073             'line' => 493
39074             },
39075             'Parse::RecDescent::Production'
39076             ),
39077             bless(
39078             {
39079             'number' => '6',
39080             'strcount' => 0,
39081             'dircount' => 0,
39082             'uncommit' => undef,
39083             'error' => undef,
39084             'patcount' => 1,
39085             'actcount' => 0,
39086             'items' => [
39087             bless(
39088             {
39089             'pattern' => 'MICROSECONDS?',
39090             'hashname' => '__PATTERN1__',
39091             'description' => '/MICROSECONDS?/i',
39092             'lookahead' => 0,
39093             'rdelim' => '/',
39094             'line' => 494,
39095             'mod' => 'i',
39096             'ldelim' => '/'
39097             },
39098             'Parse::RecDescent::Token'
39099             )
39100             ],
39101             'line' => 494
39102             },
39103             'Parse::RecDescent::Production'
39104             )
39105             ],
39106             'name' => 'ld_duration',
39107             'vars' => '',
39108             'line' => 488
39109             },
39110             'Parse::RecDescent::Rule'
39111             ),
39112             'reference_a' => bless(
39113             {
39114             'impcount' => 0,
39115             'calls' => [
39116             'old_new_corr',
39117             'old_new_table'
39118             ],
39119             'changed' => 0,
39120             'opcount' => 0,
39121             'prods' => [
39122             bless(
39123             {
39124             'number' => '0',
39125             'strcount' => 0,
39126             'dircount' => 0,
39127             'uncommit' => undef,
39128             'error' => undef,
39129             'patcount' => 1,
39130             'actcount' => 1,
39131             'items' => [
39132             bless(
39133             {
39134             'pattern' => 'REFERENCING',
39135             'hashname' => '__PATTERN1__',
39136             'description' => '/REFERENCING/i',
39137             'lookahead' => 0,
39138             'rdelim' => '/',
39139             'line' => 283,
39140             'mod' => 'i',
39141             'ldelim' => '/'
39142             },
39143             'Parse::RecDescent::Token'
39144             ),
39145             bless(
39146             {
39147             'subrule' => 'old_new_corr',
39148             'expected' => undef,
39149             'min' => 0,
39150             'argcode' => undef,
39151             'max' => 2,
39152             'matchrule' => 0,
39153             'repspec' => '0..2',
39154             'lookahead' => 0,
39155             'line' => 283
39156             },
39157             'Parse::RecDescent::Repetition'
39158             ),
39159             bless(
39160             {
39161             'subrule' => 'old_new_table',
39162             'expected' => undef,
39163             'min' => 0,
39164             'argcode' => undef,
39165             'max' => 2,
39166             'matchrule' => 0,
39167             'repspec' => '0..2',
39168             'lookahead' => 0,
39169             'line' => 283
39170             },
39171             'Parse::RecDescent::Repetition'
39172             ),
39173             bless(
39174             {
39175             'hashname' => '__ACTION1__',
39176             'lookahead' => 0,
39177             'line' => 284,
39178             'code' =>
39179             '{ $return = join(\' \', $item[1], join(\' \', @{$item[2]}), join(\' \', @{$item[3]}) ) }'
39180             },
39181             'Parse::RecDescent::Action'
39182             )
39183             ],
39184             'line' => undef
39185             },
39186             'Parse::RecDescent::Production'
39187             )
39188             ],
39189             'name' => 'reference_a',
39190             'vars' => '',
39191             'line' => 283
39192             },
39193             'Parse::RecDescent::Rule'
39194             ),
39195             'cast_specification' => bless(
39196             {
39197             'impcount' => 2,
39198             'calls' => [
39199             '_alternation_1_of_production_1_of_rule_cast_specification',
39200             'data_type',
39201             '_alternation_2_of_production_1_of_rule_cast_specification'
39202             ],
39203             'changed' => 0,
39204             'opcount' => 0,
39205             'prods' => [
39206             bless(
39207             {
39208             'number' => '0',
39209             'strcount' => 2,
39210             'dircount' => 0,
39211             'uncommit' => undef,
39212             'error' => undef,
39213             'patcount' => 2,
39214             'actcount' => 0,
39215             'items' => [
39216             bless(
39217             {
39218             'pattern' => 'CAST',
39219             'hashname' => '__PATTERN1__',
39220             'description' => '/CAST/i',
39221             'lookahead' => 0,
39222             'rdelim' => '/',
39223             'line' => 517,
39224             'mod' => 'i',
39225             'ldelim' => '/'
39226             },
39227             'Parse::RecDescent::Token'
39228             ),
39229             bless(
39230             {
39231             'pattern' => '(',
39232             'hashname' => '__STRING1__',
39233             'description' => '\'(\'',
39234             'lookahead' => 0,
39235             'line' => 517
39236             },
39237             'Parse::RecDescent::Literal'
39238             ),
39239             bless(
39240             {
39241             'subrule' => '_alternation_1_of_production_1_of_rule_cast_specification',
39242             'matchrule' => 0,
39243             'implicit' => 'expression, or /NULL/i, or parameter_marker',
39244             'argcode' => undef,
39245             'lookahead' => 0,
39246             'line' => 520
39247             },
39248             'Parse::RecDescent::Subrule'
39249             ),
39250             bless(
39251             {
39252             'pattern' => 'AS',
39253             'hashname' => '__PATTERN2__',
39254             'description' => '/AS/i',
39255             'lookahead' => 0,
39256             'rdelim' => '/',
39257             'line' => 520,
39258             'mod' => 'i',
39259             'ldelim' => '/'
39260             },
39261             'Parse::RecDescent::Token'
39262             ),
39263             bless(
39264             {
39265             'subrule' => 'data_type',
39266             'matchrule' => 0,
39267             'implicit' => undef,
39268             'argcode' => undef,
39269             'lookahead' => 0,
39270             'line' => 520
39271             },
39272             'Parse::RecDescent::Subrule'
39273             ),
39274             bless(
39275             {
39276             'subrule' => '_alternation_2_of_production_1_of_rule_cast_specification',
39277             'expected' => '/SCOPE/',
39278             'min' => 0,
39279             'argcode' => undef,
39280             'max' => 1,
39281             'matchrule' => 0,
39282             'repspec' => '?',
39283             'lookahead' => 0,
39284             'line' => 524
39285             },
39286             'Parse::RecDescent::Repetition'
39287             ),
39288             bless(
39289             {
39290             'pattern' => ')',
39291             'hashname' => '__STRING2__',
39292             'description' => '\')\'',
39293             'lookahead' => 0,
39294             'line' => 524
39295             },
39296             'Parse::RecDescent::Literal'
39297             )
39298             ],
39299             'line' => undef
39300             },
39301             'Parse::RecDescent::Production'
39302             )
39303             ],
39304             'name' => 'cast_specification',
39305             'vars' => '',
39306             'line' => 517
39307             },
39308             'Parse::RecDescent::Rule'
39309             ),
39310             'type' => bless(
39311             {
39312             'impcount' => 1,
39313             'calls' => [
39314             'column_name',
39315             '_alternation_1_of_production_2_of_rule_type'
39316             ],
39317             'changed' => 0,
39318             'opcount' => 0,
39319             'prods' => [
39320             bless(
39321             {
39322             'number' => '0',
39323             'strcount' => 0,
39324             'dircount' => 1,
39325             'uncommit' => undef,
39326             'error' => undef,
39327             'patcount' => 3,
39328             'actcount' => 1,
39329             'op' => [],
39330             'items' => [
39331             bless(
39332             {
39333             'pattern' => 'UPDATE',
39334             'hashname' => '__PATTERN1__',
39335             'description' => '/UPDATE/i',
39336             'lookahead' => 0,
39337             'rdelim' => '/',
39338             'line' => 272,
39339             'mod' => 'i',
39340             'ldelim' => '/'
39341             },
39342             'Parse::RecDescent::Token'
39343             ),
39344             bless(
39345             {
39346             'pattern' => 'OF',
39347             'hashname' => '__PATTERN2__',
39348             'description' => '/OF/i',
39349             'lookahead' => 0,
39350             'rdelim' => '/',
39351             'line' => 272,
39352             'mod' => 'i',
39353             'ldelim' => '/'
39354             },
39355             'Parse::RecDescent::Token'
39356             ),
39357             bless(
39358             {
39359             'expected' => '',
39360             'min' => 1,
39361             'name' => '\'column_name(s)\'',
39362             'max' => 100000000,
39363             'leftarg' => bless(
39364             {
39365             'subrule' => 'column_name',
39366             'matchrule' => 0,
39367             'implicit' => undef,
39368             'argcode' => undef,
39369             'lookahead' => 0,
39370             'line' => 272
39371             },
39372             'Parse::RecDescent::Subrule'
39373             ),
39374             'rightarg' => bless(
39375             {
39376             'subrule' => 'column_name',
39377             'matchrule' => 0,
39378             'implicit' => undef,
39379             'argcode' => undef,
39380             'lookahead' => 0,
39381             'line' => 272
39382             },
39383             'Parse::RecDescent::Subrule'
39384             ),
39385             'hashname' => '__DIRECTIVE1__',
39386             'type' => 'leftop',
39387             'op' => bless(
39388             {
39389             'pattern' => ',',
39390             'hashname' => '__PATTERN3__',
39391             'description' => '/,/',
39392             'lookahead' => 0,
39393             'rdelim' => '/',
39394             'line' => 272,
39395             'mod' => '',
39396             'ldelim' => '/'
39397             },
39398             'Parse::RecDescent::Token'
39399             )
39400             },
39401             'Parse::RecDescent::Operator'
39402             ),
39403             bless(
39404             {
39405             'hashname' => '__ACTION1__',
39406             'lookahead' => 0,
39407             'line' => 273,
39408             'code' => '{ $return = { event => \'update_on\',
39409             fields => $item[3] }
39410             }'
39411             },
39412             'Parse::RecDescent::Action'
39413             )
39414             ],
39415             'line' => undef
39416             },
39417             'Parse::RecDescent::Production'
39418             ),
39419             bless(
39420             {
39421             'number' => '1',
39422             'strcount' => 0,
39423             'dircount' => 0,
39424             'uncommit' => undef,
39425             'error' => undef,
39426             'patcount' => 0,
39427             'actcount' => 1,
39428             'items' => [
39429             bless(
39430             {
39431             'subrule' => '_alternation_1_of_production_2_of_rule_type',
39432             'matchrule' => 0,
39433             'implicit' => '/INSERT/i, or /DELETE/i, or /UPDATE/i',
39434             'argcode' => undef,
39435             'lookahead' => 0,
39436             'line' => 277
39437             },
39438             'Parse::RecDescent::Subrule'
39439             ),
39440             bless(
39441             {
39442             'hashname' => '__ACTION1__',
39443             'lookahead' => 0,
39444             'line' => 278,
39445             'code' => '{ $return = { event => $item[1] } }'
39446             },
39447             'Parse::RecDescent::Action'
39448             )
39449             ],
39450             'line' => undef
39451             },
39452             'Parse::RecDescent::Production'
39453             )
39454             ],
39455             'name' => 'type',
39456             'vars' => '',
39457             'line' => 272
39458             },
39459             'Parse::RecDescent::Rule'
39460             ),
39461             '_alternation_1_of_production_12_of_rule_sysibm_function' => bless(
39462             {
39463             'impcount' => 0,
39464             'calls' => [],
39465             'changed' => 0,
39466             'opcount' => 0,
39467             'prods' => [
39468             bless(
39469             {
39470             'number' => '0',
39471             'strcount' => 0,
39472             'dircount' => 0,
39473             'uncommit' => undef,
39474             'error' => undef,
39475             'patcount' => 1,
39476             'actcount' => 0,
39477             'items' => [
39478             bless(
39479             {
39480             'pattern' => 'COVARIANCE',
39481             'hashname' => '__PATTERN1__',
39482             'description' => '/COVARIANCE/i',
39483             'lookahead' => 0,
39484             'rdelim' => '/',
39485             'line' => 628,
39486             'mod' => 'i',
39487             'ldelim' => '/'
39488             },
39489             'Parse::RecDescent::Token'
39490             )
39491             ],
39492             'line' => undef
39493             },
39494             'Parse::RecDescent::Production'
39495             ),
39496             bless(
39497             {
39498             'number' => '1',
39499             'strcount' => 0,
39500             'dircount' => 0,
39501             'uncommit' => undef,
39502             'error' => undef,
39503             'patcount' => 1,
39504             'actcount' => 0,
39505             'items' => [
39506             bless(
39507             {
39508             'pattern' => 'COVAR',
39509             'hashname' => '__PATTERN1__',
39510             'description' => '/COVAR/i',
39511             'lookahead' => 0,
39512             'rdelim' => '/',
39513             'line' => 628,
39514             'mod' => 'i',
39515             'ldelim' => '/'
39516             },
39517             'Parse::RecDescent::Token'
39518             )
39519             ],
39520             'line' => 628
39521             },
39522             'Parse::RecDescent::Production'
39523             )
39524             ],
39525             'name' => '_alternation_1_of_production_12_of_rule_sysibm_function',
39526             'vars' => '',
39527             'line' => 628
39528             },
39529             'Parse::RecDescent::Rule'
39530             ),
39531             'scalar_fullselect' => bless(
39532             {
39533             'impcount' => 0,
39534             'calls' => ['fullselect'],
39535             'changed' => 0,
39536             'opcount' => 0,
39537             'prods' => [
39538             bless(
39539             {
39540             'number' => '0',
39541             'strcount' => 2,
39542             'dircount' => 0,
39543             'uncommit' => undef,
39544             'error' => undef,
39545             'patcount' => 0,
39546             'actcount' => 0,
39547             'items' => [
39548             bless(
39549             {
39550             'pattern' => '(',
39551             'hashname' => '__STRING1__',
39552             'description' => '\'(\'',
39553             'lookahead' => 0,
39554             'line' => 478
39555             },
39556             'Parse::RecDescent::Literal'
39557             ),
39558             bless(
39559             {
39560             'subrule' => 'fullselect',
39561             'matchrule' => 0,
39562             'implicit' => undef,
39563             'argcode' => undef,
39564             'lookahead' => 0,
39565             'line' => 478
39566             },
39567             'Parse::RecDescent::Subrule'
39568             ),
39569             bless(
39570             {
39571             'pattern' => ')',
39572             'hashname' => '__STRING2__',
39573             'description' => '\')\'',
39574             'lookahead' => 0,
39575             'line' => 478
39576             },
39577             'Parse::RecDescent::Literal'
39578             )
39579             ],
39580             'line' => undef
39581             },
39582             'Parse::RecDescent::Production'
39583             )
39584             ],
39585             'name' => 'scalar_fullselect',
39586             'vars' => '',
39587             'line' => 478
39588             },
39589             'Parse::RecDescent::Rule'
39590             ),
39591             '_alternation_1_of_production_1_of_rule_options' => bless(
39592             {
39593             'impcount' => 0,
39594             'calls' => [],
39595             'changed' => 0,
39596             'opcount' => 0,
39597             'prods' => [
39598             bless(
39599             {
39600             'number' => '0',
39601             'strcount' => 0,
39602             'dircount' => 0,
39603             'uncommit' => undef,
39604             'error' => undef,
39605             'patcount' => 1,
39606             'actcount' => 0,
39607             'items' => [
39608             bless(
39609             {
39610             'pattern' => 'CASCADED',
39611             'hashname' => '__PATTERN1__',
39612             'description' => '/CASCADED/i',
39613             'lookahead' => 0,
39614             'rdelim' => '/',
39615             'line' => 628,
39616             'mod' => 'i',
39617             'ldelim' => '/'
39618             },
39619             'Parse::RecDescent::Token'
39620             )
39621             ],
39622             'line' => undef
39623             },
39624             'Parse::RecDescent::Production'
39625             ),
39626             bless(
39627             {
39628             'number' => '1',
39629             'strcount' => 0,
39630             'dircount' => 0,
39631             'uncommit' => undef,
39632             'error' => undef,
39633             'patcount' => 1,
39634             'actcount' => 0,
39635             'items' => [
39636             bless(
39637             {
39638             'pattern' => 'LOCAL',
39639             'hashname' => '__PATTERN1__',
39640             'description' => '/LOCAL/i',
39641             'lookahead' => 0,
39642             'rdelim' => '/',
39643             'line' => 628,
39644             'mod' => 'i',
39645             'ldelim' => '/'
39646             },
39647             'Parse::RecDescent::Token'
39648             )
39649             ],
39650             'line' => 628
39651             },
39652             'Parse::RecDescent::Production'
39653             )
39654             ],
39655             'name' => '_alternation_1_of_production_1_of_rule_options',
39656             'vars' => '',
39657             'line' => 628
39658             },
39659             'Parse::RecDescent::Rule'
39660             ),
39661             'func_args' => bless(
39662             {
39663             'impcount' => 0,
39664             'calls' => ['expression'],
39665             'changed' => 0,
39666             'opcount' => 0,
39667             'prods' => [
39668             bless(
39669             {
39670             'number' => '0',
39671             'strcount' => 0,
39672             'dircount' => 0,
39673             'uncommit' => undef,
39674             'error' => undef,
39675             'patcount' => 0,
39676             'actcount' => 0,
39677             'items' => [
39678             bless(
39679             {
39680             'subrule' => 'expression',
39681             'matchrule' => 0,
39682             'implicit' => undef,
39683             'argcode' => undef,
39684             'lookahead' => 0,
39685             'line' => 330
39686             },
39687             'Parse::RecDescent::Subrule'
39688             )
39689             ],
39690             'line' => undef
39691             },
39692             'Parse::RecDescent::Production'
39693             )
39694             ],
39695             'name' => 'func_args',
39696             'vars' => '',
39697             'line' => 330
39698             },
39699             'Parse::RecDescent::Rule'
39700             ),
39701             'trigger_name' => bless(
39702             {
39703             'impcount' => 0,
39704             'calls' => [
39705             'SCHEMA',
39706             'NAME'
39707             ],
39708             'changed' => 0,
39709             'opcount' => 0,
39710             'prods' => [
39711             bless(
39712             {
39713             'number' => '0',
39714             'strcount' => 1,
39715             'dircount' => 0,
39716             'uncommit' => undef,
39717             'error' => undef,
39718             'patcount' => 0,
39719             'actcount' => 1,
39720             'items' => [
39721             bless(
39722             {
39723             'subrule' => 'SCHEMA',
39724             'matchrule' => 0,
39725             'implicit' => undef,
39726             'argcode' => undef,
39727             'lookahead' => 0,
39728             'line' => 119
39729             },
39730             'Parse::RecDescent::Subrule'
39731             ),
39732             bless(
39733             {
39734             'pattern' => '.',
39735             'hashname' => '__STRING1__',
39736             'description' => '\'.\'',
39737             'lookahead' => 0,
39738             'line' => 119
39739             },
39740             'Parse::RecDescent::Literal'
39741             ),
39742             bless(
39743             {
39744             'subrule' => 'NAME',
39745             'matchrule' => 0,
39746             'implicit' => undef,
39747             'argcode' => undef,
39748             'lookahead' => 0,
39749             'line' => 119
39750             },
39751             'Parse::RecDescent::Subrule'
39752             ),
39753             bless(
39754             {
39755             'hashname' => '__ACTION1__',
39756             'lookahead' => 0,
39757             'line' => 120,
39758             'code' => '{ $return = { schema => $item[1], name => $item[3] } }'
39759             },
39760             'Parse::RecDescent::Action'
39761             )
39762             ],
39763             'line' => undef
39764             },
39765             'Parse::RecDescent::Production'
39766             ),
39767             bless(
39768             {
39769             'number' => '1',
39770             'strcount' => 0,
39771             'dircount' => 0,
39772             'uncommit' => undef,
39773             'error' => undef,
39774             'patcount' => 0,
39775             'actcount' => 1,
39776             'items' => [
39777             bless(
39778             {
39779             'subrule' => 'NAME',
39780             'matchrule' => 0,
39781             'implicit' => undef,
39782             'argcode' => undef,
39783             'lookahead' => 0,
39784             'line' => 121
39785             },
39786             'Parse::RecDescent::Subrule'
39787             ),
39788             bless(
39789             {
39790             'hashname' => '__ACTION1__',
39791             'lookahead' => 0,
39792             'line' => 122,
39793             'code' => '{ $return = { name => $item[1] } }'
39794             },
39795             'Parse::RecDescent::Action'
39796             )
39797             ],
39798             'line' => 121
39799             },
39800             'Parse::RecDescent::Production'
39801             )
39802             ],
39803             'name' => 'trigger_name',
39804             'vars' => '',
39805             'line' => 119
39806             },
39807             'Parse::RecDescent::Rule'
39808             ),
39809             '_alternation_2_of_production_1_of_rule_numbering_function' => bless(
39810             {
39811             'impcount' => 0,
39812             'calls' => ['window_aggregation_group_clause'],
39813             'changed' => 0,
39814             'opcount' => 0,
39815             'prods' => [
39816             bless(
39817             {
39818             'number' => '0',
39819             'strcount' => 0,
39820             'dircount' => 0,
39821             'uncommit' => undef,
39822             'error' => undef,
39823             'patcount' => 1,
39824             'actcount' => 0,
39825             'items' => [
39826             bless(
39827             {
39828             'pattern' => 'RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING',
39829             'hashname' => '__PATTERN1__',
39830             'description' =>
39831             '/RANGE\\\\s+BETWEEN\\\\s+UNBOUNDED\\\\s+PRECEDING\\\\s+AND\\\\s+UNBBOUNDED\\\\s+FOLLOWING/i',
39832             'lookahead' => 0,
39833             'rdelim' => '/',
39834             'line' => 626,
39835             'mod' => 'i',
39836             'ldelim' => '/'
39837             },
39838             'Parse::RecDescent::Token'
39839             )
39840             ],
39841             'line' => undef
39842             },
39843             'Parse::RecDescent::Production'
39844             ),
39845             bless(
39846             {
39847             'number' => '1',
39848             'strcount' => 0,
39849             'dircount' => 0,
39850             'uncommit' => undef,
39851             'error' => undef,
39852             'patcount' => 0,
39853             'actcount' => 0,
39854             'items' => [
39855             bless(
39856             {
39857             'subrule' => 'window_aggregation_group_clause',
39858             'matchrule' => 0,
39859             'implicit' => undef,
39860             'argcode' => undef,
39861             'lookahead' => 0,
39862             'line' => 627
39863             },
39864             'Parse::RecDescent::Subrule'
39865             )
39866             ],
39867             'line' => 627
39868             },
39869             'Parse::RecDescent::Production'
39870             )
39871             ],
39872             'name' => '_alternation_2_of_production_1_of_rule_numbering_function',
39873             'vars' => '',
39874             'line' => 626
39875             },
39876             'Parse::RecDescent::Rule'
39877             ),
39878             'method_name' => bless(
39879             {
39880             'impcount' => 0,
39881             'calls' => ['NAME'],
39882             'changed' => 0,
39883             'opcount' => 0,
39884             'prods' => [
39885             bless(
39886             {
39887             'number' => '0',
39888             'strcount' => 0,
39889             'dircount' => 0,
39890             'uncommit' => undef,
39891             'error' => undef,
39892             'patcount' => 0,
39893             'actcount' => 1,
39894             'items' => [
39895             bless(
39896             {
39897             'subrule' => 'NAME',
39898             'matchrule' => 0,
39899             'implicit' => undef,
39900             'argcode' => undef,
39901             'lookahead' => 0,
39902             'line' => 602
39903             },
39904             'Parse::RecDescent::Subrule'
39905             ),
39906             bless(
39907             {
39908             'hashname' => '__ACTION1__',
39909             'lookahead' => 0,
39910             'line' => 603,
39911             'code' => '{ # must be a method of subject_expression
39912             }'
39913             },
39914             'Parse::RecDescent::Action'
39915             )
39916             ],
39917             'line' => undef
39918             },
39919             'Parse::RecDescent::Production'
39920             )
39921             ],
39922             'name' => 'method_name',
39923             'vars' => '',
39924             'line' => 602
39925             },
39926             'Parse::RecDescent::Rule'
39927             ),
39928             'quantified_p' => bless(
39929             {
39930             'impcount' => 0,
39931             'calls' => [
39932             'expression1',
39933             'fullselect'
39934             ],
39935             'changed' => 0,
39936             'opcount' => 0,
39937             'prods' => [
39938             bless(
39939             {
39940             'number' => '0',
39941             'strcount' => 2,
39942             'dircount' => 0,
39943             'uncommit' => undef,
39944             'error' => undef,
39945             'patcount' => 2,
39946             'actcount' => 0,
39947             'items' => [
39948             bless(
39949             {
39950             'subrule' => 'expression1',
39951             'matchrule' => 0,
39952             'implicit' => undef,
39953             'argcode' => undef,
39954             'lookahead' => 0,
39955             'line' => 626
39956             },
39957             'Parse::RecDescent::Subrule'
39958             ),
39959             bless(
39960             {
39961             'pattern' => '(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)',
39962             'hashname' => '__PATTERN1__',
39963             'description' => '/(=|<>|<|>|<=|=>|\\\\^=|\\\\^<|\\\\^>|\\\\!=)/',
39964             'lookahead' => 0,
39965             'rdelim' => '/',
39966             'line' => 626,
39967             'mod' => '',
39968             'ldelim' => '/'
39969             },
39970             'Parse::RecDescent::Token'
39971             ),
39972             bless(
39973             {
39974             'pattern' => 'SOME|ANY|ALL',
39975             'hashname' => '__PATTERN2__',
39976             'description' => '/SOME|ANY|ALL/i',
39977             'lookahead' => 0,
39978             'rdelim' => '/',
39979             'line' => 626,
39980             'mod' => 'i',
39981             'ldelim' => '/'
39982             },
39983             'Parse::RecDescent::Token'
39984             ),
39985             bless(
39986             {
39987             'pattern' => '(',
39988             'hashname' => '__STRING1__',
39989             'description' => '\'(\'',
39990             'lookahead' => 0,
39991             'line' => 626
39992             },
39993             'Parse::RecDescent::Literal'
39994             ),
39995             bless(
39996             {
39997             'subrule' => 'fullselect',
39998             'matchrule' => 0,
39999             'implicit' => undef,
40000             'argcode' => undef,
40001             'lookahead' => 0,
40002             'line' => 626
40003             },
40004             'Parse::RecDescent::Subrule'
40005             ),
40006             bless(
40007             {
40008             'pattern' => ')',
40009             'hashname' => '__STRING2__',
40010             'description' => '\')\'',
40011             'lookahead' => 0,
40012             'line' => 626
40013             },
40014             'Parse::RecDescent::Literal'
40015             )
40016             ],
40017             'line' => undef
40018             },
40019             'Parse::RecDescent::Production'
40020             )
40021             ],
40022             'name' => 'quantified_p',
40023             'vars' => '',
40024             'line' => 626
40025             },
40026             'Parse::RecDescent::Rule'
40027             ),
40028             'common_table_expression' => bless(
40029             {
40030             'impcount' => 0,
40031             'calls' => [
40032             'table_name',
40033             'column_list',
40034             'get_bracketed',
40035             'fullselect'
40036             ],
40037             'changed' => 0,
40038             'opcount' => 0,
40039             'prods' => [
40040             bless(
40041             {
40042             'number' => '0',
40043             'strcount' => 0,
40044             'dircount' => 0,
40045             'uncommit' => undef,
40046             'error' => undef,
40047             'patcount' => 1,
40048             'actcount' => 1,
40049             'items' => [
40050             bless(
40051             {
40052             'subrule' => 'table_name',
40053             'matchrule' => 0,
40054             'implicit' => undef,
40055             'argcode' => undef,
40056             'lookahead' => 0,
40057             'line' => 162
40058             },
40059             'Parse::RecDescent::Subrule'
40060             ),
40061             bless(
40062             {
40063             'subrule' => 'column_list',
40064             'matchrule' => 0,
40065             'implicit' => undef,
40066             'argcode' => undef,
40067             'lookahead' => 0,
40068             'line' => 162
40069             },
40070             'Parse::RecDescent::Subrule'
40071             ),
40072             bless(
40073             {
40074             'pattern' => 'AS',
40075             'hashname' => '__PATTERN1__',
40076             'description' => '/AS/i',
40077             'lookahead' => 0,
40078             'rdelim' => '/',
40079             'line' => 162,
40080             'mod' => 'i',
40081             'ldelim' => '/'
40082             },
40083             'Parse::RecDescent::Token'
40084             ),
40085             bless(
40086             {
40087             'subrule' => 'get_bracketed',
40088             'matchrule' => 0,
40089             'implicit' => undef,
40090             'argcode' => undef,
40091             'lookahead' => 0,
40092             'line' => 162
40093             },
40094             'Parse::RecDescent::Subrule'
40095             ),
40096             bless(
40097             {
40098             'hashname' => '__ACTION1__',
40099             'lookahead' => 0,
40100             'line' => 163,
40101             'code' => '{
40102             $return = { name => $item{table_name}{name},
40103             query => $item[4]
40104             };
40105             }'
40106             },
40107             'Parse::RecDescent::Action'
40108             )
40109             ],
40110             'line' => undef
40111             },
40112             'Parse::RecDescent::Production'
40113             ),
40114             bless(
40115             {
40116             'number' => '1',
40117             'strcount' => 2,
40118             'dircount' => 0,
40119             'uncommit' => undef,
40120             'error' => undef,
40121             'patcount' => 1,
40122             'actcount' => 0,
40123             'items' => [
40124             bless(
40125             {
40126             'subrule' => 'table_name',
40127             'matchrule' => 0,
40128             'implicit' => undef,
40129             'argcode' => undef,
40130             'lookahead' => 0,
40131             'line' => 174
40132             },
40133             'Parse::RecDescent::Subrule'
40134             ),
40135             bless(
40136             {
40137             'subrule' => 'column_list',
40138             'matchrule' => 0,
40139             'implicit' => undef,
40140             'argcode' => undef,
40141             'lookahead' => 0,
40142             'line' => 174
40143             },
40144             'Parse::RecDescent::Subrule'
40145             ),
40146             bless(
40147             {
40148             'pattern' => 'AS',
40149             'hashname' => '__PATTERN1__',
40150             'description' => '/AS/i',
40151             'lookahead' => 0,
40152             'rdelim' => '/',
40153             'line' => 174,
40154             'mod' => 'i',
40155             'ldelim' => '/'
40156             },
40157             'Parse::RecDescent::Token'
40158             ),
40159             bless(
40160             {
40161             'pattern' => '(',
40162             'hashname' => '__STRING1__',
40163             'description' => '\'(\'',
40164             'lookahead' => 0,
40165             'line' => 174
40166             },
40167             'Parse::RecDescent::Literal'
40168             ),
40169             bless(
40170             {
40171             'subrule' => 'fullselect',
40172             'matchrule' => 0,
40173             'implicit' => undef,
40174             'argcode' => undef,
40175             'lookahead' => 0,
40176             'line' => 174
40177             },
40178             'Parse::RecDescent::Subrule'
40179             ),
40180             bless(
40181             {
40182             'pattern' => ')',
40183             'hashname' => '__STRING2__',
40184             'description' => '\')\'',
40185             'lookahead' => 0,
40186             'line' => 174
40187             },
40188             'Parse::RecDescent::Literal'
40189             )
40190             ],
40191             'line' => undef
40192             },
40193             'Parse::RecDescent::Production'
40194             )
40195             ],
40196             'name' => 'common_table_expression',
40197             'vars' => '',
40198             'line' => 160
40199             },
40200             'Parse::RecDescent::Rule'
40201             ),
40202             'after' => bless(
40203             {
40204             'impcount' => 0,
40205             'calls' => [],
40206             'changed' => 0,
40207             'opcount' => 0,
40208             'prods' => [
40209             bless(
40210             {
40211             'number' => '0',
40212             'strcount' => 0,
40213             'dircount' => 0,
40214             'uncommit' => undef,
40215             'error' => undef,
40216             'patcount' => 1,
40217             'actcount' => 0,
40218             'items' => [
40219             bless(
40220             {
40221             'pattern' => 'AFTER',
40222             'hashname' => '__PATTERN1__',
40223             'description' => '/AFTER/i',
40224             'lookahead' => 0,
40225             'rdelim' => '/',
40226             'line' => 270,
40227             'mod' => 'i',
40228             'ldelim' => '/'
40229             },
40230             'Parse::RecDescent::Token'
40231             )
40232             ],
40233             'line' => undef
40234             },
40235             'Parse::RecDescent::Production'
40236             )
40237             ],
40238             'name' => 'after',
40239             'vars' => '',
40240             'line' => 270
40241             },
40242             'Parse::RecDescent::Rule'
40243             ),
40244             'predicate' => bless(
40245             {
40246             'impcount' => 0,
40247             'calls' => [
40248             'basic_p',
40249             'quantified_p',
40250             'between_p',
40251             'exists_p',
40252             'in_p',
40253             'like_p',
40254             'null_p',
40255             'type_p'
40256             ],
40257             'changed' => 0,
40258             'opcount' => 0,
40259             'prods' => [
40260             bless(
40261             {
40262             'number' => '0',
40263             'strcount' => 0,
40264             'dircount' => 0,
40265             'uncommit' => undef,
40266             'error' => undef,
40267             'patcount' => 0,
40268             'actcount' => 0,
40269             'items' => [
40270             bless(
40271             {
40272             'subrule' => 'basic_p',
40273             'matchrule' => 0,
40274             'implicit' => undef,
40275             'argcode' => undef,
40276             'lookahead' => 0,
40277             'line' => 622
40278             },
40279             'Parse::RecDescent::Subrule'
40280             )
40281             ],
40282             'line' => undef
40283             },
40284             'Parse::RecDescent::Production'
40285             ),
40286             bless(
40287             {
40288             'number' => '1',
40289             'strcount' => 0,
40290             'dircount' => 0,
40291             'uncommit' => undef,
40292             'error' => undef,
40293             'patcount' => 0,
40294             'actcount' => 0,
40295             'items' => [
40296             bless(
40297             {
40298             'subrule' => 'quantified_p',
40299             'matchrule' => 0,
40300             'implicit' => undef,
40301             'argcode' => undef,
40302             'lookahead' => 0,
40303             'line' => 622
40304             },
40305             'Parse::RecDescent::Subrule'
40306             )
40307             ],
40308             'line' => 622
40309             },
40310             'Parse::RecDescent::Production'
40311             ),
40312             bless(
40313             {
40314             'number' => '2',
40315             'strcount' => 0,
40316             'dircount' => 0,
40317             'uncommit' => undef,
40318             'error' => undef,
40319             'patcount' => 0,
40320             'actcount' => 0,
40321             'items' => [
40322             bless(
40323             {
40324             'subrule' => 'between_p',
40325             'matchrule' => 0,
40326             'implicit' => undef,
40327             'argcode' => undef,
40328             'lookahead' => 0,
40329             'line' => 622
40330             },
40331             'Parse::RecDescent::Subrule'
40332             )
40333             ],
40334             'line' => 622
40335             },
40336             'Parse::RecDescent::Production'
40337             ),
40338             bless(
40339             {
40340             'number' => '3',
40341             'strcount' => 0,
40342             'dircount' => 0,
40343             'uncommit' => undef,
40344             'error' => undef,
40345             'patcount' => 0,
40346             'actcount' => 0,
40347             'items' => [
40348             bless(
40349             {
40350             'subrule' => 'exists_p',
40351             'matchrule' => 0,
40352             'implicit' => undef,
40353             'argcode' => undef,
40354             'lookahead' => 0,
40355             'line' => 622
40356             },
40357             'Parse::RecDescent::Subrule'
40358             )
40359             ],
40360             'line' => 622
40361             },
40362             'Parse::RecDescent::Production'
40363             ),
40364             bless(
40365             {
40366             'number' => '4',
40367             'strcount' => 0,
40368             'dircount' => 0,
40369             'uncommit' => undef,
40370             'error' => undef,
40371             'patcount' => 0,
40372             'actcount' => 0,
40373             'items' => [
40374             bless(
40375             {
40376             'subrule' => 'in_p',
40377             'matchrule' => 0,
40378             'implicit' => undef,
40379             'argcode' => undef,
40380             'lookahead' => 0,
40381             'line' => 622
40382             },
40383             'Parse::RecDescent::Subrule'
40384             )
40385             ],
40386             'line' => 622
40387             },
40388             'Parse::RecDescent::Production'
40389             ),
40390             bless(
40391             {
40392             'number' => '5',
40393             'strcount' => 0,
40394             'dircount' => 0,
40395             'uncommit' => undef,
40396             'error' => undef,
40397             'patcount' => 0,
40398             'actcount' => 0,
40399             'items' => [
40400             bless(
40401             {
40402             'subrule' => 'like_p',
40403             'matchrule' => 0,
40404             'implicit' => undef,
40405             'argcode' => undef,
40406             'lookahead' => 0,
40407             'line' => 622
40408             },
40409             'Parse::RecDescent::Subrule'
40410             )
40411             ],
40412             'line' => 622
40413             },
40414             'Parse::RecDescent::Production'
40415             ),
40416             bless(
40417             {
40418             'number' => '6',
40419             'strcount' => 0,
40420             'dircount' => 0,
40421             'uncommit' => undef,
40422             'error' => undef,
40423             'patcount' => 0,
40424             'actcount' => 0,
40425             'items' => [
40426             bless(
40427             {
40428             'subrule' => 'null_p',
40429             'matchrule' => 0,
40430             'implicit' => undef,
40431             'argcode' => undef,
40432             'lookahead' => 0,
40433             'line' => 622
40434             },
40435             'Parse::RecDescent::Subrule'
40436             )
40437             ],
40438             'line' => 622
40439             },
40440             'Parse::RecDescent::Production'
40441             ),
40442             bless(
40443             {
40444             'number' => '7',
40445             'strcount' => 0,
40446             'dircount' => 0,
40447             'uncommit' => undef,
40448             'error' => undef,
40449             'patcount' => 0,
40450             'actcount' => 0,
40451             'items' => [
40452             bless(
40453             {
40454             'subrule' => 'type_p',
40455             'matchrule' => 0,
40456             'implicit' => undef,
40457             'argcode' => undef,
40458             'lookahead' => 0,
40459             'line' => 622
40460             },
40461             'Parse::RecDescent::Subrule'
40462             )
40463             ],
40464             'line' => 622
40465             },
40466             'Parse::RecDescent::Production'
40467             )
40468             ],
40469             'name' => 'predicate',
40470             'vars' => '',
40471             'line' => 622
40472             },
40473             'Parse::RecDescent::Rule'
40474             ),
40475             'column_name' => bless(
40476             {
40477             'impcount' => 0,
40478             'calls' => ['NAME'],
40479             'changed' => 0,
40480             'opcount' => 0,
40481             'prods' => [
40482             bless(
40483             {
40484             'number' => '0',
40485             'strcount' => 0,
40486             'dircount' => 0,
40487             'uncommit' => undef,
40488             'error' => undef,
40489             'patcount' => 0,
40490             'actcount' => 0,
40491             'items' => [
40492             bless(
40493             {
40494             'subrule' => 'NAME',
40495             'matchrule' => 0,
40496             'implicit' => undef,
40497             'argcode' => undef,
40498             'lookahead' => 0,
40499             'line' => 134
40500             },
40501             'Parse::RecDescent::Subrule'
40502             )
40503             ],
40504             'line' => undef
40505             },
40506             'Parse::RecDescent::Production'
40507             )
40508             ],
40509             'name' => 'column_name',
40510             'vars' => '',
40511             'line' => 134
40512             },
40513             'Parse::RecDescent::Rule'
40514             ),
40515             'method_invocation' => bless(
40516             {
40517             'impcount' => 1,
40518             'calls' => [
40519             'subject_expression',
40520             'method_name',
40521             '_alternation_1_of_production_1_of_rule_method_invocation'
40522             ],
40523             'changed' => 0,
40524             'opcount' => 0,
40525             'prods' => [
40526             bless(
40527             {
40528             'number' => '0',
40529             'strcount' => 1,
40530             'dircount' => 0,
40531             'uncommit' => undef,
40532             'error' => undef,
40533             'patcount' => 0,
40534             'actcount' => 0,
40535             'items' => [
40536             bless(
40537             {
40538             'subrule' => 'subject_expression',
40539             'matchrule' => 0,
40540             'implicit' => undef,
40541             'argcode' => undef,
40542             'lookahead' => 0,
40543             'line' => 593
40544             },
40545             'Parse::RecDescent::Subrule'
40546             ),
40547             bless(
40548             {
40549             'pattern' => '..',
40550             'hashname' => '__STRING1__',
40551             'description' => '\'..\'',
40552             'lookahead' => 0,
40553             'line' => 593
40554             },
40555             'Parse::RecDescent::Literal'
40556             ),
40557             bless(
40558             {
40559             'subrule' => 'method_name',
40560             'matchrule' => 0,
40561             'implicit' => undef,
40562             'argcode' => undef,
40563             'lookahead' => 0,
40564             'line' => 593
40565             },
40566             'Parse::RecDescent::Subrule'
40567             ),
40568             bless(
40569             {
40570             'subrule' => '_alternation_1_of_production_1_of_rule_method_invocation',
40571             'expected' => '\'(\'',
40572             'min' => 0,
40573             'argcode' => undef,
40574             'max' => 1,
40575             'matchrule' => 0,
40576             'repspec' => '?',
40577             'lookahead' => 0,
40578             'line' => 596
40579             },
40580             'Parse::RecDescent::Repetition'
40581             )
40582             ],
40583             'line' => undef
40584             },
40585             'Parse::RecDescent::Production'
40586             )
40587             ],
40588             'name' => 'method_invocation',
40589             'vars' => '',
40590             'line' => 593
40591             },
40592             'Parse::RecDescent::Rule'
40593             ),
40594             '_alternation_1_of_production_1_of_rule_dereference_operation' => bless(
40595             {
40596             'impcount' => 0,
40597             'calls' => ['expression'],
40598             'changed' => 0,
40599             'opcount' => 0,
40600             'prods' => [
40601             bless(
40602             {
40603             'number' => '0',
40604             'strcount' => 2,
40605             'dircount' => 0,
40606             'uncommit' => undef,
40607             'error' => undef,
40608             'patcount' => 0,
40609             'actcount' => 0,
40610             'items' => [
40611             bless(
40612             {
40613             'pattern' => '(',
40614             'hashname' => '__STRING1__',
40615             'description' => '\'(\'',
40616             'lookahead' => 0,
40617             'line' => 628
40618             },
40619             'Parse::RecDescent::Literal'
40620             ),
40621             bless(
40622             {
40623             'subrule' => 'expression',
40624             'expected' => undef,
40625             'min' => 1,
40626             'argcode' => undef,
40627             'max' => 100000000,
40628             'matchrule' => 0,
40629             'repspec' => 's',
40630             'lookahead' => 0,
40631             'line' => 628
40632             },
40633             'Parse::RecDescent::Repetition'
40634             ),
40635             bless(
40636             {
40637             'pattern' => ')',
40638             'hashname' => '__STRING2__',
40639             'description' => '\')\'',
40640             'lookahead' => 0,
40641             'line' => 628
40642             },
40643             'Parse::RecDescent::Literal'
40644             )
40645             ],
40646             'line' => undef
40647             },
40648             'Parse::RecDescent::Production'
40649             )
40650             ],
40651             'name' => '_alternation_1_of_production_1_of_rule_dereference_operation',
40652             'vars' => '',
40653             'line' => 628
40654             },
40655             'Parse::RecDescent::Rule'
40656             ),
40657             '_alternation_1_of_production_1_of_rule_searched_when_clause' => bless(
40658             {
40659             'impcount' => 1,
40660             'calls' => [
40661             'search_condition',
40662             '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause'
40663             ],
40664             'changed' => 0,
40665             'opcount' => 0,
40666             'prods' => [
40667             bless(
40668             {
40669             'number' => '0',
40670             'strcount' => 0,
40671             'dircount' => 0,
40672             'uncommit' => undef,
40673             'error' => undef,
40674             'patcount' => 2,
40675             'actcount' => 0,
40676             'items' => [
40677             bless(
40678             {
40679             'pattern' => 'WHEN',
40680             'hashname' => '__PATTERN1__',
40681             'description' => '/WHEN/i',
40682             'lookahead' => 0,
40683             'rdelim' => '/',
40684             'line' => 624,
40685             'mod' => 'i',
40686             'ldelim' => '/'
40687             },
40688             'Parse::RecDescent::Token'
40689             ),
40690             bless(
40691             {
40692             'subrule' => 'search_condition',
40693             'matchrule' => 0,
40694             'implicit' => undef,
40695             'argcode' => undef,
40696             'lookahead' => 0,
40697             'line' => 624
40698             },
40699             'Parse::RecDescent::Subrule'
40700             ),
40701             bless(
40702             {
40703             'pattern' => 'THEN',
40704             'hashname' => '__PATTERN2__',
40705             'description' => '/THEN/i',
40706             'lookahead' => 0,
40707             'rdelim' => '/',
40708             'line' => 624,
40709             'mod' => 'i',
40710             'ldelim' => '/'
40711             },
40712             'Parse::RecDescent::Token'
40713             ),
40714             bless(
40715             {
40716             'subrule' =>
40717             '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause',
40718             'matchrule' => 0,
40719             'implicit' => 'result_expression, or /NULL/i',
40720             'argcode' => undef,
40721             'lookahead' => 0,
40722             'line' => 627
40723             },
40724             'Parse::RecDescent::Subrule'
40725             )
40726             ],
40727             'line' => undef
40728             },
40729             'Parse::RecDescent::Production'
40730             )
40731             ],
40732             'name' => '_alternation_1_of_production_1_of_rule_searched_when_clause',
40733             'vars' => '',
40734             'line' => 624
40735             },
40736             'Parse::RecDescent::Rule'
40737             ),
40738             'group_bound2' => bless(
40739             {
40740             'impcount' => 0,
40741             'calls' => ['unsigned_constant'],
40742             'changed' => 0,
40743             'opcount' => 0,
40744             'prods' => [
40745             bless(
40746             {
40747             'number' => '0',
40748             'strcount' => 0,
40749             'dircount' => 0,
40750             'uncommit' => undef,
40751             'error' => undef,
40752             'patcount' => 1,
40753             'actcount' => 0,
40754             'items' => [
40755             bless(
40756             {
40757             'pattern' => 'UNBOUNDED\\s+PRECEDING',
40758             'hashname' => '__PATTERN1__',
40759             'description' => '/UNBOUNDED\\\\s+PRECEDING/i',
40760             'lookahead' => 0,
40761             'rdelim' => '/',
40762             'line' => 585,
40763             'mod' => 'i',
40764             'ldelim' => '/'
40765             },
40766             'Parse::RecDescent::Token'
40767             )
40768             ],
40769             'line' => undef
40770             },
40771             'Parse::RecDescent::Production'
40772             ),
40773             bless(
40774             {
40775             'number' => '1',
40776             'strcount' => 0,
40777             'dircount' => 0,
40778             'uncommit' => undef,
40779             'error' => undef,
40780             'patcount' => 1,
40781             'actcount' => 0,
40782             'items' => [
40783             bless(
40784             {
40785             'subrule' => 'unsigned_constant',
40786             'matchrule' => 0,
40787             'implicit' => undef,
40788             'argcode' => undef,
40789             'lookahead' => 0,
40790             'line' => 586
40791             },
40792             'Parse::RecDescent::Subrule'
40793             ),
40794             bless(
40795             {
40796             'pattern' => 'PRECEDING',
40797             'hashname' => '__PATTERN1__',
40798             'description' => '/PRECEDING/i',
40799             'lookahead' => 0,
40800             'rdelim' => '/',
40801             'line' => 586,
40802             'mod' => 'i',
40803             'ldelim' => '/'
40804             },
40805             'Parse::RecDescent::Token'
40806             )
40807             ],
40808             'line' => 586
40809             },
40810             'Parse::RecDescent::Production'
40811             ),
40812             bless(
40813             {
40814             'number' => '2',
40815             'strcount' => 0,
40816             'dircount' => 0,
40817             'uncommit' => undef,
40818             'error' => undef,
40819             'patcount' => 1,
40820             'actcount' => 0,
40821             'items' => [
40822             bless(
40823             {
40824             'subrule' => 'unsigned_constant',
40825             'matchrule' => 0,
40826             'implicit' => undef,
40827             'argcode' => undef,
40828             'lookahead' => 0,
40829             'line' => 587
40830             },
40831             'Parse::RecDescent::Subrule'
40832             ),
40833             bless(
40834             {
40835             'pattern' => 'FOLLOWING',
40836             'hashname' => '__PATTERN1__',
40837             'description' => '/FOLLOWING/i',
40838             'lookahead' => 0,
40839             'rdelim' => '/',
40840             'line' => 587,
40841             'mod' => 'i',
40842             'ldelim' => '/'
40843             },
40844             'Parse::RecDescent::Token'
40845             )
40846             ],
40847             'line' => 587
40848             },
40849             'Parse::RecDescent::Production'
40850             ),
40851             bless(
40852             {
40853             'number' => '3',
40854             'strcount' => 0,
40855             'dircount' => 0,
40856             'uncommit' => undef,
40857             'error' => undef,
40858             'patcount' => 1,
40859             'actcount' => 0,
40860             'items' => [
40861             bless(
40862             {
40863             'pattern' => 'CURRENT\\s+ROW',
40864             'hashname' => '__PATTERN1__',
40865             'description' => '/CURRENT\\\\s+ROW/i',
40866             'lookahead' => 0,
40867             'rdelim' => '/',
40868             'line' => 588,
40869             'mod' => 'i',
40870             'ldelim' => '/'
40871             },
40872             'Parse::RecDescent::Token'
40873             )
40874             ],
40875             'line' => 588
40876             },
40877             'Parse::RecDescent::Production'
40878             )
40879             ],
40880             'name' => 'group_bound2',
40881             'vars' => '',
40882             'line' => 585
40883             },
40884             'Parse::RecDescent::Rule'
40885             ),
40886             'searched_when_clause' => bless(
40887             {
40888             'impcount' => 1,
40889             'calls' => ['_alternation_1_of_production_1_of_rule_searched_when_clause'],
40890             'changed' => 0,
40891             'opcount' => 0,
40892             'prods' => [
40893             bless(
40894             {
40895             'number' => '0',
40896             'strcount' => 0,
40897             'dircount' => 0,
40898             'uncommit' => undef,
40899             'error' => undef,
40900             'patcount' => 0,
40901             'actcount' => 0,
40902             'items' => [
40903             bless(
40904             {
40905             'subrule' => '_alternation_1_of_production_1_of_rule_searched_when_clause',
40906             'expected' => '/WHEN/i',
40907             'min' => 1,
40908             'argcode' => undef,
40909             'max' => 100000000,
40910             'matchrule' => 0,
40911             'repspec' => 's',
40912             'lookahead' => 0,
40913             'line' => 507
40914             },
40915             'Parse::RecDescent::Repetition'
40916             )
40917             ],
40918             'line' => undef
40919             },
40920             'Parse::RecDescent::Production'
40921             )
40922             ],
40923             'name' => 'searched_when_clause',
40924             'vars' => '',
40925             'line' => 503
40926             },
40927             'Parse::RecDescent::Rule'
40928             ),
40929             'basic_p' => bless(
40930             {
40931             'impcount' => 0,
40932             'calls' => ['expression'],
40933             'changed' => 0,
40934             'opcount' => 0,
40935             'prods' => [
40936             bless(
40937             {
40938             'number' => '0',
40939             'strcount' => 0,
40940             'dircount' => 0,
40941             'uncommit' => undef,
40942             'error' => undef,
40943             'patcount' => 1,
40944             'actcount' => 0,
40945             'items' => [
40946             bless(
40947             {
40948             'subrule' => 'expression',
40949             'matchrule' => 0,
40950             'implicit' => undef,
40951             'argcode' => undef,
40952             'lookahead' => 0,
40953             'line' => 624
40954             },
40955             'Parse::RecDescent::Subrule'
40956             ),
40957             bless(
40958             {
40959             'pattern' => '(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)',
40960             'hashname' => '__PATTERN1__',
40961             'description' => '/(=|<>|<|>|<=|=>|\\\\^=|\\\\^<|\\\\^>|\\\\!=)/',
40962             'lookahead' => 0,
40963             'rdelim' => '/',
40964             'line' => 624,
40965             'mod' => '',
40966             'ldelim' => '/'
40967             },
40968             'Parse::RecDescent::Token'
40969             ),
40970             bless(
40971             {
40972             'subrule' => 'expression',
40973             'matchrule' => 0,
40974             'implicit' => undef,
40975             'argcode' => undef,
40976             'lookahead' => 0,
40977             'line' => 624
40978             },
40979             'Parse::RecDescent::Subrule'
40980             )
40981             ],
40982             'line' => undef
40983             },
40984             'Parse::RecDescent::Production'
40985             )
40986             ],
40987             'name' => 'basic_p',
40988             'vars' => '',
40989             'line' => 624
40990             },
40991             'Parse::RecDescent::Rule'
40992             ),
40993             'asc_option' => bless(
40994             {
40995             'impcount' => 1,
40996             'calls' => ['_alternation_1_of_production_1_of_rule_asc_option'],
40997             'changed' => 0,
40998             'opcount' => 0,
40999             'prods' => [
41000             bless(
41001             {
41002             'number' => '0',
41003             'strcount' => 0,
41004             'dircount' => 0,
41005             'uncommit' => undef,
41006             'error' => undef,
41007             'patcount' => 1,
41008             'actcount' => 0,
41009             'items' => [
41010             bless(
41011             {
41012             'pattern' => 'ASC',
41013             'hashname' => '__PATTERN1__',
41014             'description' => '/ASC/i',
41015             'lookahead' => 0,
41016             'rdelim' => '/',
41017             'line' => 562,
41018             'mod' => 'i',
41019             'ldelim' => '/'
41020             },
41021             'Parse::RecDescent::Token'
41022             ),
41023             bless(
41024             {
41025             'subrule' => '_alternation_1_of_production_1_of_rule_asc_option',
41026             'expected' => '/NULLS\\\\s+FIRST/i, or /NULLS\\\\s+LAST/i',
41027             'min' => 0,
41028             'argcode' => undef,
41029             'max' => 1,
41030             'matchrule' => 0,
41031             'repspec' => '?',
41032             'lookahead' => 0,
41033             'line' => 562
41034             },
41035             'Parse::RecDescent::Repetition'
41036             )
41037             ],
41038             'line' => undef
41039             },
41040             'Parse::RecDescent::Production'
41041             )
41042             ],
41043             'name' => 'asc_option',
41044             'vars' => '',
41045             'line' => 562
41046             },
41047             'Parse::RecDescent::Rule'
41048             ),
41049             'search_condition' => bless(
41050             {
41051             'impcount' => 1,
41052             'calls' => [
41053             '_alternation_1_of_production_2_of_rule_search_condition',
41054             'cond'
41055             ],
41056             'changed' => 0,
41057             'opcount' => 0,
41058             'prods' => [
41059             bless(
41060             {
41061             'number' => '0',
41062             'strcount' => 0,
41063             'dircount' => 0,
41064             'uncommit' => undef,
41065             'error' => undef,
41066             'patcount' => 1,
41067             'actcount' => 0,
41068             'items' => [
41069             bless(
41070             {
41071             'pattern' => '[^)]+',
41072             'hashname' => '__PATTERN1__',
41073             'description' => '/[^)]+/',
41074             'lookahead' => 0,
41075             'rdelim' => '/',
41076             'line' => 297,
41077             'mod' => '',
41078             'ldelim' => '/'
41079             },
41080             'Parse::RecDescent::Token'
41081             )
41082             ],
41083             'line' => undef
41084             },
41085             'Parse::RecDescent::Production'
41086             ),
41087             bless(
41088             {
41089             'number' => '1',
41090             'strcount' => 0,
41091             'dircount' => 0,
41092             'uncommit' => undef,
41093             'error' => undef,
41094             'patcount' => 1,
41095             'actcount' => 0,
41096             'items' => [
41097             bless(
41098             {
41099             'pattern' => 'NOT|',
41100             'hashname' => '__PATTERN1__',
41101             'description' => '/NOT|/i',
41102             'lookahead' => 0,
41103             'rdelim' => '/',
41104             'line' => 618,
41105             'mod' => 'i',
41106             'ldelim' => '/'
41107             },
41108             'Parse::RecDescent::Token'
41109             ),
41110             bless(
41111             {
41112             'subrule' => '_alternation_1_of_production_2_of_rule_search_condition',
41113             'matchrule' => 0,
41114             'implicit' => 'predicate, or \'(\'',
41115             'argcode' => undef,
41116             'lookahead' => 0,
41117             'line' => 618
41118             },
41119             'Parse::RecDescent::Subrule'
41120             ),
41121             bless(
41122             {
41123             'subrule' => 'cond',
41124             'expected' => undef,
41125             'min' => 0,
41126             'argcode' => undef,
41127             'max' => 100000000,
41128             'matchrule' => 0,
41129             'repspec' => 's?',
41130             'lookahead' => 0,
41131             'line' => 618
41132             },
41133             'Parse::RecDescent::Repetition'
41134             )
41135             ],
41136             'line' => undef
41137             },
41138             'Parse::RecDescent::Production'
41139             )
41140             ],
41141             'name' => 'search_condition',
41142             'vars' => '',
41143             'line' => 296
41144             },
41145             'Parse::RecDescent::Rule'
41146             ),
41147             '_alternation_1_of_production_1_of_rule_operator' => bless(
41148             {
41149             'impcount' => 0,
41150             'calls' => [],
41151             'changed' => 0,
41152             'opcount' => 0,
41153             'prods' => [
41154             bless(
41155             {
41156             'number' => '0',
41157             'strcount' => 0,
41158             'dircount' => 0,
41159             'uncommit' => undef,
41160             'error' => undef,
41161             'patcount' => 1,
41162             'actcount' => 0,
41163             'items' => [
41164             bless(
41165             {
41166             'pattern' => 'CONCAT',
41167             'hashname' => '__PATTERN1__',
41168             'description' => '/CONCAT/i',
41169             'lookahead' => 0,
41170             'rdelim' => '/',
41171             'line' => 628,
41172             'mod' => 'i',
41173             'ldelim' => '/'
41174             },
41175             'Parse::RecDescent::Token'
41176             )
41177             ],
41178             'line' => undef
41179             },
41180             'Parse::RecDescent::Production'
41181             ),
41182             bless(
41183             {
41184             'number' => '1',
41185             'strcount' => 1,
41186             'dircount' => 0,
41187             'uncommit' => undef,
41188             'error' => undef,
41189             'patcount' => 0,
41190             'actcount' => 0,
41191             'items' => [
41192             bless(
41193             {
41194             'pattern' => '||',
41195             'hashname' => '__STRING1__',
41196             'description' => '\'||\'',
41197             'lookahead' => 0,
41198             'line' => 628
41199             },
41200             'Parse::RecDescent::Literal'
41201             )
41202             ],
41203             'line' => 628
41204             },
41205             'Parse::RecDescent::Production'
41206             )
41207             ],
41208             'name' => '_alternation_1_of_production_1_of_rule_operator',
41209             'vars' => '',
41210             'line' => 628
41211             },
41212             'Parse::RecDescent::Rule'
41213             ),
41214             'simple_when_clause' => bless(
41215             {
41216             'impcount' => 1,
41217             'calls' => [
41218             'expression',
41219             '_alternation_1_of_production_1_of_rule_simple_when_clause'
41220             ],
41221             'changed' => 0,
41222             'opcount' => 0,
41223             'prods' => [
41224             bless(
41225             {
41226             'number' => '0',
41227             'strcount' => 0,
41228             'dircount' => 0,
41229             'uncommit' => undef,
41230             'error' => undef,
41231             'patcount' => 0,
41232             'actcount' => 0,
41233             'items' => [
41234             bless(
41235             {
41236             'subrule' => 'expression',
41237             'matchrule' => 0,
41238             'implicit' => undef,
41239             'argcode' => undef,
41240             'lookahead' => 0,
41241             'line' => 509
41242             },
41243             'Parse::RecDescent::Subrule'
41244             ),
41245             bless(
41246             {
41247             'subrule' => '_alternation_1_of_production_1_of_rule_simple_when_clause',
41248             'expected' => '/WHEN/i',
41249             'min' => 1,
41250             'argcode' => undef,
41251             'max' => 100000000,
41252             'matchrule' => 0,
41253             'repspec' => 's',
41254             'lookahead' => 0,
41255             'line' => 513
41256             },
41257             'Parse::RecDescent::Repetition'
41258             )
41259             ],
41260             'line' => undef
41261             },
41262             'Parse::RecDescent::Production'
41263             )
41264             ],
41265             'name' => 'simple_when_clause',
41266             'vars' => '',
41267             'line' => 509
41268             },
41269             'Parse::RecDescent::Rule'
41270             ),
41271             'INNER' => bless(
41272             {
41273             'impcount' => 0,
41274             'calls' => [],
41275             'changed' => 0,
41276             'opcount' => 0,
41277             'prods' => [
41278             bless(
41279             {
41280             'number' => '0',
41281             'strcount' => 0,
41282             'dircount' => 0,
41283             'uncommit' => undef,
41284             'error' => undef,
41285             'patcount' => 1,
41286             'actcount' => 0,
41287             'items' => [
41288             bless(
41289             {
41290             'pattern' => 'inner',
41291             'hashname' => '__PATTERN1__',
41292             'description' => '/inner/i',
41293             'lookahead' => 0,
41294             'rdelim' => '/',
41295             'line' => 107,
41296             'mod' => 'i',
41297             'ldelim' => '/'
41298             },
41299             'Parse::RecDescent::Token'
41300             )
41301             ],
41302             'line' => undef
41303             },
41304             'Parse::RecDescent::Production'
41305             )
41306             ],
41307             'name' => 'INNER',
41308             'vars' => '',
41309             'line' => 107
41310             },
41311             'Parse::RecDescent::Rule'
41312             ),
41313             'eofile' => bless(
41314             {
41315             'impcount' => 0,
41316             'calls' => [],
41317             'changed' => 0,
41318             'opcount' => 0,
41319             'prods' => [
41320             bless(
41321             {
41322             'number' => '0',
41323             'strcount' => 0,
41324             'dircount' => 0,
41325             'uncommit' => undef,
41326             'error' => undef,
41327             'patcount' => 1,
41328             'actcount' => 0,
41329             'items' => [
41330             bless(
41331             {
41332             'pattern' => '^\\Z',
41333             'hashname' => '__PATTERN1__',
41334             'description' => '/^\\\\Z/',
41335             'lookahead' => 0,
41336             'rdelim' => '/',
41337             'line' => 20,
41338             'mod' => '',
41339             'ldelim' => '/'
41340             },
41341             'Parse::RecDescent::Token'
41342             )
41343             ],
41344             'line' => undef
41345             },
41346             'Parse::RecDescent::Production'
41347             )
41348             ],
41349             'name' => 'eofile',
41350             'vars' => '',
41351             'line' => 20
41352             },
41353             'Parse::RecDescent::Rule'
41354             ),
41355             'cond' => bless(
41356             {
41357             'impcount' => 2,
41358             'calls' => [
41359             '_alternation_1_of_production_1_of_rule_cond',
41360             '_alternation_2_of_production_1_of_rule_cond'
41361             ],
41362             'changed' => 0,
41363             'opcount' => 0,
41364             'prods' => [
41365             bless(
41366             {
41367             'number' => '0',
41368             'strcount' => 0,
41369             'dircount' => 0,
41370             'uncommit' => undef,
41371             'error' => undef,
41372             'patcount' => 1,
41373             'actcount' => 0,
41374             'items' => [
41375             bless(
41376             {
41377             'subrule' => '_alternation_1_of_production_1_of_rule_cond',
41378             'matchrule' => 0,
41379             'implicit' => '/AND/i, or /OR/i',
41380             'argcode' => undef,
41381             'lookahead' => 0,
41382             'line' => 620
41383             },
41384             'Parse::RecDescent::Subrule'
41385             ),
41386             bless(
41387             {
41388             'pattern' => 'NOT|',
41389             'hashname' => '__PATTERN1__',
41390             'description' => '/NOT|/i',
41391             'lookahead' => 0,
41392             'rdelim' => '/',
41393             'line' => 620,
41394             'mod' => 'i',
41395             'ldelim' => '/'
41396             },
41397             'Parse::RecDescent::Token'
41398             ),
41399             bless(
41400             {
41401             'subrule' => '_alternation_2_of_production_1_of_rule_cond',
41402             'matchrule' => 0,
41403             'implicit' => 'predicate, or \'(\'',
41404             'argcode' => undef,
41405             'lookahead' => 0,
41406             'line' => 620
41407             },
41408             'Parse::RecDescent::Subrule'
41409             )
41410             ],
41411             'line' => undef
41412             },
41413             'Parse::RecDescent::Production'
41414             )
41415             ],
41416             'name' => 'cond',
41417             'vars' => '',
41418             'line' => 620
41419             },
41420             'Parse::RecDescent::Rule'
41421             ),
41422             'ld_type' => bless(
41423             {
41424             'impcount' => 0,
41425             'calls' => [
41426             'function',
41427             'expression',
41428             'constant',
41429             'column_name',
41430             'host_variable'
41431             ],
41432             'changed' => 0,
41433             'opcount' => 0,
41434             'prods' => [
41435             bless(
41436             {
41437             'number' => '0',
41438             'strcount' => 0,
41439             'dircount' => 0,
41440             'uncommit' => undef,
41441             'error' => undef,
41442             'patcount' => 0,
41443             'actcount' => 0,
41444             'items' => [
41445             bless(
41446             {
41447             'subrule' => 'function',
41448             'matchrule' => 0,
41449             'implicit' => undef,
41450             'argcode' => undef,
41451             'lookahead' => 0,
41452             'line' => 482
41453             },
41454             'Parse::RecDescent::Subrule'
41455             )
41456             ],
41457             'line' => undef
41458             },
41459             'Parse::RecDescent::Production'
41460             ),
41461             bless(
41462             {
41463             'number' => '1',
41464             'strcount' => 2,
41465             'dircount' => 0,
41466             'uncommit' => undef,
41467             'error' => undef,
41468             'patcount' => 0,
41469             'actcount' => 0,
41470             'items' => [
41471             bless(
41472             {
41473             'pattern' => '(',
41474             'hashname' => '__STRING1__',
41475             'description' => '\'(\'',
41476             'lookahead' => 0,
41477             'line' => 483
41478             },
41479             'Parse::RecDescent::Literal'
41480             ),
41481             bless(
41482             {
41483             'subrule' => 'expression',
41484             'matchrule' => 0,
41485             'implicit' => undef,
41486             'argcode' => undef,
41487             'lookahead' => 0,
41488             'line' => 483
41489             },
41490             'Parse::RecDescent::Subrule'
41491             ),
41492             bless(
41493             {
41494             'pattern' => ')',
41495             'hashname' => '__STRING2__',
41496             'description' => '\')\'',
41497             'lookahead' => 0,
41498             'line' => 483
41499             },
41500             'Parse::RecDescent::Literal'
41501             )
41502             ],
41503             'line' => 483
41504             },
41505             'Parse::RecDescent::Production'
41506             ),
41507             bless(
41508             {
41509             'number' => '2',
41510             'strcount' => 0,
41511             'dircount' => 0,
41512             'uncommit' => undef,
41513             'error' => undef,
41514             'patcount' => 0,
41515             'actcount' => 0,
41516             'items' => [
41517             bless(
41518             {
41519             'subrule' => 'constant',
41520             'matchrule' => 0,
41521             'implicit' => undef,
41522             'argcode' => undef,
41523             'lookahead' => 0,
41524             'line' => 484
41525             },
41526             'Parse::RecDescent::Subrule'
41527             )
41528             ],
41529             'line' => 484
41530             },
41531             'Parse::RecDescent::Production'
41532             ),
41533             bless(
41534             {
41535             'number' => '3',
41536             'strcount' => 0,
41537             'dircount' => 0,
41538             'uncommit' => undef,
41539             'error' => undef,
41540             'patcount' => 0,
41541             'actcount' => 0,
41542             'items' => [
41543             bless(
41544             {
41545             'subrule' => 'column_name',
41546             'matchrule' => 0,
41547             'implicit' => undef,
41548             'argcode' => undef,
41549             'lookahead' => 0,
41550             'line' => 485
41551             },
41552             'Parse::RecDescent::Subrule'
41553             )
41554             ],
41555             'line' => 485
41556             },
41557             'Parse::RecDescent::Production'
41558             ),
41559             bless(
41560             {
41561             'number' => '4',
41562             'strcount' => 0,
41563             'dircount' => 0,
41564             'uncommit' => undef,
41565             'error' => undef,
41566             'patcount' => 0,
41567             'actcount' => 0,
41568             'items' => [
41569             bless(
41570             {
41571             'subrule' => 'host_variable',
41572             'matchrule' => 0,
41573             'implicit' => undef,
41574             'argcode' => undef,
41575             'lookahead' => 0,
41576             'line' => 486
41577             },
41578             'Parse::RecDescent::Subrule'
41579             )
41580             ],
41581             'line' => 486
41582             },
41583             'Parse::RecDescent::Production'
41584             )
41585             ],
41586             'name' => 'ld_type',
41587             'vars' => '',
41588             'line' => 482
41589             },
41590             'Parse::RecDescent::Rule'
41591             ),
41592             'RIGHT' => bless(
41593             {
41594             'impcount' => 0,
41595             'calls' => [],
41596             'changed' => 0,
41597             'opcount' => 0,
41598             'prods' => [
41599             bless(
41600             {
41601             'number' => '0',
41602             'strcount' => 0,
41603             'dircount' => 0,
41604             'uncommit' => undef,
41605             'error' => undef,
41606             'patcount' => 1,
41607             'actcount' => 0,
41608             'items' => [
41609             bless(
41610             {
41611             'pattern' => 'right',
41612             'hashname' => '__PATTERN1__',
41613             'description' => '/right/i',
41614             'lookahead' => 0,
41615             'rdelim' => '/',
41616             'line' => 111,
41617             'mod' => 'i',
41618             'ldelim' => '/'
41619             },
41620             'Parse::RecDescent::Token'
41621             )
41622             ],
41623             'line' => undef
41624             },
41625             'Parse::RecDescent::Production'
41626             )
41627             ],
41628             'name' => 'RIGHT',
41629             'vars' => '',
41630             'line' => 111
41631             },
41632             'Parse::RecDescent::Rule'
41633             ),
41634             '_alternation_1_of_production_1_of_rule_method_invocation' => bless(
41635             {
41636             'impcount' => 0,
41637             'calls' => ['expression'],
41638             'changed' => 0,
41639             'opcount' => 0,
41640             'prods' => [
41641             bless(
41642             {
41643             'number' => '0',
41644             'strcount' => 2,
41645             'dircount' => 0,
41646             'uncommit' => undef,
41647             'error' => undef,
41648             'patcount' => 0,
41649             'actcount' => 0,
41650             'items' => [
41651             bless(
41652             {
41653             'pattern' => '(',
41654             'hashname' => '__STRING1__',
41655             'description' => '\'(\'',
41656             'lookahead' => 0,
41657             'line' => 626
41658             },
41659             'Parse::RecDescent::Literal'
41660             ),
41661             bless(
41662             {
41663             'subrule' => 'expression',
41664             'expected' => undef,
41665             'min' => 1,
41666             'argcode' => undef,
41667             'max' => 100000000,
41668             'matchrule' => 0,
41669             'repspec' => 's',
41670             'lookahead' => 0,
41671             'line' => 626
41672             },
41673             'Parse::RecDescent::Repetition'
41674             ),
41675             bless(
41676             {
41677             'pattern' => ')',
41678             'hashname' => '__STRING2__',
41679             'description' => '\')\'',
41680             'lookahead' => 0,
41681             'line' => 626
41682             },
41683             'Parse::RecDescent::Literal'
41684             )
41685             ],
41686             'line' => undef
41687             },
41688             'Parse::RecDescent::Production'
41689             )
41690             ],
41691             'name' => '_alternation_1_of_production_1_of_rule_method_invocation',
41692             'vars' => '',
41693             'line' => 626
41694             },
41695             'Parse::RecDescent::Rule'
41696             ),
41697             'LEFT' => bless(
41698             {
41699             'impcount' => 0,
41700             'calls' => [],
41701             'changed' => 0,
41702             'opcount' => 0,
41703             'prods' => [
41704             bless(
41705             {
41706             'number' => '0',
41707             'strcount' => 0,
41708             'dircount' => 0,
41709             'uncommit' => undef,
41710             'error' => undef,
41711             'patcount' => 1,
41712             'actcount' => 0,
41713             'items' => [
41714             bless(
41715             {
41716             'pattern' => 'left',
41717             'hashname' => '__PATTERN1__',
41718             'description' => '/left/i',
41719             'lookahead' => 0,
41720             'rdelim' => '/',
41721             'line' => 109,
41722             'mod' => 'i',
41723             'ldelim' => '/'
41724             },
41725             'Parse::RecDescent::Token'
41726             )
41727             ],
41728             'line' => undef
41729             },
41730             'Parse::RecDescent::Production'
41731             )
41732             ],
41733             'name' => 'LEFT',
41734             'vars' => '',
41735             'line' => 109
41736             },
41737             'Parse::RecDescent::Rule'
41738             ),
41739             'table_name' => bless(
41740             {
41741             'impcount' => 0,
41742             'calls' => [
41743             'SCHEMA',
41744             'NAME'
41745             ],
41746             'changed' => 0,
41747             'opcount' => 0,
41748             'prods' => [
41749             bless(
41750             {
41751             'number' => '0',
41752             'strcount' => 1,
41753             'dircount' => 0,
41754             'uncommit' => undef,
41755             'error' => undef,
41756             'patcount' => 0,
41757             'actcount' => 1,
41758             'items' => [
41759             bless(
41760             {
41761             'subrule' => 'SCHEMA',
41762             'matchrule' => 0,
41763             'implicit' => undef,
41764             'argcode' => undef,
41765             'lookahead' => 0,
41766             'line' => 124
41767             },
41768             'Parse::RecDescent::Subrule'
41769             ),
41770             bless(
41771             {
41772             'pattern' => '.',
41773             'hashname' => '__STRING1__',
41774             'description' => '\'.\'',
41775             'lookahead' => 0,
41776             'line' => 124
41777             },
41778             'Parse::RecDescent::Literal'
41779             ),
41780             bless(
41781             {
41782             'subrule' => 'NAME',
41783             'matchrule' => 0,
41784             'implicit' => undef,
41785             'argcode' => undef,
41786             'lookahead' => 0,
41787             'line' => 124
41788             },
41789             'Parse::RecDescent::Subrule'
41790             ),
41791             bless(
41792             {
41793             'hashname' => '__ACTION1__',
41794             'lookahead' => 0,
41795             'line' => 125,
41796             'code' => '{ $return = { schema => $item[1], name => $item[3] } }'
41797             },
41798             'Parse::RecDescent::Action'
41799             )
41800             ],
41801             'line' => undef
41802             },
41803             'Parse::RecDescent::Production'
41804             ),
41805             bless(
41806             {
41807             'number' => '1',
41808             'strcount' => 0,
41809             'dircount' => 0,
41810             'uncommit' => undef,
41811             'error' => undef,
41812             'patcount' => 0,
41813             'actcount' => 1,
41814             'items' => [
41815             bless(
41816             {
41817             'subrule' => 'NAME',
41818             'matchrule' => 0,
41819             'implicit' => undef,
41820             'argcode' => undef,
41821             'lookahead' => 0,
41822             'line' => 126
41823             },
41824             'Parse::RecDescent::Subrule'
41825             ),
41826             bless(
41827             {
41828             'hashname' => '__ACTION1__',
41829             'lookahead' => 0,
41830             'line' => 127,
41831             'code' => '{ $return = { name => $item[1] } }'
41832             },
41833             'Parse::RecDescent::Action'
41834             )
41835             ],
41836             'line' => 126
41837             },
41838             'Parse::RecDescent::Production'
41839             )
41840             ],
41841             'name' => 'table_name',
41842             'vars' => '',
41843             'line' => 124
41844             },
41845             'Parse::RecDescent::Rule'
41846             ),
41847             '_alternation_1_of_production_53_of_rule_sysfun' => bless(
41848             {
41849             'impcount' => 0,
41850             'calls' => [],
41851             'changed' => 0,
41852             'opcount' => 0,
41853             'prods' => [
41854             bless(
41855             {
41856             'number' => '0',
41857             'strcount' => 0,
41858             'dircount' => 0,
41859             'uncommit' => undef,
41860             'error' => undef,
41861             'patcount' => 1,
41862             'actcount' => 0,
41863             'items' => [
41864             bless(
41865             {
41866             'pattern' => 'TRUNCATE',
41867             'hashname' => '__PATTERN1__',
41868             'description' => '/TRUNCATE/i',
41869             'lookahead' => 0,
41870             'rdelim' => '/',
41871             'line' => 628,
41872             'mod' => 'i',
41873             'ldelim' => '/'
41874             },
41875             'Parse::RecDescent::Token'
41876             )
41877             ],
41878             'line' => undef
41879             },
41880             'Parse::RecDescent::Production'
41881             ),
41882             bless(
41883             {
41884             'number' => '1',
41885             'strcount' => 0,
41886             'dircount' => 0,
41887             'uncommit' => undef,
41888             'error' => undef,
41889             'patcount' => 1,
41890             'actcount' => 0,
41891             'items' => [
41892             bless(
41893             {
41894             'pattern' => 'TRUNC',
41895             'hashname' => '__PATTERN1__',
41896             'description' => '/TRUNC/i',
41897             'lookahead' => 0,
41898             'rdelim' => '/',
41899             'line' => 628,
41900             'mod' => 'i',
41901             'ldelim' => '/'
41902             },
41903             'Parse::RecDescent::Token'
41904             )
41905             ],
41906             'line' => 628
41907             },
41908             'Parse::RecDescent::Production'
41909             )
41910             ],
41911             'name' => '_alternation_1_of_production_53_of_rule_sysfun',
41912             'vars' => '',
41913             'line' => 628
41914             },
41915             'Parse::RecDescent::Rule'
41916             ),
41917             'options' => bless(
41918             {
41919             'impcount' => 1,
41920             'calls' => ['_alternation_1_of_production_1_of_rule_options'],
41921             'changed' => 0,
41922             'opcount' => 0,
41923             'prods' => [
41924             bless(
41925             {
41926             'number' => '0',
41927             'strcount' => 0,
41928             'dircount' => 0,
41929             'uncommit' => undef,
41930             'error' => undef,
41931             'patcount' => 2,
41932             'actcount' => 0,
41933             'items' => [
41934             bless(
41935             {
41936             'pattern' => 'WITH',
41937             'hashname' => '__PATTERN1__',
41938             'description' => '/WITH/i',
41939             'lookahead' => 0,
41940             'rdelim' => '/',
41941             'line' => 150,
41942             'mod' => 'i',
41943             'ldelim' => '/'
41944             },
41945             'Parse::RecDescent::Token'
41946             ),
41947             bless(
41948             {
41949             'subrule' => '_alternation_1_of_production_1_of_rule_options',
41950             'matchrule' => 0,
41951             'implicit' => '/CASCADED/i, or /LOCAL/i',
41952             'argcode' => undef,
41953             'lookahead' => 0,
41954             'line' => 150
41955             },
41956             'Parse::RecDescent::Subrule'
41957             ),
41958             bless(
41959             {
41960             'pattern' => 'CHECK\\s+OPTION',
41961             'hashname' => '__PATTERN2__',
41962             'description' => '/CHECK\\\\s+OPTION/i',
41963             'lookahead' => 0,
41964             'rdelim' => '/',
41965             'line' => 150,
41966             'mod' => 'i',
41967             'ldelim' => '/'
41968             },
41969             'Parse::RecDescent::Token'
41970             )
41971             ],
41972             'line' => undef
41973             },
41974             'Parse::RecDescent::Production'
41975             )
41976             ],
41977             'name' => 'options',
41978             'vars' => '',
41979             'line' => 150
41980             },
41981             'Parse::RecDescent::Rule'
41982             ),
41983             'function' => bless(
41984             {
41985             'impcount' => 1,
41986             'calls' => [
41987             '_alternation_1_of_production_1_of_rule_function',
41988             'func_args'
41989             ],
41990             'changed' => 0,
41991             'opcount' => 0,
41992             'prods' => [
41993             bless(
41994             {
41995             'number' => '0',
41996             'strcount' => 2,
41997             'dircount' => 1,
41998             'uncommit' => undef,
41999             'error' => undef,
42000             'patcount' => 1,
42001             'actcount' => 0,
42002             'op' => [],
42003             'items' => [
42004             bless(
42005             {
42006             'subrule' => '_alternation_1_of_production_1_of_rule_function',
42007             'matchrule' => 0,
42008             'implicit' => '/SYSIBM\\\\.|/i, or /SYSFUN\\\\.|/i, or userdefined_function',
42009             'argcode' => undef,
42010             'lookahead' => 0,
42011             'line' => 326
42012             },
42013             'Parse::RecDescent::Subrule'
42014             ),
42015             bless(
42016             {
42017             'pattern' => '(',
42018             'hashname' => '__STRING1__',
42019             'description' => '\'(\'',
42020             'lookahead' => 0,
42021             'line' => 326
42022             },
42023             'Parse::RecDescent::Literal'
42024             ),
42025             bless(
42026             {
42027             'expected' => '',
42028             'min' => 1,
42029             'name' => '\'func_args(s)\'',
42030             'max' => 100000000,
42031             'leftarg' => bless(
42032             {
42033             'subrule' => 'func_args',
42034             'matchrule' => 0,
42035             'implicit' => undef,
42036             'argcode' => undef,
42037             'lookahead' => 0,
42038             'line' => 326
42039             },
42040             'Parse::RecDescent::Subrule'
42041             ),
42042             'rightarg' => bless(
42043             {
42044             'subrule' => 'func_args',
42045             'matchrule' => 0,
42046             'implicit' => undef,
42047             'argcode' => undef,
42048             'lookahead' => 0,
42049             'line' => 326
42050             },
42051             'Parse::RecDescent::Subrule'
42052             ),
42053             'hashname' => '__DIRECTIVE1__',
42054             'type' => 'leftop',
42055             'op' => bless(
42056             {
42057             'pattern' => ',',
42058             'hashname' => '__PATTERN1__',
42059             'description' => '/,/',
42060             'lookahead' => 0,
42061             'rdelim' => '/',
42062             'line' => 326,
42063             'mod' => '',
42064             'ldelim' => '/'
42065             },
42066             'Parse::RecDescent::Token'
42067             )
42068             },
42069             'Parse::RecDescent::Operator'
42070             ),
42071             bless(
42072             {
42073             'pattern' => ')',
42074             'hashname' => '__STRING2__',
42075             'description' => '\')\'',
42076             'lookahead' => 0,
42077             'line' => 326
42078             },
42079             'Parse::RecDescent::Literal'
42080             )
42081             ],
42082             'line' => undef
42083             },
42084             'Parse::RecDescent::Production'
42085             )
42086             ],
42087             'name' => 'function',
42088             'vars' => '',
42089             'line' => 323
42090             },
42091             'Parse::RecDescent::Rule'
42092             ),
42093             '_alternation_1_of_production_41_of_rule_sysibm_function' => bless(
42094             {
42095             'impcount' => 0,
42096             'calls' => [],
42097             'changed' => 0,
42098             'opcount' => 0,
42099             'prods' => [
42100             bless(
42101             {
42102             'number' => '0',
42103             'strcount' => 0,
42104             'dircount' => 0,
42105             'uncommit' => undef,
42106             'error' => undef,
42107             'patcount' => 1,
42108             'actcount' => 0,
42109             'items' => [
42110             bless(
42111             {
42112             'pattern' => 'INTEGER',
42113             'hashname' => '__PATTERN1__',
42114             'description' => '/INTEGER/i',
42115             'lookahead' => 0,
42116             'rdelim' => '/',
42117             'line' => 628,
42118             'mod' => 'i',
42119             'ldelim' => '/'
42120             },
42121             'Parse::RecDescent::Token'
42122             )
42123             ],
42124             'line' => undef
42125             },
42126             'Parse::RecDescent::Production'
42127             ),
42128             bless(
42129             {
42130             'number' => '1',
42131             'strcount' => 0,
42132             'dircount' => 0,
42133             'uncommit' => undef,
42134             'error' => undef,
42135             'patcount' => 1,
42136             'actcount' => 0,
42137             'items' => [
42138             bless(
42139             {
42140             'pattern' => 'INT',
42141             'hashname' => '__PATTERN1__',
42142             'description' => '/INT/',
42143             'lookahead' => 0,
42144             'rdelim' => '/',
42145             'line' => 628,
42146             'mod' => '',
42147             'ldelim' => '/'
42148             },
42149             'Parse::RecDescent::Token'
42150             )
42151             ],
42152             'line' => 628
42153             },
42154             'Parse::RecDescent::Production'
42155             )
42156             ],
42157             'name' => '_alternation_1_of_production_41_of_rule_sysibm_function',
42158             'vars' => '',
42159             'line' => 628
42160             },
42161             'Parse::RecDescent::Rule'
42162             ),
42163             '_alternation_1_of_production_1_of_rule_case_expression' => bless(
42164             {
42165             'impcount' => 0,
42166             'calls' => [
42167             'searched_when_clause',
42168             'simple_when_clause'
42169             ],
42170             'changed' => 0,
42171             'opcount' => 0,
42172             'prods' => [
42173             bless(
42174             {
42175             'number' => '0',
42176             'strcount' => 0,
42177             'dircount' => 0,
42178             'uncommit' => undef,
42179             'error' => undef,
42180             'patcount' => 0,
42181             'actcount' => 0,
42182             'items' => [
42183             bless(
42184             {
42185             'subrule' => 'searched_when_clause',
42186             'matchrule' => 0,
42187             'implicit' => undef,
42188             'argcode' => undef,
42189             'lookahead' => 0,
42190             'line' => 626
42191             },
42192             'Parse::RecDescent::Subrule'
42193             )
42194             ],
42195             'line' => undef
42196             },
42197             'Parse::RecDescent::Production'
42198             ),
42199             bless(
42200             {
42201             'number' => '1',
42202             'strcount' => 0,
42203             'dircount' => 0,
42204             'uncommit' => undef,
42205             'error' => undef,
42206             'patcount' => 0,
42207             'actcount' => 0,
42208             'items' => [
42209             bless(
42210             {
42211             'subrule' => 'simple_when_clause',
42212             'matchrule' => 0,
42213             'implicit' => undef,
42214             'argcode' => undef,
42215             'lookahead' => 0,
42216             'line' => 627
42217             },
42218             'Parse::RecDescent::Subrule'
42219             )
42220             ],
42221             'line' => 627
42222             },
42223             'Parse::RecDescent::Production'
42224             )
42225             ],
42226             'name' => '_alternation_1_of_production_1_of_rule_case_expression',
42227             'vars' => '',
42228             'line' => 626
42229             },
42230             'Parse::RecDescent::Rule'
42231             ),
42232             '_alternation_1_of_production_1_of_rule_window_order_clause' => bless(
42233             {
42234             'impcount' => 1,
42235             'calls' => [
42236             'sort_key_expression',
42237             '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause'
42238             ],
42239             'changed' => 0,
42240             'opcount' => 0,
42241             'prods' => [
42242             bless(
42243             {
42244             'number' => '0',
42245             'strcount' => 0,
42246             'dircount' => 0,
42247             'uncommit' => undef,
42248             'error' => undef,
42249             'patcount' => 0,
42250             'actcount' => 0,
42251             'items' => [
42252             bless(
42253             {
42254             'subrule' => 'sort_key_expression',
42255             'matchrule' => 0,
42256             'implicit' => undef,
42257             'argcode' => undef,
42258             'lookahead' => 0,
42259             'line' => 624
42260             },
42261             'Parse::RecDescent::Subrule'
42262             ),
42263             bless(
42264             {
42265             'subrule' =>
42266             '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause',
42267             'expected' => 'asc_option, or desc_option',
42268             'min' => 0,
42269             'argcode' => undef,
42270             'max' => 1,
42271             'matchrule' => 0,
42272             'repspec' => '?',
42273             'lookahead' => 0,
42274             'line' => 627
42275             },
42276             'Parse::RecDescent::Repetition'
42277             )
42278             ],
42279             'line' => undef
42280             },
42281             'Parse::RecDescent::Production'
42282             )
42283             ],
42284             'name' => '_alternation_1_of_production_1_of_rule_window_order_clause',
42285             'vars' => '',
42286             'line' => 624
42287             },
42288             'Parse::RecDescent::Rule'
42289             ),
42290             'create' => bless(
42291             {
42292             'impcount' => 0,
42293             'calls' => [
42294             'CREATE',
42295             'TRIGGER',
42296             'trigger_name',
42297             'before',
42298             'type',
42299             'table_name',
42300             'reference_b',
42301             'triggered_action',
42302             'after',
42303             'reference_a',
42304             'VIEW',
42305             'view_name',
42306             'column_list',
42307             'with_expression',
42308             'SQL_procedure_statement'
42309             ],
42310             'changed' => 0,
42311             'opcount' => 0,
42312             'prods' => [
42313             bless(
42314             {
42315             'number' => '0',
42316             'strcount' => 1,
42317             'dircount' => 0,
42318             'uncommit' => undef,
42319             'error' => undef,
42320             'patcount' => 2,
42321             'actcount' => 1,
42322             'items' => [
42323             bless(
42324             {
42325             'subrule' => 'CREATE',
42326             'matchrule' => 0,
42327             'implicit' => undef,
42328             'argcode' => undef,
42329             'lookahead' => 0,
42330             'line' => 36
42331             },
42332             'Parse::RecDescent::Subrule'
42333             ),
42334             bless(
42335             {
42336             'subrule' => 'TRIGGER',
42337             'matchrule' => 0,
42338             'implicit' => undef,
42339             'argcode' => undef,
42340             'lookahead' => 0,
42341             'line' => 36
42342             },
42343             'Parse::RecDescent::Subrule'
42344             ),
42345             bless(
42346             {
42347             'subrule' => 'trigger_name',
42348             'matchrule' => 0,
42349             'implicit' => undef,
42350             'argcode' => undef,
42351             'lookahead' => 0,
42352             'line' => 36
42353             },
42354             'Parse::RecDescent::Subrule'
42355             ),
42356             bless(
42357             {
42358             'subrule' => 'before',
42359             'matchrule' => 0,
42360             'implicit' => undef,
42361             'argcode' => undef,
42362             'lookahead' => 0,
42363             'line' => 36
42364             },
42365             'Parse::RecDescent::Subrule'
42366             ),
42367             bless(
42368             {
42369             'subrule' => 'type',
42370             'matchrule' => 0,
42371             'implicit' => undef,
42372             'argcode' => undef,
42373             'lookahead' => 0,
42374             'line' => 36
42375             },
42376             'Parse::RecDescent::Subrule'
42377             ),
42378             bless(
42379             {
42380             'pattern' => 'ON',
42381             'hashname' => '__PATTERN1__',
42382             'description' => '/ON/i',
42383             'lookahead' => 0,
42384             'rdelim' => '/',
42385             'line' => 36,
42386             'mod' => 'i',
42387             'ldelim' => '/'
42388             },
42389             'Parse::RecDescent::Token'
42390             ),
42391             bless(
42392             {
42393             'subrule' => 'table_name',
42394             'matchrule' => 0,
42395             'implicit' => undef,
42396             'argcode' => undef,
42397             'lookahead' => 0,
42398             'line' => 36
42399             },
42400             'Parse::RecDescent::Subrule'
42401             ),
42402             bless(
42403             {
42404             'subrule' => 'reference_b',
42405             'expected' => undef,
42406             'min' => 0,
42407             'argcode' => undef,
42408             'max' => 1,
42409             'matchrule' => 0,
42410             'repspec' => '?',
42411             'lookahead' => 0,
42412             'line' => 36
42413             },
42414             'Parse::RecDescent::Repetition'
42415             ),
42416             bless(
42417             {
42418             'pattern' => 'FOR EACH ROW',
42419             'hashname' => '__PATTERN2__',
42420             'description' => '/FOR EACH ROW/i',
42421             'lookahead' => 0,
42422             'rdelim' => '/',
42423             'line' => 36,
42424             'mod' => 'i',
42425             'ldelim' => '/'
42426             },
42427             'Parse::RecDescent::Token'
42428             ),
42429             bless(
42430             {
42431             'pattern' => 'MODE DB2SQL',
42432             'hashname' => '__STRING1__',
42433             'description' => '\'MODE DB2SQL\'',
42434             'lookahead' => 0,
42435             'line' => 36
42436             },
42437             'Parse::RecDescent::Literal'
42438             ),
42439             bless(
42440             {
42441             'subrule' => 'triggered_action',
42442             'matchrule' => 0,
42443             'implicit' => undef,
42444             'argcode' => undef,
42445             'lookahead' => 0,
42446             'line' => 36
42447             },
42448             'Parse::RecDescent::Subrule'
42449             ),
42450             bless(
42451             {
42452             'hashname' => '__ACTION1__',
42453             'lookahead' => 0,
42454             'line' => 37,
42455             'code' => '{
42456             my $table_name = $item{\'table_name\'}{\'name\'};
42457             $return = {
42458             table => $table_name,
42459             schema => $item{\'trigger_name\'}{\'schema\'},
42460             name => $item{\'trigger_name\'}{\'name\'},
42461             when => \'before\',
42462             db_event => $item{\'type\'}->{\'event\'},
42463             fields => $item{\'type\'}{\'fields\'},
42464             condition => $item{\'triggered_action\'}{\'condition\'},
42465             reference => $item{\'reference_b\'},
42466             granularity => $item[9],
42467             action => $item{\'triggered_action\'}{\'statement\'}
42468             };
42469              
42470             push @triggers, $return;
42471             }'
42472             },
42473             'Parse::RecDescent::Action'
42474             )
42475             ],
42476             'line' => undef
42477             },
42478             'Parse::RecDescent::Production'
42479             ),
42480             bless(
42481             {
42482             'number' => '1',
42483             'strcount' => 1,
42484             'dircount' => 0,
42485             'uncommit' => undef,
42486             'error' => undef,
42487             'patcount' => 2,
42488             'actcount' => 1,
42489             'items' => [
42490             bless(
42491             {
42492             'subrule' => 'CREATE',
42493             'matchrule' => 0,
42494             'implicit' => undef,
42495             'argcode' => undef,
42496             'lookahead' => 0,
42497             'line' => 55
42498             },
42499             'Parse::RecDescent::Subrule'
42500             ),
42501             bless(
42502             {
42503             'subrule' => 'TRIGGER',
42504             'matchrule' => 0,
42505             'implicit' => undef,
42506             'argcode' => undef,
42507             'lookahead' => 0,
42508             'line' => 55
42509             },
42510             'Parse::RecDescent::Subrule'
42511             ),
42512             bless(
42513             {
42514             'subrule' => 'trigger_name',
42515             'matchrule' => 0,
42516             'implicit' => undef,
42517             'argcode' => undef,
42518             'lookahead' => 0,
42519             'line' => 55
42520             },
42521             'Parse::RecDescent::Subrule'
42522             ),
42523             bless(
42524             {
42525             'subrule' => 'after',
42526             'matchrule' => 0,
42527             'implicit' => undef,
42528             'argcode' => undef,
42529             'lookahead' => 0,
42530             'line' => 55
42531             },
42532             'Parse::RecDescent::Subrule'
42533             ),
42534             bless(
42535             {
42536             'subrule' => 'type',
42537             'matchrule' => 0,
42538             'implicit' => undef,
42539             'argcode' => undef,
42540             'lookahead' => 0,
42541             'line' => 55
42542             },
42543             'Parse::RecDescent::Subrule'
42544             ),
42545             bless(
42546             {
42547             'pattern' => 'ON',
42548             'hashname' => '__PATTERN1__',
42549             'description' => '/ON/i',
42550             'lookahead' => 0,
42551             'rdelim' => '/',
42552             'line' => 55,
42553             'mod' => 'i',
42554             'ldelim' => '/'
42555             },
42556             'Parse::RecDescent::Token'
42557             ),
42558             bless(
42559             {
42560             'subrule' => 'table_name',
42561             'matchrule' => 0,
42562             'implicit' => undef,
42563             'argcode' => undef,
42564             'lookahead' => 0,
42565             'line' => 55
42566             },
42567             'Parse::RecDescent::Subrule'
42568             ),
42569             bless(
42570             {
42571             'subrule' => 'reference_a',
42572             'expected' => undef,
42573             'min' => 0,
42574             'argcode' => undef,
42575             'max' => 1,
42576             'matchrule' => 0,
42577             'repspec' => '?',
42578             'lookahead' => 0,
42579             'line' => 55
42580             },
42581             'Parse::RecDescent::Repetition'
42582             ),
42583             bless(
42584             {
42585             'pattern' => 'FOR EACH ROW|FOR EACH STATEMENT',
42586             'hashname' => '__PATTERN2__',
42587             'description' => '/FOR EACH ROW|FOR EACH STATEMENT/i',
42588             'lookahead' => 0,
42589             'rdelim' => '/',
42590             'line' => 55,
42591             'mod' => 'i',
42592             'ldelim' => '/'
42593             },
42594             'Parse::RecDescent::Token'
42595             ),
42596             bless(
42597             {
42598             'pattern' => 'MODE DB2SQL',
42599             'hashname' => '__STRING1__',
42600             'description' => '\'MODE DB2SQL\'',
42601             'lookahead' => 0,
42602             'line' => 55
42603             },
42604             'Parse::RecDescent::Literal'
42605             ),
42606             bless(
42607             {
42608             'subrule' => 'triggered_action',
42609             'matchrule' => 0,
42610             'implicit' => undef,
42611             'argcode' => undef,
42612             'lookahead' => 0,
42613             'line' => 55
42614             },
42615             'Parse::RecDescent::Subrule'
42616             ),
42617             bless(
42618             {
42619             'hashname' => '__ACTION1__',
42620             'lookahead' => 0,
42621             'line' => 56,
42622             'code' => '{
42623             my $table_name = $item{\'table_name\'}{\'name\'};
42624             $return = {
42625             table => $table_name,
42626             schema => $item{\'trigger_name\'}{\'schema\'},
42627             name => $item{\'trigger_name\'}{\'name\'},
42628             when => \'after\',
42629             db_event => $item{\'type\'}{\'event\'},
42630             fields => $item{\'type\'}{\'fields\'},
42631             condition => $item{\'triggered_action\'}{\'condition\'},
42632             reference => $item{\'reference_a\'},
42633             granularity => $item[9],
42634             action => $item{\'triggered_action\'}{\'statement\'}
42635             };
42636              
42637             push @triggers, $return;
42638             }'
42639             },
42640             'Parse::RecDescent::Action'
42641             )
42642             ],
42643             'line' => undef
42644             },
42645             'Parse::RecDescent::Production'
42646             ),
42647             bless(
42648             {
42649             'number' => '2',
42650             'strcount' => 0,
42651             'dircount' => 0,
42652             'uncommit' => undef,
42653             'error' => undef,
42654             'patcount' => 2,
42655             'actcount' => 1,
42656             'items' => [
42657             bless(
42658             {
42659             'subrule' => 'CREATE',
42660             'matchrule' => 0,
42661             'implicit' => undef,
42662             'argcode' => undef,
42663             'lookahead' => 0,
42664             'line' => 74
42665             },
42666             'Parse::RecDescent::Subrule'
42667             ),
42668             bless(
42669             {
42670             'pattern' => 'FEDERATED|',
42671             'hashname' => '__PATTERN1__',
42672             'description' => '/FEDERATED|/i',
42673             'lookahead' => 0,
42674             'rdelim' => '/',
42675             'line' => 74,
42676             'mod' => 'i',
42677             'ldelim' => '/'
42678             },
42679             'Parse::RecDescent::Token'
42680             ),
42681             bless(
42682             {
42683             'subrule' => 'VIEW',
42684             'matchrule' => 0,
42685             'implicit' => undef,
42686             'argcode' => undef,
42687             'lookahead' => 0,
42688             'line' => 74
42689             },
42690             'Parse::RecDescent::Subrule'
42691             ),
42692             bless(
42693             {
42694             'subrule' => 'view_name',
42695             'matchrule' => 0,
42696             'implicit' => undef,
42697             'argcode' => undef,
42698             'lookahead' => 0,
42699             'line' => 74
42700             },
42701             'Parse::RecDescent::Subrule'
42702             ),
42703             bless(
42704             {
42705             'subrule' => 'column_list',
42706             'expected' => undef,
42707             'min' => 0,
42708             'argcode' => undef,
42709             'max' => 1,
42710             'matchrule' => 0,
42711             'repspec' => '?',
42712             'lookahead' => 0,
42713             'line' => 74
42714             },
42715             'Parse::RecDescent::Repetition'
42716             ),
42717             bless(
42718             {
42719             'pattern' => 'AS',
42720             'hashname' => '__PATTERN2__',
42721             'description' => '/AS/i',
42722             'lookahead' => 0,
42723             'rdelim' => '/',
42724             'line' => 74,
42725             'mod' => 'i',
42726             'ldelim' => '/'
42727             },
42728             'Parse::RecDescent::Token'
42729             ),
42730             bless(
42731             {
42732             'subrule' => 'with_expression',
42733             'expected' => undef,
42734             'min' => 0,
42735             'argcode' => undef,
42736             'max' => 1,
42737             'matchrule' => 0,
42738             'repspec' => '?',
42739             'lookahead' => 0,
42740             'line' => 74
42741             },
42742             'Parse::RecDescent::Repetition'
42743             ),
42744             bless(
42745             {
42746             'subrule' => 'SQL_procedure_statement',
42747             'matchrule' => 0,
42748             'implicit' => undef,
42749             'argcode' => undef,
42750             'lookahead' => 0,
42751             'line' => 74
42752             },
42753             'Parse::RecDescent::Subrule'
42754             ),
42755             bless(
42756             {
42757             'hashname' => '__ACTION1__',
42758             'lookahead' => 0,
42759             'line' => 75,
42760             'code' => '{
42761             $return = {
42762             name => $item{view_name}{name},
42763             sql => $item{SQL_procedure_statement},
42764             with => $item{\'with_expression(?)\'},
42765             fields => $item{\'column_list(?)\'}
42766             };
42767             push @views, $return;
42768             }'
42769             },
42770             'Parse::RecDescent::Action'
42771             )
42772             ],
42773             'line' => undef
42774             },
42775             'Parse::RecDescent::Production'
42776             )
42777             ],
42778             'name' => 'create',
42779             'vars' => '',
42780             'line' => 36
42781             },
42782             'Parse::RecDescent::Rule'
42783             ),
42784             'sysfun' => bless(
42785             {
42786             'impcount' => 0,
42787             'calls' => [
42788             '_alternation_1_of_production_1_of_rule_sysfun',
42789             '_alternation_1_of_production_7_of_rule_sysfun',
42790             'I',
42791             '_alternation_1_of_production_53_of_rule_sysfun'
42792             ],
42793             'changed' => 0,
42794             'opcount' => 0,
42795             'prods' => [
42796             bless(
42797             {
42798             'number' => '0',
42799             'strcount' => 0,
42800             'dircount' => 0,
42801             'uncommit' => undef,
42802             'error' => undef,
42803             'patcount' => 0,
42804             'actcount' => 0,
42805             'items' => [
42806             bless(
42807             {
42808             'subrule' => '_alternation_1_of_production_1_of_rule_sysfun',
42809             'matchrule' => 0,
42810             'implicit' => '/ABS/i, or /ABSVAL/i',
42811             'argcode' => undef,
42812             'lookahead' => 0,
42813             'line' => 421
42814             },
42815             'Parse::RecDescent::Subrule'
42816             )
42817             ],
42818             'line' => undef
42819             },
42820             'Parse::RecDescent::Production'
42821             ),
42822             bless(
42823             {
42824             'number' => '1',
42825             'strcount' => 0,
42826             'dircount' => 0,
42827             'uncommit' => undef,
42828             'error' => undef,
42829             'patcount' => 1,
42830             'actcount' => 0,
42831             'items' => [
42832             bless(
42833             {
42834             'pattern' => 'ACOS',
42835             'hashname' => '__PATTERN1__',
42836             'description' => '/ACOS/i',
42837             'lookahead' => 0,
42838             'rdelim' => '/',
42839             'line' => 422,
42840             'mod' => 'i',
42841             'ldelim' => '/'
42842             },
42843             'Parse::RecDescent::Token'
42844             )
42845             ],
42846             'line' => 422
42847             },
42848             'Parse::RecDescent::Production'
42849             ),
42850             bless(
42851             {
42852             'number' => '2',
42853             'strcount' => 0,
42854             'dircount' => 0,
42855             'uncommit' => undef,
42856             'error' => undef,
42857             'patcount' => 1,
42858             'actcount' => 0,
42859             'items' => [
42860             bless(
42861             {
42862             'pattern' => 'ASCII',
42863             'hashname' => '__PATTERN1__',
42864             'description' => '/ASCII/i',
42865             'lookahead' => 0,
42866             'rdelim' => '/',
42867             'line' => 423,
42868             'mod' => 'i',
42869             'ldelim' => '/'
42870             },
42871             'Parse::RecDescent::Token'
42872             )
42873             ],
42874             'line' => 423
42875             },
42876             'Parse::RecDescent::Production'
42877             ),
42878             bless(
42879             {
42880             'number' => '3',
42881             'strcount' => 0,
42882             'dircount' => 0,
42883             'uncommit' => undef,
42884             'error' => undef,
42885             'patcount' => 1,
42886             'actcount' => 0,
42887             'items' => [
42888             bless(
42889             {
42890             'pattern' => 'ASIN',
42891             'hashname' => '__PATTERN1__',
42892             'description' => '/ASIN/i',
42893             'lookahead' => 0,
42894             'rdelim' => '/',
42895             'line' => 424,
42896             'mod' => 'i',
42897             'ldelim' => '/'
42898             },
42899             'Parse::RecDescent::Token'
42900             )
42901             ],
42902             'line' => 424
42903             },
42904             'Parse::RecDescent::Production'
42905             ),
42906             bless(
42907             {
42908             'number' => '4',
42909             'strcount' => 0,
42910             'dircount' => 0,
42911             'uncommit' => undef,
42912             'error' => undef,
42913             'patcount' => 1,
42914             'actcount' => 0,
42915             'items' => [
42916             bless(
42917             {
42918             'pattern' => 'ATAN',
42919             'hashname' => '__PATTERN1__',
42920             'description' => '/ATAN/i',
42921             'lookahead' => 0,
42922             'rdelim' => '/',
42923             'line' => 425,
42924             'mod' => 'i',
42925             'ldelim' => '/'
42926             },
42927             'Parse::RecDescent::Token'
42928             )
42929             ],
42930             'line' => 425
42931             },
42932             'Parse::RecDescent::Production'
42933             ),
42934             bless(
42935             {
42936             'number' => '5',
42937             'strcount' => 0,
42938             'dircount' => 0,
42939             'uncommit' => undef,
42940             'error' => undef,
42941             'patcount' => 1,
42942             'actcount' => 0,
42943             'items' => [
42944             bless(
42945             {
42946             'pattern' => 'ATAN2',
42947             'hashname' => '__PATTERN1__',
42948             'description' => '/ATAN2/i',
42949             'lookahead' => 0,
42950             'rdelim' => '/',
42951             'line' => 426,
42952             'mod' => 'i',
42953             'ldelim' => '/'
42954             },
42955             'Parse::RecDescent::Token'
42956             )
42957             ],
42958             'line' => 426
42959             },
42960             'Parse::RecDescent::Production'
42961             ),
42962             bless(
42963             {
42964             'number' => '6',
42965             'strcount' => 0,
42966             'dircount' => 0,
42967             'uncommit' => undef,
42968             'error' => undef,
42969             'patcount' => 0,
42970             'actcount' => 0,
42971             'items' => [
42972             bless(
42973             {
42974             'subrule' => '_alternation_1_of_production_7_of_rule_sysfun',
42975             'matchrule' => 0,
42976             'implicit' => '/CEIL/i, or /CEILING/i',
42977             'argcode' => undef,
42978             'lookahead' => 0,
42979             'line' => 427
42980             },
42981             'Parse::RecDescent::Subrule'
42982             )
42983             ],
42984             'line' => 427
42985             },
42986             'Parse::RecDescent::Production'
42987             ),
42988             bless(
42989             {
42990             'number' => '7',
42991             'strcount' => 0,
42992             'dircount' => 0,
42993             'uncommit' => undef,
42994             'error' => undef,
42995             'patcount' => 1,
42996             'actcount' => 0,
42997             'items' => [
42998             bless(
42999             {
43000             'pattern' => 'CHAR',
43001             'hashname' => '__PATTERN1__',
43002             'description' => '/CHAR/i',
43003             'lookahead' => 0,
43004             'rdelim' => '/',
43005             'line' => 428,
43006             'mod' => 'i',
43007             'ldelim' => '/'
43008             },
43009             'Parse::RecDescent::Token'
43010             )
43011             ],
43012             'line' => 428
43013             },
43014             'Parse::RecDescent::Production'
43015             ),
43016             bless(
43017             {
43018             'number' => '8',
43019             'strcount' => 0,
43020             'dircount' => 0,
43021             'uncommit' => undef,
43022             'error' => undef,
43023             'patcount' => 1,
43024             'actcount' => 0,
43025             'items' => [
43026             bless(
43027             {
43028             'pattern' => 'CHR',
43029             'hashname' => '__PATTERN1__',
43030             'description' => '/CHR/i',
43031             'lookahead' => 0,
43032             'rdelim' => '/',
43033             'line' => 429,
43034             'mod' => 'i',
43035             'ldelim' => '/'
43036             },
43037             'Parse::RecDescent::Token'
43038             )
43039             ],
43040             'line' => 429
43041             },
43042             'Parse::RecDescent::Production'
43043             ),
43044             bless(
43045             {
43046             'number' => '9',
43047             'strcount' => 0,
43048             'dircount' => 0,
43049             'uncommit' => undef,
43050             'error' => undef,
43051             'patcount' => 1,
43052             'actcount' => 0,
43053             'items' => [
43054             bless(
43055             {
43056             'pattern' => 'COS',
43057             'hashname' => '__PATTERN1__',
43058             'description' => '/COS/i',
43059             'lookahead' => 0,
43060             'rdelim' => '/',
43061             'line' => 430,
43062             'mod' => 'i',
43063             'ldelim' => '/'
43064             },
43065             'Parse::RecDescent::Token'
43066             )
43067             ],
43068             'line' => 430
43069             },
43070             'Parse::RecDescent::Production'
43071             ),
43072             bless(
43073             {
43074             'number' => '10',
43075             'strcount' => 0,
43076             'dircount' => 0,
43077             'uncommit' => undef,
43078             'error' => undef,
43079             'patcount' => 1,
43080             'actcount' => 0,
43081             'items' => [
43082             bless(
43083             {
43084             'pattern' => 'COT',
43085             'hashname' => '__PATTERN1__',
43086             'description' => '/COT/i',
43087             'lookahead' => 0,
43088             'rdelim' => '/',
43089             'line' => 431,
43090             'mod' => 'i',
43091             'ldelim' => '/'
43092             },
43093             'Parse::RecDescent::Token'
43094             )
43095             ],
43096             'line' => 431
43097             },
43098             'Parse::RecDescent::Production'
43099             ),
43100             bless(
43101             {
43102             'number' => '11',
43103             'strcount' => 0,
43104             'dircount' => 0,
43105             'uncommit' => undef,
43106             'error' => undef,
43107             'patcount' => 1,
43108             'actcount' => 0,
43109             'items' => [
43110             bless(
43111             {
43112             'pattern' => 'DAYNAME',
43113             'hashname' => '__PATTERN1__',
43114             'description' => '/DAYNAME/i',
43115             'lookahead' => 0,
43116             'rdelim' => '/',
43117             'line' => 432,
43118             'mod' => 'i',
43119             'ldelim' => '/'
43120             },
43121             'Parse::RecDescent::Token'
43122             )
43123             ],
43124             'line' => 432
43125             },
43126             'Parse::RecDescent::Production'
43127             ),
43128             bless(
43129             {
43130             'number' => '12',
43131             'strcount' => 0,
43132             'dircount' => 0,
43133             'uncommit' => undef,
43134             'error' => undef,
43135             'patcount' => 1,
43136             'actcount' => 0,
43137             'items' => [
43138             bless(
43139             {
43140             'pattern' => 'DAYOFWEEK',
43141             'hashname' => '__PATTERN1__',
43142             'description' => '/DAYOFWEEK/i',
43143             'lookahead' => 0,
43144             'rdelim' => '/',
43145             'line' => 433,
43146             'mod' => 'i',
43147             'ldelim' => '/'
43148             },
43149             'Parse::RecDescent::Token'
43150             )
43151             ],
43152             'line' => 433
43153             },
43154             'Parse::RecDescent::Production'
43155             ),
43156             bless(
43157             {
43158             'number' => '13',
43159             'strcount' => 0,
43160             'dircount' => 0,
43161             'uncommit' => undef,
43162             'error' => undef,
43163             'patcount' => 1,
43164             'actcount' => 0,
43165             'items' => [
43166             bless(
43167             {
43168             'pattern' => 'DAYOFWEEK_ISO',
43169             'hashname' => '__PATTERN1__',
43170             'description' => '/DAYOFWEEK_ISO/i',
43171             'lookahead' => 0,
43172             'rdelim' => '/',
43173             'line' => 434,
43174             'mod' => 'i',
43175             'ldelim' => '/'
43176             },
43177             'Parse::RecDescent::Token'
43178             )
43179             ],
43180             'line' => 434
43181             },
43182             'Parse::RecDescent::Production'
43183             ),
43184             bless(
43185             {
43186             'number' => '14',
43187             'strcount' => 0,
43188             'dircount' => 0,
43189             'uncommit' => undef,
43190             'error' => undef,
43191             'patcount' => 1,
43192             'actcount' => 0,
43193             'items' => [
43194             bless(
43195             {
43196             'pattern' => 'DAYOFYEAR',
43197             'hashname' => '__PATTERN1__',
43198             'description' => '/DAYOFYEAR/i',
43199             'lookahead' => 0,
43200             'rdelim' => '/',
43201             'line' => 435,
43202             'mod' => 'i',
43203             'ldelim' => '/'
43204             },
43205             'Parse::RecDescent::Token'
43206             )
43207             ],
43208             'line' => 435
43209             },
43210             'Parse::RecDescent::Production'
43211             ),
43212             bless(
43213             {
43214             'number' => '15',
43215             'strcount' => 0,
43216             'dircount' => 0,
43217             'uncommit' => undef,
43218             'error' => undef,
43219             'patcount' => 1,
43220             'actcount' => 0,
43221             'items' => [
43222             bless(
43223             {
43224             'pattern' => 'DEGREES',
43225             'hashname' => '__PATTERN1__',
43226             'description' => '/DEGREES/i',
43227             'lookahead' => 0,
43228             'rdelim' => '/',
43229             'line' => 436,
43230             'mod' => 'i',
43231             'ldelim' => '/'
43232             },
43233             'Parse::RecDescent::Token'
43234             )
43235             ],
43236             'line' => 436
43237             },
43238             'Parse::RecDescent::Production'
43239             ),
43240             bless(
43241             {
43242             'number' => '16',
43243             'strcount' => 0,
43244             'dircount' => 0,
43245             'uncommit' => undef,
43246             'error' => undef,
43247             'patcount' => 1,
43248             'actcount' => 0,
43249             'items' => [
43250             bless(
43251             {
43252             'pattern' => 'DIFFERENCE',
43253             'hashname' => '__PATTERN1__',
43254             'description' => '/DIFFERENCE/i',
43255             'lookahead' => 0,
43256             'rdelim' => '/',
43257             'line' => 437,
43258             'mod' => 'i',
43259             'ldelim' => '/'
43260             },
43261             'Parse::RecDescent::Token'
43262             )
43263             ],
43264             'line' => 437
43265             },
43266             'Parse::RecDescent::Production'
43267             ),
43268             bless(
43269             {
43270             'number' => '17',
43271             'strcount' => 0,
43272             'dircount' => 0,
43273             'uncommit' => undef,
43274             'error' => undef,
43275             'patcount' => 1,
43276             'actcount' => 0,
43277             'items' => [
43278             bless(
43279             {
43280             'pattern' => 'DOUBLE',
43281             'hashname' => '__PATTERN1__',
43282             'description' => '/DOUBLE/i',
43283             'lookahead' => 0,
43284             'rdelim' => '/',
43285             'line' => 438,
43286             'mod' => 'i',
43287             'ldelim' => '/'
43288             },
43289             'Parse::RecDescent::Token'
43290             )
43291             ],
43292             'line' => 438
43293             },
43294             'Parse::RecDescent::Production'
43295             ),
43296             bless(
43297             {
43298             'number' => '18',
43299             'strcount' => 0,
43300             'dircount' => 0,
43301             'uncommit' => undef,
43302             'error' => undef,
43303             'patcount' => 1,
43304             'actcount' => 0,
43305             'items' => [
43306             bless(
43307             {
43308             'pattern' => 'EXP',
43309             'hashname' => '__PATTERN1__',
43310             'description' => '/EXP/i',
43311             'lookahead' => 0,
43312             'rdelim' => '/',
43313             'line' => 439,
43314             'mod' => 'i',
43315             'ldelim' => '/'
43316             },
43317             'Parse::RecDescent::Token'
43318             )
43319             ],
43320             'line' => 439
43321             },
43322             'Parse::RecDescent::Production'
43323             ),
43324             bless(
43325             {
43326             'number' => '19',
43327             'strcount' => 0,
43328             'dircount' => 0,
43329             'uncommit' => undef,
43330             'error' => undef,
43331             'patcount' => 1,
43332             'actcount' => 0,
43333             'items' => [
43334             bless(
43335             {
43336             'pattern' => 'FLOOR',
43337             'hashname' => '__PATTERN1__',
43338             'description' => '/FLOOR/i',
43339             'lookahead' => 0,
43340             'rdelim' => '/',
43341             'line' => 440,
43342             'mod' => 'i',
43343             'ldelim' => '/'
43344             },
43345             'Parse::RecDescent::Token'
43346             )
43347             ],
43348             'line' => 440
43349             },
43350             'Parse::RecDescent::Production'
43351             ),
43352             bless(
43353             {
43354             'number' => '20',
43355             'strcount' => 0,
43356             'dircount' => 0,
43357             'uncommit' => undef,
43358             'error' => undef,
43359             'patcount' => 1,
43360             'actcount' => 0,
43361             'items' => [
43362             bless(
43363             {
43364             'pattern' => 'GET_ROUTINE_SAR',
43365             'hashname' => '__PATTERN1__',
43366             'description' => '/GET_ROUTINE_SAR/i',
43367             'lookahead' => 0,
43368             'rdelim' => '/',
43369             'line' => 441,
43370             'mod' => 'i',
43371             'ldelim' => '/'
43372             },
43373             'Parse::RecDescent::Token'
43374             )
43375             ],
43376             'line' => 441
43377             },
43378             'Parse::RecDescent::Production'
43379             ),
43380             bless(
43381             {
43382             'number' => '21',
43383             'strcount' => 0,
43384             'dircount' => 0,
43385             'uncommit' => undef,
43386             'error' => undef,
43387             'patcount' => 1,
43388             'actcount' => 0,
43389             'items' => [
43390             bless(
43391             {
43392             'pattern' => 'INSERT',
43393             'hashname' => '__PATTERN1__',
43394             'description' => '/INSERT/i',
43395             'lookahead' => 0,
43396             'rdelim' => '/',
43397             'line' => 442,
43398             'mod' => 'i',
43399             'ldelim' => '/'
43400             },
43401             'Parse::RecDescent::Token'
43402             )
43403             ],
43404             'line' => 442
43405             },
43406             'Parse::RecDescent::Production'
43407             ),
43408             bless(
43409             {
43410             'number' => '22',
43411             'strcount' => 0,
43412             'dircount' => 0,
43413             'uncommit' => undef,
43414             'error' => undef,
43415             'patcount' => 1,
43416             'actcount' => 0,
43417             'items' => [
43418             bless(
43419             {
43420             'pattern' => 'JULIAN_DAY',
43421             'hashname' => '__PATTERN1__',
43422             'description' => '/JULIAN_DAY/i',
43423             'lookahead' => 0,
43424             'rdelim' => '/',
43425             'line' => 443,
43426             'mod' => 'i',
43427             'ldelim' => '/'
43428             },
43429             'Parse::RecDescent::Token'
43430             )
43431             ],
43432             'line' => 443
43433             },
43434             'Parse::RecDescent::Production'
43435             ),
43436             bless(
43437             {
43438             'number' => '23',
43439             'strcount' => 0,
43440             'dircount' => 0,
43441             'uncommit' => undef,
43442             'error' => undef,
43443             'patcount' => 1,
43444             'actcount' => 0,
43445             'items' => [
43446             bless(
43447             {
43448             'pattern' => 'LCASE',
43449             'hashname' => '__PATTERN1__',
43450             'description' => '/LCASE/i',
43451             'lookahead' => 0,
43452             'rdelim' => '/',
43453             'line' => 444,
43454             'mod' => 'i',
43455             'ldelim' => '/'
43456             },
43457             'Parse::RecDescent::Token'
43458             )
43459             ],
43460             'line' => 444
43461             },
43462             'Parse::RecDescent::Production'
43463             ),
43464             bless(
43465             {
43466             'number' => '24',
43467             'strcount' => 0,
43468             'dircount' => 0,
43469             'uncommit' => undef,
43470             'error' => undef,
43471             'patcount' => 1,
43472             'actcount' => 0,
43473             'items' => [
43474             bless(
43475             {
43476             'pattern' => 'LEFT',
43477             'hashname' => '__PATTERN1__',
43478             'description' => '/LEFT/i',
43479             'lookahead' => 0,
43480             'rdelim' => '/',
43481             'line' => 445,
43482             'mod' => 'i',
43483             'ldelim' => '/'
43484             },
43485             'Parse::RecDescent::Token'
43486             )
43487             ],
43488             'line' => 445
43489             },
43490             'Parse::RecDescent::Production'
43491             ),
43492             bless(
43493             {
43494             'number' => '25',
43495             'strcount' => 0,
43496             'dircount' => 0,
43497             'uncommit' => undef,
43498             'error' => undef,
43499             'patcount' => 1,
43500             'actcount' => 0,
43501             'items' => [
43502             bless(
43503             {
43504             'pattern' => 'LN',
43505             'hashname' => '__PATTERN1__',
43506             'description' => '/LN/i',
43507             'lookahead' => 0,
43508             'rdelim' => '/',
43509             'line' => 446,
43510             'mod' => 'i',
43511             'ldelim' => '/'
43512             },
43513             'Parse::RecDescent::Token'
43514             )
43515             ],
43516             'line' => 446
43517             },
43518             'Parse::RecDescent::Production'
43519             ),
43520             bless(
43521             {
43522             'number' => '26',
43523             'strcount' => 0,
43524             'dircount' => 0,
43525             'uncommit' => undef,
43526             'error' => undef,
43527             'patcount' => 1,
43528             'actcount' => 0,
43529             'items' => [
43530             bless(
43531             {
43532             'pattern' => 'LOCATE',
43533             'hashname' => '__PATTERN1__',
43534             'description' => '/LOCATE/i',
43535             'lookahead' => 0,
43536             'rdelim' => '/',
43537             'line' => 447,
43538             'mod' => 'i',
43539             'ldelim' => '/'
43540             },
43541             'Parse::RecDescent::Token'
43542             )
43543             ],
43544             'line' => 447
43545             },
43546             'Parse::RecDescent::Production'
43547             ),
43548             bless(
43549             {
43550             'number' => '27',
43551             'strcount' => 0,
43552             'dircount' => 0,
43553             'uncommit' => undef,
43554             'error' => undef,
43555             'patcount' => 1,
43556             'actcount' => 0,
43557             'items' => [
43558             bless(
43559             {
43560             'pattern' => 'LOG',
43561             'hashname' => '__PATTERN1__',
43562             'description' => '/LOG/i',
43563             'lookahead' => 0,
43564             'rdelim' => '/',
43565             'line' => 448,
43566             'mod' => 'i',
43567             'ldelim' => '/'
43568             },
43569             'Parse::RecDescent::Token'
43570             )
43571             ],
43572             'line' => 448
43573             },
43574             'Parse::RecDescent::Production'
43575             ),
43576             bless(
43577             {
43578             'number' => '28',
43579             'strcount' => 0,
43580             'dircount' => 0,
43581             'uncommit' => undef,
43582             'error' => undef,
43583             'patcount' => 1,
43584             'actcount' => 0,
43585             'items' => [
43586             bless(
43587             {
43588             'pattern' => 'LOG10',
43589             'hashname' => '__PATTERN1__',
43590             'description' => '/LOG10/i',
43591             'lookahead' => 0,
43592             'rdelim' => '/',
43593             'line' => 449,
43594             'mod' => 'i',
43595             'ldelim' => '/'
43596             },
43597             'Parse::RecDescent::Token'
43598             )
43599             ],
43600             'line' => 449
43601             },
43602             'Parse::RecDescent::Production'
43603             ),
43604             bless(
43605             {
43606             'number' => '29',
43607             'strcount' => 0,
43608             'dircount' => 0,
43609             'uncommit' => undef,
43610             'error' => undef,
43611             'patcount' => 1,
43612             'actcount' => 0,
43613             'items' => [
43614             bless(
43615             {
43616             'pattern' => 'LTRIM',
43617             'hashname' => '__PATTERN1__',
43618             'description' => '/LTRIM/i',
43619             'lookahead' => 0,
43620             'rdelim' => '/',
43621             'line' => 450,
43622             'mod' => 'i',
43623             'ldelim' => '/'
43624             },
43625             'Parse::RecDescent::Token'
43626             )
43627             ],
43628             'line' => 450
43629             },
43630             'Parse::RecDescent::Production'
43631             ),
43632             bless(
43633             {
43634             'number' => '30',
43635             'strcount' => 0,
43636             'dircount' => 0,
43637             'uncommit' => undef,
43638             'error' => undef,
43639             'patcount' => 1,
43640             'actcount' => 0,
43641             'items' => [
43642             bless(
43643             {
43644             'pattern' => 'MIDNIGHT_SECONDS',
43645             'hashname' => '__PATTERN1__',
43646             'description' => '/MIDNIGHT_SECONDS/i',
43647             'lookahead' => 0,
43648             'rdelim' => '/',
43649             'line' => 451,
43650             'mod' => 'i',
43651             'ldelim' => '/'
43652             },
43653             'Parse::RecDescent::Token'
43654             )
43655             ],
43656             'line' => 451
43657             },
43658             'Parse::RecDescent::Production'
43659             ),
43660             bless(
43661             {
43662             'number' => '31',
43663             'strcount' => 0,
43664             'dircount' => 0,
43665             'uncommit' => undef,
43666             'error' => undef,
43667             'patcount' => 1,
43668             'actcount' => 0,
43669             'items' => [
43670             bless(
43671             {
43672             'pattern' => 'MOD',
43673             'hashname' => '__PATTERN1__',
43674             'description' => '/MOD/i',
43675             'lookahead' => 0,
43676             'rdelim' => '/',
43677             'line' => 452,
43678             'mod' => 'i',
43679             'ldelim' => '/'
43680             },
43681             'Parse::RecDescent::Token'
43682             )
43683             ],
43684             'line' => 452
43685             },
43686             'Parse::RecDescent::Production'
43687             ),
43688             bless(
43689             {
43690             'number' => '32',
43691             'strcount' => 0,
43692             'dircount' => 0,
43693             'uncommit' => undef,
43694             'error' => undef,
43695             'patcount' => 1,
43696             'actcount' => 0,
43697             'items' => [
43698             bless(
43699             {
43700             'pattern' => 'MONTHNAME',
43701             'hashname' => '__PATTERN1__',
43702             'description' => '/MONTHNAME/i',
43703             'lookahead' => 0,
43704             'rdelim' => '/',
43705             'line' => 453,
43706             'mod' => 'i',
43707             'ldelim' => '/'
43708             },
43709             'Parse::RecDescent::Token'
43710             )
43711             ],
43712             'line' => 453
43713             },
43714             'Parse::RecDescent::Production'
43715             ),
43716             bless(
43717             {
43718             'number' => '33',
43719             'strcount' => 0,
43720             'dircount' => 0,
43721             'uncommit' => undef,
43722             'error' => undef,
43723             'patcount' => 1,
43724             'actcount' => 0,
43725             'items' => [
43726             bless(
43727             {
43728             'pattern' => 'POWER',
43729             'hashname' => '__PATTERN1__',
43730             'description' => '/POWER/i',
43731             'lookahead' => 0,
43732             'rdelim' => '/',
43733             'line' => 454,
43734             'mod' => 'i',
43735             'ldelim' => '/'
43736             },
43737             'Parse::RecDescent::Token'
43738             )
43739             ],
43740             'line' => 454
43741             },
43742             'Parse::RecDescent::Production'
43743             ),
43744             bless(
43745             {
43746             'number' => '34',
43747             'strcount' => 0,
43748             'dircount' => 0,
43749             'uncommit' => undef,
43750             'error' => undef,
43751             'patcount' => 1,
43752             'actcount' => 0,
43753             'items' => [
43754             bless(
43755             {
43756             'pattern' => 'PUT_ROUTINE_SAR',
43757             'hashname' => '__PATTERN1__',
43758             'description' => '/PUT_ROUTINE_SAR/i',
43759             'lookahead' => 0,
43760             'rdelim' => '/',
43761             'line' => 455,
43762             'mod' => 'i',
43763             'ldelim' => '/'
43764             },
43765             'Parse::RecDescent::Token'
43766             )
43767             ],
43768             'line' => 455
43769             },
43770             'Parse::RecDescent::Production'
43771             ),
43772             bless(
43773             {
43774             'number' => '35',
43775             'strcount' => 0,
43776             'dircount' => 0,
43777             'uncommit' => undef,
43778             'error' => undef,
43779             'patcount' => 1,
43780             'actcount' => 0,
43781             'items' => [
43782             bless(
43783             {
43784             'pattern' => 'QUARTER',
43785             'hashname' => '__PATTERN1__',
43786             'description' => '/QUARTER/i',
43787             'lookahead' => 0,
43788             'rdelim' => '/',
43789             'line' => 456,
43790             'mod' => 'i',
43791             'ldelim' => '/'
43792             },
43793             'Parse::RecDescent::Token'
43794             )
43795             ],
43796             'line' => 456
43797             },
43798             'Parse::RecDescent::Production'
43799             ),
43800             bless(
43801             {
43802             'number' => '36',
43803             'strcount' => 0,
43804             'dircount' => 0,
43805             'uncommit' => undef,
43806             'error' => undef,
43807             'patcount' => 1,
43808             'actcount' => 0,
43809             'items' => [
43810             bless(
43811             {
43812             'pattern' => 'RADIANS',
43813             'hashname' => '__PATTERN1__',
43814             'description' => '/RADIANS/i',
43815             'lookahead' => 0,
43816             'rdelim' => '/',
43817             'line' => 457,
43818             'mod' => 'i',
43819             'ldelim' => '/'
43820             },
43821             'Parse::RecDescent::Token'
43822             )
43823             ],
43824             'line' => 457
43825             },
43826             'Parse::RecDescent::Production'
43827             ),
43828             bless(
43829             {
43830             'number' => '37',
43831             'strcount' => 0,
43832             'dircount' => 0,
43833             'uncommit' => undef,
43834             'error' => undef,
43835             'patcount' => 1,
43836             'actcount' => 0,
43837             'items' => [
43838             bless(
43839             {
43840             'pattern' => 'RAND',
43841             'hashname' => '__PATTERN1__',
43842             'description' => '/RAND/i',
43843             'lookahead' => 0,
43844             'rdelim' => '/',
43845             'line' => 458,
43846             'mod' => 'i',
43847             'ldelim' => '/'
43848             },
43849             'Parse::RecDescent::Token'
43850             )
43851             ],
43852             'line' => 458
43853             },
43854             'Parse::RecDescent::Production'
43855             ),
43856             bless(
43857             {
43858             'number' => '38',
43859             'strcount' => 0,
43860             'dircount' => 0,
43861             'uncommit' => undef,
43862             'error' => undef,
43863             'patcount' => 1,
43864             'actcount' => 0,
43865             'items' => [
43866             bless(
43867             {
43868             'pattern' => 'REPEAT',
43869             'hashname' => '__PATTERN1__',
43870             'description' => '/REPEAT/i',
43871             'lookahead' => 0,
43872             'rdelim' => '/',
43873             'line' => 459,
43874             'mod' => 'i',
43875             'ldelim' => '/'
43876             },
43877             'Parse::RecDescent::Token'
43878             )
43879             ],
43880             'line' => 459
43881             },
43882             'Parse::RecDescent::Production'
43883             ),
43884             bless(
43885             {
43886             'number' => '39',
43887             'strcount' => 0,
43888             'dircount' => 0,
43889             'uncommit' => undef,
43890             'error' => undef,
43891             'patcount' => 1,
43892             'actcount' => 0,
43893             'items' => [
43894             bless(
43895             {
43896             'pattern' => 'REPLACE',
43897             'hashname' => '__PATTERN1__',
43898             'description' => '/REPLACE/i',
43899             'lookahead' => 0,
43900             'rdelim' => '/',
43901             'line' => 460,
43902             'mod' => 'i',
43903             'ldelim' => '/'
43904             },
43905             'Parse::RecDescent::Token'
43906             )
43907             ],
43908             'line' => 460
43909             },
43910             'Parse::RecDescent::Production'
43911             ),
43912             bless(
43913             {
43914             'number' => '40',
43915             'strcount' => 0,
43916             'dircount' => 0,
43917             'uncommit' => undef,
43918             'error' => undef,
43919             'patcount' => 1,
43920             'actcount' => 0,
43921             'items' => [
43922             bless(
43923             {
43924             'pattern' => 'RIGHT',
43925             'hashname' => '__PATTERN1__',
43926             'description' => '/RIGHT/i',
43927             'lookahead' => 0,
43928             'rdelim' => '/',
43929             'line' => 461,
43930             'mod' => 'i',
43931             'ldelim' => '/'
43932             },
43933             'Parse::RecDescent::Token'
43934             )
43935             ],
43936             'line' => 461
43937             },
43938             'Parse::RecDescent::Production'
43939             ),
43940             bless(
43941             {
43942             'number' => '41',
43943             'strcount' => 0,
43944             'dircount' => 0,
43945             'uncommit' => undef,
43946             'error' => undef,
43947             'patcount' => 1,
43948             'actcount' => 0,
43949             'items' => [
43950             bless(
43951             {
43952             'pattern' => 'ROUND',
43953             'hashname' => '__PATTERN1__',
43954             'description' => '/ROUND/i',
43955             'lookahead' => 0,
43956             'rdelim' => '/',
43957             'line' => 462,
43958             'mod' => 'i',
43959             'ldelim' => '/'
43960             },
43961             'Parse::RecDescent::Token'
43962             )
43963             ],
43964             'line' => 462
43965             },
43966             'Parse::RecDescent::Production'
43967             ),
43968             bless(
43969             {
43970             'number' => '42',
43971             'strcount' => 0,
43972             'dircount' => 0,
43973             'uncommit' => undef,
43974             'error' => undef,
43975             'patcount' => 1,
43976             'actcount' => 0,
43977             'items' => [
43978             bless(
43979             {
43980             'pattern' => 'RTRIM',
43981             'hashname' => '__PATTERN1__',
43982             'description' => '/RTRIM/',
43983             'lookahead' => 0,
43984             'rdelim' => '/',
43985             'line' => 463,
43986             'mod' => '',
43987             'ldelim' => '/'
43988             },
43989             'Parse::RecDescent::Token'
43990             ),
43991             bless(
43992             {
43993             'subrule' => 'I',
43994             'matchrule' => 0,
43995             'implicit' => undef,
43996             'argcode' => undef,
43997             'lookahead' => 0,
43998             'line' => 463
43999             },
44000             'Parse::RecDescent::Subrule'
44001             )
44002             ],
44003             'line' => 463
44004             },
44005             'Parse::RecDescent::Production'
44006             ),
44007             bless(
44008             {
44009             'number' => '43',
44010             'strcount' => 0,
44011             'dircount' => 0,
44012             'uncommit' => undef,
44013             'error' => undef,
44014             'patcount' => 1,
44015             'actcount' => 0,
44016             'items' => [
44017             bless(
44018             {
44019             'pattern' => 'SIGN',
44020             'hashname' => '__PATTERN1__',
44021             'description' => '/SIGN/i',
44022             'lookahead' => 0,
44023             'rdelim' => '/',
44024             'line' => 464,
44025             'mod' => 'i',
44026             'ldelim' => '/'
44027             },
44028             'Parse::RecDescent::Token'
44029             )
44030             ],
44031             'line' => 464
44032             },
44033             'Parse::RecDescent::Production'
44034             ),
44035             bless(
44036             {
44037             'number' => '44',
44038             'strcount' => 0,
44039             'dircount' => 0,
44040             'uncommit' => undef,
44041             'error' => undef,
44042             'patcount' => 1,
44043             'actcount' => 0,
44044             'items' => [
44045             bless(
44046             {
44047             'pattern' => 'SIN',
44048             'hashname' => '__PATTERN1__',
44049             'description' => '/SIN/i',
44050             'lookahead' => 0,
44051             'rdelim' => '/',
44052             'line' => 465,
44053             'mod' => 'i',
44054             'ldelim' => '/'
44055             },
44056             'Parse::RecDescent::Token'
44057             )
44058             ],
44059             'line' => 465
44060             },
44061             'Parse::RecDescent::Production'
44062             ),
44063             bless(
44064             {
44065             'number' => '45',
44066             'strcount' => 0,
44067             'dircount' => 0,
44068             'uncommit' => undef,
44069             'error' => undef,
44070             'patcount' => 1,
44071             'actcount' => 0,
44072             'items' => [
44073             bless(
44074             {
44075             'pattern' => 'SOUNDEX',
44076             'hashname' => '__PATTERN1__',
44077             'description' => '/SOUNDEX/i',
44078             'lookahead' => 0,
44079             'rdelim' => '/',
44080             'line' => 466,
44081             'mod' => 'i',
44082             'ldelim' => '/'
44083             },
44084             'Parse::RecDescent::Token'
44085             )
44086             ],
44087             'line' => 466
44088             },
44089             'Parse::RecDescent::Production'
44090             ),
44091             bless(
44092             {
44093             'number' => '46',
44094             'strcount' => 0,
44095             'dircount' => 0,
44096             'uncommit' => undef,
44097             'error' => undef,
44098             'patcount' => 1,
44099             'actcount' => 0,
44100             'items' => [
44101             bless(
44102             {
44103             'pattern' => 'SPACE',
44104             'hashname' => '__PATTERN1__',
44105             'description' => '/SPACE/i',
44106             'lookahead' => 0,
44107             'rdelim' => '/',
44108             'line' => 467,
44109             'mod' => 'i',
44110             'ldelim' => '/'
44111             },
44112             'Parse::RecDescent::Token'
44113             )
44114             ],
44115             'line' => 467
44116             },
44117             'Parse::RecDescent::Production'
44118             ),
44119             bless(
44120             {
44121             'number' => '47',
44122             'strcount' => 0,
44123             'dircount' => 0,
44124             'uncommit' => undef,
44125             'error' => undef,
44126             'patcount' => 1,
44127             'actcount' => 0,
44128             'items' => [
44129             bless(
44130             {
44131             'pattern' => 'SQLCACHE_SNAPSHOT',
44132             'hashname' => '__PATTERN1__',
44133             'description' => '/SQLCACHE_SNAPSHOT/i',
44134             'lookahead' => 0,
44135             'rdelim' => '/',
44136             'line' => 468,
44137             'mod' => 'i',
44138             'ldelim' => '/'
44139             },
44140             'Parse::RecDescent::Token'
44141             )
44142             ],
44143             'line' => 468
44144             },
44145             'Parse::RecDescent::Production'
44146             ),
44147             bless(
44148             {
44149             'number' => '48',
44150             'strcount' => 0,
44151             'dircount' => 0,
44152             'uncommit' => undef,
44153             'error' => undef,
44154             'patcount' => 1,
44155             'actcount' => 0,
44156             'items' => [
44157             bless(
44158             {
44159             'pattern' => 'SQRT',
44160             'hashname' => '__PATTERN1__',
44161             'description' => '/SQRT/i',
44162             'lookahead' => 0,
44163             'rdelim' => '/',
44164             'line' => 469,
44165             'mod' => 'i',
44166             'ldelim' => '/'
44167             },
44168             'Parse::RecDescent::Token'
44169             )
44170             ],
44171             'line' => 469
44172             },
44173             'Parse::RecDescent::Production'
44174             ),
44175             bless(
44176             {
44177             'number' => '49',
44178             'strcount' => 0,
44179             'dircount' => 0,
44180             'uncommit' => undef,
44181             'error' => undef,
44182             'patcount' => 1,
44183             'actcount' => 0,
44184             'items' => [
44185             bless(
44186             {
44187             'pattern' => 'TAN',
44188             'hashname' => '__PATTERN1__',
44189             'description' => '/TAN/i',
44190             'lookahead' => 0,
44191             'rdelim' => '/',
44192             'line' => 470,
44193             'mod' => 'i',
44194             'ldelim' => '/'
44195             },
44196             'Parse::RecDescent::Token'
44197             )
44198             ],
44199             'line' => 470
44200             },
44201             'Parse::RecDescent::Production'
44202             ),
44203             bless(
44204             {
44205             'number' => '50',
44206             'strcount' => 0,
44207             'dircount' => 0,
44208             'uncommit' => undef,
44209             'error' => undef,
44210             'patcount' => 1,
44211             'actcount' => 0,
44212             'items' => [
44213             bless(
44214             {
44215             'pattern' => 'TIMESTAMP_ISO',
44216             'hashname' => '__PATTERN1__',
44217             'description' => '/TIMESTAMP_ISO/i',
44218             'lookahead' => 0,
44219             'rdelim' => '/',
44220             'line' => 471,
44221             'mod' => 'i',
44222             'ldelim' => '/'
44223             },
44224             'Parse::RecDescent::Token'
44225             )
44226             ],
44227             'line' => 471
44228             },
44229             'Parse::RecDescent::Production'
44230             ),
44231             bless(
44232             {
44233             'number' => '51',
44234             'strcount' => 0,
44235             'dircount' => 0,
44236             'uncommit' => undef,
44237             'error' => undef,
44238             'patcount' => 1,
44239             'actcount' => 0,
44240             'items' => [
44241             bless(
44242             {
44243             'pattern' => 'TIMESTAMPDIFF',
44244             'hashname' => '__PATTERN1__',
44245             'description' => '/TIMESTAMPDIFF/i',
44246             'lookahead' => 0,
44247             'rdelim' => '/',
44248             'line' => 472,
44249             'mod' => 'i',
44250             'ldelim' => '/'
44251             },
44252             'Parse::RecDescent::Token'
44253             )
44254             ],
44255             'line' => 472
44256             },
44257             'Parse::RecDescent::Production'
44258             ),
44259             bless(
44260             {
44261             'number' => '52',
44262             'strcount' => 0,
44263             'dircount' => 0,
44264             'uncommit' => undef,
44265             'error' => undef,
44266             'patcount' => 0,
44267             'actcount' => 0,
44268             'items' => [
44269             bless(
44270             {
44271             'subrule' => '_alternation_1_of_production_53_of_rule_sysfun',
44272             'matchrule' => 0,
44273             'implicit' => '/TRUNCATE/i, or /TRUNC/i',
44274             'argcode' => undef,
44275             'lookahead' => 0,
44276             'line' => 473
44277             },
44278             'Parse::RecDescent::Subrule'
44279             )
44280             ],
44281             'line' => 473
44282             },
44283             'Parse::RecDescent::Production'
44284             ),
44285             bless(
44286             {
44287             'number' => '53',
44288             'strcount' => 0,
44289             'dircount' => 0,
44290             'uncommit' => undef,
44291             'error' => undef,
44292             'patcount' => 1,
44293             'actcount' => 0,
44294             'items' => [
44295             bless(
44296             {
44297             'pattern' => 'UCASE',
44298             'hashname' => '__PATTERN1__',
44299             'description' => '/UCASE/i',
44300             'lookahead' => 0,
44301             'rdelim' => '/',
44302             'line' => 474,
44303             'mod' => 'i',
44304             'ldelim' => '/'
44305             },
44306             'Parse::RecDescent::Token'
44307             )
44308             ],
44309             'line' => 474
44310             },
44311             'Parse::RecDescent::Production'
44312             ),
44313             bless(
44314             {
44315             'number' => '54',
44316             'strcount' => 0,
44317             'dircount' => 0,
44318             'uncommit' => undef,
44319             'error' => undef,
44320             'patcount' => 1,
44321             'actcount' => 0,
44322             'items' => [
44323             bless(
44324             {
44325             'pattern' => 'WEEK',
44326             'hashname' => '__PATTERN1__',
44327             'description' => '/WEEK/i',
44328             'lookahead' => 0,
44329             'rdelim' => '/',
44330             'line' => 475,
44331             'mod' => 'i',
44332             'ldelim' => '/'
44333             },
44334             'Parse::RecDescent::Token'
44335             )
44336             ],
44337             'line' => 475
44338             },
44339             'Parse::RecDescent::Production'
44340             ),
44341             bless(
44342             {
44343             'number' => '55',
44344             'strcount' => 0,
44345             'dircount' => 0,
44346             'uncommit' => undef,
44347             'error' => undef,
44348             'patcount' => 1,
44349             'actcount' => 0,
44350             'items' => [
44351             bless(
44352             {
44353             'pattern' => 'WEEK_ISO',
44354             'hashname' => '__PATTERN1__',
44355             'description' => '/WEEK_ISO/i',
44356             'lookahead' => 0,
44357             'rdelim' => '/',
44358             'line' => 476,
44359             'mod' => 'i',
44360             'ldelim' => '/'
44361             },
44362             'Parse::RecDescent::Token'
44363             )
44364             ],
44365             'line' => 476
44366             },
44367             'Parse::RecDescent::Production'
44368             )
44369             ],
44370             'name' => 'sysfun',
44371             'vars' => '',
44372             'line' => 421
44373             },
44374             'Parse::RecDescent::Rule'
44375             ),
44376             '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond' => bless(
44377             {
44378             'impcount' => 0,
44379             'calls' => ['numeric_constant'],
44380             'changed' => 0,
44381             'opcount' => 0,
44382             'prods' => [
44383             bless(
44384             {
44385             'number' => '0',
44386             'strcount' => 0,
44387             'dircount' => 0,
44388             'uncommit' => undef,
44389             'error' => undef,
44390             'patcount' => 1,
44391             'actcount' => 0,
44392             'items' => [
44393             bless(
44394             {
44395             'pattern' => 'SELECTIVITY',
44396             'hashname' => '__PATTERN1__',
44397             'description' => '/SELECTIVITY/i',
44398             'lookahead' => 0,
44399             'rdelim' => '/',
44400             'line' => 628,
44401             'mod' => 'i',
44402             'ldelim' => '/'
44403             },
44404             'Parse::RecDescent::Token'
44405             ),
44406             bless(
44407             {
44408             'subrule' => 'numeric_constant',
44409             'matchrule' => 0,
44410             'implicit' => undef,
44411             'argcode' => undef,
44412             'lookahead' => 0,
44413             'line' => 628
44414             },
44415             'Parse::RecDescent::Subrule'
44416             )
44417             ],
44418             'line' => undef
44419             },
44420             'Parse::RecDescent::Production'
44421             )
44422             ],
44423             'name' => '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond',
44424             'vars' => '',
44425             'line' => 628
44426             },
44427             'Parse::RecDescent::Rule'
44428             ),
44429             'NAME' => bless(
44430             {
44431             'impcount' => 0,
44432             'calls' => [],
44433             'changed' => 0,
44434             'opcount' => 0,
44435             'prods' => [
44436             bless(
44437             {
44438             'number' => '0',
44439             'strcount' => 0,
44440             'dircount' => 0,
44441             'uncommit' => undef,
44442             'error' => undef,
44443             'patcount' => 1,
44444             'actcount' => 0,
44445             'items' => [
44446             bless(
44447             {
44448             'pattern' => '\\w+',
44449             'hashname' => '__PATTERN1__',
44450             'description' => '/\\\\w+/',
44451             'lookahead' => 0,
44452             'rdelim' => '/',
44453             'line' => 146,
44454             'mod' => '',
44455             'ldelim' => '/'
44456             },
44457             'Parse::RecDescent::Token'
44458             )
44459             ],
44460             'line' => undef
44461             },
44462             'Parse::RecDescent::Production'
44463             ),
44464             bless(
44465             {
44466             'number' => '1',
44467             'strcount' => 0,
44468             'dircount' => 0,
44469             'uncommit' => undef,
44470             'error' => undef,
44471             'patcount' => 1,
44472             'actcount' => 0,
44473             'items' => [
44474             bless(
44475             {
44476             'pattern' => '\\w{1,18}',
44477             'hashname' => '__PATTERN1__',
44478             'description' => '/\\\\w\\{1,18\\}/',
44479             'lookahead' => 0,
44480             'rdelim' => '/',
44481             'line' => 148,
44482             'mod' => '',
44483             'ldelim' => '/'
44484             },
44485             'Parse::RecDescent::Token'
44486             )
44487             ],
44488             'line' => undef
44489             },
44490             'Parse::RecDescent::Production'
44491             )
44492             ],
44493             'name' => 'NAME',
44494             'vars' => '',
44495             'line' => 146
44496             },
44497             'Parse::RecDescent::Rule'
44498             ),
44499             'constant' => bless(
44500             {
44501             'impcount' => 0,
44502             'calls' => [
44503             'int_const',
44504             'float_const',
44505             'dec_const',
44506             'char_const',
44507             'hex_const',
44508             'grastr_const'
44509             ],
44510             'changed' => 0,
44511             'opcount' => 0,
44512             'prods' => [
44513             bless(
44514             {
44515             'number' => '0',
44516             'strcount' => 0,
44517             'dircount' => 0,
44518             'uncommit' => undef,
44519             'error' => undef,
44520             'patcount' => 0,
44521             'actcount' => 0,
44522             'items' => [
44523             bless(
44524             {
44525             'subrule' => 'int_const',
44526             'matchrule' => 0,
44527             'implicit' => undef,
44528             'argcode' => undef,
44529             'lookahead' => 0,
44530             'line' => 328
44531             },
44532             'Parse::RecDescent::Subrule'
44533             )
44534             ],
44535             'line' => undef
44536             },
44537             'Parse::RecDescent::Production'
44538             ),
44539             bless(
44540             {
44541             'number' => '1',
44542             'strcount' => 0,
44543             'dircount' => 0,
44544             'uncommit' => undef,
44545             'error' => undef,
44546             'patcount' => 0,
44547             'actcount' => 0,
44548             'items' => [
44549             bless(
44550             {
44551             'subrule' => 'float_const',
44552             'matchrule' => 0,
44553             'implicit' => undef,
44554             'argcode' => undef,
44555             'lookahead' => 0,
44556             'line' => 328
44557             },
44558             'Parse::RecDescent::Subrule'
44559             )
44560             ],
44561             'line' => 328
44562             },
44563             'Parse::RecDescent::Production'
44564             ),
44565             bless(
44566             {
44567             'number' => '2',
44568             'strcount' => 0,
44569             'dircount' => 0,
44570             'uncommit' => undef,
44571             'error' => undef,
44572             'patcount' => 0,
44573             'actcount' => 0,
44574             'items' => [
44575             bless(
44576             {
44577             'subrule' => 'dec_const',
44578             'matchrule' => 0,
44579             'implicit' => undef,
44580             'argcode' => undef,
44581             'lookahead' => 0,
44582             'line' => 328
44583             },
44584             'Parse::RecDescent::Subrule'
44585             )
44586             ],
44587             'line' => 328
44588             },
44589             'Parse::RecDescent::Production'
44590             ),
44591             bless(
44592             {
44593             'number' => '3',
44594             'strcount' => 0,
44595             'dircount' => 0,
44596             'uncommit' => undef,
44597             'error' => undef,
44598             'patcount' => 0,
44599             'actcount' => 0,
44600             'items' => [
44601             bless(
44602             {
44603             'subrule' => 'char_const',
44604             'matchrule' => 0,
44605             'implicit' => undef,
44606             'argcode' => undef,
44607             'lookahead' => 0,
44608             'line' => 328
44609             },
44610             'Parse::RecDescent::Subrule'
44611             )
44612             ],
44613             'line' => 328
44614             },
44615             'Parse::RecDescent::Production'
44616             ),
44617             bless(
44618             {
44619             'number' => '4',
44620             'strcount' => 0,
44621             'dircount' => 0,
44622             'uncommit' => undef,
44623             'error' => undef,
44624             'patcount' => 0,
44625             'actcount' => 0,
44626             'items' => [
44627             bless(
44628             {
44629             'subrule' => 'hex_const',
44630             'matchrule' => 0,
44631             'implicit' => undef,
44632             'argcode' => undef,
44633             'lookahead' => 0,
44634             'line' => 328
44635             },
44636             'Parse::RecDescent::Subrule'
44637             )
44638             ],
44639             'line' => 328
44640             },
44641             'Parse::RecDescent::Production'
44642             ),
44643             bless(
44644             {
44645             'number' => '5',
44646             'strcount' => 0,
44647             'dircount' => 0,
44648             'uncommit' => undef,
44649             'error' => undef,
44650             'patcount' => 0,
44651             'actcount' => 0,
44652             'items' => [
44653             bless(
44654             {
44655             'subrule' => 'grastr_const',
44656             'matchrule' => 0,
44657             'implicit' => undef,
44658             'argcode' => undef,
44659             'lookahead' => 0,
44660             'line' => 328
44661             },
44662             'Parse::RecDescent::Subrule'
44663             )
44664             ],
44665             'line' => 328
44666             },
44667             'Parse::RecDescent::Production'
44668             )
44669             ],
44670             'name' => 'constant',
44671             'vars' => '',
44672             'line' => 328
44673             },
44674             'Parse::RecDescent::Rule'
44675             ),
44676             '_alternation_1_of_production_1_of_rule_ranking_function' => bless(
44677             {
44678             'impcount' => 0,
44679             'calls' => [],
44680             'changed' => 0,
44681             'opcount' => 0,
44682             'prods' => [
44683             bless(
44684             {
44685             'number' => '0',
44686             'strcount' => 1,
44687             'dircount' => 0,
44688             'uncommit' => undef,
44689             'error' => undef,
44690             'patcount' => 1,
44691             'actcount' => 0,
44692             'items' => [
44693             bless(
44694             {
44695             'pattern' => 'RANK',
44696             'hashname' => '__PATTERN1__',
44697             'description' => '/RANK/',
44698             'lookahead' => 0,
44699             'rdelim' => '/',
44700             'line' => 626,
44701             'mod' => '',
44702             'ldelim' => '/'
44703             },
44704             'Parse::RecDescent::Token'
44705             ),
44706             bless(
44707             {
44708             'pattern' => '()',
44709             'hashname' => '__STRING1__',
44710             'description' => '\'()\'',
44711             'lookahead' => 0,
44712             'line' => 626
44713             },
44714             'Parse::RecDescent::Literal'
44715             )
44716             ],
44717             'line' => undef
44718             },
44719             'Parse::RecDescent::Production'
44720             ),
44721             bless(
44722             {
44723             'number' => '1',
44724             'strcount' => 1,
44725             'dircount' => 0,
44726             'uncommit' => undef,
44727             'error' => undef,
44728             'patcount' => 1,
44729             'actcount' => 0,
44730             'items' => [
44731             bless(
44732             {
44733             'pattern' => 'DENSE_RANK|DENSERANK',
44734             'hashname' => '__PATTERN1__',
44735             'description' => '/DENSE_RANK|DENSERANK/i',
44736             'lookahead' => 0,
44737             'rdelim' => '/',
44738             'line' => 627,
44739             'mod' => 'i',
44740             'ldelim' => '/'
44741             },
44742             'Parse::RecDescent::Token'
44743             ),
44744             bless(
44745             {
44746             'pattern' => '()',
44747             'hashname' => '__STRING1__',
44748             'description' => '\'()\'',
44749             'lookahead' => 0,
44750             'line' => 627
44751             },
44752             'Parse::RecDescent::Literal'
44753             )
44754             ],
44755             'line' => 627
44756             },
44757             'Parse::RecDescent::Production'
44758             )
44759             ],
44760             'name' => '_alternation_1_of_production_1_of_rule_ranking_function',
44761             'vars' => '',
44762             'line' => 626
44763             },
44764             'Parse::RecDescent::Rule'
44765             ),
44766             'window_aggregation_group_clause' => bless(
44767             {
44768             'impcount' => 2,
44769             'calls' => [
44770             '_alternation_1_of_production_1_of_rule_window_aggregation_group_clause',
44771             '_alternation_2_of_production_1_of_rule_window_aggregation_group_clause'
44772             ],
44773             'changed' => 0,
44774             'opcount' => 0,
44775             'prods' => [
44776             bless(
44777             {
44778             'number' => '0',
44779             'strcount' => 0,
44780             'dircount' => 0,
44781             'uncommit' => undef,
44782             'error' => undef,
44783             'patcount' => 0,
44784             'actcount' => 0,
44785             'items' => [
44786             bless(
44787             {
44788             'subrule' => '_alternation_1_of_production_1_of_rule_window_aggregation_group_clause',
44789             'matchrule' => 0,
44790             'implicit' => '/ROWS/i, or /RANGE/i',
44791             'argcode' => undef,
44792             'lookahead' => 0,
44793             'line' => 568
44794             },
44795             'Parse::RecDescent::Subrule'
44796             ),
44797             bless(
44798             {
44799             'subrule' => '_alternation_2_of_production_1_of_rule_window_aggregation_group_clause',
44800             'matchrule' => 0,
44801             'implicit' => 'group_start, or group_between, or group_end',
44802             'argcode' => undef,
44803             'lookahead' => 0,
44804             'line' => 572
44805             },
44806             'Parse::RecDescent::Subrule'
44807             )
44808             ],
44809             'line' => undef
44810             },
44811             'Parse::RecDescent::Production'
44812             )
44813             ],
44814             'name' => 'window_aggregation_group_clause',
44815             'vars' => '',
44816             'line' => 566
44817             },
44818             'Parse::RecDescent::Rule'
44819             ),
44820             '_alternation_2_of_production_1_of_rule_window_aggregation_group_clause' => bless(
44821             {
44822             'impcount' => 0,
44823             'calls' => [
44824             'group_start',
44825             'group_between',
44826             'group_end'
44827             ],
44828             'changed' => 0,
44829             'opcount' => 0,
44830             'prods' => [
44831             bless(
44832             {
44833             'number' => '0',
44834             'strcount' => 0,
44835             'dircount' => 0,
44836             'uncommit' => undef,
44837             'error' => undef,
44838             'patcount' => 0,
44839             'actcount' => 0,
44840             'items' => [
44841             bless(
44842             {
44843             'subrule' => 'group_start',
44844             'matchrule' => 0,
44845             'implicit' => undef,
44846             'argcode' => undef,
44847             'lookahead' => 0,
44848             'line' => 625
44849             },
44850             'Parse::RecDescent::Subrule'
44851             )
44852             ],
44853             'line' => undef
44854             },
44855             'Parse::RecDescent::Production'
44856             ),
44857             bless(
44858             {
44859             'number' => '1',
44860             'strcount' => 0,
44861             'dircount' => 0,
44862             'uncommit' => undef,
44863             'error' => undef,
44864             'patcount' => 0,
44865             'actcount' => 0,
44866             'items' => [
44867             bless(
44868             {
44869             'subrule' => 'group_between',
44870             'matchrule' => 0,
44871             'implicit' => undef,
44872             'argcode' => undef,
44873             'lookahead' => 0,
44874             'line' => 626
44875             },
44876             'Parse::RecDescent::Subrule'
44877             )
44878             ],
44879             'line' => 626
44880             },
44881             'Parse::RecDescent::Production'
44882             ),
44883             bless(
44884             {
44885             'number' => '2',
44886             'strcount' => 0,
44887             'dircount' => 0,
44888             'uncommit' => undef,
44889             'error' => undef,
44890             'patcount' => 0,
44891             'actcount' => 0,
44892             'items' => [
44893             bless(
44894             {
44895             'subrule' => 'group_end',
44896             'matchrule' => 0,
44897             'implicit' => undef,
44898             'argcode' => undef,
44899             'lookahead' => 0,
44900             'line' => 627
44901             },
44902             'Parse::RecDescent::Subrule'
44903             )
44904             ],
44905             'line' => 627
44906             },
44907             'Parse::RecDescent::Production'
44908             )
44909             ],
44910             'name' => '_alternation_2_of_production_1_of_rule_window_aggregation_group_clause',
44911             'vars' => '',
44912             'line' => 625
44913             },
44914             'Parse::RecDescent::Rule'
44915             ),
44916             'VIEW' => bless(
44917             {
44918             'impcount' => 0,
44919             'calls' => [],
44920             'changed' => 0,
44921             'opcount' => 0,
44922             'prods' => [
44923             bless(
44924             {
44925             'number' => '0',
44926             'strcount' => 0,
44927             'dircount' => 0,
44928             'uncommit' => undef,
44929             'error' => undef,
44930             'patcount' => 1,
44931             'actcount' => 0,
44932             'items' => [
44933             bless(
44934             {
44935             'pattern' => 'view',
44936             'hashname' => '__PATTERN1__',
44937             'description' => '/view/i',
44938             'lookahead' => 0,
44939             'rdelim' => '/',
44940             'line' => 105,
44941             'mod' => 'i',
44942             'ldelim' => '/'
44943             },
44944             'Parse::RecDescent::Token'
44945             )
44946             ],
44947             'line' => undef
44948             },
44949             'Parse::RecDescent::Production'
44950             )
44951             ],
44952             'name' => 'VIEW',
44953             'vars' => '',
44954             'line' => 105
44955             },
44956             'Parse::RecDescent::Rule'
44957             ),
44958             'with_expression' => bless(
44959             {
44960             'impcount' => 0,
44961             'calls' => ['common_table_expression'],
44962             'changed' => 0,
44963             'opcount' => 0,
44964             'prods' => [
44965             bless(
44966             {
44967             'number' => '0',
44968             'strcount' => 0,
44969             'dircount' => 1,
44970             'uncommit' => undef,
44971             'error' => undef,
44972             'patcount' => 2,
44973             'actcount' => 1,
44974             'op' => [],
44975             'items' => [
44976             bless(
44977             {
44978             'pattern' => 'WITH',
44979             'hashname' => '__PATTERN1__',
44980             'description' => '/WITH/i',
44981             'lookahead' => 0,
44982             'rdelim' => '/',
44983             'line' => 89,
44984             'mod' => 'i',
44985             'ldelim' => '/'
44986             },
44987             'Parse::RecDescent::Token'
44988             ),
44989             bless(
44990             {
44991             'expected' => '',
44992             'min' => 1,
44993             'name' => '\'common_table_expression(s)\'',
44994             'max' => 100000000,
44995             'leftarg' => bless(
44996             {
44997             'subrule' => 'common_table_expression',
44998             'matchrule' => 0,
44999             'implicit' => undef,
45000             'argcode' => undef,
45001             'lookahead' => 0,
45002             'line' => 89
45003             },
45004             'Parse::RecDescent::Subrule'
45005             ),
45006             'rightarg' => bless(
45007             {
45008             'subrule' => 'common_table_expression',
45009             'matchrule' => 0,
45010             'implicit' => undef,
45011             'argcode' => undef,
45012             'lookahead' => 0,
45013             'line' => 89
45014             },
45015             'Parse::RecDescent::Subrule'
45016             ),
45017             'hashname' => '__DIRECTIVE1__',
45018             'type' => 'leftop',
45019             'op' => bless(
45020             {
45021             'pattern' => ',',
45022             'hashname' => '__PATTERN2__',
45023             'description' => '/,/',
45024             'lookahead' => 0,
45025             'rdelim' => '/',
45026             'line' => 89,
45027             'mod' => '',
45028             'ldelim' => '/'
45029             },
45030             'Parse::RecDescent::Token'
45031             )
45032             },
45033             'Parse::RecDescent::Operator'
45034             ),
45035             bless(
45036             {
45037             'hashname' => '__ACTION1__',
45038             'lookahead' => 0,
45039             'line' => 90,
45040             'code' => '{
45041             $return = $item{\'common_table_expression\'};
45042             }'
45043             },
45044             'Parse::RecDescent::Action'
45045             )
45046             ],
45047             'line' => undef
45048             },
45049             'Parse::RecDescent::Production'
45050             )
45051             ],
45052             'name' => 'with_expression',
45053             'vars' => '',
45054             'line' => 87
45055             },
45056             'Parse::RecDescent::Rule'
45057             ),
45058             'numeric_constant' => bless(
45059             {
45060             'impcount' => 0,
45061             'calls' => [],
45062             'changed' => 0,
45063             'opcount' => 0,
45064             'prods' => [
45065             bless(
45066             {
45067             'number' => '0',
45068             'strcount' => 0,
45069             'dircount' => 0,
45070             'uncommit' => undef,
45071             'error' => undef,
45072             'patcount' => 1,
45073             'actcount' => 0,
45074             'items' => [
45075             bless(
45076             {
45077             'pattern' => '\\d+',
45078             'hashname' => '__PATTERN1__',
45079             'description' => '/\\\\d+/',
45080             'lookahead' => 0,
45081             'rdelim' => '/',
45082             'line' => 140,
45083             'mod' => '',
45084             'ldelim' => '/'
45085             },
45086             'Parse::RecDescent::Token'
45087             )
45088             ],
45089             'line' => undef
45090             },
45091             'Parse::RecDescent::Production'
45092             )
45093             ],
45094             'name' => 'numeric_constant',
45095             'vars' => '',
45096             'line' => 140
45097             },
45098             'Parse::RecDescent::Rule'
45099             ),
45100             'old_new_table' => bless(
45101             {
45102             'impcount' => 0,
45103             'calls' => ['identifier'],
45104             'changed' => 0,
45105             'opcount' => 0,
45106             'prods' => [
45107             bless(
45108             {
45109             'number' => '0',
45110             'strcount' => 0,
45111             'dircount' => 0,
45112             'uncommit' => undef,
45113             'error' => undef,
45114             'patcount' => 2,
45115             'actcount' => 1,
45116             'items' => [
45117             bless(
45118             {
45119             'pattern' => 'OLD_TABLE',
45120             'hashname' => '__PATTERN1__',
45121             'description' => '/OLD_TABLE/i',
45122             'lookahead' => 0,
45123             'rdelim' => '/',
45124             'line' => 291,
45125             'mod' => 'i',
45126             'ldelim' => '/'
45127             },
45128             'Parse::RecDescent::Token'
45129             ),
45130             bless(
45131             {
45132             'pattern' => '(AS)?',
45133             'hashname' => '__PATTERN2__',
45134             'description' => '/(AS)?/i',
45135             'lookahead' => 0,
45136             'rdelim' => '/',
45137             'line' => 291,
45138             'mod' => 'i',
45139             'ldelim' => '/'
45140             },
45141             'Parse::RecDescent::Token'
45142             ),
45143             bless(
45144             {
45145             'subrule' => 'identifier',
45146             'matchrule' => 0,
45147             'implicit' => undef,
45148             'argcode' => undef,
45149             'lookahead' => 0,
45150             'line' => 291
45151             },
45152             'Parse::RecDescent::Subrule'
45153             ),
45154             bless(
45155             {
45156             'hashname' => '__ACTION1__',
45157             'lookahead' => 0,
45158             'line' => 292,
45159             'code' => '{ $return = join(\' \', @item[1..3] ) }'
45160             },
45161             'Parse::RecDescent::Action'
45162             )
45163             ],
45164             'line' => undef
45165             },
45166             'Parse::RecDescent::Production'
45167             ),
45168             bless(
45169             {
45170             'number' => '1',
45171             'strcount' => 0,
45172             'dircount' => 0,
45173             'uncommit' => undef,
45174             'error' => undef,
45175             'patcount' => 2,
45176             'actcount' => 1,
45177             'items' => [
45178             bless(
45179             {
45180             'pattern' => 'NEW_TABLE',
45181             'hashname' => '__PATTERN1__',
45182             'description' => '/NEW_TABLE/i',
45183             'lookahead' => 0,
45184             'rdelim' => '/',
45185             'line' => 293,
45186             'mod' => 'i',
45187             'ldelim' => '/'
45188             },
45189             'Parse::RecDescent::Token'
45190             ),
45191             bless(
45192             {
45193             'pattern' => '(AS)?',
45194             'hashname' => '__PATTERN2__',
45195             'description' => '/(AS)?/i',
45196             'lookahead' => 0,
45197             'rdelim' => '/',
45198             'line' => 293,
45199             'mod' => 'i',
45200             'ldelim' => '/'
45201             },
45202             'Parse::RecDescent::Token'
45203             ),
45204             bless(
45205             {
45206             'subrule' => 'identifier',
45207             'matchrule' => 0,
45208             'implicit' => undef,
45209             'argcode' => undef,
45210             'lookahead' => 0,
45211             'line' => 293
45212             },
45213             'Parse::RecDescent::Subrule'
45214             ),
45215             bless(
45216             {
45217             'hashname' => '__ACTION1__',
45218             'lookahead' => 0,
45219             'line' => 294,
45220             'code' => '{ $return = join(\' \', @item[1..3] ) }'
45221             },
45222             'Parse::RecDescent::Action'
45223             )
45224             ],
45225             'line' => 293
45226             },
45227             'Parse::RecDescent::Production'
45228             )
45229             ],
45230             'name' => 'old_new_table',
45231             'vars' => '',
45232             'line' => 291
45233             },
45234             'Parse::RecDescent::Rule'
45235             ),
45236             '_alternation_1_of_production_1_of_rule_numbering_function' => bless(
45237             {
45238             'impcount' => 0,
45239             'calls' => [
45240             'window_order_clause',
45241             'window_aggregation_group_clause'
45242             ],
45243             'changed' => 0,
45244             'opcount' => 0,
45245             'prods' => [
45246             bless(
45247             {
45248             'number' => '0',
45249             'strcount' => 0,
45250             'dircount' => 0,
45251             'uncommit' => undef,
45252             'error' => undef,
45253             'patcount' => 0,
45254             'actcount' => 0,
45255             'items' => [
45256             bless(
45257             {
45258             'subrule' => 'window_order_clause',
45259             'matchrule' => 0,
45260             'implicit' => undef,
45261             'argcode' => undef,
45262             'lookahead' => 0,
45263             'line' => 627
45264             },
45265             'Parse::RecDescent::Subrule'
45266             ),
45267             bless(
45268             {
45269             'subrule' => 'window_aggregation_group_clause',
45270             'expected' => undef,
45271             'min' => 0,
45272             'argcode' => undef,
45273             'max' => 1,
45274             'matchrule' => 0,
45275             'repspec' => '?',
45276             'lookahead' => 0,
45277             'line' => 627
45278             },
45279             'Parse::RecDescent::Repetition'
45280             )
45281             ],
45282             'line' => undef
45283             },
45284             'Parse::RecDescent::Production'
45285             )
45286             ],
45287             'name' => '_alternation_1_of_production_1_of_rule_numbering_function',
45288             'vars' => '',
45289             'line' => 627
45290             },
45291             'Parse::RecDescent::Rule'
45292             ),
45293             '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause' =>
45294             bless(
45295             {
45296             'impcount' => 0,
45297             'calls' => ['result_expression'],
45298             'changed' => 0,
45299             'opcount' => 0,
45300             'prods' => [
45301             bless(
45302             {
45303             'number' => '0',
45304             'strcount' => 0,
45305             'dircount' => 0,
45306             'uncommit' => undef,
45307             'error' => undef,
45308             'patcount' => 0,
45309             'actcount' => 0,
45310             'items' => [
45311             bless(
45312             {
45313             'subrule' => 'result_expression',
45314             'matchrule' => 0,
45315             'implicit' => undef,
45316             'argcode' => undef,
45317             'lookahead' => 0,
45318             'line' => 626
45319             },
45320             'Parse::RecDescent::Subrule'
45321             )
45322             ],
45323             'line' => undef
45324             },
45325             'Parse::RecDescent::Production'
45326             ),
45327             bless(
45328             {
45329             'number' => '1',
45330             'strcount' => 0,
45331             'dircount' => 0,
45332             'uncommit' => undef,
45333             'error' => undef,
45334             'patcount' => 1,
45335             'actcount' => 0,
45336             'items' => [
45337             bless(
45338             {
45339             'pattern' => 'NULL',
45340             'hashname' => '__PATTERN1__',
45341             'description' => '/NULL/i',
45342             'lookahead' => 0,
45343             'rdelim' => '/',
45344             'line' => 627,
45345             'mod' => 'i',
45346             'ldelim' => '/'
45347             },
45348             'Parse::RecDescent::Token'
45349             )
45350             ],
45351             'line' => 627
45352             },
45353             'Parse::RecDescent::Production'
45354             )
45355             ],
45356             'name' =>
45357             '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause',
45358             'vars' => '',
45359             'line' => 626
45360             },
45361             'Parse::RecDescent::Rule'
45362             ),
45363             'old_new_corr' => bless(
45364             {
45365             'impcount' => 0,
45366             'calls' => ['correlation_name'],
45367             'changed' => 0,
45368             'opcount' => 0,
45369             'prods' => [
45370             bless(
45371             {
45372             'number' => '0',
45373             'strcount' => 0,
45374             'dircount' => 0,
45375             'uncommit' => undef,
45376             'error' => undef,
45377             'patcount' => 2,
45378             'actcount' => 1,
45379             'items' => [
45380             bless(
45381             {
45382             'pattern' => 'OLD',
45383             'hashname' => '__PATTERN1__',
45384             'description' => '/OLD/i',
45385             'lookahead' => 0,
45386             'rdelim' => '/',
45387             'line' => 286,
45388             'mod' => 'i',
45389             'ldelim' => '/'
45390             },
45391             'Parse::RecDescent::Token'
45392             ),
45393             bless(
45394             {
45395             'pattern' => '(AS)?',
45396             'hashname' => '__PATTERN2__',
45397             'description' => '/(AS)?/i',
45398             'lookahead' => 0,
45399             'rdelim' => '/',
45400             'line' => 286,
45401             'mod' => 'i',
45402             'ldelim' => '/'
45403             },
45404             'Parse::RecDescent::Token'
45405             ),
45406             bless(
45407             {
45408             'subrule' => 'correlation_name',
45409             'matchrule' => 0,
45410             'implicit' => undef,
45411             'argcode' => undef,
45412             'lookahead' => 0,
45413             'line' => 286
45414             },
45415             'Parse::RecDescent::Subrule'
45416             ),
45417             bless(
45418             {
45419             'hashname' => '__ACTION1__',
45420             'lookahead' => 0,
45421             'line' => 287,
45422             'code' => '{ $return = join(\' \', @item[1..3] ) }'
45423             },
45424             'Parse::RecDescent::Action'
45425             )
45426             ],
45427             'line' => undef
45428             },
45429             'Parse::RecDescent::Production'
45430             ),
45431             bless(
45432             {
45433             'number' => '1',
45434             'strcount' => 0,
45435             'dircount' => 0,
45436             'uncommit' => undef,
45437             'error' => undef,
45438             'patcount' => 2,
45439             'actcount' => 1,
45440             'items' => [
45441             bless(
45442             {
45443             'pattern' => 'NEW',
45444             'hashname' => '__PATTERN1__',
45445             'description' => '/NEW/i',
45446             'lookahead' => 0,
45447             'rdelim' => '/',
45448             'line' => 288,
45449             'mod' => 'i',
45450             'ldelim' => '/'
45451             },
45452             'Parse::RecDescent::Token'
45453             ),
45454             bless(
45455             {
45456             'pattern' => '(AS)?',
45457             'hashname' => '__PATTERN2__',
45458             'description' => '/(AS)?/i',
45459             'lookahead' => 0,
45460             'rdelim' => '/',
45461             'line' => 288,
45462             'mod' => 'i',
45463             'ldelim' => '/'
45464             },
45465             'Parse::RecDescent::Token'
45466             ),
45467             bless(
45468             {
45469             'subrule' => 'correlation_name',
45470             'matchrule' => 0,
45471             'implicit' => undef,
45472             'argcode' => undef,
45473             'lookahead' => 0,
45474             'line' => 288
45475             },
45476             'Parse::RecDescent::Subrule'
45477             ),
45478             bless(
45479             {
45480             'hashname' => '__ACTION1__',
45481             'lookahead' => 0,
45482             'line' => 289,
45483             'code' => '{ $return = join(\' \', @item[1..3] ) }'
45484             },
45485             'Parse::RecDescent::Action'
45486             )
45487             ],
45488             'line' => 288
45489             },
45490             'Parse::RecDescent::Production'
45491             )
45492             ],
45493             'name' => 'old_new_corr',
45494             'vars' => '',
45495             'line' => 286
45496             },
45497             'Parse::RecDescent::Rule'
45498             ),
45499             '_alternation_1_of_production_42_of_rule_sysibm_function' => bless(
45500             {
45501             'impcount' => 0,
45502             'calls' => [],
45503             'changed' => 0,
45504             'opcount' => 0,
45505             'prods' => [
45506             bless(
45507             {
45508             'number' => '0',
45509             'strcount' => 0,
45510             'dircount' => 0,
45511             'uncommit' => undef,
45512             'error' => undef,
45513             'patcount' => 1,
45514             'actcount' => 0,
45515             'items' => [
45516             bless(
45517             {
45518             'pattern' => 'LCASE',
45519             'hashname' => '__PATTERN1__',
45520             'description' => '/LCASE/i',
45521             'lookahead' => 0,
45522             'rdelim' => '/',
45523             'line' => 628,
45524             'mod' => 'i',
45525             'ldelim' => '/'
45526             },
45527             'Parse::RecDescent::Token'
45528             )
45529             ],
45530             'line' => undef
45531             },
45532             'Parse::RecDescent::Production'
45533             ),
45534             bless(
45535             {
45536             'number' => '1',
45537             'strcount' => 0,
45538             'dircount' => 0,
45539             'uncommit' => undef,
45540             'error' => undef,
45541             'patcount' => 1,
45542             'actcount' => 0,
45543             'items' => [
45544             bless(
45545             {
45546             'pattern' => 'LOWER',
45547             'hashname' => '__PATTERN1__',
45548             'description' => '/LOWER/',
45549             'lookahead' => 0,
45550             'rdelim' => '/',
45551             'line' => 628,
45552             'mod' => '',
45553             'ldelim' => '/'
45554             },
45555             'Parse::RecDescent::Token'
45556             )
45557             ],
45558             'line' => 628
45559             },
45560             'Parse::RecDescent::Production'
45561             )
45562             ],
45563             'name' => '_alternation_1_of_production_42_of_rule_sysibm_function',
45564             'vars' => '',
45565             'line' => 628
45566             },
45567             'Parse::RecDescent::Rule'
45568             ),
45569             'subtype_treatment' => bless(
45570             {
45571             'impcount' => 0,
45572             'calls' => [
45573             'expression',
45574             'data_type'
45575             ],
45576             'changed' => 0,
45577             'opcount' => 0,
45578             'prods' => [
45579             bless(
45580             {
45581             'number' => '0',
45582             'strcount' => 2,
45583             'dircount' => 0,
45584             'uncommit' => undef,
45585             'error' => undef,
45586             'patcount' => 2,
45587             'actcount' => 0,
45588             'items' => [
45589             bless(
45590             {
45591             'pattern' => 'TREAT',
45592             'hashname' => '__PATTERN1__',
45593             'description' => '/TREAT/i',
45594             'lookahead' => 0,
45595             'rdelim' => '/',
45596             'line' => 606,
45597             'mod' => 'i',
45598             'ldelim' => '/'
45599             },
45600             'Parse::RecDescent::Token'
45601             ),
45602             bless(
45603             {
45604             'pattern' => '(',
45605             'hashname' => '__STRING1__',
45606             'description' => '\'(\'',
45607             'lookahead' => 0,
45608             'line' => 606
45609             },
45610             'Parse::RecDescent::Literal'
45611             ),
45612             bless(
45613             {
45614             'subrule' => 'expression',
45615             'matchrule' => 0,
45616             'implicit' => undef,
45617             'argcode' => undef,
45618             'lookahead' => 0,
45619             'line' => 606
45620             },
45621             'Parse::RecDescent::Subrule'
45622             ),
45623             bless(
45624             {
45625             'pattern' => 'AS',
45626             'hashname' => '__PATTERN2__',
45627             'description' => '/AS/i',
45628             'lookahead' => 0,
45629             'rdelim' => '/',
45630             'line' => 606,
45631             'mod' => 'i',
45632             'ldelim' => '/'
45633             },
45634             'Parse::RecDescent::Token'
45635             ),
45636             bless(
45637             {
45638             'subrule' => 'data_type',
45639             'matchrule' => 0,
45640             'implicit' => undef,
45641             'argcode' => undef,
45642             'lookahead' => 0,
45643             'line' => 606
45644             },
45645             'Parse::RecDescent::Subrule'
45646             ),
45647             bless(
45648             {
45649             'pattern' => ')',
45650             'hashname' => '__STRING2__',
45651             'description' => '\')\'',
45652             'lookahead' => 0,
45653             'line' => 606
45654             },
45655             'Parse::RecDescent::Literal'
45656             )
45657             ],
45658             'line' => undef
45659             },
45660             'Parse::RecDescent::Production'
45661             )
45662             ],
45663             'name' => 'subtype_treatment',
45664             'vars' => '',
45665             'line' => 606
45666             },
45667             'Parse::RecDescent::Rule'
45668             ),
45669             'expression' => bless(
45670             {
45671             'impcount' => 1,
45672             'calls' => ['_alternation_1_of_production_1_of_rule_expression'],
45673             'changed' => 0,
45674             'opcount' => 0,
45675             'prods' => [
45676             bless(
45677             {
45678             'number' => '0',
45679             'strcount' => 0,
45680             'dircount' => 1,
45681             'uncommit' => undef,
45682             'error' => undef,
45683             'patcount' => 1,
45684             'actcount' => 0,
45685             'op' => [],
45686             'items' => [
45687             bless(
45688             {
45689             'expected' => '',
45690             'min' => 1,
45691             'name' => '\'_alternation_1_of_production_1_of_rule_expression(s)\'',
45692             'max' => 100000000,
45693             'leftarg' => bless(
45694             {
45695             'subrule' => '_alternation_1_of_production_1_of_rule_expression',
45696             'matchrule' => 0,
45697             'implicit' => '\'+\', or \'-\'',
45698             'argcode' => undef,
45699             'lookahead' => 0,
45700             'line' => 319
45701             },
45702             'Parse::RecDescent::Subrule'
45703             ),
45704             'rightarg' => bless(
45705             {
45706             'subrule' => '_alternation_1_of_production_1_of_rule_expression',
45707             'matchrule' => 0,
45708             'implicit' => '\'+\', or \'-\'',
45709             'argcode' => undef,
45710             'lookahead' => 0,
45711             'line' => 319
45712             },
45713             'Parse::RecDescent::Subrule'
45714             ),
45715             'hashname' => '__DIRECTIVE1__',
45716             'type' => 'leftop',
45717             'op' => bless(
45718             {
45719             'pattern' => 'operator',
45720             'hashname' => '__PATTERN1__',
45721             'description' => '/operator/',
45722             'lookahead' => 0,
45723             'rdelim' => '/',
45724             'line' => 319,
45725             'mod' => '',
45726             'ldelim' => '/'
45727             },
45728             'Parse::RecDescent::Token'
45729             )
45730             },
45731             'Parse::RecDescent::Operator'
45732             )
45733             ],
45734             'line' => undef
45735             },
45736             'Parse::RecDescent::Production'
45737             )
45738             ],
45739             'name' => 'expression',
45740             'vars' => '',
45741             'line' => 299
45742             },
45743             'Parse::RecDescent::Rule'
45744             ),
45745             '_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression' => bless(
45746             {
45747             'impcount' => 0,
45748             'calls' => [
45749             'function',
45750             'expression',
45751             'constant',
45752             'column_name',
45753             'host_variable',
45754             'special_register',
45755             'scalar_fullselect',
45756             'labeled_duration',
45757             'case_expression',
45758             'cast_specification',
45759             'OLAP_function',
45760             'method_invocation',
45761             'subtype_treatment',
45762             'sequence_reference'
45763             ],
45764             'changed' => 0,
45765             'opcount' => 0,
45766             'prods' => [
45767             bless(
45768             {
45769             'number' => '0',
45770             'strcount' => 0,
45771             'dircount' => 0,
45772             'uncommit' => undef,
45773             'error' => undef,
45774             'patcount' => 0,
45775             'actcount' => 0,
45776             'items' => [
45777             bless(
45778             {
45779             'subrule' => 'function',
45780             'matchrule' => 0,
45781             'implicit' => undef,
45782             'argcode' => undef,
45783             'lookahead' => 0,
45784             'line' => 613
45785             },
45786             'Parse::RecDescent::Subrule'
45787             )
45788             ],
45789             'line' => undef
45790             },
45791             'Parse::RecDescent::Production'
45792             ),
45793             bless(
45794             {
45795             'number' => '1',
45796             'strcount' => 2,
45797             'dircount' => 0,
45798             'uncommit' => undef,
45799             'error' => undef,
45800             'patcount' => 0,
45801             'actcount' => 0,
45802             'items' => [
45803             bless(
45804             {
45805             'pattern' => '(',
45806             'hashname' => '__STRING1__',
45807             'description' => '\'(\'',
45808             'lookahead' => 0,
45809             'line' => 614
45810             },
45811             'Parse::RecDescent::Literal'
45812             ),
45813             bless(
45814             {
45815             'subrule' => 'expression',
45816             'matchrule' => 0,
45817             'implicit' => undef,
45818             'argcode' => undef,
45819             'lookahead' => 0,
45820             'line' => 614
45821             },
45822             'Parse::RecDescent::Subrule'
45823             ),
45824             bless(
45825             {
45826             'pattern' => ')',
45827             'hashname' => '__STRING2__',
45828             'description' => '\')\'',
45829             'lookahead' => 0,
45830             'line' => 614
45831             },
45832             'Parse::RecDescent::Literal'
45833             )
45834             ],
45835             'line' => 614
45836             },
45837             'Parse::RecDescent::Production'
45838             ),
45839             bless(
45840             {
45841             'number' => '2',
45842             'strcount' => 0,
45843             'dircount' => 0,
45844             'uncommit' => undef,
45845             'error' => undef,
45846             'patcount' => 0,
45847             'actcount' => 0,
45848             'items' => [
45849             bless(
45850             {
45851             'subrule' => 'constant',
45852             'matchrule' => 0,
45853             'implicit' => undef,
45854             'argcode' => undef,
45855             'lookahead' => 0,
45856             'line' => 615
45857             },
45858             'Parse::RecDescent::Subrule'
45859             )
45860             ],
45861             'line' => 615
45862             },
45863             'Parse::RecDescent::Production'
45864             ),
45865             bless(
45866             {
45867             'number' => '3',
45868             'strcount' => 0,
45869             'dircount' => 0,
45870             'uncommit' => undef,
45871             'error' => undef,
45872             'patcount' => 0,
45873             'actcount' => 0,
45874             'items' => [
45875             bless(
45876             {
45877             'subrule' => 'column_name',
45878             'matchrule' => 0,
45879             'implicit' => undef,
45880             'argcode' => undef,
45881             'lookahead' => 0,
45882             'line' => 616
45883             },
45884             'Parse::RecDescent::Subrule'
45885             )
45886             ],
45887             'line' => 616
45888             },
45889             'Parse::RecDescent::Production'
45890             ),
45891             bless(
45892             {
45893             'number' => '4',
45894             'strcount' => 0,
45895             'dircount' => 0,
45896             'uncommit' => undef,
45897             'error' => undef,
45898             'patcount' => 0,
45899             'actcount' => 0,
45900             'items' => [
45901             bless(
45902             {
45903             'subrule' => 'host_variable',
45904             'matchrule' => 0,
45905             'implicit' => undef,
45906             'argcode' => undef,
45907             'lookahead' => 0,
45908             'line' => 617
45909             },
45910             'Parse::RecDescent::Subrule'
45911             )
45912             ],
45913             'line' => 617
45914             },
45915             'Parse::RecDescent::Production'
45916             ),
45917             bless(
45918             {
45919             'number' => '5',
45920             'strcount' => 0,
45921             'dircount' => 0,
45922             'uncommit' => undef,
45923             'error' => undef,
45924             'patcount' => 0,
45925             'actcount' => 0,
45926             'items' => [
45927             bless(
45928             {
45929             'subrule' => 'special_register',
45930             'matchrule' => 0,
45931             'implicit' => undef,
45932             'argcode' => undef,
45933             'lookahead' => 0,
45934             'line' => 618
45935             },
45936             'Parse::RecDescent::Subrule'
45937             )
45938             ],
45939             'line' => 618
45940             },
45941             'Parse::RecDescent::Production'
45942             ),
45943             bless(
45944             {
45945             'number' => '6',
45946             'strcount' => 2,
45947             'dircount' => 0,
45948             'uncommit' => undef,
45949             'error' => undef,
45950             'patcount' => 0,
45951             'actcount' => 0,
45952             'items' => [
45953             bless(
45954             {
45955             'pattern' => '(',
45956             'hashname' => '__STRING1__',
45957             'description' => '\'(\'',
45958             'lookahead' => 0,
45959             'line' => 619
45960             },
45961             'Parse::RecDescent::Literal'
45962             ),
45963             bless(
45964             {
45965             'subrule' => 'scalar_fullselect',
45966             'matchrule' => 0,
45967             'implicit' => undef,
45968             'argcode' => undef,
45969             'lookahead' => 0,
45970             'line' => 619
45971             },
45972             'Parse::RecDescent::Subrule'
45973             ),
45974             bless(
45975             {
45976             'pattern' => ')',
45977             'hashname' => '__STRING2__',
45978             'description' => '\')\'',
45979             'lookahead' => 0,
45980             'line' => 619
45981             },
45982             'Parse::RecDescent::Literal'
45983             )
45984             ],
45985             'line' => 619
45986             },
45987             'Parse::RecDescent::Production'
45988             ),
45989             bless(
45990             {
45991             'number' => '7',
45992             'strcount' => 0,
45993             'dircount' => 0,
45994             'uncommit' => undef,
45995             'error' => undef,
45996             'patcount' => 0,
45997             'actcount' => 0,
45998             'items' => [
45999             bless(
46000             {
46001             'subrule' => 'labeled_duration',
46002             'matchrule' => 0,
46003             'implicit' => undef,
46004             'argcode' => undef,
46005             'lookahead' => 0,
46006             'line' => 620
46007             },
46008             'Parse::RecDescent::Subrule'
46009             )
46010             ],
46011             'line' => 620
46012             },
46013             'Parse::RecDescent::Production'
46014             ),
46015             bless(
46016             {
46017             'number' => '8',
46018             'strcount' => 0,
46019             'dircount' => 0,
46020             'uncommit' => undef,
46021             'error' => undef,
46022             'patcount' => 0,
46023             'actcount' => 0,
46024             'items' => [
46025             bless(
46026             {
46027             'subrule' => 'case_expression',
46028             'matchrule' => 0,
46029             'implicit' => undef,
46030             'argcode' => undef,
46031             'lookahead' => 0,
46032             'line' => 621
46033             },
46034             'Parse::RecDescent::Subrule'
46035             )
46036             ],
46037             'line' => 621
46038             },
46039             'Parse::RecDescent::Production'
46040             ),
46041             bless(
46042             {
46043             'number' => '9',
46044             'strcount' => 0,
46045             'dircount' => 0,
46046             'uncommit' => undef,
46047             'error' => undef,
46048             'patcount' => 0,
46049             'actcount' => 0,
46050             'items' => [
46051             bless(
46052             {
46053             'subrule' => 'cast_specification',
46054             'matchrule' => 0,
46055             'implicit' => undef,
46056             'argcode' => undef,
46057             'lookahead' => 0,
46058             'line' => 622
46059             },
46060             'Parse::RecDescent::Subrule'
46061             )
46062             ],
46063             'line' => 622
46064             },
46065             'Parse::RecDescent::Production'
46066             ),
46067             bless(
46068             {
46069             'number' => '10',
46070             'strcount' => 0,
46071             'dircount' => 0,
46072             'uncommit' => undef,
46073             'error' => undef,
46074             'patcount' => 0,
46075             'actcount' => 0,
46076             'items' => [
46077             bless(
46078             {
46079             'subrule' => 'OLAP_function',
46080             'matchrule' => 0,
46081             'implicit' => undef,
46082             'argcode' => undef,
46083             'lookahead' => 0,
46084             'line' => 624
46085             },
46086             'Parse::RecDescent::Subrule'
46087             )
46088             ],
46089             'line' => 623
46090             },
46091             'Parse::RecDescent::Production'
46092             ),
46093             bless(
46094             {
46095             'number' => '11',
46096             'strcount' => 0,
46097             'dircount' => 0,
46098             'uncommit' => undef,
46099             'error' => undef,
46100             'patcount' => 0,
46101             'actcount' => 0,
46102             'items' => [
46103             bless(
46104             {
46105             'subrule' => 'method_invocation',
46106             'matchrule' => 0,
46107             'implicit' => undef,
46108             'argcode' => undef,
46109             'lookahead' => 0,
46110             'line' => 625
46111             },
46112             'Parse::RecDescent::Subrule'
46113             )
46114             ],
46115             'line' => 625
46116             },
46117             'Parse::RecDescent::Production'
46118             ),
46119             bless(
46120             {
46121             'number' => '12',
46122             'strcount' => 0,
46123             'dircount' => 0,
46124             'uncommit' => undef,
46125             'error' => undef,
46126             'patcount' => 0,
46127             'actcount' => 0,
46128             'items' => [
46129             bless(
46130             {
46131             'subrule' => 'subtype_treatment',
46132             'matchrule' => 0,
46133             'implicit' => undef,
46134             'argcode' => undef,
46135             'lookahead' => 0,
46136             'line' => 626
46137             },
46138             'Parse::RecDescent::Subrule'
46139             )
46140             ],
46141             'line' => 626
46142             },
46143             'Parse::RecDescent::Production'
46144             ),
46145             bless(
46146             {
46147             'number' => '13',
46148             'strcount' => 0,
46149             'dircount' => 0,
46150             'uncommit' => undef,
46151             'error' => undef,
46152             'patcount' => 0,
46153             'actcount' => 0,
46154             'items' => [
46155             bless(
46156             {
46157             'subrule' => 'sequence_reference',
46158             'matchrule' => 0,
46159             'implicit' => undef,
46160             'argcode' => undef,
46161             'lookahead' => 0,
46162             'line' => 627
46163             },
46164             'Parse::RecDescent::Subrule'
46165             )
46166             ],
46167             'line' => 627
46168             },
46169             'Parse::RecDescent::Production'
46170             )
46171             ],
46172             'name' => '_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression',
46173             'vars' => '',
46174             'line' => 613
46175             },
46176             'Parse::RecDescent::Rule'
46177             ),
46178             'startrule' => bless(
46179             {
46180             'impcount' => 0,
46181             'calls' => [
46182             'statement',
46183             'eofile'
46184             ],
46185             'changed' => 0,
46186             'opcount' => 0,
46187             'prods' => [
46188             bless(
46189             {
46190             'number' => '0',
46191             'strcount' => 0,
46192             'dircount' => 0,
46193             'uncommit' => undef,
46194             'error' => undef,
46195             'patcount' => 0,
46196             'actcount' => 1,
46197             'items' => [
46198             bless(
46199             {
46200             'subrule' => 'statement',
46201             'expected' => undef,
46202             'min' => 1,
46203             'argcode' => undef,
46204             'max' => 100000000,
46205             'matchrule' => 0,
46206             'repspec' => 's',
46207             'lookahead' => 0,
46208             'line' => 12
46209             },
46210             'Parse::RecDescent::Repetition'
46211             ),
46212             bless(
46213             {
46214             'subrule' => 'eofile',
46215             'matchrule' => 0,
46216             'implicit' => undef,
46217             'argcode' => undef,
46218             'lookahead' => 0,
46219             'line' => 12
46220             },
46221             'Parse::RecDescent::Subrule'
46222             ),
46223             bless(
46224             {
46225             'hashname' => '__ACTION1__',
46226             'lookahead' => 0,
46227             'line' => 12,
46228             'code' => '{
46229             $return = {
46230             tables => \\%tables,
46231             views => \\@views,
46232             triggers => \\@triggers,
46233             }
46234             }'
46235             },
46236             'Parse::RecDescent::Action'
46237             )
46238             ],
46239             'line' => undef
46240             },
46241             'Parse::RecDescent::Production'
46242             )
46243             ],
46244             'name' => 'startrule',
46245             'vars' => '',
46246             'line' => 11
46247             },
46248             'Parse::RecDescent::Rule'
46249             ),
46250             '_alternation_1_of_production_1_of_rule_cast_specification' => bless(
46251             {
46252             'impcount' => 0,
46253             'calls' => [
46254             'expression',
46255             'parameter_marker'
46256             ],
46257             'changed' => 0,
46258             'opcount' => 0,
46259             'prods' => [
46260             bless(
46261             {
46262             'number' => '0',
46263             'strcount' => 0,
46264             'dircount' => 0,
46265             'uncommit' => undef,
46266             'error' => undef,
46267             'patcount' => 0,
46268             'actcount' => 0,
46269             'items' => [
46270             bless(
46271             {
46272             'subrule' => 'expression',
46273             'matchrule' => 0,
46274             'implicit' => undef,
46275             'argcode' => undef,
46276             'lookahead' => 0,
46277             'line' => 625
46278             },
46279             'Parse::RecDescent::Subrule'
46280             )
46281             ],
46282             'line' => undef
46283             },
46284             'Parse::RecDescent::Production'
46285             ),
46286             bless(
46287             {
46288             'number' => '1',
46289             'strcount' => 0,
46290             'dircount' => 0,
46291             'uncommit' => undef,
46292             'error' => undef,
46293             'patcount' => 1,
46294             'actcount' => 0,
46295             'items' => [
46296             bless(
46297             {
46298             'pattern' => 'NULL',
46299             'hashname' => '__PATTERN1__',
46300             'description' => '/NULL/i',
46301             'lookahead' => 0,
46302             'rdelim' => '/',
46303             'line' => 626,
46304             'mod' => 'i',
46305             'ldelim' => '/'
46306             },
46307             'Parse::RecDescent::Token'
46308             )
46309             ],
46310             'line' => 626
46311             },
46312             'Parse::RecDescent::Production'
46313             ),
46314             bless(
46315             {
46316             'number' => '2',
46317             'strcount' => 0,
46318             'dircount' => 0,
46319             'uncommit' => undef,
46320             'error' => undef,
46321             'patcount' => 0,
46322             'actcount' => 0,
46323             'items' => [
46324             bless(
46325             {
46326             'subrule' => 'parameter_marker',
46327             'matchrule' => 0,
46328             'implicit' => undef,
46329             'argcode' => undef,
46330             'lookahead' => 0,
46331             'line' => 627
46332             },
46333             'Parse::RecDescent::Subrule'
46334             )
46335             ],
46336             'line' => 627
46337             },
46338             'Parse::RecDescent::Production'
46339             )
46340             ],
46341             'name' => '_alternation_1_of_production_1_of_rule_cast_specification',
46342             'vars' => '',
46343             'line' => 625
46344             },
46345             'Parse::RecDescent::Rule'
46346             ),
46347             'before' => bless(
46348             {
46349             'impcount' => 0,
46350             'calls' => [],
46351             'changed' => 0,
46352             'opcount' => 0,
46353             'prods' => [
46354             bless(
46355             {
46356             'number' => '0',
46357             'strcount' => 0,
46358             'dircount' => 0,
46359             'uncommit' => undef,
46360             'error' => undef,
46361             'patcount' => 1,
46362             'actcount' => 0,
46363             'items' => [
46364             bless(
46365             {
46366             'pattern' => 'NO CASCADE BEFORE',
46367             'hashname' => '__PATTERN1__',
46368             'description' => '/NO CASCADE BEFORE/i',
46369             'lookahead' => 0,
46370             'rdelim' => '/',
46371             'line' => 268,
46372             'mod' => 'i',
46373             'ldelim' => '/'
46374             },
46375             'Parse::RecDescent::Token'
46376             )
46377             ],
46378             'line' => undef
46379             },
46380             'Parse::RecDescent::Production'
46381             )
46382             ],
46383             'name' => 'before',
46384             'vars' => '',
46385             'line' => 268
46386             },
46387             'Parse::RecDescent::Rule'
46388             ),
46389             '_alternation_1_of_production_83_of_rule_sysibm_function' => bless(
46390             {
46391             'impcount' => 0,
46392             'calls' => [],
46393             'changed' => 0,
46394             'opcount' => 0,
46395             'prods' => [
46396             bless(
46397             {
46398             'number' => '0',
46399             'strcount' => 0,
46400             'dircount' => 0,
46401             'uncommit' => undef,
46402             'error' => undef,
46403             'patcount' => 1,
46404             'actcount' => 0,
46405             'items' => [
46406             bless(
46407             {
46408             'pattern' => 'UCASE',
46409             'hashname' => '__PATTERN1__',
46410             'description' => '/UCASE/i',
46411             'lookahead' => 0,
46412             'rdelim' => '/',
46413             'line' => 628,
46414             'mod' => 'i',
46415             'ldelim' => '/'
46416             },
46417             'Parse::RecDescent::Token'
46418             )
46419             ],
46420             'line' => undef
46421             },
46422             'Parse::RecDescent::Production'
46423             ),
46424             bless(
46425             {
46426             'number' => '1',
46427             'strcount' => 0,
46428             'dircount' => 0,
46429             'uncommit' => undef,
46430             'error' => undef,
46431             'patcount' => 1,
46432             'actcount' => 0,
46433             'items' => [
46434             bless(
46435             {
46436             'pattern' => 'UPPER',
46437             'hashname' => '__PATTERN1__',
46438             'description' => '/UPPER/i',
46439             'lookahead' => 0,
46440             'rdelim' => '/',
46441             'line' => 628,
46442             'mod' => 'i',
46443             'ldelim' => '/'
46444             },
46445             'Parse::RecDescent::Token'
46446             )
46447             ],
46448             'line' => 628
46449             },
46450             'Parse::RecDescent::Production'
46451             )
46452             ],
46453             'name' => '_alternation_1_of_production_83_of_rule_sysibm_function',
46454             'vars' => '',
46455             'line' => 628
46456             },
46457             'Parse::RecDescent::Rule'
46458             ),
46459             'ranking_function' => bless(
46460             {
46461             'impcount' => 1,
46462             'calls' => [
46463             '_alternation_1_of_production_1_of_rule_ranking_function',
46464             'window_partition_clause',
46465             'window_order_clause'
46466             ],
46467             'changed' => 0,
46468             'opcount' => 0,
46469             'prods' => [
46470             bless(
46471             {
46472             'number' => '0',
46473             'strcount' => 2,
46474             'dircount' => 0,
46475             'uncommit' => undef,
46476             'error' => undef,
46477             'patcount' => 1,
46478             'actcount' => 0,
46479             'items' => [
46480             bless(
46481             {
46482             'subrule' => '_alternation_1_of_production_1_of_rule_ranking_function',
46483             'matchrule' => 0,
46484             'implicit' => '/RANK/, or /DENSE_RANK|DENSERANK/i',
46485             'argcode' => undef,
46486             'lookahead' => 0,
46487             'line' => 544
46488             },
46489             'Parse::RecDescent::Subrule'
46490             ),
46491             bless(
46492             {
46493             'pattern' => 'OVER',
46494             'hashname' => '__PATTERN1__',
46495             'description' => '/OVER/i',
46496             'lookahead' => 0,
46497             'rdelim' => '/',
46498             'line' => 544,
46499             'mod' => 'i',
46500             'ldelim' => '/'
46501             },
46502             'Parse::RecDescent::Token'
46503             ),
46504             bless(
46505             {
46506             'pattern' => '(',
46507             'hashname' => '__STRING1__',
46508             'description' => '\'(\'',
46509             'lookahead' => 0,
46510             'line' => 544
46511             },
46512             'Parse::RecDescent::Literal'
46513             ),
46514             bless(
46515             {
46516             'subrule' => 'window_partition_clause',
46517             'expected' => undef,
46518             'min' => 0,
46519             'argcode' => undef,
46520             'max' => 1,
46521             'matchrule' => 0,
46522             'repspec' => '?',
46523             'lookahead' => 0,
46524             'line' => 544
46525             },
46526             'Parse::RecDescent::Repetition'
46527             ),
46528             bless(
46529             {
46530             'subrule' => 'window_order_clause',
46531             'matchrule' => 0,
46532             'implicit' => undef,
46533             'argcode' => undef,
46534             'lookahead' => 0,
46535             'line' => 544
46536             },
46537             'Parse::RecDescent::Subrule'
46538             ),
46539             bless(
46540             {
46541             'pattern' => ')',
46542             'hashname' => '__STRING2__',
46543             'description' => '\')\'',
46544             'lookahead' => 0,
46545             'line' => 544
46546             },
46547             'Parse::RecDescent::Literal'
46548             )
46549             ],
46550             'line' => undef
46551             },
46552             'Parse::RecDescent::Production'
46553             )
46554             ],
46555             'name' => 'ranking_function',
46556             'vars' => '',
46557             'line' => 542
46558             },
46559             'Parse::RecDescent::Rule'
46560             ),
46561             '_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition' => bless(
46562             {
46563             'impcount' => 0,
46564             'calls' => ['numeric_constant'],
46565             'changed' => 0,
46566             'opcount' => 0,
46567             'prods' => [
46568             bless(
46569             {
46570             'number' => '0',
46571             'strcount' => 0,
46572             'dircount' => 0,
46573             'uncommit' => undef,
46574             'error' => undef,
46575             'patcount' => 1,
46576             'actcount' => 0,
46577             'items' => [
46578             bless(
46579             {
46580             'pattern' => 'SELECTIVITY',
46581             'hashname' => '__PATTERN1__',
46582             'description' => '/SELECTIVITY/i',
46583             'lookahead' => 0,
46584             'rdelim' => '/',
46585             'line' => 628,
46586             'mod' => 'i',
46587             'ldelim' => '/'
46588             },
46589             'Parse::RecDescent::Token'
46590             ),
46591             bless(
46592             {
46593             'subrule' => 'numeric_constant',
46594             'matchrule' => 0,
46595             'implicit' => undef,
46596             'argcode' => undef,
46597             'lookahead' => 0,
46598             'line' => 628
46599             },
46600             'Parse::RecDescent::Subrule'
46601             )
46602             ],
46603             'line' => undef
46604             },
46605             'Parse::RecDescent::Production'
46606             )
46607             ],
46608             'name' =>
46609             '_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition',
46610             'vars' => '',
46611             'line' => 628
46612             },
46613             'Parse::RecDescent::Rule'
46614             ),
46615             '_alternation_1_of_production_1_of_rule_sysibm_function' => bless(
46616             {
46617             'impcount' => 0,
46618             'calls' => [],
46619             'changed' => 0,
46620             'opcount' => 0,
46621             'prods' => [
46622             bless(
46623             {
46624             'number' => '0',
46625             'strcount' => 0,
46626             'dircount' => 0,
46627             'uncommit' => undef,
46628             'error' => undef,
46629             'patcount' => 1,
46630             'actcount' => 0,
46631             'items' => [
46632             bless(
46633             {
46634             'pattern' => 'ABS',
46635             'hashname' => '__PATTERN1__',
46636             'description' => '/ABS/i',
46637             'lookahead' => 0,
46638             'rdelim' => '/',
46639             'line' => 628,
46640             'mod' => 'i',
46641             'ldelim' => '/'
46642             },
46643             'Parse::RecDescent::Token'
46644             )
46645             ],
46646             'line' => undef
46647             },
46648             'Parse::RecDescent::Production'
46649             ),
46650             bless(
46651             {
46652             'number' => '1',
46653             'strcount' => 0,
46654             'dircount' => 0,
46655             'uncommit' => undef,
46656             'error' => undef,
46657             'patcount' => 1,
46658             'actcount' => 0,
46659             'items' => [
46660             bless(
46661             {
46662             'pattern' => 'ABSVAL',
46663             'hashname' => '__PATTERN1__',
46664             'description' => '/ABSVAL/i',
46665             'lookahead' => 0,
46666             'rdelim' => '/',
46667             'line' => 628,
46668             'mod' => 'i',
46669             'ldelim' => '/'
46670             },
46671             'Parse::RecDescent::Token'
46672             )
46673             ],
46674             'line' => 628
46675             },
46676             'Parse::RecDescent::Production'
46677             )
46678             ],
46679             'name' => '_alternation_1_of_production_1_of_rule_sysibm_function',
46680             'vars' => '',
46681             'line' => 628
46682             },
46683             'Parse::RecDescent::Rule'
46684             ),
46685             'reference_b' => bless(
46686             {
46687             'impcount' => 0,
46688             'calls' => ['old_new_corr'],
46689             'changed' => 0,
46690             'opcount' => 0,
46691             'prods' => [
46692             bless(
46693             {
46694             'number' => '0',
46695             'strcount' => 0,
46696             'dircount' => 0,
46697             'uncommit' => undef,
46698             'error' => undef,
46699             'patcount' => 1,
46700             'actcount' => 1,
46701             'items' => [
46702             bless(
46703             {
46704             'pattern' => 'REFERENCING',
46705             'hashname' => '__PATTERN1__',
46706             'description' => '/REFERENCING/i',
46707             'lookahead' => 0,
46708             'rdelim' => '/',
46709             'line' => 280,
46710             'mod' => 'i',
46711             'ldelim' => '/'
46712             },
46713             'Parse::RecDescent::Token'
46714             ),
46715             bless(
46716             {
46717             'subrule' => 'old_new_corr',
46718             'expected' => undef,
46719             'min' => 0,
46720             'argcode' => undef,
46721             'max' => 2,
46722             'matchrule' => 0,
46723             'repspec' => '0..2',
46724             'lookahead' => 0,
46725             'line' => 280
46726             },
46727             'Parse::RecDescent::Repetition'
46728             ),
46729             bless(
46730             {
46731             'hashname' => '__ACTION1__',
46732             'lookahead' => 0,
46733             'line' => 281,
46734             'code' => '{ $return = join(\' \', $item[1], join(\' \', @{$item[2]}) ) }'
46735             },
46736             'Parse::RecDescent::Action'
46737             )
46738             ],
46739             'line' => undef
46740             },
46741             'Parse::RecDescent::Production'
46742             )
46743             ],
46744             'name' => 'reference_b',
46745             'vars' => '',
46746             'line' => 280
46747             },
46748             'Parse::RecDescent::Rule'
46749             ),
46750             '_alternation_1_of_production_1_of_rule_simple_when_clause' => bless(
46751             {
46752             'impcount' => 1,
46753             'calls' => [
46754             'search_condition',
46755             '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause'
46756             ],
46757             'changed' => 0,
46758             'opcount' => 0,
46759             'prods' => [
46760             bless(
46761             {
46762             'number' => '0',
46763             'strcount' => 0,
46764             'dircount' => 0,
46765             'uncommit' => undef,
46766             'error' => undef,
46767             'patcount' => 2,
46768             'actcount' => 0,
46769             'items' => [
46770             bless(
46771             {
46772             'pattern' => 'WHEN',
46773             'hashname' => '__PATTERN1__',
46774             'description' => '/WHEN/i',
46775             'lookahead' => 0,
46776             'rdelim' => '/',
46777             'line' => 624,
46778             'mod' => 'i',
46779             'ldelim' => '/'
46780             },
46781             'Parse::RecDescent::Token'
46782             ),
46783             bless(
46784             {
46785             'subrule' => 'search_condition',
46786             'matchrule' => 0,
46787             'implicit' => undef,
46788             'argcode' => undef,
46789             'lookahead' => 0,
46790             'line' => 624
46791             },
46792             'Parse::RecDescent::Subrule'
46793             ),
46794             bless(
46795             {
46796             'pattern' => 'THEN',
46797             'hashname' => '__PATTERN2__',
46798             'description' => '/THEN/i',
46799             'lookahead' => 0,
46800             'rdelim' => '/',
46801             'line' => 624,
46802             'mod' => 'i',
46803             'ldelim' => '/'
46804             },
46805             'Parse::RecDescent::Token'
46806             ),
46807             bless(
46808             {
46809             'subrule' =>
46810             '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause',
46811             'matchrule' => 0,
46812             'implicit' => 'result_expression, or /NULL/i',
46813             'argcode' => undef,
46814             'lookahead' => 0,
46815             'line' => 627
46816             },
46817             'Parse::RecDescent::Subrule'
46818             )
46819             ],
46820             'line' => undef
46821             },
46822             'Parse::RecDescent::Production'
46823             )
46824             ],
46825             'name' => '_alternation_1_of_production_1_of_rule_simple_when_clause',
46826             'vars' => '',
46827             'line' => 624
46828             },
46829             'Parse::RecDescent::Rule'
46830             ),
46831             '_alternation_1_of_production_9_of_rule_sysibm_function' => bless(
46832             {
46833             'impcount' => 0,
46834             'calls' => [],
46835             'changed' => 0,
46836             'opcount' => 0,
46837             'prods' => [
46838             bless(
46839             {
46840             'number' => '0',
46841             'strcount' => 0,
46842             'dircount' => 0,
46843             'uncommit' => undef,
46844             'error' => undef,
46845             'patcount' => 1,
46846             'actcount' => 0,
46847             'items' => [
46848             bless(
46849             {
46850             'pattern' => 'CORRELATION',
46851             'hashname' => '__PATTERN1__',
46852             'description' => '/CORRELATION/i',
46853             'lookahead' => 0,
46854             'rdelim' => '/',
46855             'line' => 628,
46856             'mod' => 'i',
46857             'ldelim' => '/'
46858             },
46859             'Parse::RecDescent::Token'
46860             )
46861             ],
46862             'line' => undef
46863             },
46864             'Parse::RecDescent::Production'
46865             ),
46866             bless(
46867             {
46868             'number' => '1',
46869             'strcount' => 0,
46870             'dircount' => 0,
46871             'uncommit' => undef,
46872             'error' => undef,
46873             'patcount' => 1,
46874             'actcount' => 0,
46875             'items' => [
46876             bless(
46877             {
46878             'pattern' => 'CORR',
46879             'hashname' => '__PATTERN1__',
46880             'description' => '/CORR/',
46881             'lookahead' => 0,
46882             'rdelim' => '/',
46883             'line' => 628,
46884             'mod' => '',
46885             'ldelim' => '/'
46886             },
46887             'Parse::RecDescent::Token'
46888             )
46889             ],
46890             'line' => 628
46891             },
46892             'Parse::RecDescent::Production'
46893             )
46894             ],
46895             'name' => '_alternation_1_of_production_9_of_rule_sysibm_function',
46896             'vars' => '',
46897             'line' => 628
46898             },
46899             'Parse::RecDescent::Rule'
46900             ),
46901             '_alternation_1_of_production_7_of_rule_sysfun' => bless(
46902             {
46903             'impcount' => 0,
46904             'calls' => [],
46905             'changed' => 0,
46906             'opcount' => 0,
46907             'prods' => [
46908             bless(
46909             {
46910             'number' => '0',
46911             'strcount' => 0,
46912             'dircount' => 0,
46913             'uncommit' => undef,
46914             'error' => undef,
46915             'patcount' => 1,
46916             'actcount' => 0,
46917             'items' => [
46918             bless(
46919             {
46920             'pattern' => 'CEIL',
46921             'hashname' => '__PATTERN1__',
46922             'description' => '/CEIL/i',
46923             'lookahead' => 0,
46924             'rdelim' => '/',
46925             'line' => 628,
46926             'mod' => 'i',
46927             'ldelim' => '/'
46928             },
46929             'Parse::RecDescent::Token'
46930             )
46931             ],
46932             'line' => undef
46933             },
46934             'Parse::RecDescent::Production'
46935             ),
46936             bless(
46937             {
46938             'number' => '1',
46939             'strcount' => 0,
46940             'dircount' => 0,
46941             'uncommit' => undef,
46942             'error' => undef,
46943             'patcount' => 1,
46944             'actcount' => 0,
46945             'items' => [
46946             bless(
46947             {
46948             'pattern' => 'CEILING',
46949             'hashname' => '__PATTERN1__',
46950             'description' => '/CEILING/i',
46951             'lookahead' => 0,
46952             'rdelim' => '/',
46953             'line' => 628,
46954             'mod' => 'i',
46955             'ldelim' => '/'
46956             },
46957             'Parse::RecDescent::Token'
46958             )
46959             ],
46960             'line' => 628
46961             },
46962             'Parse::RecDescent::Production'
46963             )
46964             ],
46965             'name' => '_alternation_1_of_production_7_of_rule_sysfun',
46966             'vars' => '',
46967             'line' => 628
46968             },
46969             'Parse::RecDescent::Rule'
46970             ),
46971             'prevval_expression' => bless(
46972             {
46973             'impcount' => 0,
46974             'calls' => ['sequence_name'],
46975             'changed' => 0,
46976             'opcount' => 0,
46977             'prods' => [
46978             bless(
46979             {
46980             'number' => '0',
46981             'strcount' => 0,
46982             'dircount' => 0,
46983             'uncommit' => undef,
46984             'error' => undef,
46985             'patcount' => 1,
46986             'actcount' => 0,
46987             'items' => [
46988             bless(
46989             {
46990             'pattern' => 'PREVVAL\\s+FOR',
46991             'hashname' => '__PATTERN1__',
46992             'description' => '/PREVVAL\\\\s+FOR/i',
46993             'lookahead' => 0,
46994             'rdelim' => '/',
46995             'line' => 613,
46996             'mod' => 'i',
46997             'ldelim' => '/'
46998             },
46999             'Parse::RecDescent::Token'
47000             ),
47001             bless(
47002             {
47003             'subrule' => 'sequence_name',
47004             'matchrule' => 0,
47005             'implicit' => undef,
47006             'argcode' => undef,
47007             'lookahead' => 0,
47008             'line' => 613
47009             },
47010             'Parse::RecDescent::Subrule'
47011             )
47012             ],
47013             'line' => undef
47014             },
47015             'Parse::RecDescent::Production'
47016             )
47017             ],
47018             'name' => 'prevval_expression',
47019             'vars' => '',
47020             'line' => 613
47021             },
47022             'Parse::RecDescent::Rule'
47023             ),
47024             'where_clause' => bless(
47025             {
47026             'impcount' => 0,
47027             'calls' => [
47028             'WHERE',
47029             'search_condition'
47030             ],
47031             'changed' => 0,
47032             'opcount' => 0,
47033             'prods' => [
47034             bless(
47035             {
47036             'number' => '0',
47037             'strcount' => 0,
47038             'dircount' => 0,
47039             'uncommit' => undef,
47040             'error' => undef,
47041             'patcount' => 0,
47042             'actcount' => 0,
47043             'items' => [
47044             bless(
47045             {
47046             'subrule' => 'WHERE',
47047             'matchrule' => 0,
47048             'implicit' => undef,
47049             'argcode' => undef,
47050             'lookahead' => 0,
47051             'line' => 218
47052             },
47053             'Parse::RecDescent::Subrule'
47054             ),
47055             bless(
47056             {
47057             'subrule' => 'search_condition',
47058             'matchrule' => 0,
47059             'implicit' => undef,
47060             'argcode' => undef,
47061             'lookahead' => 0,
47062             'line' => 218
47063             },
47064             'Parse::RecDescent::Subrule'
47065             )
47066             ],
47067             'line' => undef
47068             },
47069             'Parse::RecDescent::Production'
47070             )
47071             ],
47072             'name' => 'where_clause',
47073             'vars' => '',
47074             'line' => 216
47075             },
47076             'Parse::RecDescent::Rule'
47077             ),
47078             'group_start' => bless(
47079             {
47080             'impcount' => 0,
47081             'calls' => ['unsigned_constant'],
47082             'changed' => 0,
47083             'opcount' => 0,
47084             'prods' => [
47085             bless(
47086             {
47087             'number' => '0',
47088             'strcount' => 0,
47089             'dircount' => 0,
47090             'uncommit' => undef,
47091             'error' => undef,
47092             'patcount' => 1,
47093             'actcount' => 0,
47094             'items' => [
47095             bless(
47096             {
47097             'pattern' => 'UNBOUNDED\\s+PRECEDING',
47098             'hashname' => '__PATTERN1__',
47099             'description' => '/UNBOUNDED\\\\s+PRECEDING/i',
47100             'lookahead' => 0,
47101             'rdelim' => '/',
47102             'line' => 574,
47103             'mod' => 'i',
47104             'ldelim' => '/'
47105             },
47106             'Parse::RecDescent::Token'
47107             )
47108             ],
47109             'line' => undef
47110             },
47111             'Parse::RecDescent::Production'
47112             ),
47113             bless(
47114             {
47115             'number' => '1',
47116             'strcount' => 0,
47117             'dircount' => 0,
47118             'uncommit' => undef,
47119             'error' => undef,
47120             'patcount' => 1,
47121             'actcount' => 0,
47122             'items' => [
47123             bless(
47124             {
47125             'subrule' => 'unsigned_constant',
47126             'matchrule' => 0,
47127             'implicit' => undef,
47128             'argcode' => undef,
47129             'lookahead' => 0,
47130             'line' => 575
47131             },
47132             'Parse::RecDescent::Subrule'
47133             ),
47134             bless(
47135             {
47136             'pattern' => 'PRECEDING',
47137             'hashname' => '__PATTERN1__',
47138             'description' => '/PRECEDING/i',
47139             'lookahead' => 0,
47140             'rdelim' => '/',
47141             'line' => 575,
47142             'mod' => 'i',
47143             'ldelim' => '/'
47144             },
47145             'Parse::RecDescent::Token'
47146             )
47147             ],
47148             'line' => 575
47149             },
47150             'Parse::RecDescent::Production'
47151             ),
47152             bless(
47153             {
47154             'number' => '2',
47155             'strcount' => 0,
47156             'dircount' => 0,
47157             'uncommit' => undef,
47158             'error' => undef,
47159             'patcount' => 1,
47160             'actcount' => 0,
47161             'items' => [
47162             bless(
47163             {
47164             'pattern' => 'CURRENT\\s+ROW',
47165             'hashname' => '__PATTERN1__',
47166             'description' => '/CURRENT\\\\s+ROW/i',
47167             'lookahead' => 0,
47168             'rdelim' => '/',
47169             'line' => 576,
47170             'mod' => 'i',
47171             'ldelim' => '/'
47172             },
47173             'Parse::RecDescent::Token'
47174             )
47175             ],
47176             'line' => 576
47177             },
47178             'Parse::RecDescent::Production'
47179             )
47180             ],
47181             'name' => 'group_start',
47182             'vars' => '',
47183             'line' => 574
47184             },
47185             'Parse::RecDescent::Rule'
47186             ),
47187             'correlation_name' => bless(
47188             {
47189             'impcount' => 0,
47190             'calls' => ['NAME'],
47191             'changed' => 0,
47192             'opcount' => 0,
47193             'prods' => [
47194             bless(
47195             {
47196             'number' => '0',
47197             'strcount' => 0,
47198             'dircount' => 0,
47199             'uncommit' => undef,
47200             'error' => undef,
47201             'patcount' => 0,
47202             'actcount' => 0,
47203             'items' => [
47204             bless(
47205             {
47206             'subrule' => 'NAME',
47207             'matchrule' => 0,
47208             'implicit' => undef,
47209             'argcode' => undef,
47210             'lookahead' => 0,
47211             'line' => 138
47212             },
47213             'Parse::RecDescent::Subrule'
47214             )
47215             ],
47216             'line' => undef
47217             },
47218             'Parse::RecDescent::Production'
47219             )
47220             ],
47221             'name' => 'correlation_name',
47222             'vars' => '',
47223             'line' => 138
47224             },
47225             'Parse::RecDescent::Rule'
47226             ),
47227             'SQL_procedure_statement' => bless(
47228             {
47229             'impcount' => 0,
47230             'calls' => [],
47231             'changed' => 0,
47232             'opcount' => 0,
47233             'prods' => [
47234             bless(
47235             {
47236             'number' => '0',
47237             'strcount' => 0,
47238             'dircount' => 0,
47239             'uncommit' => undef,
47240             'error' => undef,
47241             'patcount' => 2,
47242             'actcount' => 1,
47243             'items' => [
47244             bless(
47245             {
47246             'pattern' => '[^;]*',
47247             'hashname' => '__PATTERN1__',
47248             'description' => '/[^;]*/',
47249             'lookahead' => 0,
47250             'rdelim' => '/',
47251             'line' => 94,
47252             'mod' => '',
47253             'ldelim' => '/'
47254             },
47255             'Parse::RecDescent::Token'
47256             ),
47257             bless(
47258             {
47259             'pattern' => '(;|\\z)',
47260             'hashname' => '__PATTERN2__',
47261             'description' => '/(;|\\\\z)/',
47262             'lookahead' => 0,
47263             'rdelim' => '/',
47264             'line' => 94,
47265             'mod' => '',
47266             'ldelim' => '/'
47267             },
47268             'Parse::RecDescent::Token'
47269             ),
47270             bless(
47271             {
47272             'hashname' => '__ACTION1__',
47273             'lookahead' => 0,
47274             'line' => 94,
47275             'code' => '{ $return = $item[1] . $item[2] }'
47276             },
47277             'Parse::RecDescent::Action'
47278             )
47279             ],
47280             'line' => undef
47281             },
47282             'Parse::RecDescent::Production'
47283             )
47284             ],
47285             'name' => 'SQL_procedure_statement',
47286             'vars' => '',
47287             'line' => 94
47288             },
47289             'Parse::RecDescent::Rule'
47290             ),
47291             'group_between' => bless(
47292             {
47293             'impcount' => 0,
47294             'calls' => [
47295             'group_bound1',
47296             'group_bound2'
47297             ],
47298             'changed' => 0,
47299             'opcount' => 0,
47300             'prods' => [
47301             bless(
47302             {
47303             'number' => '0',
47304             'strcount' => 0,
47305             'dircount' => 0,
47306             'uncommit' => undef,
47307             'error' => undef,
47308             'patcount' => 2,
47309             'actcount' => 0,
47310             'items' => [
47311             bless(
47312             {
47313             'pattern' => 'BETWEEN',
47314             'hashname' => '__PATTERN1__',
47315             'description' => '/BETWEEN/i',
47316             'lookahead' => 0,
47317             'rdelim' => '/',
47318             'line' => 578,
47319             'mod' => 'i',
47320             'ldelim' => '/'
47321             },
47322             'Parse::RecDescent::Token'
47323             ),
47324             bless(
47325             {
47326             'subrule' => 'group_bound1',
47327             'matchrule' => 0,
47328             'implicit' => undef,
47329             'argcode' => undef,
47330             'lookahead' => 0,
47331             'line' => 578
47332             },
47333             'Parse::RecDescent::Subrule'
47334             ),
47335             bless(
47336             {
47337             'pattern' => 'AND',
47338             'hashname' => '__PATTERN2__',
47339             'description' => '/AND/i',
47340             'lookahead' => 0,
47341             'rdelim' => '/',
47342             'line' => 578,
47343             'mod' => 'i',
47344             'ldelim' => '/'
47345             },
47346             'Parse::RecDescent::Token'
47347             ),
47348             bless(
47349             {
47350             'subrule' => 'group_bound2',
47351             'matchrule' => 0,
47352             'implicit' => undef,
47353             'argcode' => undef,
47354             'lookahead' => 0,
47355             'line' => 578
47356             },
47357             'Parse::RecDescent::Subrule'
47358             )
47359             ],
47360             'line' => undef
47361             },
47362             'Parse::RecDescent::Production'
47363             )
47364             ],
47365             'name' => 'group_between',
47366             'vars' => '',
47367             'line' => 578
47368             },
47369             'Parse::RecDescent::Rule'
47370             ),
47371             'nextval_expression' => bless(
47372             {
47373             'impcount' => 0,
47374             'calls' => ['sequence_name'],
47375             'changed' => 0,
47376             'opcount' => 0,
47377             'prods' => [
47378             bless(
47379             {
47380             'number' => '0',
47381             'strcount' => 0,
47382             'dircount' => 0,
47383             'uncommit' => undef,
47384             'error' => undef,
47385             'patcount' => 1,
47386             'actcount' => 0,
47387             'items' => [
47388             bless(
47389             {
47390             'pattern' => 'NEXTVAL\\s+FOR',
47391             'hashname' => '__PATTERN1__',
47392             'description' => '/NEXTVAL\\\\s+FOR/i',
47393             'lookahead' => 0,
47394             'rdelim' => '/',
47395             'line' => 611,
47396             'mod' => 'i',
47397             'ldelim' => '/'
47398             },
47399             'Parse::RecDescent::Token'
47400             ),
47401             bless(
47402             {
47403             'subrule' => 'sequence_name',
47404             'matchrule' => 0,
47405             'implicit' => undef,
47406             'argcode' => undef,
47407             'lookahead' => 0,
47408             'line' => 611
47409             },
47410             'Parse::RecDescent::Subrule'
47411             )
47412             ],
47413             'line' => undef
47414             },
47415             'Parse::RecDescent::Production'
47416             )
47417             ],
47418             'name' => 'nextval_expression',
47419             'vars' => '',
47420             'line' => 611
47421             },
47422             'Parse::RecDescent::Rule'
47423             ),
47424             'desc_option' => bless(
47425             {
47426             'impcount' => 1,
47427             'calls' => ['_alternation_1_of_production_1_of_rule_desc_option'],
47428             'changed' => 0,
47429             'opcount' => 0,
47430             'prods' => [
47431             bless(
47432             {
47433             'number' => '0',
47434             'strcount' => 0,
47435             'dircount' => 0,
47436             'uncommit' => undef,
47437             'error' => undef,
47438             'patcount' => 1,
47439             'actcount' => 0,
47440             'items' => [
47441             bless(
47442             {
47443             'pattern' => 'DESC',
47444             'hashname' => '__PATTERN1__',
47445             'description' => '/DESC/i',
47446             'lookahead' => 0,
47447             'rdelim' => '/',
47448             'line' => 564,
47449             'mod' => 'i',
47450             'ldelim' => '/'
47451             },
47452             'Parse::RecDescent::Token'
47453             ),
47454             bless(
47455             {
47456             'subrule' => '_alternation_1_of_production_1_of_rule_desc_option',
47457             'expected' => '/NULLS\\\\s+FIRST/i, or /NULLS\\\\s+LAST/i',
47458             'min' => 0,
47459             'argcode' => undef,
47460             'max' => 1,
47461             'matchrule' => 0,
47462             'repspec' => '?',
47463             'lookahead' => 0,
47464             'line' => 564
47465             },
47466             'Parse::RecDescent::Repetition'
47467             )
47468             ],
47469             'line' => undef
47470             },
47471             'Parse::RecDescent::Production'
47472             )
47473             ],
47474             'name' => 'desc_option',
47475             'vars' => '',
47476             'line' => 564
47477             },
47478             'Parse::RecDescent::Rule'
47479             ),
47480             'column_list' => bless(
47481             {
47482             'impcount' => 0,
47483             'calls' => ['column_name'],
47484             'changed' => 0,
47485             'opcount' => 0,
47486             'prods' => [
47487             bless(
47488             {
47489             'number' => '0',
47490             'strcount' => 2,
47491             'dircount' => 1,
47492             'uncommit' => undef,
47493             'error' => undef,
47494             'patcount' => 1,
47495             'actcount' => 1,
47496             'op' => [],
47497             'items' => [
47498             bless(
47499             {
47500             'pattern' => '(',
47501             'hashname' => '__STRING1__',
47502             'description' => '\'(\'',
47503             'lookahead' => 0,
47504             'line' => 96
47505             },
47506             'Parse::RecDescent::Literal'
47507             ),
47508             bless(
47509             {
47510             'expected' => '',
47511             'min' => 1,
47512             'name' => '\'column_name(s)\'',
47513             'max' => 100000000,
47514             'leftarg' => bless(
47515             {
47516             'subrule' => 'column_name',
47517             'matchrule' => 0,
47518             'implicit' => undef,
47519             'argcode' => undef,
47520             'lookahead' => 0,
47521             'line' => 96
47522             },
47523             'Parse::RecDescent::Subrule'
47524             ),
47525             'rightarg' => bless(
47526             {
47527             'subrule' => 'column_name',
47528             'matchrule' => 0,
47529             'implicit' => undef,
47530             'argcode' => undef,
47531             'lookahead' => 0,
47532             'line' => 96
47533             },
47534             'Parse::RecDescent::Subrule'
47535             ),
47536             'hashname' => '__DIRECTIVE1__',
47537             'type' => 'leftop',
47538             'op' => bless(
47539             {
47540             'pattern' => ',',
47541             'hashname' => '__PATTERN1__',
47542             'description' => '/,/',
47543             'lookahead' => 0,
47544             'rdelim' => '/',
47545             'line' => 96,
47546             'mod' => '',
47547             'ldelim' => '/'
47548             },
47549             'Parse::RecDescent::Token'
47550             )
47551             },
47552             'Parse::RecDescent::Operator'
47553             ),
47554             bless(
47555             {
47556             'pattern' => ')',
47557             'hashname' => '__STRING2__',
47558             'description' => '\')\'',
47559             'lookahead' => 0,
47560             'line' => 96
47561             },
47562             'Parse::RecDescent::Literal'
47563             ),
47564             bless(
47565             {
47566             'hashname' => '__ACTION1__',
47567             'lookahead' => 0,
47568             'line' => 97,
47569             'code' => '{
47570             $return = join(\' \', \'(\', @{$item[2]}, \')\');
47571             }'
47572             },
47573             'Parse::RecDescent::Action'
47574             )
47575             ],
47576             'line' => undef
47577             },
47578             'Parse::RecDescent::Production'
47579             )
47580             ],
47581             'name' => 'column_list',
47582             'vars' => '',
47583             'line' => 96
47584             },
47585             'Parse::RecDescent::Rule'
47586             ),
47587             '_alternation_1_of_production_63_of_rule_sysibm_function' => bless(
47588             {
47589             'impcount' => 0,
47590             'calls' => [],
47591             'changed' => 0,
47592             'opcount' => 0,
47593             'prods' => [
47594             bless(
47595             {
47596             'number' => '0',
47597             'strcount' => 0,
47598             'dircount' => 0,
47599             'uncommit' => undef,
47600             'error' => undef,
47601             'patcount' => 1,
47602             'actcount' => 0,
47603             'items' => [
47604             bless(
47605             {
47606             'pattern' => 'REGR_INTERCEPT',
47607             'hashname' => '__PATTERN1__',
47608             'description' => '/REGR_INTERCEPT/i',
47609             'lookahead' => 0,
47610             'rdelim' => '/',
47611             'line' => 628,
47612             'mod' => 'i',
47613             'ldelim' => '/'
47614             },
47615             'Parse::RecDescent::Token'
47616             )
47617             ],
47618             'line' => undef
47619             },
47620             'Parse::RecDescent::Production'
47621             ),
47622             bless(
47623             {
47624             'number' => '1',
47625             'strcount' => 0,
47626             'dircount' => 0,
47627             'uncommit' => undef,
47628             'error' => undef,
47629             'patcount' => 1,
47630             'actcount' => 0,
47631             'items' => [
47632             bless(
47633             {
47634             'pattern' => 'REGR_ICPT',
47635             'hashname' => '__PATTERN1__',
47636             'description' => '/REGR_ICPT/i',
47637             'lookahead' => 0,
47638             'rdelim' => '/',
47639             'line' => 628,
47640             'mod' => 'i',
47641             'ldelim' => '/'
47642             },
47643             'Parse::RecDescent::Token'
47644             )
47645             ],
47646             'line' => 628
47647             },
47648             'Parse::RecDescent::Production'
47649             )
47650             ],
47651             'name' => '_alternation_1_of_production_63_of_rule_sysibm_function',
47652             'vars' => '',
47653             'line' => 628
47654             },
47655             'Parse::RecDescent::Rule'
47656             ),
47657             'dereference_operation' => bless(
47658             {
47659             'impcount' => 1,
47660             'calls' => [
47661             'scoped_reference_expression',
47662             'name1',
47663             '_alternation_1_of_production_1_of_rule_dereference_operation'
47664             ],
47665             'changed' => 0,
47666             'opcount' => 0,
47667             'prods' => [
47668             bless(
47669             {
47670             'number' => '0',
47671             'strcount' => 1,
47672             'dircount' => 0,
47673             'uncommit' => undef,
47674             'error' => undef,
47675             'patcount' => 0,
47676             'actcount' => 0,
47677             'items' => [
47678             bless(
47679             {
47680             'subrule' => 'scoped_reference_expression',
47681             'matchrule' => 0,
47682             'implicit' => undef,
47683             'argcode' => undef,
47684             'lookahead' => 0,
47685             'line' => 526
47686             },
47687             'Parse::RecDescent::Subrule'
47688             ),
47689             bless(
47690             {
47691             'pattern' => '->',
47692             'hashname' => '__STRING1__',
47693             'description' => '\'->\'',
47694             'lookahead' => 0,
47695             'line' => 526
47696             },
47697             'Parse::RecDescent::Literal'
47698             ),
47699             bless(
47700             {
47701             'subrule' => 'name1',
47702             'matchrule' => 0,
47703             'implicit' => undef,
47704             'argcode' => undef,
47705             'lookahead' => 0,
47706             'line' => 526
47707             },
47708             'Parse::RecDescent::Subrule'
47709             ),
47710             bless(
47711             {
47712             'subrule' => '_alternation_1_of_production_1_of_rule_dereference_operation',
47713             'expected' => '\'(\'',
47714             'min' => 0,
47715             'argcode' => undef,
47716             'max' => 1,
47717             'matchrule' => 0,
47718             'repspec' => '?',
47719             'lookahead' => 0,
47720             'line' => 527
47721             },
47722             'Parse::RecDescent::Repetition'
47723             )
47724             ],
47725             'line' => undef
47726             },
47727             'Parse::RecDescent::Production'
47728             )
47729             ],
47730             'name' => 'dereference_operation',
47731             'vars' => '',
47732             'line' => 526
47733             },
47734             'Parse::RecDescent::Rule'
47735             ),
47736             'OUTER' => bless(
47737             {
47738             'impcount' => 0,
47739             'calls' => [],
47740             'changed' => 0,
47741             'opcount' => 0,
47742             'prods' => [
47743             bless(
47744             {
47745             'number' => '0',
47746             'strcount' => 0,
47747             'dircount' => 0,
47748             'uncommit' => undef,
47749             'error' => undef,
47750             'patcount' => 1,
47751             'actcount' => 0,
47752             'items' => [
47753             bless(
47754             {
47755             'pattern' => 'outer',
47756             'hashname' => '__PATTERN1__',
47757             'description' => '/outer/i',
47758             'lookahead' => 0,
47759             'rdelim' => '/',
47760             'line' => 115,
47761             'mod' => 'i',
47762             'ldelim' => '/'
47763             },
47764             'Parse::RecDescent::Token'
47765             )
47766             ],
47767             'line' => undef
47768             },
47769             'Parse::RecDescent::Production'
47770             )
47771             ],
47772             'name' => 'OUTER',
47773             'vars' => '',
47774             'line' => 115
47775             },
47776             'Parse::RecDescent::Rule'
47777             ),
47778             'window_order_clause' => bless(
47779             {
47780             'impcount' => 1,
47781             'calls' => ['_alternation_1_of_production_1_of_rule_window_order_clause'],
47782             'changed' => 0,
47783             'opcount' => 0,
47784             'prods' => [
47785             bless(
47786             {
47787             'number' => '0',
47788             'strcount' => 0,
47789             'dircount' => 1,
47790             'uncommit' => undef,
47791             'error' => undef,
47792             'patcount' => 2,
47793             'actcount' => 0,
47794             'op' => [],
47795             'items' => [
47796             bless(
47797             {
47798             'pattern' => 'ORDER\\s+BY',
47799             'hashname' => '__PATTERN1__',
47800             'description' => '/ORDER\\\\s+BY/i',
47801             'lookahead' => 0,
47802             'rdelim' => '/',
47803             'line' => 555,
47804             'mod' => 'i',
47805             'ldelim' => '/'
47806             },
47807             'Parse::RecDescent::Token'
47808             ),
47809             bless(
47810             {
47811             'expected' => '',
47812             'min' => 1,
47813             'name' => '\'_alternation_1_of_production_1_of_rule_window_order_clause(s)\'',
47814             'max' => 100000000,
47815             'leftarg' => bless(
47816             {
47817             'subrule' => '_alternation_1_of_production_1_of_rule_window_order_clause',
47818             'matchrule' => 0,
47819             'implicit' => 'sort_key_expression',
47820             'argcode' => undef,
47821             'lookahead' => 0,
47822             'line' => 560
47823             },
47824             'Parse::RecDescent::Subrule'
47825             ),
47826             'rightarg' => bless(
47827             {
47828             'subrule' => '_alternation_1_of_production_1_of_rule_window_order_clause',
47829             'matchrule' => 0,
47830             'implicit' => 'sort_key_expression',
47831             'argcode' => undef,
47832             'lookahead' => 0,
47833             'line' => 560
47834             },
47835             'Parse::RecDescent::Subrule'
47836             ),
47837             'hashname' => '__DIRECTIVE1__',
47838             'type' => 'leftop',
47839             'op' => bless(
47840             {
47841             'pattern' => ',',
47842             'hashname' => '__PATTERN2__',
47843             'description' => '/,/',
47844             'lookahead' => 0,
47845             'rdelim' => '/',
47846             'line' => 560,
47847             'mod' => '',
47848             'ldelim' => '/'
47849             },
47850             'Parse::RecDescent::Token'
47851             )
47852             },
47853             'Parse::RecDescent::Operator'
47854             )
47855             ],
47856             'line' => undef
47857             },
47858             'Parse::RecDescent::Production'
47859             )
47860             ],
47861             'name' => 'window_order_clause',
47862             'vars' => '',
47863             'line' => 555
47864             },
47865             'Parse::RecDescent::Rule'
47866             ),
47867             'TRIGGER' => bless(
47868             {
47869             'impcount' => 0,
47870             'calls' => [],
47871             'changed' => 0,
47872             'opcount' => 0,
47873             'prods' => [
47874             bless(
47875             {
47876             'number' => '0',
47877             'strcount' => 0,
47878             'dircount' => 0,
47879             'uncommit' => undef,
47880             'error' => undef,
47881             'patcount' => 1,
47882             'actcount' => 0,
47883             'items' => [
47884             bless(
47885             {
47886             'pattern' => 'trigger',
47887             'hashname' => '__PATTERN1__',
47888             'description' => '/trigger/i',
47889             'lookahead' => 0,
47890             'rdelim' => '/',
47891             'line' => 103,
47892             'mod' => 'i',
47893             'ldelim' => '/'
47894             },
47895             'Parse::RecDescent::Token'
47896             )
47897             ],
47898             'line' => undef
47899             },
47900             'Parse::RecDescent::Production'
47901             )
47902             ],
47903             'name' => 'TRIGGER',
47904             'vars' => '',
47905             'line' => 103
47906             },
47907             'Parse::RecDescent::Rule'
47908             ),
47909             'comment' => bless(
47910             {
47911             'impcount' => 0,
47912             'calls' => [],
47913             'changed' => 0,
47914             'opcount' => 0,
47915             'prods' => [
47916             bless(
47917             {
47918             'number' => '0',
47919             'strcount' => 0,
47920             'dircount' => 0,
47921             'uncommit' => undef,
47922             'error' => undef,
47923             'patcount' => 1,
47924             'actcount' => 1,
47925             'items' => [
47926             bless(
47927             {
47928             'pattern' => '^\\s*-{2}.*\\n',
47929             'hashname' => '__PATTERN1__',
47930             'description' => '/^\\\\s*-\\{2\\}.*\\\\n/',
47931             'lookahead' => 0,
47932             'rdelim' => '/',
47933             'line' => 27,
47934             'mod' => '',
47935             'ldelim' => '/'
47936             },
47937             'Parse::RecDescent::Token'
47938             ),
47939             bless(
47940             {
47941             'hashname' => '__ACTION1__',
47942             'lookahead' => 0,
47943             'line' => 28,
47944             'code' => '{
47945             my $comment = $item[1];
47946             $comment =~ s/^\\s*(-{2})\\s*//;
47947             $comment =~ s/\\s*$//;
47948             $return = $comment;
47949             }'
47950             },
47951             'Parse::RecDescent::Action'
47952             )
47953             ],
47954             'line' => undef
47955             },
47956             'Parse::RecDescent::Production'
47957             )
47958             ],
47959             'name' => 'comment',
47960             'vars' => '',
47961             'line' => 27
47962             },
47963             'Parse::RecDescent::Rule'
47964             )
47965             }
47966             },
47967             'Parse::RecDescent'
47968             );
47969             }