File Coverage

blib/lib/File/System/Globber.pm
Criterion Covered Total %
statement 849 976 86.9
branch 254 544 46.6
condition 76 155 49.0
subroutine 39 40 97.5
pod 0 1 0.0
total 1218 1716 70.9


line stmt bran cond sub pod time code
1             package File::System::Globber;
2 8     8   16106 use Parse::RecDescent;
  8         469303  
  8         75  
3             { my $ERRORS;
4              
5              
6             package Parse::RecDescent::File::System::Globber;
7 8     8   617 use strict;
  8         17  
  8         304  
8 8     8   42 use vars qw($skip $AUTOLOAD );
  8         14  
  8         871  
9             @Parse::RecDescent::File::System::Globber::ISA = ();
10             $skip = '\s*';
11              
12              
13             {
14             local $SIG{__WARN__} = sub {0};
15             # PRETEND TO BE IN Parse::RecDescent NAMESPACE
16             *Parse::RecDescent::File::System::Globber::AUTOLOAD = sub
17             {
18 8     8   41 no strict 'refs';
  8         17  
  8         887  
19              
20 0     0   0 ${"AUTOLOAD"} =~ s/^Parse::RecDescent::File::System::Globber/Parse::RecDescent/;
  0         0  
21 0         0 goto &{${"AUTOLOAD"}};
  0         0  
  0         0  
22             }
23             }
24              
25             push @Parse::RecDescent::File::System::Globber::ISA, 'Parse::RecDescent';
26             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args, $_itempos)
27             sub Parse::RecDescent::File::System::Globber::glob
28             {
29 18229     18229   1135138 my $thisparser = $_[0];
30 8     8   63 use vars q{$tracelevel};
  8         16  
  8         12865  
31 18229   50     90586 local $tracelevel = ($tracelevel||0)+1;
32 18229         26646 $ERRORS = 0;
33 18229         50745 my $thisrule = $thisparser->{"rules"}{"glob"};
34              
35 18229 50       50201 Parse::RecDescent::_trace(q{Trying rule: [glob]},
36             Parse::RecDescent::_tracefirst($_[1]),
37             q{glob},
38             $tracelevel)
39             if defined $::RD_TRACE;
40              
41            
42 18229         19820 my $err_at = @{$thisparser->{errors}};
  18229         36532  
43              
44 18229         27371 my $score;
45             my $score_return;
46 0         0 my $_tok;
47 18229         23668 my $return = undef;
48 18229         20082 my $_matched=0;
49 18229         24105 my $commit=0;
50 18229         60215 my @item = ();
51 18229         28545 my %item = ();
52 18229         26545 my $repeating = $_[2];
53 18229         25022 my $_noactions = $_[3];
54 18229 50       72737 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  18229         21035  
  18229         102277  
55 18229         93728 my $_itempos = $_[5];
56 18229 50       70820 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
57 18229         24744 my $text;
58             my $lastsep;
59 0         0 my $current_match;
60 18229         69490 my $expectation = new Parse::RecDescent::Expectation(q{match});
61 18229         169724 $expectation->at($_[1]);
62            
63 18229         86725 my $thisline;
64 18229         104217 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
65              
66            
67              
68 18229   33     214534 while (!$_matched && !$commit)
69             {
70            
71 18229 50       39668 Parse::RecDescent::_trace(q{Trying production: [match]},
72             Parse::RecDescent::_tracefirst($_[1]),
73             q{glob},
74             $tracelevel)
75             if defined $::RD_TRACE;
76 18229         46930 my $thisprod = $thisrule->{"prods"}[0];
77 18229         32827 $text = $_[1];
78 18229         38564 my $_savetext;
79 18229         34755 @item = (q{glob});
80 18229         47921 %item = (__RULE__ => q{glob});
81 18229         24096 my $repcount = 0;
82              
83              
84 18229 50       41030 Parse::RecDescent::_trace(q{Trying repeated subrule: [match]},
85             Parse::RecDescent::_tracefirst($text),
86             q{glob},
87             $tracelevel)
88             if defined $::RD_TRACE;
89 18229         54115 $expectation->is(q{})->at($text);
90            
91 18229 50   82138   254795 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::File::System::Globber::match, 1, 100000000, $_noactions,$expectation,sub { \@arg },undef)))
  82138         178740  
92             {
93 0 0       0 Parse::RecDescent::_trace(q{<>},
94             Parse::RecDescent::_tracefirst($text),
95             q{glob},
96             $tracelevel)
97             if defined $::RD_TRACE;
98 0         0 last;
99             }
100 18229 50       313995 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [match]<< (}
101             . @$_tok . q{ times)},
102              
103             Parse::RecDescent::_tracefirst($text),
104             q{glob},
105             $tracelevel)
106             if defined $::RD_TRACE;
107 18229         62585 $item{q{match(s)}} = $_tok;
108 18229         37347 push @item, $_tok;
109            
110              
111              
112 18229 50       43922 Parse::RecDescent::_trace(q{>>Matched production: [match]<<},
113             Parse::RecDescent::_tracefirst($text),
114             q{glob},
115             $tracelevel)
116             if defined $::RD_TRACE;
117              
118              
119              
120 18229         33933 $_matched = 1;
121 18229         37724 last;
122             }
123              
124              
125 18229 50 33     55307 unless ( $_matched || defined($score) )
126             {
127            
128              
129 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
130 0 0       0 Parse::RecDescent::_trace(q{<>},
131             Parse::RecDescent::_tracefirst($_[1]),
132             q{glob},
133             $tracelevel)
134             if defined $::RD_TRACE;
135 0         0 return undef;
136             }
137 18229 50 33     105608 if (!defined($return) && defined($score))
138             {
139 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
140             q{glob},
141             $tracelevel)
142             if defined $::RD_TRACE;
143 0         0 $return = $score_return;
144             }
145 18229         23506 splice @{$thisparser->{errors}}, $err_at;
  18229         45348  
146 18229 50       56850 $return = $item[$#item] unless defined $return;
147 18229 50       41834 if (defined $::RD_TRACE)
148             {
149 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
150             $return . q{])}, "",
151             q{glob},
152             $tracelevel);
153 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
154             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
155             Parse::RecDescent::_tracefirst($text),
156             , q{glob},
157             $tracelevel)
158             }
159 18229         38633 $_[1] = $text;
160 18229         217096 return $return;
161             }
162              
163             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args, $_itempos)
164             sub Parse::RecDescent::File::System::Globber::match_collection
165             {
166 75398     75398   114652 my $thisparser = $_[0];
167 8     8   64 use vars q{$tracelevel};
  8         17  
  8         13927  
168 75398   50     211712 local $tracelevel = ($tracelevel||0)+1;
169 75398         82386 $ERRORS = 0;
170 75398         142191 my $thisrule = $thisparser->{"rules"}{"match_collection"};
171              
172 75398 50       148563 Parse::RecDescent::_trace(q{Trying rule: [match_collection]},
173             Parse::RecDescent::_tracefirst($_[1]),
174             q{match_collection},
175             $tracelevel)
176             if defined $::RD_TRACE;
177              
178            
179 75398         81900 my $err_at = @{$thisparser->{errors}};
  75398         130505  
180              
181 75398         96671 my $score;
182             my $score_return;
183 0         0 my $_tok;
184 75398         86849 my $return = undef;
185 75398         112940 my $_matched=0;
186 75398         81956 my $commit=0;
187 75398         107767 my @item = ();
188 75398         105091 my %item = ();
189 75398         85385 my $repeating = $_[2];
190 75398         83466 my $_noactions = $_[3];
191 75398 50       172459 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  75398         89453  
  75398         139747  
192 75398         111853 my $_itempos = $_[5];
193 75398 50       191447 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
194 75398         97329 my $text;
195             my $lastsep;
196 0         0 my $current_match;
197 75398         260133 my $expectation = new Parse::RecDescent::Expectation(q{'['});
198 75398         687330 $expectation->at($_[1]);
199            
200 75398         320321 my $thisline;
201 75398         355678 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
202              
203            
204              
205 75398   33     763326 while (!$_matched && !$commit)
206             {
207            
208 75398 50       150733 Parse::RecDescent::_trace(q{Trying production: ['[' match_class ']']},
209             Parse::RecDescent::_tracefirst($_[1]),
210             q{match_collection},
211             $tracelevel)
212             if defined $::RD_TRACE;
213 75398         159504 my $thisprod = $thisrule->{"prods"}[0];
214 75398         118708 $text = $_[1];
215 75398         81294 my $_savetext;
216 75398         129885 @item = (q{match_collection});
217 75398         140255 %item = (__RULE__ => q{match_collection});
218 75398         90490 my $repcount = 0;
219              
220              
221 75398 50       156579 Parse::RecDescent::_trace(q{Trying terminal: ['[']},
222             Parse::RecDescent::_tracefirst($text),
223             q{match_collection},
224             $tracelevel)
225             if defined $::RD_TRACE;
226 75398         103322 undef $lastsep;
227 75398         221355 $expectation->is(q{})->at($text);
228            
229              
230 75398 50 66     851032 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\[/)
  75398 100       5762466  
231             {
232 75394 50       1730743 $text = $lastsep . $text if defined $lastsep;
233            
234 75394         286641 $expectation->failed();
235 75394 50       331429 Parse::RecDescent::_trace(qq{<>},
236             Parse::RecDescent::_tracefirst($text))
237             if defined $::RD_TRACE;
238 75394         157314 last;
239             }
240 4         24 $current_match = substr($text, $-[0], $+[0] - $-[0]);
241 4         16 substr($text,0,length($current_match),q{});
242 4 50       9 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
243             . $current_match . q{])},
244             Parse::RecDescent::_tracefirst($text))
245             if defined $::RD_TRACE;
246 4         11 push @item, $item{__STRING1__}=$current_match;
247            
248              
249 4 50       11 Parse::RecDescent::_trace(q{Trying repeated subrule: [match_class]},
250             Parse::RecDescent::_tracefirst($text),
251             q{match_collection},
252             $tracelevel)
253             if defined $::RD_TRACE;
254 4         13 $expectation->is(q{match_class})->at($text);
255            
256 4 50   12   52 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::File::System::Globber::match_class, 1, 100000000, $_noactions,$expectation,sub { \@arg },undef)))
  12         26  
257             {
258 0 0       0 Parse::RecDescent::_trace(q{<>},
259             Parse::RecDescent::_tracefirst($text),
260             q{match_collection},
261             $tracelevel)
262             if defined $::RD_TRACE;
263 0         0 last;
264             }
265 4 50       55 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [match_class]<< (}
266             . @$_tok . q{ times)},
267              
268             Parse::RecDescent::_tracefirst($text),
269             q{match_collection},
270             $tracelevel)
271             if defined $::RD_TRACE;
272 4         9 $item{q{match_class(s)}} = $_tok;
273 4         6 push @item, $_tok;
274            
275              
276              
277 4 50       9 Parse::RecDescent::_trace(q{Trying terminal: [']']},
278             Parse::RecDescent::_tracefirst($text),
279             q{match_collection},
280             $tracelevel)
281             if defined $::RD_TRACE;
282 4         5 undef $lastsep;
283 4         14 $expectation->is(q{']'})->at($text);
284            
285              
286 4 50 33     59 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\]/)
  4 50       47  
287             {
288 0 0       0 $text = $lastsep . $text if defined $lastsep;
289            
290 0         0 $expectation->failed();
291 0 0       0 Parse::RecDescent::_trace(qq{<>},
292             Parse::RecDescent::_tracefirst($text))
293             if defined $::RD_TRACE;
294 0         0 last;
295             }
296 4         23 $current_match = substr($text, $-[0], $+[0] - $-[0]);
297 4         14 substr($text,0,length($current_match),q{});
298 4 50       9 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
299             . $current_match . q{])},
300             Parse::RecDescent::_tracefirst($text))
301             if defined $::RD_TRACE;
302 4         13 push @item, $item{__STRING2__}=$current_match;
303            
304              
305 4 50       10 Parse::RecDescent::_trace(q{Trying action},
306             Parse::RecDescent::_tracefirst($text),
307             q{match_collection},
308             $tracelevel)
309             if defined $::RD_TRACE;
310            
311              
312 4 50       7 $_tok = ($_noactions) ? 0 : do { $return = bless { classes => $item[2] }, 'File::System::Glob::MatchCollection' };
  4         65  
313 4 50       14 unless (defined $_tok)
314             {
315 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
316             if defined $::RD_TRACE;
317 0         0 last;
318             }
319 4 50       9 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
320             . $_tok . q{])},
321             Parse::RecDescent::_tracefirst($text))
322             if defined $::RD_TRACE;
323 4         6 push @item, $_tok;
324 4         10 $item{__ACTION1__}=$_tok;
325            
326              
327 4 50       9 Parse::RecDescent::_trace(q{>>Matched production: ['[' match_class ']']<<},
328             Parse::RecDescent::_tracefirst($text),
329             q{match_collection},
330             $tracelevel)
331             if defined $::RD_TRACE;
332              
333              
334              
335 4         6 $_matched = 1;
336 4         8 last;
337             }
338              
339              
340 75398 100 66     376603 unless ( $_matched || defined($score) )
341             {
342            
343              
344 75394         128961 $_[1] = $text; # NOT SURE THIS IS NEEDED
345 75394 50       175998 Parse::RecDescent::_trace(q{<>},
346             Parse::RecDescent::_tracefirst($_[1]),
347             q{match_collection},
348             $tracelevel)
349             if defined $::RD_TRACE;
350 75394         573092 return undef;
351             }
352 4 50 33     13 if (!defined($return) && defined($score))
353             {
354 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
355             q{match_collection},
356             $tracelevel)
357             if defined $::RD_TRACE;
358 0         0 $return = $score_return;
359             }
360 4         6 splice @{$thisparser->{errors}}, $err_at;
  4         11  
361 4 50       16 $return = $item[$#item] unless defined $return;
362 4 50       9 if (defined $::RD_TRACE)
363             {
364 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
365             $return . q{])}, "",
366             q{match_collection},
367             $tracelevel);
368 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
369             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
370             Parse::RecDescent::_tracefirst($text),
371             , q{match_collection},
372             $tracelevel)
373             }
374 4         7 $_[1] = $text;
375 4         35 return $return;
376             }
377              
378             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args, $_itempos)
379             sub Parse::RecDescent::File::System::Globber::match_alternative
380             {
381 76324     76324   106539 my $thisparser = $_[0];
382 8     8   68 use vars q{$tracelevel};
  8         14  
  8         6328  
383 76324   50     251149 local $tracelevel = ($tracelevel||0)+1;
384 76324         111851 $ERRORS = 0;
385 76324         170436 my $thisrule = $thisparser->{"rules"}{"match_alternative"};
386              
387 76324 50       165420 Parse::RecDescent::_trace(q{Trying rule: [match_alternative]},
388             Parse::RecDescent::_tracefirst($_[1]),
389             q{match_alternative},
390             $tracelevel)
391             if defined $::RD_TRACE;
392              
393            
394 76324         81890 my $err_at = @{$thisparser->{errors}};
  76324         153954  
395              
396 76324         117856 my $score;
397             my $score_return;
398 0         0 my $_tok;
399 76324         93131 my $return = undef;
400 76324         80476 my $_matched=0;
401 76324         111152 my $commit=0;
402 76324         107681 my @item = ();
403 76324         128021 my %item = ();
404 76324         89803 my $repeating = $_[2];
405 76324         82047 my $_noactions = $_[3];
406 76324 50       151009 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  76324         96749  
  76324         153905  
407 76324         115242 my $_itempos = $_[5];
408 76324 50       187817 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
409 76324         89204 my $text;
410             my $lastsep;
411 0         0 my $current_match;
412 76324         270605 my $expectation = new Parse::RecDescent::Expectation(q{'\{'});
413 76324         629877 $expectation->at($_[1]);
414            
415 76324         360186 my $thisline;
416 76324         350245 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
417              
418            
419              
420 76324   33     725645 while (!$_matched && !$commit)
421             {
422            
423 76324 50       176080 Parse::RecDescent::_trace(q{Trying production: ['\{' '\}']},
424             Parse::RecDescent::_tracefirst($_[1]),
425             q{match_alternative},
426             $tracelevel)
427             if defined $::RD_TRACE;
428 76324         143861 my $thisprod = $thisrule->{"prods"}[0];
429 76324         105766 $text = $_[1];
430 76324         89103 my $_savetext;
431 76324         143752 @item = (q{match_alternative});
432 76324         184089 %item = (__RULE__ => q{match_alternative});
433 76324         102041 my $repcount = 0;
434              
435              
436 76324 50       153340 Parse::RecDescent::_trace(q{Trying terminal: ['\{']},
437             Parse::RecDescent::_tracefirst($text),
438             q{match_alternative},
439             $tracelevel)
440             if defined $::RD_TRACE;
441 76324         101737 undef $lastsep;
442 76324         205277 $expectation->is(q{})->at($text);
443            
444              
445 76324 50 66     855754 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\{/)
  76324 100       12874999  
446             {
447 75398 50       6493452 $text = $lastsep . $text if defined $lastsep;
448            
449 75398         275398 $expectation->failed();
450 75398 50       349769 Parse::RecDescent::_trace(qq{<>},
451             Parse::RecDescent::_tracefirst($text))
452             if defined $::RD_TRACE;
453 75398         174554 last;
454             }
455 926         4925 $current_match = substr($text, $-[0], $+[0] - $-[0]);
456 926         2912 substr($text,0,length($current_match),q{});
457 926 50       2132 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
458             . $current_match . q{])},
459             Parse::RecDescent::_tracefirst($text))
460             if defined $::RD_TRACE;
461 926         2475 push @item, $item{__STRING1__}=$current_match;
462            
463              
464 926 50       2169 Parse::RecDescent::_trace(q{Trying operator: []},
465             Parse::RecDescent::_tracefirst($text),
466             q{match_alternative},
467             $tracelevel)
468             if defined $::RD_TRACE;
469 926         3097 $expectation->is(q{})->at($text);
470              
471 926         6099 $_tok = undef;
472 926         1217 OPLOOP: while (1)
473             {
474 926         1813 $repcount = 0;
475 926         1290 my @item;
476             my %item;
477              
478             # MATCH LEFTARG
479            
480 926 50       2949 Parse::RecDescent::_trace(q{Trying subrule: [match_option]},
481             Parse::RecDescent::_tracefirst($text),
482             q{match_alternative},
483             $tracelevel)
484             if defined $::RD_TRACE;
485 8     8   54 if (1) { no strict qw{refs};
  8         16  
  8         4560  
  926         1021  
486 926         2512 $expectation->is(q{match_option})->at($text);
487 926 50   926   13866 unless (defined ($_tok = Parse::RecDescent::File::System::Globber::match_option($thisparser,$text,$repeating,$_noactions,sub { \@arg },undef)))
  926         8993  
488             {
489            
490 0 0       0 Parse::RecDescent::_trace(q{<>},
491             Parse::RecDescent::_tracefirst($text),
492             q{match_alternative},
493             $tracelevel)
494             if defined $::RD_TRACE;
495 0         0 $expectation->failed();
496 0         0 last;
497             }
498 926 50       3828 Parse::RecDescent::_trace(q{>>Matched subrule: [match_option]<< (return value: [}
499             . $_tok . q{]},
500              
501             Parse::RecDescent::_tracefirst($text),
502             q{match_alternative},
503             $tracelevel)
504             if defined $::RD_TRACE;
505 926         1892 $item{q{match_option}} = $_tok;
506 926         1598 push @item, $_tok;
507            
508             }
509              
510              
511              
512 926         1089 $repcount++;
513              
514 926         1573 my $savetext = $text;
515 926         1040 my $backtrack;
516              
517             # MATCH (OP RIGHTARG)(s)
518 926         2167 while ($repcount < 100000000)
519             {
520 1854         2191 $backtrack = 0;
521            
522 1854 50       3368 Parse::RecDescent::_trace(q{Trying terminal: [/,/]}, Parse::RecDescent::_tracefirst($text),
523             q{match_alternative},
524             $tracelevel)
525             if defined $::RD_TRACE;
526 1854         3648 undef $lastsep;
527 1854         9366 $expectation->is(q{/,/})->at($text);
528            
529              
530 1854 50 66     20581 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:,)/)
  1854 100       17264  
531             {
532 926 50       2878 $text = $lastsep . $text if defined $lastsep;
533 926         3153 $expectation->failed();
534 926 50       29247 Parse::RecDescent::_trace(q{<>},
535             Parse::RecDescent::_tracefirst($text))
536             if defined $::RD_TRACE;
537              
538 926         1881 last;
539             }
540 928         4287 $current_match = substr($text, $-[0], $+[0] - $-[0]);
541 928         2491 substr($text,0,length($current_match),q{});
542 928 50       2178 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
543             . $current_match . q{])},
544             Parse::RecDescent::_tracefirst($text))
545             if defined $::RD_TRACE;
546 928         2934 push @item, $item{__PATTERN1__}=$current_match;
547            
548              
549 928         1485 pop @item;
550 928 50       2535 if (defined $1) {push @item, $item{'match_option(s)'}=$1; $backtrack=1;}
  0         0  
  0         0  
551            
552 928 50       2053 Parse::RecDescent::_trace(q{Trying subrule: [match_option]},
553             Parse::RecDescent::_tracefirst($text),
554             q{match_alternative},
555             $tracelevel)
556             if defined $::RD_TRACE;
557 8     8   61 if (1) { no strict qw{refs};
  8         24  
  8         10807  
  928         1394  
558 928         3727 $expectation->is(q{match_option})->at($text);
559 928 50   928   17447 unless (defined ($_tok = Parse::RecDescent::File::System::Globber::match_option($thisparser,$text,$repeating,$_noactions,sub { \@arg },undef)))
  928         1843  
560             {
561            
562 0 0       0 Parse::RecDescent::_trace(q{<>},
563             Parse::RecDescent::_tracefirst($text),
564             q{match_alternative},
565             $tracelevel)
566             if defined $::RD_TRACE;
567 0         0 $expectation->failed();
568 0         0 last;
569             }
570 928 50       3960 Parse::RecDescent::_trace(q{>>Matched subrule: [match_option]<< (return value: [}
571             . $_tok . q{]},
572              
573             Parse::RecDescent::_tracefirst($text),
574             q{match_alternative},
575             $tracelevel)
576             if defined $::RD_TRACE;
577 928         2354 $item{q{match_option}} = $_tok;
578 928         1705 push @item, $_tok;
579            
580             }
581              
582 928         1174 $savetext = $text;
583 928         2295 $repcount++;
584             }
585 926         2070 $text = $savetext;
586 926 50       1900 pop @item if $backtrack;
587              
588 926 50       2218 unless (@item) { undef $_tok; last }
  0         0  
  0         0  
589 926         2836 $_tok = [ @item ];
590              
591 926         2825 last;
592             } # end of OPLOOP
593              
594 926 50       2736 unless ($repcount>=1)
595             {
596 0 0       0 Parse::RecDescent::_trace(q{<]>>},
597             Parse::RecDescent::_tracefirst($text),
598             q{match_alternative},
599             $tracelevel)
600             if defined $::RD_TRACE;
601 0         0 $expectation->failed();
602 0         0 last;
603             }
604 926 50       3172 Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [}
605 0 0       0 . qq{@{$_tok||[]}} . q{]},
606             Parse::RecDescent::_tracefirst($text),
607             q{match_alternative},
608             $tracelevel)
609             if defined $::RD_TRACE;
610              
611 926   50     3286 push @item, $item{'match_option(s)'}=$_tok||[];
612              
613 926 50       1749 Parse::RecDescent::_trace(q{Trying terminal: ['\}']},
614             Parse::RecDescent::_tracefirst($text),
615             q{match_alternative},
616             $tracelevel)
617             if defined $::RD_TRACE;
618 926         1127 undef $lastsep;
619 926         3230 $expectation->is(q{'\}'})->at($text);
620            
621              
622 926 50 33     10602 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\}/)
  926 50       9668  
623             {
624 0 0       0 $text = $lastsep . $text if defined $lastsep;
625            
626 0         0 $expectation->failed();
627 0 0       0 Parse::RecDescent::_trace(qq{<>},
628             Parse::RecDescent::_tracefirst($text))
629             if defined $::RD_TRACE;
630 0         0 last;
631             }
632 926         4936 $current_match = substr($text, $-[0], $+[0] - $-[0]);
633 926         2877 substr($text,0,length($current_match),q{});
634 926 50       2299 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
635             . $current_match . q{])},
636             Parse::RecDescent::_tracefirst($text))
637             if defined $::RD_TRACE;
638 926         2729 push @item, $item{__STRING2__}=$current_match;
639            
640              
641 926 50       2116 Parse::RecDescent::_trace(q{Trying action},
642             Parse::RecDescent::_tracefirst($text),
643             q{match_alternative},
644             $tracelevel)
645             if defined $::RD_TRACE;
646            
647              
648 926 50       1739 $_tok = ($_noactions) ? 0 : do { $return = bless { alternatives => $item[2] }, 'File::System::Glob::MatchAlternative' };
  926         6474  
649 926 50       2642 unless (defined $_tok)
650             {
651 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
652             if defined $::RD_TRACE;
653 0         0 last;
654             }
655 926 50       1796 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
656             . $_tok . q{])},
657             Parse::RecDescent::_tracefirst($text))
658             if defined $::RD_TRACE;
659 926         24093 push @item, $_tok;
660 926         1583 $item{__ACTION1__}=$_tok;
661            
662              
663 926 50       3031 Parse::RecDescent::_trace(q{>>Matched production: ['\{' '\}']<<},
664             Parse::RecDescent::_tracefirst($text),
665             q{match_alternative},
666             $tracelevel)
667             if defined $::RD_TRACE;
668              
669              
670              
671 926         1071 $_matched = 1;
672 926         2439 last;
673             }
674              
675              
676 76324 100 66     343059 unless ( $_matched || defined($score) )
677             {
678            
679              
680 75398         119623 $_[1] = $text; # NOT SURE THIS IS NEEDED
681 75398 50       172368 Parse::RecDescent::_trace(q{<>},
682             Parse::RecDescent::_tracefirst($_[1]),
683             q{match_alternative},
684             $tracelevel)
685             if defined $::RD_TRACE;
686 75398         592358 return undef;
687             }
688 926 50 33     2405 if (!defined($return) && defined($score))
689             {
690 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
691             q{match_alternative},
692             $tracelevel)
693             if defined $::RD_TRACE;
694 0         0 $return = $score_return;
695             }
696 926         1074 splice @{$thisparser->{errors}}, $err_at;
  926         2619  
697 926 50       1906 $return = $item[$#item] unless defined $return;
698 926 50       1904 if (defined $::RD_TRACE)
699             {
700 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
701             $return . q{])}, "",
702             q{match_alternative},
703             $tracelevel);
704 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
705             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
706             Parse::RecDescent::_tracefirst($text),
707             , q{match_alternative},
708             $tracelevel)
709             }
710 926         2489 $_[1] = $text;
711 926         8681 return $return;
712             }
713              
714             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args, $_itempos)
715             sub Parse::RecDescent::File::System::Globber::match_one
716             {
717 82138     82138   113403 my $thisparser = $_[0];
718 8     8   93 use vars q{$tracelevel};
  8         19  
  8         9114  
719 82138   50     199906 local $tracelevel = ($tracelevel||0)+1;
720 82138         96979 $ERRORS = 0;
721 82138         152364 my $thisrule = $thisparser->{"rules"}{"match_one"};
722              
723 82138 50       163555 Parse::RecDescent::_trace(q{Trying rule: [match_one]},
724             Parse::RecDescent::_tracefirst($_[1]),
725             q{match_one},
726             $tracelevel)
727             if defined $::RD_TRACE;
728              
729            
730 82138         109160 my $err_at = @{$thisparser->{errors}};
  82138         158763  
731              
732 82138         108605 my $score;
733             my $score_return;
734 0         0 my $_tok;
735 82138         101176 my $return = undef;
736 82138         83078 my $_matched=0;
737 82138         89782 my $commit=0;
738 82138         153955 my @item = ();
739 82138         117293 my %item = ();
740 82138         97492 my $repeating = $_[2];
741 82138         89952 my $_noactions = $_[3];
742 82138 50       162661 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  82138         100882  
  82138         158804  
743 82138         149997 my $_itempos = $_[5];
744 82138 50       203449 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
745 82138         112132 my $text;
746             my $lastsep;
747 0         0 my $current_match;
748 82138         288358 my $expectation = new Parse::RecDescent::Expectation(q{'?'});
749 82138         673565 $expectation->at($_[1]);
750            
751 82138         338587 my $thisline;
752 82138         343693 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
753              
754            
755              
756 82138   33     836627 while (!$_matched && !$commit)
757             {
758            
759 82138 50       166223 Parse::RecDescent::_trace(q{Trying production: ['?']},
760             Parse::RecDescent::_tracefirst($_[1]),
761             q{match_one},
762             $tracelevel)
763             if defined $::RD_TRACE;
764 82138         150535 my $thisprod = $thisrule->{"prods"}[0];
765 82138         110707 $text = $_[1];
766 82138         84559 my $_savetext;
767 82138         143624 @item = (q{match_one});
768 82138         2643297 %item = (__RULE__ => q{match_one});
769 82138         105846 my $repcount = 0;
770              
771              
772 82138 50       157492 Parse::RecDescent::_trace(q{Trying terminal: ['?']},
773             Parse::RecDescent::_tracefirst($text),
774             q{match_one},
775             $tracelevel)
776             if defined $::RD_TRACE;
777 82138         129848 undef $lastsep;
778 82138         238277 $expectation->is(q{})->at($text);
779            
780              
781 82138 50 66     1278223 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\?/)
  82138 100       21656705  
782             {
783 80288 50       4850760 $text = $lastsep . $text if defined $lastsep;
784            
785 80288         277438 $expectation->failed();
786 80288 50       383601 Parse::RecDescent::_trace(qq{<>},
787             Parse::RecDescent::_tracefirst($text))
788             if defined $::RD_TRACE;
789 80288         197970 last;
790             }
791 1850         10023 $current_match = substr($text, $-[0], $+[0] - $-[0]);
792 1850         5490 substr($text,0,length($current_match),q{});
793 1850 50       4362 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
794             . $current_match . q{])},
795             Parse::RecDescent::_tracefirst($text))
796             if defined $::RD_TRACE;
797 1850         5421 push @item, $item{__STRING1__}=$current_match;
798            
799              
800 1850 50       4467 Parse::RecDescent::_trace(q{Trying action},
801             Parse::RecDescent::_tracefirst($text),
802             q{match_one},
803             $tracelevel)
804             if defined $::RD_TRACE;
805            
806              
807 1850 50       3515 $_tok = ($_noactions) ? 0 : do { $return = bless {}, 'File::System::Glob::MatchOne' };
  1850         6799  
808 1850 50       4967 unless (defined $_tok)
809             {
810 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
811             if defined $::RD_TRACE;
812 0         0 last;
813             }
814 1850 50       4010 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
815             . $_tok . q{])},
816             Parse::RecDescent::_tracefirst($text))
817             if defined $::RD_TRACE;
818 1850         2800 push @item, $_tok;
819 1850         2857 $item{__ACTION1__}=$_tok;
820            
821              
822 1850 50       5181 Parse::RecDescent::_trace(q{>>Matched production: ['?']<<},
823             Parse::RecDescent::_tracefirst($text),
824             q{match_one},
825             $tracelevel)
826             if defined $::RD_TRACE;
827              
828              
829              
830 1850         2235 $_matched = 1;
831 1850         3496 last;
832             }
833              
834              
835 82138 100 66     421626 unless ( $_matched || defined($score) )
836             {
837            
838              
839 80288         128945 $_[1] = $text; # NOT SURE THIS IS NEEDED
840 80288 50       179436 Parse::RecDescent::_trace(q{<>},
841             Parse::RecDescent::_tracefirst($_[1]),
842             q{match_one},
843             $tracelevel)
844             if defined $::RD_TRACE;
845 80288         613993 return undef;
846             }
847 1850 50 33     4980 if (!defined($return) && defined($score))
848             {
849 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
850             q{match_one},
851             $tracelevel)
852             if defined $::RD_TRACE;
853 0         0 $return = $score_return;
854             }
855 1850         2434 splice @{$thisparser->{errors}}, $err_at;
  1850         3716  
856 1850 50       5251 $return = $item[$#item] unless defined $return;
857 1850 50       3353 if (defined $::RD_TRACE)
858             {
859 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
860             $return . q{])}, "",
861             q{match_one},
862             $tracelevel);
863 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
864             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
865             Parse::RecDescent::_tracefirst($text),
866             , q{match_one},
867             $tracelevel)
868             }
869 1850         2797 $_[1] = $text;
870 1850         15318 return $return;
871             }
872              
873             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args, $_itempos)
874             sub Parse::RecDescent::File::System::Globber::match_any
875             {
876 80288     80288   120494 my $thisparser = $_[0];
877 8     8   65 use vars q{$tracelevel};
  8         22  
  8         9245  
878 80288   50     219122 local $tracelevel = ($tracelevel||0)+1;
879 80288         100655 $ERRORS = 0;
880 80288         156144 my $thisrule = $thisparser->{"rules"}{"match_any"};
881              
882 80288 50       150759 Parse::RecDescent::_trace(q{Trying rule: [match_any]},
883             Parse::RecDescent::_tracefirst($_[1]),
884             q{match_any},
885             $tracelevel)
886             if defined $::RD_TRACE;
887              
888            
889 80288         79102 my $err_at = @{$thisparser->{errors}};
  80288         135125  
890              
891 80288         107031 my $score;
892             my $score_return;
893 0         0 my $_tok;
894 80288         95477 my $return = undef;
895 80288         83520 my $_matched=0;
896 80288         94173 my $commit=0;
897 80288         111322 my @item = ();
898 80288         116551 my %item = ();
899 80288         97066 my $repeating = $_[2];
900 80288         90726 my $_noactions = $_[3];
901 80288 50       150759 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  80288         104401  
  80288         152445  
902 80288         121046 my $_itempos = $_[5];
903 80288 50       189214 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
904 80288         109342 my $text;
905             my $lastsep;
906 0         0 my $current_match;
907 80288         298017 my $expectation = new Parse::RecDescent::Expectation(q{'*'});
908 80288         669514 $expectation->at($_[1]);
909            
910 80288         340940 my $thisline;
911 80288         435513 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
912              
913            
914              
915 80288   33     824484 while (!$_matched && !$commit)
916             {
917            
918 80288 50       202492 Parse::RecDescent::_trace(q{Trying production: ['*']},
919             Parse::RecDescent::_tracefirst($_[1]),
920             q{match_any},
921             $tracelevel)
922             if defined $::RD_TRACE;
923 80288         152286 my $thisprod = $thisrule->{"prods"}[0];
924 80288         106013 $text = $_[1];
925 80288         100941 my $_savetext;
926 80288         163491 @item = (q{match_any});
927 80288         195714 %item = (__RULE__ => q{match_any});
928 80288         96357 my $repcount = 0;
929              
930              
931 80288 50       163568 Parse::RecDescent::_trace(q{Trying terminal: ['*']},
932             Parse::RecDescent::_tracefirst($text),
933             q{match_any},
934             $tracelevel)
935             if defined $::RD_TRACE;
936 80288         109930 undef $lastsep;
937 80288         224713 $expectation->is(q{})->at($text);
938            
939              
940 80288 50 66     905561 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\*/)
  80288 100       21236012  
941             {
942 76324 50       4968747 $text = $lastsep . $text if defined $lastsep;
943            
944 76324         241328 $expectation->failed();
945 76324 50       368078 Parse::RecDescent::_trace(qq{<>},
946             Parse::RecDescent::_tracefirst($text))
947             if defined $::RD_TRACE;
948 76324         180819 last;
949             }
950 3964         26103 $current_match = substr($text, $-[0], $+[0] - $-[0]);
951 3964         15334 substr($text,0,length($current_match),q{});
952 3964 50       15357 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
953             . $current_match . q{])},
954             Parse::RecDescent::_tracefirst($text))
955             if defined $::RD_TRACE;
956 3964         12010 push @item, $item{__STRING1__}=$current_match;
957            
958              
959 3964 50       8113 Parse::RecDescent::_trace(q{Trying action},
960             Parse::RecDescent::_tracefirst($text),
961             q{match_any},
962             $tracelevel)
963             if defined $::RD_TRACE;
964            
965              
966 3964 50       7757 $_tok = ($_noactions) ? 0 : do { $return = bless {}, 'File::System::Glob::MatchAny' };
  3964         17605  
967 3964 50       14644 unless (defined $_tok)
968             {
969 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
970             if defined $::RD_TRACE;
971 0         0 last;
972             }
973 3964 50       7370 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
974             . $_tok . q{])},
975             Parse::RecDescent::_tracefirst($text))
976             if defined $::RD_TRACE;
977 3964         5375 push @item, $_tok;
978 3964         6946 $item{__ACTION1__}=$_tok;
979            
980              
981 3964 50       9718 Parse::RecDescent::_trace(q{>>Matched production: ['*']<<},
982             Parse::RecDescent::_tracefirst($text),
983             q{match_any},
984             $tracelevel)
985             if defined $::RD_TRACE;
986              
987              
988              
989 3964         4459 $_matched = 1;
990 3964         9081 last;
991             }
992              
993              
994 80288 100 66     363288 unless ( $_matched || defined($score) )
995             {
996            
997              
998 76324         143133 $_[1] = $text; # NOT SURE THIS IS NEEDED
999 76324 50       148829 Parse::RecDescent::_trace(q{<>},
1000             Parse::RecDescent::_tracefirst($_[1]),
1001             q{match_any},
1002             $tracelevel)
1003             if defined $::RD_TRACE;
1004 76324         582049 return undef;
1005             }
1006 3964 50 33     9246 if (!defined($return) && defined($score))
1007             {
1008 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1009             q{match_any},
1010             $tracelevel)
1011             if defined $::RD_TRACE;
1012 0         0 $return = $score_return;
1013             }
1014 3964         5978 splice @{$thisparser->{errors}}, $err_at;
  3964         10695  
1015 3964 50       8564 $return = $item[$#item] unless defined $return;
1016 3964 50       7963 if (defined $::RD_TRACE)
1017             {
1018 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1019             $return . q{])}, "",
1020             q{match_any},
1021             $tracelevel);
1022 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
1023             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
1024             Parse::RecDescent::_tracefirst($text),
1025             , q{match_any},
1026             $tracelevel)
1027             }
1028 3964         5599 $_[1] = $text;
1029 3964         43422 return $return;
1030             }
1031              
1032             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args, $_itempos)
1033             sub Parse::RecDescent::File::System::Globber::match_option
1034             {
1035 1854     1854   2714 my $thisparser = $_[0];
1036 8     8   52 use vars q{$tracelevel};
  8         13  
  8         10681  
1037 1854   50     5354 local $tracelevel = ($tracelevel||0)+1;
1038 1854         2733 $ERRORS = 0;
1039 1854         9562 my $thisrule = $thisparser->{"rules"}{"match_option"};
1040              
1041 1854 50       3539 Parse::RecDescent::_trace(q{Trying rule: [match_option]},
1042             Parse::RecDescent::_tracefirst($_[1]),
1043             q{match_option},
1044             $tracelevel)
1045             if defined $::RD_TRACE;
1046              
1047            
1048 1854         2329 my $err_at = @{$thisparser->{errors}};
  1854         2369596  
1049              
1050 1854         2284 my $score;
1051             my $score_return;
1052 0         0 my $_tok;
1053 1854         2711 my $return = undef;
1054 1854         2032 my $_matched=0;
1055 1854         2148 my $commit=0;
1056 1854         3359 my @item = ();
1057 1854         3131 my %item = ();
1058 1854         2071 my $repeating = $_[2];
1059 1854         2565 my $_noactions = $_[3];
1060 1854 50       3482 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  1854         2199  
  1854         3911  
1061 1854         2613 my $_itempos = $_[5];
1062 1854 50       5271 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
1063 1854         2385 my $text;
1064             my $lastsep;
1065 0         0 my $current_match;
1066 1854         7115 my $expectation = new Parse::RecDescent::Expectation(q{/(?:[^,\\\}\\\\]|\\\\\}|\\\\,|\\\\)+/});
1067 1854         16768 $expectation->at($_[1]);
1068            
1069 1854         8113 my $thisline;
1070 1854         7890 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1071              
1072            
1073              
1074 1854   33     18122 while (!$_matched && !$commit)
1075             {
1076            
1077 1854 50       3885 Parse::RecDescent::_trace(q{Trying production: [/(?:[^,\\\}\\\\]|\\\\\}|\\\\,|\\\\)+/]},
1078             Parse::RecDescent::_tracefirst($_[1]),
1079             q{match_option},
1080             $tracelevel)
1081             if defined $::RD_TRACE;
1082 1854         3568 my $thisprod = $thisrule->{"prods"}[0];
1083 1854         2627 $text = $_[1];
1084 1854         2216 my $_savetext;
1085 1854         3277 @item = (q{match_option});
1086 1854         3720 %item = (__RULE__ => q{match_option});
1087 1854         2942 my $repcount = 0;
1088              
1089              
1090 1854 50       4078 Parse::RecDescent::_trace(q{Trying terminal: [/(?:[^,\\\}\\\\]|\\\\\}|\\\\,|\\\\)+/]}, Parse::RecDescent::_tracefirst($text),
1091             q{match_option},
1092             $tracelevel)
1093             if defined $::RD_TRACE;
1094 1854         2345 undef $lastsep;
1095 1854         6425 $expectation->is(q{})->at($text);
1096            
1097              
1098 1854 50 33     28496 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:(?:[^,\}\\]|\\}|\\,|\\)+)/)
  1854 50       20818  
1099             {
1100 0 0       0 $text = $lastsep . $text if defined $lastsep;
1101 0         0 $expectation->failed();
1102 0 0       0 Parse::RecDescent::_trace(q{<>},
1103             Parse::RecDescent::_tracefirst($text))
1104             if defined $::RD_TRACE;
1105              
1106 0         0 last;
1107             }
1108 1854         10278 $current_match = substr($text, $-[0], $+[0] - $-[0]);
1109 1854         5198 substr($text,0,length($current_match),q{});
1110 1854 50       3879 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
1111             . $current_match . q{])},
1112             Parse::RecDescent::_tracefirst($text))
1113             if defined $::RD_TRACE;
1114 1854         4661 push @item, $item{__PATTERN1__}=$current_match;
1115            
1116              
1117 1854 50       3710 Parse::RecDescent::_trace(q{Trying action},
1118             Parse::RecDescent::_tracefirst($text),
1119             q{match_option},
1120             $tracelevel)
1121             if defined $::RD_TRACE;
1122            
1123              
1124 1854 50       3376 $_tok = ($_noactions) ? 0 : do { local $_ = $item[1];
  1854         3227  
1125 1854         3612 s/\\}/}/g;
1126 1854         2566 s/\\,/,/g;
1127 1854         2458 s/\\\\/\\/g;
1128 1854         5229 $return = $_ };
1129 1854 50       4956 unless (defined $_tok)
1130             {
1131 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
1132             if defined $::RD_TRACE;
1133 0         0 last;
1134             }
1135 1854 50       3776 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
1136             . $_tok . q{])},
1137             Parse::RecDescent::_tracefirst($text))
1138             if defined $::RD_TRACE;
1139 1854         3047 push @item, $_tok;
1140 1854         4346 $item{__ACTION1__}=$_tok;
1141            
1142              
1143 1854 50       3738 Parse::RecDescent::_trace(q{>>Matched production: [/(?:[^,\\\}\\\\]|\\\\\}|\\\\,|\\\\)+/]<<},
1144             Parse::RecDescent::_tracefirst($text),
1145             q{match_option},
1146             $tracelevel)
1147             if defined $::RD_TRACE;
1148              
1149              
1150              
1151 1854         2477 $_matched = 1;
1152 1854         3469 last;
1153             }
1154              
1155              
1156 1854 50 33     4237 unless ( $_matched || defined($score) )
1157             {
1158            
1159              
1160 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
1161 0 0       0 Parse::RecDescent::_trace(q{<>},
1162             Parse::RecDescent::_tracefirst($_[1]),
1163             q{match_option},
1164             $tracelevel)
1165             if defined $::RD_TRACE;
1166 0         0 return undef;
1167             }
1168 1854 50 33     4479 if (!defined($return) && defined($score))
1169             {
1170 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1171             q{match_option},
1172             $tracelevel)
1173             if defined $::RD_TRACE;
1174 0         0 $return = $score_return;
1175             }
1176 1854         2647 splice @{$thisparser->{errors}}, $err_at;
  1854         3876  
1177 1854 50       5713 $return = $item[$#item] unless defined $return;
1178 1854 50       4220 if (defined $::RD_TRACE)
1179             {
1180 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1181             $return . q{])}, "",
1182             q{match_option},
1183             $tracelevel);
1184 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
1185             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
1186             Parse::RecDescent::_tracefirst($text),
1187             , q{match_option},
1188             $tracelevel)
1189             }
1190 1854         3218 $_[1] = $text;
1191 1854         16568 return $return;
1192             }
1193              
1194             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args, $_itempos)
1195             sub Parse::RecDescent::File::System::Globber::match_class
1196             {
1197 12     12   192 my $thisparser = $_[0];
1198 8     8   57 use vars q{$tracelevel};
  8         31  
  8         20221  
1199 12   50     32 local $tracelevel = ($tracelevel||0)+1;
1200 12         15 $ERRORS = 0;
1201 12         23 my $thisrule = $thisparser->{"rules"}{"match_class"};
1202              
1203 12 50       22 Parse::RecDescent::_trace(q{Trying rule: [match_class]},
1204             Parse::RecDescent::_tracefirst($_[1]),
1205             q{match_class},
1206             $tracelevel)
1207             if defined $::RD_TRACE;
1208              
1209            
1210 12         13 my $err_at = @{$thisparser->{errors}};
  12         23  
1211              
1212 12         17 my $score;
1213             my $score_return;
1214 0         0 my $_tok;
1215 12         14 my $return = undef;
1216 12         12 my $_matched=0;
1217 12         14 my $commit=0;
1218 12         16 my @item = ();
1219 12         19 my %item = ();
1220 12         12 my $repeating = $_[2];
1221 12         47 my $_noactions = $_[3];
1222 12 50       30 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  12         15  
  12         22  
1223 12         17 my $_itempos = $_[5];
1224 12 50       31 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
1225 12         14 my $text;
1226             my $lastsep;
1227 0         0 my $current_match;
1228 12         39 my $expectation = new Parse::RecDescent::Expectation(q{/(.)-(.)/, or /\\\\]/, or /[^\\]]/});
1229 12         94 $expectation->at($_[1]);
1230            
1231 12         47 my $thisline;
1232 12         55 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1233              
1234            
1235              
1236 12   33     165 while (!$_matched && !$commit)
1237             {
1238            
1239 12 50       26 Parse::RecDescent::_trace(q{Trying production: [/(.)-(.)/]},
1240             Parse::RecDescent::_tracefirst($_[1]),
1241             q{match_class},
1242             $tracelevel)
1243             if defined $::RD_TRACE;
1244 12         30 my $thisprod = $thisrule->{"prods"}[0];
1245 12         15 $text = $_[1];
1246 12         13 my $_savetext;
1247 12         18 @item = (q{match_class});
1248 12         27 %item = (__RULE__ => q{match_class});
1249 12         13 my $repcount = 0;
1250              
1251              
1252 12 50       24 Parse::RecDescent::_trace(q{Trying terminal: [/(.)-(.)/]}, Parse::RecDescent::_tracefirst($text),
1253             q{match_class},
1254             $tracelevel)
1255             if defined $::RD_TRACE;
1256 12         16 undef $lastsep;
1257 12         34 $expectation->is(q{})->at($text);
1258            
1259              
1260 12 50 66     142 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:(.)-(.))/)
  12 100       97  
1261             {
1262 10 50       27 $text = $lastsep . $text if defined $lastsep;
1263 10         29 $expectation->failed();
1264 10 50       45 Parse::RecDescent::_trace(q{<>},
1265             Parse::RecDescent::_tracefirst($text))
1266             if defined $::RD_TRACE;
1267              
1268 10         20 last;
1269             }
1270 2         11 $current_match = substr($text, $-[0], $+[0] - $-[0]);
1271 2         6 substr($text,0,length($current_match),q{});
1272 2 50       7 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
1273             . $current_match . q{])},
1274             Parse::RecDescent::_tracefirst($text))
1275             if defined $::RD_TRACE;
1276 2         6 push @item, $item{__PATTERN1__}=$current_match;
1277            
1278              
1279 2 50       14 Parse::RecDescent::_trace(q{Trying action},
1280             Parse::RecDescent::_tracefirst($text),
1281             q{match_class},
1282             $tracelevel)
1283             if defined $::RD_TRACE;
1284            
1285              
1286 2 50       6 $_tok = ($_noactions) ? 0 : do { $return = [ $1, $2 ] };
  2         10  
1287 2 50       8 unless (defined $_tok)
1288             {
1289 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
1290             if defined $::RD_TRACE;
1291 0         0 last;
1292             }
1293 2 50       6 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
1294             . $_tok . q{])},
1295             Parse::RecDescent::_tracefirst($text))
1296             if defined $::RD_TRACE;
1297 2         3 push @item, $_tok;
1298 2         5 $item{__ACTION1__}=$_tok;
1299            
1300              
1301 2 50       5 Parse::RecDescent::_trace(q{>>Matched production: [/(.)-(.)/]<<},
1302             Parse::RecDescent::_tracefirst($text),
1303             q{match_class},
1304             $tracelevel)
1305             if defined $::RD_TRACE;
1306              
1307              
1308              
1309 2         3 $_matched = 1;
1310 2         4 last;
1311             }
1312              
1313              
1314 12   66     49 while (!$_matched && !$commit)
1315             {
1316            
1317 10 50       21 Parse::RecDescent::_trace(q{Trying production: [/\\\\]/]},
1318             Parse::RecDescent::_tracefirst($_[1]),
1319             q{match_class},
1320             $tracelevel)
1321             if defined $::RD_TRACE;
1322 10         17 my $thisprod = $thisrule->{"prods"}[1];
1323 10         15 $text = $_[1];
1324 10         11 my $_savetext;
1325 10         19 @item = (q{match_class});
1326 10         22 %item = (__RULE__ => q{match_class});
1327 10         13 my $repcount = 0;
1328              
1329              
1330 10 50       19 Parse::RecDescent::_trace(q{Trying terminal: [/\\\\]/]}, Parse::RecDescent::_tracefirst($text),
1331             q{match_class},
1332             $tracelevel)
1333             if defined $::RD_TRACE;
1334 10         12 undef $lastsep;
1335 10         32 $expectation->is(q{})->at($text);
1336            
1337              
1338 10 50 33     100 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:\\])/)
  10 50       275  
1339             {
1340 10 50       27 $text = $lastsep . $text if defined $lastsep;
1341 10         32 $expectation->failed();
1342 10 50       44 Parse::RecDescent::_trace(q{<>},
1343             Parse::RecDescent::_tracefirst($text))
1344             if defined $::RD_TRACE;
1345              
1346 10         53 last;
1347             }
1348 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
1349 0         0 substr($text,0,length($current_match),q{});
1350 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
1351             . $current_match . q{])},
1352             Parse::RecDescent::_tracefirst($text))
1353             if defined $::RD_TRACE;
1354 0         0 push @item, $item{__PATTERN1__}=$current_match;
1355            
1356              
1357 0 0       0 Parse::RecDescent::_trace(q{Trying action},
1358             Parse::RecDescent::_tracefirst($text),
1359             q{match_class},
1360             $tracelevel)
1361             if defined $::RD_TRACE;
1362            
1363              
1364 0 0       0 $_tok = ($_noactions) ? 0 : do { $return = "]" };
  0         0  
1365 0 0       0 unless (defined $_tok)
1366             {
1367 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
1368             if defined $::RD_TRACE;
1369 0         0 last;
1370             }
1371 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
1372             . $_tok . q{])},
1373             Parse::RecDescent::_tracefirst($text))
1374             if defined $::RD_TRACE;
1375 0         0 push @item, $_tok;
1376 0         0 $item{__ACTION1__}=$_tok;
1377            
1378              
1379 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/\\\\]/]<<},
1380             Parse::RecDescent::_tracefirst($text),
1381             q{match_class},
1382             $tracelevel)
1383             if defined $::RD_TRACE;
1384              
1385              
1386              
1387 0         0 $_matched = 1;
1388 0         0 last;
1389             }
1390              
1391              
1392 12   66     47 while (!$_matched && !$commit)
1393             {
1394            
1395 10 50       17 Parse::RecDescent::_trace(q{Trying production: [/[^\\]]/]},
1396             Parse::RecDescent::_tracefirst($_[1]),
1397             q{match_class},
1398             $tracelevel)
1399             if defined $::RD_TRACE;
1400 10         21 my $thisprod = $thisrule->{"prods"}[2];
1401 10         11 $text = $_[1];
1402 10         13 my $_savetext;
1403 10         19 @item = (q{match_class});
1404 10         23 %item = (__RULE__ => q{match_class});
1405 10         13 my $repcount = 0;
1406              
1407              
1408 10 50       21 Parse::RecDescent::_trace(q{Trying terminal: [/[^\\]]/]}, Parse::RecDescent::_tracefirst($text),
1409             q{match_class},
1410             $tracelevel)
1411             if defined $::RD_TRACE;
1412 10         14 undef $lastsep;
1413 10         27 $expectation->is(q{})->at($text);
1414            
1415              
1416 10 50 66     106 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:[^\]])/)
  10 100       190  
1417             {
1418 4 50       13 $text = $lastsep . $text if defined $lastsep;
1419 4         13 $expectation->failed();
1420 4 50       18 Parse::RecDescent::_trace(q{<>},
1421             Parse::RecDescent::_tracefirst($text))
1422             if defined $::RD_TRACE;
1423              
1424 4         7 last;
1425             }
1426 6         31 $current_match = substr($text, $-[0], $+[0] - $-[0]);
1427 6         19 substr($text,0,length($current_match),q{});
1428 6 50       12 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
1429             . $current_match . q{])},
1430             Parse::RecDescent::_tracefirst($text))
1431             if defined $::RD_TRACE;
1432 6         15 push @item, $item{__PATTERN1__}=$current_match;
1433            
1434              
1435 6 50       13 Parse::RecDescent::_trace(q{Trying action},
1436             Parse::RecDescent::_tracefirst($text),
1437             q{match_class},
1438             $tracelevel)
1439             if defined $::RD_TRACE;
1440            
1441              
1442 6 50       10 $_tok = ($_noactions) ? 0 : do { $return = $item[1] };
  6         12  
1443 6 50       13 unless (defined $_tok)
1444             {
1445 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
1446             if defined $::RD_TRACE;
1447 0         0 last;
1448             }
1449 6 50       13 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
1450             . $_tok . q{])},
1451             Parse::RecDescent::_tracefirst($text))
1452             if defined $::RD_TRACE;
1453 6         7 push @item, $_tok;
1454 6         14 $item{__ACTION1__}=$_tok;
1455            
1456              
1457 6 50       11 Parse::RecDescent::_trace(q{>>Matched production: [/[^\\]]/]<<},
1458             Parse::RecDescent::_tracefirst($text),
1459             q{match_class},
1460             $tracelevel)
1461             if defined $::RD_TRACE;
1462              
1463              
1464              
1465 6         8 $_matched = 1;
1466 6         12 last;
1467             }
1468              
1469              
1470 12 100 66     46 unless ( $_matched || defined($score) )
1471             {
1472            
1473              
1474 4         8 $_[1] = $text; # NOT SURE THIS IS NEEDED
1475 4 50       8 Parse::RecDescent::_trace(q{<>},
1476             Parse::RecDescent::_tracefirst($_[1]),
1477             q{match_class},
1478             $tracelevel)
1479             if defined $::RD_TRACE;
1480 4         27 return undef;
1481             }
1482 8 50 33     41 if (!defined($return) && defined($score))
1483             {
1484 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1485             q{match_class},
1486             $tracelevel)
1487             if defined $::RD_TRACE;
1488 0         0 $return = $score_return;
1489             }
1490 8         9 splice @{$thisparser->{errors}}, $err_at;
  8         21  
1491 8 50       15 $return = $item[$#item] unless defined $return;
1492 8 50       18 if (defined $::RD_TRACE)
1493             {
1494 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1495             $return . q{])}, "",
1496             q{match_class},
1497             $tracelevel);
1498 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
1499             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
1500             Parse::RecDescent::_tracefirst($text),
1501             , q{match_class},
1502             $tracelevel)
1503             }
1504 8         12 $_[1] = $text;
1505 8         63 return $return;
1506             }
1507              
1508             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args, $_itempos)
1509             sub Parse::RecDescent::File::System::Globber::match
1510             {
1511 82138     82138   1286124 my $thisparser = $_[0];
1512 8     8   63 use vars q{$tracelevel};
  8         20  
  8         3500  
1513 82138   50     249358 local $tracelevel = ($tracelevel||0)+1;
1514 82138         100150 $ERRORS = 0;
1515 82138         162146 my $thisrule = $thisparser->{"rules"}{"match"};
1516              
1517 82138 50       178657 Parse::RecDescent::_trace(q{Trying rule: [match]},
1518             Parse::RecDescent::_tracefirst($_[1]),
1519             q{match},
1520             $tracelevel)
1521             if defined $::RD_TRACE;
1522              
1523            
1524 82138         95837 my $err_at = @{$thisparser->{errors}};
  82138         151078  
1525              
1526 82138         108320 my $score;
1527             my $score_return;
1528 0         0 my $_tok;
1529 82138         108154 my $return = undef;
1530 82138         87468 my $_matched=0;
1531 82138         98133 my $commit=0;
1532 82138         122795 my @item = ();
1533 82138         109875 my %item = ();
1534 82138         111177 my $repeating = $_[2];
1535 82138         106181 my $_noactions = $_[3];
1536 82138 50       168498 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  82138         118504  
  82138         168955  
1537 82138         105885 my $_itempos = $_[5];
1538 82138 50       221073 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
1539 82138         102624 my $text;
1540             my $lastsep;
1541 0         0 my $current_match;
1542 82138         306408 my $expectation = new Parse::RecDescent::Expectation(q{match_one, or match_any, or match_alternative, or match_collection, or match_character});
1543 82138         1319980 $expectation->at($_[1]);
1544            
1545 82138         347519 my $thisline;
1546 82138         363013 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1547              
1548            
1549              
1550 82138   33     869385 while (!$_matched && !$commit)
1551             {
1552            
1553 82138 50       169083 Parse::RecDescent::_trace(q{Trying production: [match_one]},
1554             Parse::RecDescent::_tracefirst($_[1]),
1555             q{match},
1556             $tracelevel)
1557             if defined $::RD_TRACE;
1558 82138         184022 my $thisprod = $thisrule->{"prods"}[0];
1559 82138         114097 $text = $_[1];
1560 82138         142075 my $_savetext;
1561 82138         139450 @item = (q{match});
1562 82138         163555 %item = (__RULE__ => q{match});
1563 82138         96267 my $repcount = 0;
1564              
1565              
1566 82138 50       185600 Parse::RecDescent::_trace(q{Trying subrule: [match_one]},
1567             Parse::RecDescent::_tracefirst($text),
1568             q{match},
1569             $tracelevel)
1570             if defined $::RD_TRACE;
1571 8     8   55 if (1) { no strict qw{refs};
  8         16  
  8         4558  
  82138         81472  
1572 82138         225851 $expectation->is(q{})->at($text);
1573 82138 100   82138   857958 unless (defined ($_tok = Parse::RecDescent::File::System::Globber::match_one($thisparser,$text,$repeating,$_noactions,sub { \@arg },undef)))
  82138         162556  
1574             {
1575            
1576 80288 50       159799 Parse::RecDescent::_trace(q{<>},
1577             Parse::RecDescent::_tracefirst($text),
1578             q{match},
1579             $tracelevel)
1580             if defined $::RD_TRACE;
1581 80288         265029 $expectation->failed();
1582 80288         335585 last;
1583             }
1584 1850 50       7204 Parse::RecDescent::_trace(q{>>Matched subrule: [match_one]<< (return value: [}
1585             . $_tok . q{]},
1586              
1587             Parse::RecDescent::_tracefirst($text),
1588             q{match},
1589             $tracelevel)
1590             if defined $::RD_TRACE;
1591 1850         3754 $item{q{match_one}} = $_tok;
1592 1850         2864 push @item, $_tok;
1593            
1594             }
1595              
1596 1850 50       3568 Parse::RecDescent::_trace(q{>>Matched production: [match_one]<<},
1597             Parse::RecDescent::_tracefirst($text),
1598             q{match},
1599             $tracelevel)
1600             if defined $::RD_TRACE;
1601              
1602              
1603              
1604 1850         1976 $_matched = 1;
1605 1850         2797 last;
1606             }
1607              
1608              
1609 82138   66     426008 while (!$_matched && !$commit)
1610             {
1611            
1612 80288 50       164587 Parse::RecDescent::_trace(q{Trying production: [match_any]},
1613             Parse::RecDescent::_tracefirst($_[1]),
1614             q{match},
1615             $tracelevel)
1616             if defined $::RD_TRACE;
1617 80288         164118 my $thisprod = $thisrule->{"prods"}[1];
1618 80288         130544 $text = $_[1];
1619 80288         86974 my $_savetext;
1620 80288         175373 @item = (q{match});
1621 80288         166685 %item = (__RULE__ => q{match});
1622 80288         111038 my $repcount = 0;
1623              
1624              
1625 80288 50       178239 Parse::RecDescent::_trace(q{Trying subrule: [match_any]},
1626             Parse::RecDescent::_tracefirst($text),
1627             q{match},
1628             $tracelevel)
1629             if defined $::RD_TRACE;
1630 8     8   69 if (1) { no strict qw{refs};
  8         19  
  8         4048  
  80288         120887  
1631 80288         251017 $expectation->is(q{})->at($text);
1632 80288 100   80288   862752 unless (defined ($_tok = Parse::RecDescent::File::System::Globber::match_any($thisparser,$text,$repeating,$_noactions,sub { \@arg },undef)))
  80288         185418  
1633             {
1634            
1635 76324 50       151303 Parse::RecDescent::_trace(q{<>},
1636             Parse::RecDescent::_tracefirst($text),
1637             q{match},
1638             $tracelevel)
1639             if defined $::RD_TRACE;
1640 76324         218060 $expectation->failed();
1641 76324         311654 last;
1642             }
1643 3964 50       17952 Parse::RecDescent::_trace(q{>>Matched subrule: [match_any]<< (return value: [}
1644             . $_tok . q{]},
1645              
1646             Parse::RecDescent::_tracefirst($text),
1647             q{match},
1648             $tracelevel)
1649             if defined $::RD_TRACE;
1650 3964         6799 $item{q{match_any}} = $_tok;
1651 3964         7872 push @item, $_tok;
1652            
1653             }
1654              
1655 3964 50       7371 Parse::RecDescent::_trace(q{>>Matched production: [match_any]<<},
1656             Parse::RecDescent::_tracefirst($text),
1657             q{match},
1658             $tracelevel)
1659             if defined $::RD_TRACE;
1660              
1661              
1662              
1663 3964         4938 $_matched = 1;
1664 3964         6117 last;
1665             }
1666              
1667              
1668 82138   66     452312 while (!$_matched && !$commit)
1669             {
1670            
1671 76324 50       143905 Parse::RecDescent::_trace(q{Trying production: [match_alternative]},
1672             Parse::RecDescent::_tracefirst($_[1]),
1673             q{match},
1674             $tracelevel)
1675             if defined $::RD_TRACE;
1676 76324         166322 my $thisprod = $thisrule->{"prods"}[2];
1677 76324         139606 $text = $_[1];
1678 76324         78965 my $_savetext;
1679 76324         157915 @item = (q{match});
1680 76324         191714 %item = (__RULE__ => q{match});
1681 76324         88897 my $repcount = 0;
1682              
1683              
1684 76324 50       149733 Parse::RecDescent::_trace(q{Trying subrule: [match_alternative]},
1685             Parse::RecDescent::_tracefirst($text),
1686             q{match},
1687             $tracelevel)
1688             if defined $::RD_TRACE;
1689 8     8   53 if (1) { no strict qw{refs};
  8         15  
  8         3245  
  76324         80508  
1690 76324         204077 $expectation->is(q{})->at($text);
1691 76324 100   76324   777657 unless (defined ($_tok = Parse::RecDescent::File::System::Globber::match_alternative($thisparser,$text,$repeating,$_noactions,sub { \@arg },undef)))
  76324         156965  
1692             {
1693            
1694 75398 50       150348 Parse::RecDescent::_trace(q{<>},
1695             Parse::RecDescent::_tracefirst($text),
1696             q{match},
1697             $tracelevel)
1698             if defined $::RD_TRACE;
1699 75398         203912 $expectation->failed();
1700 75398         301344 last;
1701             }
1702 926 50       3896 Parse::RecDescent::_trace(q{>>Matched subrule: [match_alternative]<< (return value: [}
1703             . $_tok . q{]},
1704              
1705             Parse::RecDescent::_tracefirst($text),
1706             q{match},
1707             $tracelevel)
1708             if defined $::RD_TRACE;
1709 926         3348 $item{q{match_alternative}} = $_tok;
1710 926         1445 push @item, $_tok;
1711            
1712             }
1713              
1714 926 50       2356 Parse::RecDescent::_trace(q{>>Matched production: [match_alternative]<<},
1715             Parse::RecDescent::_tracefirst($text),
1716             q{match},
1717             $tracelevel)
1718             if defined $::RD_TRACE;
1719              
1720              
1721              
1722 926         1150 $_matched = 1;
1723 926         1289 last;
1724             }
1725              
1726              
1727 82138   66     428184 while (!$_matched && !$commit)
1728             {
1729            
1730 75398 50       143963 Parse::RecDescent::_trace(q{Trying production: [match_collection]},
1731             Parse::RecDescent::_tracefirst($_[1]),
1732             q{match},
1733             $tracelevel)
1734             if defined $::RD_TRACE;
1735 75398         170828 my $thisprod = $thisrule->{"prods"}[3];
1736 75398         106485 $text = $_[1];
1737 75398         82815 my $_savetext;
1738 75398         165886 @item = (q{match});
1739 75398         180222 %item = (__RULE__ => q{match});
1740 75398         91523 my $repcount = 0;
1741              
1742              
1743 75398 50       147059 Parse::RecDescent::_trace(q{Trying subrule: [match_collection]},
1744             Parse::RecDescent::_tracefirst($text),
1745             q{match},
1746             $tracelevel)
1747             if defined $::RD_TRACE;
1748 8     8   48 if (1) { no strict qw{refs};
  8         15  
  8         4039  
  75398         92835  
1749 75398         235479 $expectation->is(q{})->at($text);
1750 75398 100   75398   753728 unless (defined ($_tok = Parse::RecDescent::File::System::Globber::match_collection($thisparser,$text,$repeating,$_noactions,sub { \@arg },undef)))
  75398         163705  
1751             {
1752            
1753 75394 50       219546 Parse::RecDescent::_trace(q{<>},
1754             Parse::RecDescent::_tracefirst($text),
1755             q{match},
1756             $tracelevel)
1757             if defined $::RD_TRACE;
1758 75394         214752 $expectation->failed();
1759 75394         311791 last;
1760             }
1761 4 50       15 Parse::RecDescent::_trace(q{>>Matched subrule: [match_collection]<< (return value: [}
1762             . $_tok . q{]},
1763              
1764             Parse::RecDescent::_tracefirst($text),
1765             q{match},
1766             $tracelevel)
1767             if defined $::RD_TRACE;
1768 4         7 $item{q{match_collection}} = $_tok;
1769 4         8 push @item, $_tok;
1770            
1771             }
1772              
1773 4 50       8 Parse::RecDescent::_trace(q{>>Matched production: [match_collection]<<},
1774             Parse::RecDescent::_tracefirst($text),
1775             q{match},
1776             $tracelevel)
1777             if defined $::RD_TRACE;
1778              
1779              
1780              
1781 4         6 $_matched = 1;
1782 4         5 last;
1783             }
1784              
1785              
1786 82138   66     423195 while (!$_matched && !$commit)
1787             {
1788            
1789 75394 50       170694 Parse::RecDescent::_trace(q{Trying production: [match_character]},
1790             Parse::RecDescent::_tracefirst($_[1]),
1791             q{match},
1792             $tracelevel)
1793             if defined $::RD_TRACE;
1794 75394         168086 my $thisprod = $thisrule->{"prods"}[4];
1795 75394         114300 $text = $_[1];
1796 75394         75540 my $_savetext;
1797 75394         183234 @item = (q{match});
1798 75394         176225 %item = (__RULE__ => q{match});
1799 75394         94043 my $repcount = 0;
1800              
1801              
1802 75394 50       152269 Parse::RecDescent::_trace(q{Trying subrule: [match_character]},
1803             Parse::RecDescent::_tracefirst($text),
1804             q{match},
1805             $tracelevel)
1806             if defined $::RD_TRACE;
1807 8     8   49 if (1) { no strict qw{refs};
  8         18  
  8         6351  
  75394         76889  
1808 75394         198384 $expectation->is(q{})->at($text);
1809 75394 100   75394   772824 unless (defined ($_tok = Parse::RecDescent::File::System::Globber::match_character($thisparser,$text,$repeating,$_noactions,sub { \@arg },undef)))
  75394         152735  
1810             {
1811            
1812 18229 50       40178 Parse::RecDescent::_trace(q{<>},
1813             Parse::RecDescent::_tracefirst($text),
1814             q{match},
1815             $tracelevel)
1816             if defined $::RD_TRACE;
1817 18229         50985 $expectation->failed();
1818 18229         73952 last;
1819             }
1820 57165 50       246742 Parse::RecDescent::_trace(q{>>Matched subrule: [match_character]<< (return value: [}
1821             . $_tok . q{]},
1822              
1823             Parse::RecDescent::_tracefirst($text),
1824             q{match},
1825             $tracelevel)
1826             if defined $::RD_TRACE;
1827 57165         96626 $item{q{match_character}} = $_tok;
1828 57165         92424 push @item, $_tok;
1829            
1830             }
1831              
1832 57165 50       128204 Parse::RecDescent::_trace(q{>>Matched production: [match_character]<<},
1833             Parse::RecDescent::_tracefirst($text),
1834             q{match},
1835             $tracelevel)
1836             if defined $::RD_TRACE;
1837              
1838              
1839              
1840 57165         60700 $_matched = 1;
1841 57165         83593 last;
1842             }
1843              
1844              
1845 82138 100 66     281641 unless ( $_matched || defined($score) )
1846             {
1847            
1848              
1849 18229         26891 $_[1] = $text; # NOT SURE THIS IS NEEDED
1850 18229 50       41834 Parse::RecDescent::_trace(q{<>},
1851             Parse::RecDescent::_tracefirst($_[1]),
1852             q{match},
1853             $tracelevel)
1854             if defined $::RD_TRACE;
1855 18229         132411 return undef;
1856             }
1857 63909 50 33     327956 if (!defined($return) && defined($score))
1858             {
1859 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1860             q{match},
1861             $tracelevel)
1862             if defined $::RD_TRACE;
1863 0         0 $return = $score_return;
1864             }
1865 63909         69112 splice @{$thisparser->{errors}}, $err_at;
  63909         136458  
1866 63909 50       193236 $return = $item[$#item] unless defined $return;
1867 63909 50       139256 if (defined $::RD_TRACE)
1868             {
1869 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1870             $return . q{])}, "",
1871             q{match},
1872             $tracelevel);
1873 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
1874             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
1875             Parse::RecDescent::_tracefirst($text),
1876             , q{match},
1877             $tracelevel)
1878             }
1879 63909         115483 $_[1] = $text;
1880 63909         485947 return $return;
1881             }
1882              
1883             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args, $_itempos)
1884             sub Parse::RecDescent::File::System::Globber::match_character
1885             {
1886 75394     75394   115332 my $thisparser = $_[0];
1887 8     8   57 use vars q{$tracelevel};
  8         17  
  8         31315  
1888 75394   50     189204 local $tracelevel = ($tracelevel||0)+1;
1889 75394         85252 $ERRORS = 0;
1890 75394         136071 my $thisrule = $thisparser->{"rules"}{"match_character"};
1891              
1892 75394 50       150496 Parse::RecDescent::_trace(q{Trying rule: [match_character]},
1893             Parse::RecDescent::_tracefirst($_[1]),
1894             q{match_character},
1895             $tracelevel)
1896             if defined $::RD_TRACE;
1897              
1898            
1899 75394         127403 my $err_at = @{$thisparser->{errors}};
  75394         173956  
1900              
1901 75394         115883 my $score;
1902             my $score_return;
1903 0         0 my $_tok;
1904 75394         90875 my $return = undef;
1905 75394         89918 my $_matched=0;
1906 75394         83040 my $commit=0;
1907 75394         121014 my @item = ();
1908 75394         114314 my %item = ();
1909 75394         101518 my $repeating = $_[2];
1910 75394         99959 my $_noactions = $_[3];
1911 75394 50       217192 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  75394         98992  
  75394         165071  
1912 75394         144215 my $_itempos = $_[5];
1913 75394 50       199212 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
1914 75394         119703 my $text;
1915             my $lastsep;
1916 0         0 my $current_match;
1917 75394         244769 my $expectation = new Parse::RecDescent::Expectation(q{/./});
1918 75394         686136 $expectation->at($_[1]);
1919            
1920 75394         331156 my $thisline;
1921 75394         381153 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1922              
1923            
1924              
1925 75394   33     694733 while (!$_matched && !$commit)
1926             {
1927            
1928 75394 50       148639 Parse::RecDescent::_trace(q{Trying production: [/./]},
1929             Parse::RecDescent::_tracefirst($_[1]),
1930             q{match_character},
1931             $tracelevel)
1932             if defined $::RD_TRACE;
1933 75394         156913 my $thisprod = $thisrule->{"prods"}[0];
1934 75394         102536 $text = $_[1];
1935 75394         78981 my $_savetext;
1936 75394         155324 @item = (q{match_character});
1937 75394         151458 %item = (__RULE__ => q{match_character});
1938 75394         83667 my $repcount = 0;
1939              
1940              
1941 75394 50       154658 Parse::RecDescent::_trace(q{Trying terminal: [/./]}, Parse::RecDescent::_tracefirst($text),
1942             q{match_character},
1943             $tracelevel)
1944             if defined $::RD_TRACE;
1945 75394         106486 undef $lastsep;
1946 75394         205496 $expectation->is(q{})->at($text);
1947            
1948              
1949 75394 50 66     854547 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:.)/)
  75394 100       6801413  
1950             {
1951 18229 50       767491 $text = $lastsep . $text if defined $lastsep;
1952 18229         58479 $expectation->failed();
1953 18229 50       80655 Parse::RecDescent::_trace(q{<>},
1954             Parse::RecDescent::_tracefirst($text))
1955             if defined $::RD_TRACE;
1956              
1957 18229         36302 last;
1958             }
1959 57165         373700 $current_match = substr($text, $-[0], $+[0] - $-[0]);
1960 57165         202519 substr($text,0,length($current_match),q{});
1961 57165 50       148102 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
1962             . $current_match . q{])},
1963             Parse::RecDescent::_tracefirst($text))
1964             if defined $::RD_TRACE;
1965 57165         149753 push @item, $item{__PATTERN1__}=$current_match;
1966            
1967              
1968 57165 50       134072 Parse::RecDescent::_trace(q{Trying action},
1969             Parse::RecDescent::_tracefirst($text),
1970             q{match_character},
1971             $tracelevel)
1972             if defined $::RD_TRACE;
1973            
1974              
1975 57165 50       110392 $_tok = ($_noactions) ? 0 : do { $return = bless { character => $item[1] }, 'File::System::Glob::MatchCharacter' };
  57165         3292785  
1976 57165 50       139647 unless (defined $_tok)
1977             {
1978 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
1979             if defined $::RD_TRACE;
1980 0         0 last;
1981             }
1982 57165 50       114520 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
1983             . $_tok . q{])},
1984             Parse::RecDescent::_tracefirst($text))
1985             if defined $::RD_TRACE;
1986 57165         90748 push @item, $_tok;
1987 57165         111042 $item{__ACTION1__}=$_tok;
1988            
1989              
1990 57165 50       131073 Parse::RecDescent::_trace(q{>>Matched production: [/./]<<},
1991             Parse::RecDescent::_tracefirst($text),
1992             q{match_character},
1993             $tracelevel)
1994             if defined $::RD_TRACE;
1995              
1996              
1997              
1998 57165         63105 $_matched = 1;
1999 57165         121286 last;
2000             }
2001              
2002              
2003 75394 100 66     244156 unless ( $_matched || defined($score) )
2004             {
2005            
2006              
2007 18229         31436 $_[1] = $text; # NOT SURE THIS IS NEEDED
2008 18229 50       42846 Parse::RecDescent::_trace(q{<>},
2009             Parse::RecDescent::_tracefirst($_[1]),
2010             q{match_character},
2011             $tracelevel)
2012             if defined $::RD_TRACE;
2013 18229         137374 return undef;
2014             }
2015 57165 50 33     166183 if (!defined($return) && defined($score))
2016             {
2017 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
2018             q{match_character},
2019             $tracelevel)
2020             if defined $::RD_TRACE;
2021 0         0 $return = $score_return;
2022             }
2023 57165         85323 splice @{$thisparser->{errors}}, $err_at;
  57165         126876  
2024 57165 50       128520 $return = $item[$#item] unless defined $return;
2025 57165 50       122169 if (defined $::RD_TRACE)
2026             {
2027 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
2028             $return . q{])}, "",
2029             q{match_character},
2030             $tracelevel);
2031 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
2032             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
2033             Parse::RecDescent::_tracefirst($text),
2034             , q{match_character},
2035             $tracelevel)
2036             }
2037 57165         91982 $_[1] = $text;
2038 57165         543654 return $return;
2039             }
2040             }
2041 8     8 0 2378 package File::System::Globber; sub new { my $self = bless( {
2042             '_AUTOACTION' => undef,
2043             'rules' => {
2044             'glob' => bless( {
2045             'name' => 'glob',
2046             'prods' => [
2047             bless( {
2048             'dircount' => 0,
2049             'line' => undef,
2050             'patcount' => 0,
2051             'actcount' => 0,
2052             'items' => [
2053             bless( {
2054             'max' => 100000000,
2055             'lookahead' => 0,
2056             'expected' => undef,
2057             'matchrule' => 0,
2058             'subrule' => 'match',
2059             'repspec' => 's',
2060             'argcode' => undef,
2061             'line' => 2,
2062             'min' => 1
2063             }, 'Parse::RecDescent::Repetition' )
2064             ],
2065             'strcount' => 0,
2066             'error' => undef,
2067             'number' => 0,
2068             'uncommit' => undef
2069             }, 'Parse::RecDescent::Production' )
2070             ],
2071             'vars' => '',
2072             'opcount' => 0,
2073             'calls' => [
2074             'match'
2075             ],
2076             'impcount' => 0,
2077             'changed' => 0,
2078             'line' => 1
2079             }, 'Parse::RecDescent::Rule' ),
2080             'match_collection' => bless( {
2081             'name' => 'match_collection',
2082             'vars' => '',
2083             'opcount' => 0,
2084             'prods' => [
2085             bless( {
2086             'uncommit' => undef,
2087             'dircount' => 0,
2088             'line' => undef,
2089             'actcount' => 1,
2090             'patcount' => 0,
2091             'items' => [
2092             bless( {
2093             'line' => 26,
2094             'description' => '\'[\'',
2095             'pattern' => '[',
2096             'hashname' => '__STRING1__',
2097             'lookahead' => 0
2098             }, 'Parse::RecDescent::Literal' ),
2099             bless( {
2100             'max' => 100000000,
2101             'lookahead' => 0,
2102             'matchrule' => 0,
2103             'expected' => undef,
2104             'repspec' => 's',
2105             'subrule' => 'match_class',
2106             'argcode' => undef,
2107             'min' => 1,
2108             'line' => 26
2109             }, 'Parse::RecDescent::Repetition' ),
2110             bless( {
2111             'hashname' => '__STRING2__',
2112             'pattern' => ']',
2113             'line' => 26,
2114             'description' => '\']\'',
2115             'lookahead' => 0
2116             }, 'Parse::RecDescent::Literal' ),
2117             bless( {
2118             'hashname' => '__ACTION1__',
2119             'line' => 27,
2120             'code' => '{ $return = bless { classes => $item[2] }, \'File::System::Glob::MatchCollection\' }',
2121             'lookahead' => 0
2122             }, 'Parse::RecDescent::Action' )
2123             ],
2124             'error' => undef,
2125             'strcount' => 2,
2126             'number' => 0
2127             }, 'Parse::RecDescent::Production' )
2128             ],
2129             'changed' => 0,
2130             'impcount' => 0,
2131             'calls' => [
2132             'match_class'
2133             ],
2134             'line' => 26
2135             }, 'Parse::RecDescent::Rule' ),
2136             'match_alternative' => bless( {
2137             'opcount' => 0,
2138             'vars' => '',
2139             'prods' => [
2140             bless( {
2141             'strcount' => 2,
2142             'error' => undef,
2143             'number' => 0,
2144             'line' => undef,
2145             'op' => [],
2146             'dircount' => 1,
2147             'items' => [
2148             bless( {
2149             'description' => '\'\\{\'',
2150             'line' => 16,
2151             'pattern' => '{',
2152             'hashname' => '__STRING1__',
2153             'lookahead' => 0
2154             }, 'Parse::RecDescent::Literal' ),
2155             bless( {
2156             'max' => 100000000,
2157             'expected' => '',
2158             'leftarg' => bless( {
2159             'lookahead' => 0,
2160             'subrule' => 'match_option',
2161             'implicit' => undef,
2162             'matchrule' => 0,
2163             'line' => 16,
2164             'argcode' => undef
2165             }, 'Parse::RecDescent::Subrule' ),
2166             'rightarg' => bless( {
2167             'lookahead' => 0,
2168             'subrule' => 'match_option',
2169             'implicit' => undef,
2170             'matchrule' => 0,
2171             'line' => 16,
2172             'argcode' => undef
2173             }, 'Parse::RecDescent::Subrule' ),
2174             'hashname' => '__DIRECTIVE1__',
2175             'type' => 'leftop',
2176             'name' => '\'match_option(s)\'',
2177             'op' => bless( {
2178             'lookahead' => 0,
2179             'ldelim' => '/',
2180             'description' => '/,/',
2181             'hashname' => '__PATTERN1__',
2182             'mod' => '',
2183             'rdelim' => '/',
2184             'pattern' => ',',
2185             'line' => 16
2186             }, 'Parse::RecDescent::Token' ),
2187             'min' => 1
2188             }, 'Parse::RecDescent::Operator' ),
2189             bless( {
2190             'lookahead' => 0,
2191             'hashname' => '__STRING2__',
2192             'description' => '\'\\}\'',
2193             'line' => 16,
2194             'pattern' => '}'
2195             }, 'Parse::RecDescent::Literal' ),
2196             bless( {
2197             'line' => 17,
2198             'hashname' => '__ACTION1__',
2199             'code' => '{ $return = bless { alternatives => $item[2] }, \'File::System::Glob::MatchAlternative\' }',
2200             'lookahead' => 0
2201             }, 'Parse::RecDescent::Action' )
2202             ],
2203             'actcount' => 1,
2204             'patcount' => 1,
2205             'uncommit' => undef
2206             }, 'Parse::RecDescent::Production' )
2207             ],
2208             'name' => 'match_alternative',
2209             'line' => 16,
2210             'changed' => 0,
2211             'calls' => [
2212             'match_option'
2213             ],
2214             'impcount' => 0
2215             }, 'Parse::RecDescent::Rule' ),
2216             'match_one' => bless( {
2217             'prods' => [
2218             bless( {
2219             'dircount' => 0,
2220             'line' => undef,
2221             'actcount' => 1,
2222             'patcount' => 0,
2223             'items' => [
2224             bless( {
2225             'lookahead' => 0,
2226             'description' => '\'?\'',
2227             'line' => 10,
2228             'pattern' => '?',
2229             'hashname' => '__STRING1__'
2230             }, 'Parse::RecDescent::Literal' ),
2231             bless( {
2232             'hashname' => '__ACTION1__',
2233             'line' => 11,
2234             'lookahead' => 0,
2235             'code' => '{ $return = bless {}, \'File::System::Glob::MatchOne\' }'
2236             }, 'Parse::RecDescent::Action' )
2237             ],
2238             'error' => undef,
2239             'strcount' => 1,
2240             'number' => 0,
2241             'uncommit' => undef
2242             }, 'Parse::RecDescent::Production' )
2243             ],
2244             'opcount' => 0,
2245             'vars' => '',
2246             'name' => 'match_one',
2247             'line' => 10,
2248             'changed' => 0,
2249             'calls' => [],
2250             'impcount' => 0
2251             }, 'Parse::RecDescent::Rule' ),
2252             'match_any' => bless( {
2253             'name' => 'match_any',
2254             'vars' => '',
2255             'opcount' => 0,
2256             'prods' => [
2257             bless( {
2258             'dircount' => 0,
2259             'line' => undef,
2260             'patcount' => 0,
2261             'actcount' => 1,
2262             'items' => [
2263             bless( {
2264             'line' => 13,
2265             'description' => '\'*\'',
2266             'pattern' => '*',
2267             'hashname' => '__STRING1__',
2268             'lookahead' => 0
2269             }, 'Parse::RecDescent::Literal' ),
2270             bless( {
2271             'lookahead' => 0,
2272             'code' => '{ $return = bless {}, \'File::System::Glob::MatchAny\' }',
2273             'hashname' => '__ACTION1__',
2274             'line' => 14
2275             }, 'Parse::RecDescent::Action' )
2276             ],
2277             'error' => undef,
2278             'strcount' => 1,
2279             'number' => 0,
2280             'uncommit' => undef
2281             }, 'Parse::RecDescent::Production' )
2282             ],
2283             'calls' => [],
2284             'changed' => 0,
2285             'impcount' => 0,
2286             'line' => 13
2287             }, 'Parse::RecDescent::Rule' ),
2288             'match_option' => bless( {
2289             'calls' => [],
2290             'changed' => 0,
2291             'impcount' => 0,
2292             'line' => 19,
2293             'prods' => [
2294             bless( {
2295             'number' => 0,
2296             'strcount' => 0,
2297             'error' => undef,
2298             'items' => [
2299             bless( {
2300             'pattern' => '(?:[^,\\}\\\\]|\\\\}|\\\\,|\\\\)+',
2301             'line' => 19,
2302             'mod' => '',
2303             'rdelim' => '/',
2304             'description' => '/(?:[^,\\\\\\}\\\\\\\\]|\\\\\\\\\\}|\\\\\\\\,|\\\\\\\\)+/',
2305             'hashname' => '__PATTERN1__',
2306             'ldelim' => '/',
2307             'lookahead' => 0
2308             }, 'Parse::RecDescent::Token' ),
2309             bless( {
2310             'line' => 20,
2311             'hashname' => '__ACTION1__',
2312             'lookahead' => 0,
2313             'code' => '{ local $_ = $item[1];
2314             s/\\\\}/}/g;
2315             s/\\\\,/,/g;
2316             s/\\\\\\\\/\\\\/g;
2317             $return = $_ }'
2318             }, 'Parse::RecDescent::Action' )
2319             ],
2320             'patcount' => 1,
2321             'actcount' => 1,
2322             'line' => undef,
2323             'dircount' => 0,
2324             'uncommit' => undef
2325             }, 'Parse::RecDescent::Production' )
2326             ],
2327             'vars' => '',
2328             'opcount' => 0,
2329             'name' => 'match_option'
2330             }, 'Parse::RecDescent::Rule' ),
2331             'match_class' => bless( {
2332             'name' => 'match_class',
2333             'opcount' => 0,
2334             'vars' => '',
2335             'prods' => [
2336             bless( {
2337             'uncommit' => undef,
2338             'patcount' => 1,
2339             'actcount' => 1,
2340             'items' => [
2341             bless( {
2342             'lookahead' => 0,
2343             'ldelim' => '/',
2344             'description' => '/(.)-(.)/',
2345             'hashname' => '__PATTERN1__',
2346             'mod' => '',
2347             'rdelim' => '/',
2348             'pattern' => '(.)-(.)',
2349             'line' => 29
2350             }, 'Parse::RecDescent::Token' ),
2351             bless( {
2352             'hashname' => '__ACTION1__',
2353             'line' => 30,
2354             'lookahead' => 0,
2355             'code' => '{ $return = [ $1, $2 ] }'
2356             }, 'Parse::RecDescent::Action' )
2357             ],
2358             'dircount' => 0,
2359             'line' => undef,
2360             'number' => 0,
2361             'error' => undef,
2362             'strcount' => 0
2363             }, 'Parse::RecDescent::Production' ),
2364             bless( {
2365             'strcount' => 0,
2366             'error' => undef,
2367             'number' => 1,
2368             'line' => 31,
2369             'dircount' => 0,
2370             'items' => [
2371             bless( {
2372             'lookahead' => 0,
2373             'ldelim' => '/',
2374             'description' => '/\\\\\\\\]/',
2375             'hashname' => '__PATTERN1__',
2376             'mod' => '',
2377             'rdelim' => '/',
2378             'pattern' => '\\\\]',
2379             'line' => 31
2380             }, 'Parse::RecDescent::Token' ),
2381             bless( {
2382             'hashname' => '__ACTION1__',
2383             'line' => 32,
2384             'code' => '{ $return = "]" }',
2385             'lookahead' => 0
2386             }, 'Parse::RecDescent::Action' )
2387             ],
2388             'actcount' => 1,
2389             'patcount' => 1,
2390             'uncommit' => undef
2391             }, 'Parse::RecDescent::Production' ),
2392             bless( {
2393             'line' => 33,
2394             'dircount' => 0,
2395             'items' => [
2396             bless( {
2397             'rdelim' => '/',
2398             'mod' => '',
2399             'line' => 33,
2400             'pattern' => '[^\\]]',
2401             'lookahead' => 0,
2402             'ldelim' => '/',
2403             'hashname' => '__PATTERN1__',
2404             'description' => '/[^\\\\]]/'
2405             }, 'Parse::RecDescent::Token' ),
2406             bless( {
2407             'hashname' => '__ACTION1__',
2408             'line' => 34,
2409             'code' => '{ $return = $item[1] }',
2410             'lookahead' => 0
2411             }, 'Parse::RecDescent::Action' )
2412             ],
2413             'patcount' => 1,
2414             'actcount' => 1,
2415             'error' => undef,
2416             'strcount' => 0,
2417             'number' => 2,
2418             'uncommit' => undef
2419             }, 'Parse::RecDescent::Production' )
2420             ],
2421             'line' => 29,
2422             'calls' => [],
2423             'impcount' => 0,
2424             'changed' => 0
2425             }, 'Parse::RecDescent::Rule' ),
2426             'match' => bless( {
2427             'name' => 'match',
2428             'prods' => [
2429             bless( {
2430             'uncommit' => undef,
2431             'dircount' => 0,
2432             'line' => undef,
2433             'patcount' => 0,
2434             'actcount' => 0,
2435             'items' => [
2436             bless( {
2437             'implicit' => undef,
2438             'lookahead' => 0,
2439             'subrule' => 'match_one',
2440             'argcode' => undef,
2441             'matchrule' => 0,
2442             'line' => 4
2443             }, 'Parse::RecDescent::Subrule' )
2444             ],
2445             'error' => undef,
2446             'strcount' => 0,
2447             'number' => 0
2448             }, 'Parse::RecDescent::Production' ),
2449             bless( {
2450             'uncommit' => undef,
2451             'dircount' => 0,
2452             'line' => 5,
2453             'patcount' => 0,
2454             'actcount' => 0,
2455             'items' => [
2456             bless( {
2457             'implicit' => undef,
2458             'subrule' => 'match_any',
2459             'lookahead' => 0,
2460             'argcode' => undef,
2461             'line' => 5,
2462             'matchrule' => 0
2463             }, 'Parse::RecDescent::Subrule' )
2464             ],
2465             'error' => undef,
2466             'strcount' => 0,
2467             'number' => 1
2468             }, 'Parse::RecDescent::Production' ),
2469             bless( {
2470             'patcount' => 0,
2471             'actcount' => 0,
2472             'items' => [
2473             bless( {
2474             'subrule' => 'match_alternative',
2475             'lookahead' => 0,
2476             'implicit' => undef,
2477             'line' => 6,
2478             'matchrule' => 0,
2479             'argcode' => undef
2480             }, 'Parse::RecDescent::Subrule' )
2481             ],
2482             'dircount' => 0,
2483             'line' => 6,
2484             'number' => 2,
2485             'strcount' => 0,
2486             'error' => undef,
2487             'uncommit' => undef
2488             }, 'Parse::RecDescent::Production' ),
2489             bless( {
2490             'number' => 3,
2491             'error' => undef,
2492             'strcount' => 0,
2493             'patcount' => 0,
2494             'actcount' => 0,
2495             'items' => [
2496             bless( {
2497             'matchrule' => 0,
2498             'line' => 7,
2499             'argcode' => undef,
2500             'lookahead' => 0,
2501             'subrule' => 'match_collection',
2502             'implicit' => undef
2503             }, 'Parse::RecDescent::Subrule' )
2504             ],
2505             'dircount' => 0,
2506             'line' => 7,
2507             'uncommit' => undef
2508             }, 'Parse::RecDescent::Production' ),
2509             bless( {
2510             'uncommit' => undef,
2511             'number' => 4,
2512             'strcount' => 0,
2513             'error' => undef,
2514             'patcount' => 0,
2515             'actcount' => 0,
2516             'items' => [
2517             bless( {
2518             'line' => 8,
2519             'matchrule' => 0,
2520             'argcode' => undef,
2521             'subrule' => 'match_character',
2522             'lookahead' => 0,
2523             'implicit' => undef
2524             }, 'Parse::RecDescent::Subrule' )
2525             ],
2526             'dircount' => 0,
2527             'line' => 8
2528             }, 'Parse::RecDescent::Production' )
2529             ],
2530             'vars' => '',
2531             'opcount' => 0,
2532             'changed' => 0,
2533             'calls' => [
2534             'match_one',
2535             'match_any',
2536             'match_alternative',
2537             'match_collection',
2538             'match_character'
2539             ],
2540             'impcount' => 0,
2541             'line' => 4
2542             }, 'Parse::RecDescent::Rule' ),
2543             'match_character' => bless( {
2544             'line' => 36,
2545             'impcount' => 0,
2546             'changed' => 0,
2547             'calls' => [],
2548             'name' => 'match_character',
2549             'prods' => [
2550             bless( {
2551             'uncommit' => undef,
2552             'error' => undef,
2553             'strcount' => 0,
2554             'number' => 0,
2555             'dircount' => 0,
2556             'line' => undef,
2557             'actcount' => 1,
2558             'patcount' => 1,
2559             'items' => [
2560             bless( {
2561             'hashname' => '__PATTERN1__',
2562             'description' => '/./',
2563             'ldelim' => '/',
2564             'lookahead' => 0,
2565             'pattern' => '.',
2566             'line' => 36,
2567             'mod' => '',
2568             'rdelim' => '/'
2569             }, 'Parse::RecDescent::Token' ),
2570             bless( {
2571             'lookahead' => 0,
2572             'code' => '{ $return = bless { character => $item[1] }, \'File::System::Glob::MatchCharacter\' }',
2573             'line' => 37,
2574             'hashname' => '__ACTION1__'
2575             }, 'Parse::RecDescent::Action' )
2576             ]
2577             }, 'Parse::RecDescent::Production' )
2578             ],
2579             'opcount' => 0,
2580             'vars' => ''
2581             }, 'Parse::RecDescent::Rule' )
2582             },
2583             'localvars' => '',
2584             '_check' => {
2585             'itempos' => '',
2586             'prevoffset' => '',
2587             'prevline' => '',
2588             'thiscolumn' => '',
2589             'thisoffset' => '',
2590             'prevcolumn' => ''
2591             },
2592             'startcode' => '',
2593             'namespace' => 'Parse::RecDescent::File::System::Globber',
2594             '_AUTOTREE' => undef
2595             }, 'Parse::RecDescent' );
2596             }