File Coverage

blib/lib/CSS/Parse/CompiledGrammar.pm
Criterion Covered Total %
statement 3703 5565 66.5
branch 978 3238 30.2
condition 382 1072 35.6
subroutine 223 250 89.2
pod 0 1 0.0
total 5286 10126 52.2


line stmt bran cond sub pod time code
1             package CSS::Parse::CompiledGrammar;
2 1     1   1798 use Parse::RecDescent;
  1         52305  
  1         10  
3              
4             { my $ERRORS;
5              
6              
7             package Parse::RecDescent::CSS::Parse::CompiledGrammar;
8 1     1   60 use strict;
  1         2  
  1         30  
9 1     1   4 use vars qw($skip $AUTOLOAD $all_rulesets $ruleset $value );
  1         2  
  1         103  
10             @Parse::RecDescent::CSS::Parse::CompiledGrammar::ISA = ();
11             $skip = '';
12              
13              
14             {
15             local $SIG{__WARN__} = sub {0};
16             # PRETEND TO BE IN Parse::RecDescent NAMESPACE
17             *Parse::RecDescent::CSS::Parse::CompiledGrammar::AUTOLOAD = sub
18             {
19 1     1   4 no strict 'refs';
  1         2  
  1         84  
20 0     0   0 $AUTOLOAD =~ s/^Parse::RecDescent::CSS::Parse::CompiledGrammar/Parse::RecDescent/;
21 0         0 goto &{$AUTOLOAD};
  0         0  
22             }
23             }
24              
25             push @Parse::RecDescent::CSS::Parse::CompiledGrammar::ISA, 'Parse::RecDescent';
26             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
27             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_nl
28             {
29 0     0   0 my $thisparser = $_[0];
30 1     1   5 use vars q{$tracelevel};
  1         2  
  1         1028  
31 0   0     0 local $tracelevel = ($tracelevel||0)+1;
32 0         0 $ERRORS = 0;
33 0         0 my $thisrule = $thisparser->{"rules"}{"macro_nl"};
34            
35 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [macro_nl]},
36             Parse::RecDescent::_tracefirst($_[1]),
37             q{macro_nl},
38             $tracelevel)
39             if defined $::RD_TRACE;
40              
41            
42 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
43              
44 0         0 my $score;
45             my $score_return;
46 0         0 my $_tok;
47 0         0 my $return = undef;
48 0         0 my $_matched=0;
49 0         0 my $commit=0;
50 0         0 my @item = ();
51 0         0 my %item = ();
52 0   0     0 my $repeating = defined($_[2]) && $_[2];
53 0   0     0 my $_noactions = defined($_[3]) && $_[3];
54 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
55 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
56 0         0 my $text;
57 0         0 my $lastsep="";
58 0         0 my $current_match;
59 0         0 my $expectation = new Parse::RecDescent::Expectation(q{/\\n|\\r\\n|\\r|\\f/});
60 0         0 $expectation->at($_[1]);
61            
62 0         0 my $thisline;
63 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
64              
65            
66              
67 0   0     0 while (!$_matched && !$commit)
68             {
69            
70 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/\\n|\\r\\n|\\r|\\f/]},
71             Parse::RecDescent::_tracefirst($_[1]),
72             q{macro_nl},
73             $tracelevel)
74             if defined $::RD_TRACE;
75 0         0 my $thisprod = $thisrule->{"prods"}[0];
76 0         0 $text = $_[1];
77 0         0 my $_savetext;
78 0         0 @item = (q{macro_nl});
79 0         0 %item = (__RULE__ => q{macro_nl});
80 0         0 my $repcount = 0;
81              
82              
83 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/\\n|\\r\\n|\\r|\\f/]}, Parse::RecDescent::_tracefirst($text),
84             q{macro_nl},
85             $tracelevel)
86             if defined $::RD_TRACE;
87 0         0 $lastsep = "";
88 0         0 $expectation->is(q{})->at($text);
89            
90              
91 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:\n|\r\n|\r|\f)/)
  0 0       0  
92             {
93            
94 0         0 $expectation->failed();
95 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
96             Parse::RecDescent::_tracefirst($text))
97             if defined $::RD_TRACE;
98              
99 0         0 last;
100             }
101 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
102 0         0 substr($text,0,length($current_match),q{});
103 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
104             . $current_match . q{])},
105             Parse::RecDescent::_tracefirst($text))
106             if defined $::RD_TRACE;
107 0         0 push @item, $item{__PATTERN1__}=$current_match;
108            
109              
110 0 0       0 Parse::RecDescent::_trace(q{Trying action},
111             Parse::RecDescent::_tracefirst($text),
112             q{macro_nl},
113             $tracelevel)
114             if defined $::RD_TRACE;
115            
116              
117 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  0         0  
118 0 0       0 unless (defined $_tok)
119             {
120 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
121             if defined $::RD_TRACE;
122 0         0 last;
123             }
124 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
125             . $_tok . q{])},
126             Parse::RecDescent::_tracefirst($text))
127             if defined $::RD_TRACE;
128 0         0 push @item, $_tok;
129 0         0 $item{__ACTION1__}=$_tok;
130            
131              
132              
133 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/\\n|\\r\\n|\\r|\\f/]<<},
134             Parse::RecDescent::_tracefirst($text),
135             q{macro_nl},
136             $tracelevel)
137             if defined $::RD_TRACE;
138 0         0 $_matched = 1;
139 0         0 last;
140             }
141              
142              
143 0 0 0     0 unless ( $_matched || defined($score) )
144             {
145            
146              
147 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
148 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
149             Parse::RecDescent::_tracefirst($_[1]),
150             q{macro_nl},
151             $tracelevel)
152             if defined $::RD_TRACE;
153 0         0 return undef;
154             }
155 0 0 0     0 if (!defined($return) && defined($score))
156             {
157 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
158             q{macro_nl},
159             $tracelevel)
160             if defined $::RD_TRACE;
161 0         0 $return = $score_return;
162             }
163 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
164 0 0       0 $return = $item[$#item] unless defined $return;
165 0 0       0 if (defined $::RD_TRACE)
166             {
167 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
168             $return . q{])}, "",
169             q{macro_nl},
170             $tracelevel);
171 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
172             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
173             Parse::RecDescent::_tracefirst($text),
174             , q{macro_nl},
175             $tracelevel)
176             }
177 0         0 $_[1] = $text;
178 0         0 return $return;
179             }
180              
181             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
182             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::IDENT
183             {
184 138     138   239 my $thisparser = $_[0];
185 1     1   11 use vars q{$tracelevel};
  1         3  
  1         466  
186 138   50     431 local $tracelevel = ($tracelevel||0)+1;
187 138         189 $ERRORS = 0;
188 138         331 my $thisrule = $thisparser->{"rules"}{"IDENT"};
189            
190 138 50       271 Parse::RecDescent::_trace(q{Trying rule: [IDENT]},
191             Parse::RecDescent::_tracefirst($_[1]),
192             q{IDENT},
193             $tracelevel)
194             if defined $::RD_TRACE;
195              
196            
197 138         152 my $err_at = @{$thisparser->{errors}};
  138         280  
198              
199 138         217 my $score;
200             my $score_return;
201 0         0 my $_tok;
202 138         204 my $return = undef;
203 138         189 my $_matched=0;
204 138         172 my $commit=0;
205 138         206 my @item = ();
206 138         392 my %item = ();
207 138   33     421 my $repeating = defined($_[2]) && $_[2];
208 138   33     417 my $_noactions = defined($_[3]) && $_[3];
209 138 50       267 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  138         134  
  138         327  
210 138 50       420 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
211 138         210 my $text;
212 138         218 my $lastsep="";
213 138         162 my $current_match;
214 138         481 my $expectation = new Parse::RecDescent::Expectation(q{macro_ident});
215 138         4410 $expectation->at($_[1]);
216            
217 138         552 my $thisline;
218 138         632 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
219              
220            
221              
222 138   33     1371 while (!$_matched && !$commit)
223             {
224            
225 138 50       357 Parse::RecDescent::_trace(q{Trying production: [macro_ident]},
226             Parse::RecDescent::_tracefirst($_[1]),
227             q{IDENT},
228             $tracelevel)
229             if defined $::RD_TRACE;
230 138         398 my $thisprod = $thisrule->{"prods"}[0];
231 138         208 $text = $_[1];
232 138         190 my $_savetext;
233 138         296 @item = (q{IDENT});
234 138         397 %item = (__RULE__ => q{IDENT});
235 138         183 my $repcount = 0;
236              
237              
238 138 50       301 Parse::RecDescent::_trace(q{Trying subrule: [macro_ident]},
239             Parse::RecDescent::_tracefirst($text),
240             q{IDENT},
241             $tracelevel)
242             if defined $::RD_TRACE;
243 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         828  
  138         374  
244 138         473 $expectation->is(q{})->at($text);
245 138 100   138   1336 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_ident($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  138         281  
246             {
247            
248 70 50       148 Parse::RecDescent::_trace(q{<<Didn't match subrule: [macro_ident]>>},
249             Parse::RecDescent::_tracefirst($text),
250             q{IDENT},
251             $tracelevel)
252             if defined $::RD_TRACE;
253 70         229 $expectation->failed();
254 70         245 last;
255             }
256 68 50       261 Parse::RecDescent::_trace(q{>>Matched subrule: [macro_ident]<< (return value: [}
257             . $_tok . q{]},
258            
259             Parse::RecDescent::_tracefirst($text),
260             q{IDENT},
261             $tracelevel)
262             if defined $::RD_TRACE;
263 68         191 $item{q{macro_ident}} = $_tok;
264 68         126 push @item, $_tok;
265            
266             }
267              
268 68 50       141 Parse::RecDescent::_trace(q{Trying action},
269             Parse::RecDescent::_tracefirst($text),
270             q{IDENT},
271             $tracelevel)
272             if defined $::RD_TRACE;
273            
274              
275 68 50       197 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  68         146  
276 68 50       215 unless (defined $_tok)
277             {
278 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
279             if defined $::RD_TRACE;
280 0         0 last;
281             }
282 68 50       135 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
283             . $_tok . q{])},
284             Parse::RecDescent::_tracefirst($text))
285             if defined $::RD_TRACE;
286 68         131 push @item, $_tok;
287 68         125 $item{__ACTION1__}=$_tok;
288            
289              
290              
291 68 50       124 Parse::RecDescent::_trace(q{>>Matched production: [macro_ident]<<},
292             Parse::RecDescent::_tracefirst($text),
293             q{IDENT},
294             $tracelevel)
295             if defined $::RD_TRACE;
296 68         98 $_matched = 1;
297 68         121 last;
298             }
299              
300              
301 138 100 66     597 unless ( $_matched || defined($score) )
302             {
303            
304              
305 70         141 $_[1] = $text; # NOT SURE THIS IS NEEDED
306 70 50       135 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
307             Parse::RecDescent::_tracefirst($_[1]),
308             q{IDENT},
309             $tracelevel)
310             if defined $::RD_TRACE;
311 70         611 return undef;
312             }
313 68 50 33     232 if (!defined($return) && defined($score))
314             {
315 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
316             q{IDENT},
317             $tracelevel)
318             if defined $::RD_TRACE;
319 0         0 $return = $score_return;
320             }
321 68         135 splice @{$thisparser->{errors}}, $err_at;
  68         136  
322 68 50       173 $return = $item[$#item] unless defined $return;
323 68 50       165 if (defined $::RD_TRACE)
324             {
325 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
326             $return . q{])}, "",
327             q{IDENT},
328             $tracelevel);
329 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
330             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
331             Parse::RecDescent::_tracefirst($text),
332             , q{IDENT},
333             $tracelevel)
334             }
335 68         119 $_[1] = $text;
336 68         598 return $return;
337             }
338              
339             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
340             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::_alternation_1_of_production_1_of_rule_macro_string1
341             {
342 13     13   168 my $thisparser = $_[0];
343 1     1   9 use vars q{$tracelevel};
  1         2  
  1         1146  
344 13   50     31 local $tracelevel = ($tracelevel||0)+1;
345 13         16 $ERRORS = 0;
346 13         21 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_macro_string1"};
347            
348 13 50       26 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_macro_string1]},
349             Parse::RecDescent::_tracefirst($_[1]),
350             q{_alternation_1_of_production_1_of_rule_macro_string1},
351             $tracelevel)
352             if defined $::RD_TRACE;
353              
354            
355 13         14 my $err_at = @{$thisparser->{errors}};
  13         20  
356              
357 13         16 my $score;
358             my $score_return;
359 0         0 my $_tok;
360 13         15 my $return = undef;
361 13         14 my $_matched=0;
362 13         15 my $commit=0;
363 13         19 my @item = ();
364 13         18 my %item = ();
365 13   33     35 my $repeating = defined($_[2]) && $_[2];
366 13   33     33 my $_noactions = defined($_[3]) && $_[3];
367 13 50       26 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  13         14  
  13         23  
368 13 50       32 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
369 13         12 my $text;
370 13         17 my $lastsep="";
371 13         14 my $current_match;
372 13         47 my $expectation = new Parse::RecDescent::Expectation(q{/[\\t !#$%&(-~]/, or '\\', or ''', or macro_nonascii, or macro_escape});
373 13         97 $expectation->at($_[1]);
374            
375 13         52 my $thisline;
376 13         50 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
377              
378            
379              
380 13   33     111 while (!$_matched && !$commit)
381             {
382            
383 13 50       27 Parse::RecDescent::_trace(q{Trying production: [/[\\t !#$%&(-~]/]},
384             Parse::RecDescent::_tracefirst($_[1]),
385             q{_alternation_1_of_production_1_of_rule_macro_string1},
386             $tracelevel)
387             if defined $::RD_TRACE;
388 13         28 my $thisprod = $thisrule->{"prods"}[0];
389 13         27 $text = $_[1];
390 13         15 my $_savetext;
391 13         19 @item = (q{_alternation_1_of_production_1_of_rule_macro_string1});
392 13         27 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_macro_string1});
393 13         15 my $repcount = 0;
394              
395              
396 13 50       25 Parse::RecDescent::_trace(q{Trying terminal: [/[\\t !#$%&(-~]/]}, Parse::RecDescent::_tracefirst($text),
397             q{_alternation_1_of_production_1_of_rule_macro_string1},
398             $tracelevel)
399             if defined $::RD_TRACE;
400 13         18 $lastsep = "";
401 13         34 $expectation->is(q{})->at($text);
402            
403              
404 13 50 66     139 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:[\t !#$%&(-~])/)
  13 100       198  
405             {
406            
407 2         8 $expectation->failed();
408 2 50       12 Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
409             Parse::RecDescent::_tracefirst($text))
410             if defined $::RD_TRACE;
411              
412 2         5 last;
413             }
414 11         52 $current_match = substr($text, $-[0], $+[0] - $-[0]);
415 11         45 substr($text,0,length($current_match),q{});
416 11 50       25 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
417             . $current_match . q{])},
418             Parse::RecDescent::_tracefirst($text))
419             if defined $::RD_TRACE;
420 11         27 push @item, $item{__PATTERN1__}=$current_match;
421            
422              
423 11 50       21 Parse::RecDescent::_trace(q{Trying action},
424             Parse::RecDescent::_tracefirst($text),
425             q{_alternation_1_of_production_1_of_rule_macro_string1},
426             $tracelevel)
427             if defined $::RD_TRACE;
428            
429              
430 11 50       22 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  11         23  
431 11 50       26 unless (defined $_tok)
432             {
433 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
434             if defined $::RD_TRACE;
435 0         0 last;
436             }
437 11 50       19 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
438             . $_tok . q{])},
439             Parse::RecDescent::_tracefirst($text))
440             if defined $::RD_TRACE;
441 11         17 push @item, $_tok;
442 11         23 $item{__ACTION1__}=$_tok;
443            
444              
445              
446 11 50       21 Parse::RecDescent::_trace(q{>>Matched production: [/[\\t !#$%&(-~]/]<<},
447             Parse::RecDescent::_tracefirst($text),
448             q{_alternation_1_of_production_1_of_rule_macro_string1},
449             $tracelevel)
450             if defined $::RD_TRACE;
451 11         12 $_matched = 1;
452 11         31 last;
453             }
454              
455              
456 13   66     35 while (!$_matched && !$commit)
457             {
458            
459 2 50       7 Parse::RecDescent::_trace(q{Trying production: ['\\' macro_nl]},
460             Parse::RecDescent::_tracefirst($_[1]),
461             q{_alternation_1_of_production_1_of_rule_macro_string1},
462             $tracelevel)
463             if defined $::RD_TRACE;
464 2         6 my $thisprod = $thisrule->{"prods"}[1];
465 2         5 $text = $_[1];
466 2         4 my $_savetext;
467 2         6 @item = (q{_alternation_1_of_production_1_of_rule_macro_string1});
468 2         7 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_macro_string1});
469 2         4 my $repcount = 0;
470              
471              
472 2 50       6 Parse::RecDescent::_trace(q{Trying terminal: ['\\']},
473             Parse::RecDescent::_tracefirst($text),
474             q{_alternation_1_of_production_1_of_rule_macro_string1},
475             $tracelevel)
476             if defined $::RD_TRACE;
477 2         4 $lastsep = "";
478 2         7 $expectation->is(q{})->at($text);
479            
480              
481 2 50 33     27 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\\/)
  2 50       23  
482             {
483            
484 2         8 $expectation->failed();
485 2 50       10 Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
486             Parse::RecDescent::_tracefirst($text))
487             if defined $::RD_TRACE;
488 2         5 last;
489             }
490 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
491 0         0 substr($text,0,length($current_match),q{});
492 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
493             . $current_match . q{])},
494             Parse::RecDescent::_tracefirst($text))
495             if defined $::RD_TRACE;
496 0         0 push @item, $item{__STRING1__}=$current_match;
497            
498              
499 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [macro_nl]},
500             Parse::RecDescent::_tracefirst($text),
501             q{_alternation_1_of_production_1_of_rule_macro_string1},
502             $tracelevel)
503             if defined $::RD_TRACE;
504 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         925  
  0         0  
505 0         0 $expectation->is(q{macro_nl})->at($text);
506 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_nl($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
507             {
508            
509 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match subrule: [macro_nl]>>},
510             Parse::RecDescent::_tracefirst($text),
511             q{_alternation_1_of_production_1_of_rule_macro_string1},
512             $tracelevel)
513             if defined $::RD_TRACE;
514 0         0 $expectation->failed();
515 0         0 last;
516             }
517 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [macro_nl]<< (return value: [}
518             . $_tok . q{]},
519            
520             Parse::RecDescent::_tracefirst($text),
521             q{_alternation_1_of_production_1_of_rule_macro_string1},
522             $tracelevel)
523             if defined $::RD_TRACE;
524 0         0 $item{q{macro_nl}} = $_tok;
525 0         0 push @item, $_tok;
526            
527             }
528              
529 0 0       0 Parse::RecDescent::_trace(q{Trying action},
530             Parse::RecDescent::_tracefirst($text),
531             q{_alternation_1_of_production_1_of_rule_macro_string1},
532             $tracelevel)
533             if defined $::RD_TRACE;
534            
535              
536 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = ''};
  0         0  
537 0 0       0 unless (defined $_tok)
538             {
539 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
540             if defined $::RD_TRACE;
541 0         0 last;
542             }
543 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
544             . $_tok . q{])},
545             Parse::RecDescent::_tracefirst($text))
546             if defined $::RD_TRACE;
547 0         0 push @item, $_tok;
548 0         0 $item{__ACTION1__}=$_tok;
549            
550              
551              
552 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['\\' macro_nl]<<},
553             Parse::RecDescent::_tracefirst($text),
554             q{_alternation_1_of_production_1_of_rule_macro_string1},
555             $tracelevel)
556             if defined $::RD_TRACE;
557 0         0 $_matched = 1;
558 0         0 last;
559             }
560              
561              
562 13   66     32 while (!$_matched && !$commit)
563             {
564            
565 2 50       7 Parse::RecDescent::_trace(q{Trying production: [''']},
566             Parse::RecDescent::_tracefirst($_[1]),
567             q{_alternation_1_of_production_1_of_rule_macro_string1},
568             $tracelevel)
569             if defined $::RD_TRACE;
570 2         6 my $thisprod = $thisrule->{"prods"}[2];
571 2         3 $text = $_[1];
572 2         4 my $_savetext;
573 2         5 @item = (q{_alternation_1_of_production_1_of_rule_macro_string1});
574 2         6 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_macro_string1});
575 2         4 my $repcount = 0;
576              
577              
578 2 50       6 Parse::RecDescent::_trace(q{Trying terminal: [''']},
579             Parse::RecDescent::_tracefirst($text),
580             q{_alternation_1_of_production_1_of_rule_macro_string1},
581             $tracelevel)
582             if defined $::RD_TRACE;
583 2         10 $lastsep = "";
584 2         6 $expectation->is(q{})->at($text);
585            
586              
587 2 50 33     34 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and do { $_tok = "'"; 1 } and
  2 50 33     17  
  2   33     2  
  2         21  
588             substr($text,0,length($_tok)) eq $_tok and
589 0         0 do { substr($text,0,length($_tok)) = ""; 1; }
  0         0  
590             )
591             {
592            
593 2         7 $expectation->failed();
594 2 50       17 Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
595             Parse::RecDescent::_tracefirst($text))
596             if defined $::RD_TRACE;
597 2         5 last;
598             }
599 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
600             . $_tok . q{])},
601             Parse::RecDescent::_tracefirst($text))
602             if defined $::RD_TRACE;
603 0         0 push @item, $item{__STRING1__}=$_tok;
604            
605              
606 0 0       0 Parse::RecDescent::_trace(q{Trying action},
607             Parse::RecDescent::_tracefirst($text),
608             q{_alternation_1_of_production_1_of_rule_macro_string1},
609             $tracelevel)
610             if defined $::RD_TRACE;
611            
612              
613 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  0         0  
614 0 0       0 unless (defined $_tok)
615             {
616 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
617             if defined $::RD_TRACE;
618 0         0 last;
619             }
620 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
621             . $_tok . q{])},
622             Parse::RecDescent::_tracefirst($text))
623             if defined $::RD_TRACE;
624 0         0 push @item, $_tok;
625 0         0 $item{__ACTION1__}=$_tok;
626            
627              
628              
629 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [''']<<},
630             Parse::RecDescent::_tracefirst($text),
631             q{_alternation_1_of_production_1_of_rule_macro_string1},
632             $tracelevel)
633             if defined $::RD_TRACE;
634 0         0 $_matched = 1;
635 0         0 last;
636             }
637              
638              
639 13   66     35 while (!$_matched && !$commit)
640             {
641            
642 2 50       6 Parse::RecDescent::_trace(q{Trying production: [macro_nonascii]},
643             Parse::RecDescent::_tracefirst($_[1]),
644             q{_alternation_1_of_production_1_of_rule_macro_string1},
645             $tracelevel)
646             if defined $::RD_TRACE;
647 2         5 my $thisprod = $thisrule->{"prods"}[3];
648 2         4 $text = $_[1];
649 2         3 my $_savetext;
650 2         4 @item = (q{_alternation_1_of_production_1_of_rule_macro_string1});
651 2         6 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_macro_string1});
652 2         4 my $repcount = 0;
653              
654              
655 2 50       7 Parse::RecDescent::_trace(q{Trying subrule: [macro_nonascii]},
656             Parse::RecDescent::_tracefirst($text),
657             q{_alternation_1_of_production_1_of_rule_macro_string1},
658             $tracelevel)
659             if defined $::RD_TRACE;
660 1     1   6 if (1) { no strict qw{refs};
  1         3  
  1         535  
  2         2  
661 2         8 $expectation->is(q{})->at($text);
662 2 50   2   26 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_nonascii($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  2         6  
663             {
664            
665 2 50       7 Parse::RecDescent::_trace(q{<<Didn't match subrule: [macro_nonascii]>>},
666             Parse::RecDescent::_tracefirst($text),
667             q{_alternation_1_of_production_1_of_rule_macro_string1},
668             $tracelevel)
669             if defined $::RD_TRACE;
670 2         8 $expectation->failed();
671 2         8 last;
672             }
673 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [macro_nonascii]<< (return value: [}
674             . $_tok . q{]},
675            
676             Parse::RecDescent::_tracefirst($text),
677             q{_alternation_1_of_production_1_of_rule_macro_string1},
678             $tracelevel)
679             if defined $::RD_TRACE;
680 0         0 $item{q{macro_nonascii}} = $_tok;
681 0         0 push @item, $_tok;
682            
683             }
684              
685 0 0       0 Parse::RecDescent::_trace(q{Trying action},
686             Parse::RecDescent::_tracefirst($text),
687             q{_alternation_1_of_production_1_of_rule_macro_string1},
688             $tracelevel)
689             if defined $::RD_TRACE;
690            
691              
692 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  0         0  
693 0 0       0 unless (defined $_tok)
694             {
695 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
696             if defined $::RD_TRACE;
697 0         0 last;
698             }
699 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
700             . $_tok . q{])},
701             Parse::RecDescent::_tracefirst($text))
702             if defined $::RD_TRACE;
703 0         0 push @item, $_tok;
704 0         0 $item{__ACTION1__}=$_tok;
705            
706              
707              
708 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [macro_nonascii]<<},
709             Parse::RecDescent::_tracefirst($text),
710             q{_alternation_1_of_production_1_of_rule_macro_string1},
711             $tracelevel)
712             if defined $::RD_TRACE;
713 0         0 $_matched = 1;
714 0         0 last;
715             }
716              
717              
718 13   66     41 while (!$_matched && !$commit)
719             {
720            
721 2 50       6 Parse::RecDescent::_trace(q{Trying production: [macro_escape]},
722             Parse::RecDescent::_tracefirst($_[1]),
723             q{_alternation_1_of_production_1_of_rule_macro_string1},
724             $tracelevel)
725             if defined $::RD_TRACE;
726 2         6 my $thisprod = $thisrule->{"prods"}[4];
727 2         4 $text = $_[1];
728 2         5 my $_savetext;
729 2         5 @item = (q{_alternation_1_of_production_1_of_rule_macro_string1});
730 2         6 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_macro_string1});
731 2         5 my $repcount = 0;
732              
733              
734 2 50       6 Parse::RecDescent::_trace(q{Trying subrule: [macro_escape]},
735             Parse::RecDescent::_tracefirst($text),
736             q{_alternation_1_of_production_1_of_rule_macro_string1},
737             $tracelevel)
738             if defined $::RD_TRACE;
739 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         932  
  2         3  
740 2         9 $expectation->is(q{})->at($text);
741 2 50   2   29 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_escape($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  2         6  
742             {
743            
744 2 50       7 Parse::RecDescent::_trace(q{<<Didn't match subrule: [macro_escape]>>},
745             Parse::RecDescent::_tracefirst($text),
746             q{_alternation_1_of_production_1_of_rule_macro_string1},
747             $tracelevel)
748             if defined $::RD_TRACE;
749 2         8 $expectation->failed();
750 2         9 last;
751             }
752 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [macro_escape]<< (return value: [}
753             . $_tok . q{]},
754            
755             Parse::RecDescent::_tracefirst($text),
756             q{_alternation_1_of_production_1_of_rule_macro_string1},
757             $tracelevel)
758             if defined $::RD_TRACE;
759 0         0 $item{q{macro_escape}} = $_tok;
760 0         0 push @item, $_tok;
761            
762             }
763              
764 0 0       0 Parse::RecDescent::_trace(q{Trying action},
765             Parse::RecDescent::_tracefirst($text),
766             q{_alternation_1_of_production_1_of_rule_macro_string1},
767             $tracelevel)
768             if defined $::RD_TRACE;
769            
770              
771 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  0         0  
772 0 0       0 unless (defined $_tok)
773             {
774 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
775             if defined $::RD_TRACE;
776 0         0 last;
777             }
778 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
779             . $_tok . q{])},
780             Parse::RecDescent::_tracefirst($text))
781             if defined $::RD_TRACE;
782 0         0 push @item, $_tok;
783 0         0 $item{__ACTION1__}=$_tok;
784            
785              
786              
787 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [macro_escape]<<},
788             Parse::RecDescent::_tracefirst($text),
789             q{_alternation_1_of_production_1_of_rule_macro_string1},
790             $tracelevel)
791             if defined $::RD_TRACE;
792 0         0 $_matched = 1;
793 0         0 last;
794             }
795              
796              
797 13 100 66     40 unless ( $_matched || defined($score) )
798             {
799            
800              
801 2         4 $_[1] = $text; # NOT SURE THIS IS NEEDED
802 2 50       6 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
803             Parse::RecDescent::_tracefirst($_[1]),
804             q{_alternation_1_of_production_1_of_rule_macro_string1},
805             $tracelevel)
806             if defined $::RD_TRACE;
807 2         14 return undef;
808             }
809 11 50 33     27 if (!defined($return) && defined($score))
810             {
811 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
812             q{_alternation_1_of_production_1_of_rule_macro_string1},
813             $tracelevel)
814             if defined $::RD_TRACE;
815 0         0 $return = $score_return;
816             }
817 11         14 splice @{$thisparser->{errors}}, $err_at;
  11         26  
818 11 50       24 $return = $item[$#item] unless defined $return;
819 11 50       23 if (defined $::RD_TRACE)
820             {
821 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
822             $return . q{])}, "",
823             q{_alternation_1_of_production_1_of_rule_macro_string1},
824             $tracelevel);
825 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
826             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
827             Parse::RecDescent::_tracefirst($text),
828             , q{_alternation_1_of_production_1_of_rule_macro_string1},
829             $tracelevel)
830             }
831 11         16 $_[1] = $text;
832 11         81 return $return;
833             }
834              
835             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
836             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_unicode
837             {
838 195     195   496 my $thisparser = $_[0];
839 1     1   6 use vars q{$tracelevel};
  1         1  
  1         1094  
840 195   50     538 local $tracelevel = ($tracelevel||0)+1;
841 195         249 $ERRORS = 0;
842 195         533 my $thisrule = $thisparser->{"rules"}{"macro_unicode"};
843            
844 195 50       407 Parse::RecDescent::_trace(q{Trying rule: [macro_unicode]},
845             Parse::RecDescent::_tracefirst($_[1]),
846             q{macro_unicode},
847             $tracelevel)
848             if defined $::RD_TRACE;
849              
850            
851 195         197 my $err_at = @{$thisparser->{errors}};
  195         467  
852              
853 195         374 my $score;
854             my $score_return;
855 0         0 my $_tok;
856 195         302 my $return = undef;
857 195         204 my $_matched=0;
858 195         205 my $commit=0;
859 195         341 my @item = ();
860 195         257 my %item = ();
861 195   33     654 my $repeating = defined($_[2]) && $_[2];
862 195   33     512 my $_noactions = defined($_[3]) && $_[3];
863 195 50       414 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  195         242  
  195         398  
864 195 50       507 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
865 195         198 my $text;
866 195         244 my $lastsep="";
867 195         209 my $current_match;
868 195         579 my $expectation = new Parse::RecDescent::Expectation(q{/\\[0-9a-f]\{1,6\}[ \\n\\r\\t\\f]?/});
869 195         1645 $expectation->at($_[1]);
870            
871 195         669 my $thisline;
872 195         705 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
873              
874            
875              
876 195   33     1793 while (!$_matched && !$commit)
877             {
878            
879 195 50       480 Parse::RecDescent::_trace(q{Trying production: [/\\[0-9a-f]\{1,6\}[ \\n\\r\\t\\f]?/]},
880             Parse::RecDescent::_tracefirst($_[1]),
881             q{macro_unicode},
882             $tracelevel)
883             if defined $::RD_TRACE;
884 195         471 my $thisprod = $thisrule->{"prods"}[0];
885 195         253 $text = $_[1];
886 195         229 my $_savetext;
887 195         377 @item = (q{macro_unicode});
888 195         444 %item = (__RULE__ => q{macro_unicode});
889 195         216 my $repcount = 0;
890              
891              
892 195 50       410 Parse::RecDescent::_trace(q{Trying terminal: [/\\[0-9a-f]\{1,6\}[ \\n\\r\\t\\f]?/]}, Parse::RecDescent::_tracefirst($text),
893             q{macro_unicode},
894             $tracelevel)
895             if defined $::RD_TRACE;
896 195         304 $lastsep = "";
897 195         512 $expectation->is(q{})->at($text);
898            
899              
900 195 50 33     2071 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:\[0-9a-f]{1,6}[ \n\r\t\f]?)/)
  195 50       1914  
901             {
902            
903 195         555 $expectation->failed();
904 195 50       888 Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
905             Parse::RecDescent::_tracefirst($text))
906             if defined $::RD_TRACE;
907              
908 195         442 last;
909             }
910 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
911 0         0 substr($text,0,length($current_match),q{});
912 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
913             . $current_match . q{])},
914             Parse::RecDescent::_tracefirst($text))
915             if defined $::RD_TRACE;
916 0         0 push @item, $item{__PATTERN1__}=$current_match;
917            
918              
919 0 0       0 Parse::RecDescent::_trace(q{Trying action},
920             Parse::RecDescent::_tracefirst($text),
921             q{macro_unicode},
922             $tracelevel)
923             if defined $::RD_TRACE;
924            
925              
926 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  0         0  
927 0 0       0 unless (defined $_tok)
928             {
929 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
930             if defined $::RD_TRACE;
931 0         0 last;
932             }
933 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
934             . $_tok . q{])},
935             Parse::RecDescent::_tracefirst($text))
936             if defined $::RD_TRACE;
937 0         0 push @item, $_tok;
938 0         0 $item{__ACTION1__}=$_tok;
939            
940              
941              
942 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/\\[0-9a-f]\{1,6\}[ \\n\\r\\t\\f]?/]<<},
943             Parse::RecDescent::_tracefirst($text),
944             q{macro_unicode},
945             $tracelevel)
946             if defined $::RD_TRACE;
947 0         0 $_matched = 1;
948 0         0 last;
949             }
950              
951              
952 195 50 33     868 unless ( $_matched || defined($score) )
953             {
954            
955              
956 195         278 $_[1] = $text; # NOT SURE THIS IS NEEDED
957 195 50       451 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
958             Parse::RecDescent::_tracefirst($_[1]),
959             q{macro_unicode},
960             $tracelevel)
961             if defined $::RD_TRACE;
962 195         1329 return undef;
963             }
964 0 0 0     0 if (!defined($return) && defined($score))
965             {
966 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
967             q{macro_unicode},
968             $tracelevel)
969             if defined $::RD_TRACE;
970 0         0 $return = $score_return;
971             }
972 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
973 0 0       0 $return = $item[$#item] unless defined $return;
974 0 0       0 if (defined $::RD_TRACE)
975             {
976 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
977             $return . q{])}, "",
978             q{macro_unicode},
979             $tracelevel);
980 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
981             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
982             Parse::RecDescent::_tracefirst($text),
983             , q{macro_unicode},
984             $tracelevel)
985             }
986 0         0 $_[1] = $text;
987 0         0 return $return;
988             }
989              
990             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
991             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::_alternation_1_of_production_2_of_rule_URI
992             {
993 9     9   110 my $thisparser = $_[0];
994 1     1   8 use vars q{$tracelevel};
  1         2  
  1         896  
995 9   50     21 local $tracelevel = ($tracelevel||0)+1;
996 9         13 $ERRORS = 0;
997 9         22 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_2_of_rule_URI"};
998            
999 9 50       18 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_2_of_rule_URI]},
1000             Parse::RecDescent::_tracefirst($_[1]),
1001             q{_alternation_1_of_production_2_of_rule_URI},
1002             $tracelevel)
1003             if defined $::RD_TRACE;
1004              
1005            
1006 9         9 my $err_at = @{$thisparser->{errors}};
  9         14  
1007              
1008 9         12 my $score;
1009             my $score_return;
1010 0         0 my $_tok;
1011 9         8 my $return = undef;
1012 9         8 my $_matched=0;
1013 9         9 my $commit=0;
1014 9         13 my @item = ();
1015 9         10 my %item = ();
1016 9   33     29 my $repeating = defined($_[2]) && $_[2];
1017 9   33     37 my $_noactions = defined($_[3]) && $_[3];
1018 9 50       16 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  9         9  
  9         19  
1019 9 50       22 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
1020 9         10 my $text;
1021 9         11 my $lastsep="";
1022 9         8 my $current_match;
1023 9         28 my $expectation = new Parse::RecDescent::Expectation(q{/[!#$%&*-~]/, or macro_nonascii, or macro_escape});
1024 9         65 $expectation->at($_[1]);
1025            
1026 9         34 my $thisline;
1027 9         33 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1028              
1029            
1030              
1031 9   33     84 while (!$_matched && !$commit)
1032             {
1033            
1034 9 50       16 Parse::RecDescent::_trace(q{Trying production: [/[!#$%&*-~]/]},
1035             Parse::RecDescent::_tracefirst($_[1]),
1036             q{_alternation_1_of_production_2_of_rule_URI},
1037             $tracelevel)
1038             if defined $::RD_TRACE;
1039 9         20 my $thisprod = $thisrule->{"prods"}[0];
1040 9         11 $text = $_[1];
1041 9         9 my $_savetext;
1042 9         12 @item = (q{_alternation_1_of_production_2_of_rule_URI});
1043 9         17 %item = (__RULE__ => q{_alternation_1_of_production_2_of_rule_URI});
1044 9         10 my $repcount = 0;
1045              
1046              
1047 9 50       16 Parse::RecDescent::_trace(q{Trying terminal: [/[!#$%&*-~]/]}, Parse::RecDescent::_tracefirst($text),
1048             q{_alternation_1_of_production_2_of_rule_URI},
1049             $tracelevel)
1050             if defined $::RD_TRACE;
1051 9         10 $lastsep = "";
1052 9         22 $expectation->is(q{})->at($text);
1053            
1054              
1055 9 50 66     95 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:[!#$%&*-~])/)
  9 100       105  
1056             {
1057            
1058 1         5 $expectation->failed();
1059 1 50       7 Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
1060             Parse::RecDescent::_tracefirst($text))
1061             if defined $::RD_TRACE;
1062              
1063 1         3 last;
1064             }
1065 8         33 $current_match = substr($text, $-[0], $+[0] - $-[0]);
1066 8         24 substr($text,0,length($current_match),q{});
1067 8 50       15 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
1068             . $current_match . q{])},
1069             Parse::RecDescent::_tracefirst($text))
1070             if defined $::RD_TRACE;
1071 8         16 push @item, $item{__PATTERN1__}=$current_match;
1072            
1073              
1074 8 50       15 Parse::RecDescent::_trace(q{Trying action},
1075             Parse::RecDescent::_tracefirst($text),
1076             q{_alternation_1_of_production_2_of_rule_URI},
1077             $tracelevel)
1078             if defined $::RD_TRACE;
1079            
1080              
1081 8 50       12 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  8         14  
1082 8 50       18 unless (defined $_tok)
1083             {
1084 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
1085             if defined $::RD_TRACE;
1086 0         0 last;
1087             }
1088 8 50       13 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
1089             . $_tok . q{])},
1090             Parse::RecDescent::_tracefirst($text))
1091             if defined $::RD_TRACE;
1092 8         11 push @item, $_tok;
1093 8         14 $item{__ACTION1__}=$_tok;
1094            
1095              
1096              
1097 8 50       16 Parse::RecDescent::_trace(q{>>Matched production: [/[!#$%&*-~]/]<<},
1098             Parse::RecDescent::_tracefirst($text),
1099             q{_alternation_1_of_production_2_of_rule_URI},
1100             $tracelevel)
1101             if defined $::RD_TRACE;
1102 8         9 $_matched = 1;
1103 8         14 last;
1104             }
1105              
1106              
1107 9   66     23 while (!$_matched && !$commit)
1108             {
1109            
1110 1 50       4 Parse::RecDescent::_trace(q{Trying production: [macro_nonascii]},
1111             Parse::RecDescent::_tracefirst($_[1]),
1112             q{_alternation_1_of_production_2_of_rule_URI},
1113             $tracelevel)
1114             if defined $::RD_TRACE;
1115 1         4 my $thisprod = $thisrule->{"prods"}[1];
1116 1         3 $text = $_[1];
1117 1         2 my $_savetext;
1118 1         3 @item = (q{_alternation_1_of_production_2_of_rule_URI});
1119 1         3 %item = (__RULE__ => q{_alternation_1_of_production_2_of_rule_URI});
1120 1         2 my $repcount = 0;
1121              
1122              
1123 1 50       4 Parse::RecDescent::_trace(q{Trying subrule: [macro_nonascii]},
1124             Parse::RecDescent::_tracefirst($text),
1125             q{_alternation_1_of_production_2_of_rule_URI},
1126             $tracelevel)
1127             if defined $::RD_TRACE;
1128 1     1   8 if (1) { no strict qw{refs};
  1         3  
  1         504  
  1         12  
1129 1         81 $expectation->is(q{})->at($text);
1130 1 50   1   23 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_nonascii($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  1         4  
1131             {
1132            
1133 1 50       5 Parse::RecDescent::_trace(q{<<Didn't match subrule: [macro_nonascii]>>},
1134             Parse::RecDescent::_tracefirst($text),
1135             q{_alternation_1_of_production_2_of_rule_URI},
1136             $tracelevel)
1137             if defined $::RD_TRACE;
1138 1         5 $expectation->failed();
1139 1         4 last;
1140             }
1141 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [macro_nonascii]<< (return value: [}
1142             . $_tok . q{]},
1143            
1144             Parse::RecDescent::_tracefirst($text),
1145             q{_alternation_1_of_production_2_of_rule_URI},
1146             $tracelevel)
1147             if defined $::RD_TRACE;
1148 0         0 $item{q{macro_nonascii}} = $_tok;
1149 0         0 push @item, $_tok;
1150            
1151             }
1152              
1153 0 0       0 Parse::RecDescent::_trace(q{Trying action},
1154             Parse::RecDescent::_tracefirst($text),
1155             q{_alternation_1_of_production_2_of_rule_URI},
1156             $tracelevel)
1157             if defined $::RD_TRACE;
1158            
1159              
1160 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  0         0  
1161 0 0       0 unless (defined $_tok)
1162             {
1163 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
1164             if defined $::RD_TRACE;
1165 0         0 last;
1166             }
1167 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
1168             . $_tok . q{])},
1169             Parse::RecDescent::_tracefirst($text))
1170             if defined $::RD_TRACE;
1171 0         0 push @item, $_tok;
1172 0         0 $item{__ACTION1__}=$_tok;
1173            
1174              
1175              
1176 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [macro_nonascii]<<},
1177             Parse::RecDescent::_tracefirst($text),
1178             q{_alternation_1_of_production_2_of_rule_URI},
1179             $tracelevel)
1180             if defined $::RD_TRACE;
1181 0         0 $_matched = 1;
1182 0         0 last;
1183             }
1184              
1185              
1186 9   66     25 while (!$_matched && !$commit)
1187             {
1188            
1189 1 50       4 Parse::RecDescent::_trace(q{Trying production: [macro_escape]},
1190             Parse::RecDescent::_tracefirst($_[1]),
1191             q{_alternation_1_of_production_2_of_rule_URI},
1192             $tracelevel)
1193             if defined $::RD_TRACE;
1194 1         3 my $thisprod = $thisrule->{"prods"}[2];
1195 1         2 $text = $_[1];
1196 1         1 my $_savetext;
1197 1         3 @item = (q{_alternation_1_of_production_2_of_rule_URI});
1198 1         3 %item = (__RULE__ => q{_alternation_1_of_production_2_of_rule_URI});
1199 1         12 my $repcount = 0;
1200              
1201              
1202 1 50       7 Parse::RecDescent::_trace(q{Trying subrule: [macro_escape]},
1203             Parse::RecDescent::_tracefirst($text),
1204             q{_alternation_1_of_production_2_of_rule_URI},
1205             $tracelevel)
1206             if defined $::RD_TRACE;
1207 1     1   9 if (1) { no strict qw{refs};
  1         3  
  1         752  
  1         2  
1208 1         3 $expectation->is(q{})->at($text);
1209 1 50   1   15 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_escape($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  1         4  
1210             {
1211            
1212 1 50       5 Parse::RecDescent::_trace(q{<<Didn't match subrule: [macro_escape]>>},
1213             Parse::RecDescent::_tracefirst($text),
1214             q{_alternation_1_of_production_2_of_rule_URI},
1215             $tracelevel)
1216             if defined $::RD_TRACE;
1217 1         5 $expectation->failed();
1218 1         7 last;
1219             }
1220 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [macro_escape]<< (return value: [}
1221             . $_tok . q{]},
1222            
1223             Parse::RecDescent::_tracefirst($text),
1224             q{_alternation_1_of_production_2_of_rule_URI},
1225             $tracelevel)
1226             if defined $::RD_TRACE;
1227 0         0 $item{q{macro_escape}} = $_tok;
1228 0         0 push @item, $_tok;
1229            
1230             }
1231              
1232 0 0       0 Parse::RecDescent::_trace(q{Trying action},
1233             Parse::RecDescent::_tracefirst($text),
1234             q{_alternation_1_of_production_2_of_rule_URI},
1235             $tracelevel)
1236             if defined $::RD_TRACE;
1237            
1238              
1239 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  0         0  
1240 0 0       0 unless (defined $_tok)
1241             {
1242 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
1243             if defined $::RD_TRACE;
1244 0         0 last;
1245             }
1246 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
1247             . $_tok . q{])},
1248             Parse::RecDescent::_tracefirst($text))
1249             if defined $::RD_TRACE;
1250 0         0 push @item, $_tok;
1251 0         0 $item{__ACTION1__}=$_tok;
1252            
1253              
1254              
1255 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [macro_escape]<<},
1256             Parse::RecDescent::_tracefirst($text),
1257             q{_alternation_1_of_production_2_of_rule_URI},
1258             $tracelevel)
1259             if defined $::RD_TRACE;
1260 0         0 $_matched = 1;
1261 0         0 last;
1262             }
1263              
1264              
1265 9 100 66     29 unless ( $_matched || defined($score) )
1266             {
1267            
1268              
1269 1         3 $_[1] = $text; # NOT SURE THIS IS NEEDED
1270 1 50       6 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
1271             Parse::RecDescent::_tracefirst($_[1]),
1272             q{_alternation_1_of_production_2_of_rule_URI},
1273             $tracelevel)
1274             if defined $::RD_TRACE;
1275 1         9 return undef;
1276             }
1277 8 50 33     20 if (!defined($return) && defined($score))
1278             {
1279 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1280             q{_alternation_1_of_production_2_of_rule_URI},
1281             $tracelevel)
1282             if defined $::RD_TRACE;
1283 0         0 $return = $score_return;
1284             }
1285 8         17 splice @{$thisparser->{errors}}, $err_at;
  8         17  
1286 8 50       23 $return = $item[$#item] unless defined $return;
1287 8 50       17 if (defined $::RD_TRACE)
1288             {
1289 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1290             $return . q{])}, "",
1291             q{_alternation_1_of_production_2_of_rule_URI},
1292             $tracelevel);
1293 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
1294             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
1295             Parse::RecDescent::_tracefirst($text),
1296             , q{_alternation_1_of_production_2_of_rule_URI},
1297             $tracelevel)
1298             }
1299 8         12 $_[1] = $text;
1300 8         55 return $return;
1301             }
1302              
1303             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1304             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::atrule
1305             {
1306 3     3   7 my $thisparser = $_[0];
1307 1     1   9 use vars q{$tracelevel};
  1         2  
  1         531  
1308 3   50     13 local $tracelevel = ($tracelevel||0)+1;
1309 3         4 $ERRORS = 0;
1310 3         9 my $thisrule = $thisparser->{"rules"}{"atrule"};
1311            
1312 3 50       9 Parse::RecDescent::_trace(q{Trying rule: [atrule]},
1313             Parse::RecDescent::_tracefirst($_[1]),
1314             q{atrule},
1315             $tracelevel)
1316             if defined $::RD_TRACE;
1317              
1318            
1319 3         5 my $err_at = @{$thisparser->{errors}};
  3         7  
1320              
1321 3         4 my $score;
1322             my $score_return;
1323 0         0 my $_tok;
1324 3         6 my $return = undef;
1325 3         4 my $_matched=0;
1326 3         4 my $commit=0;
1327 3         22 my @item = ();
1328 3         7 my %item = ();
1329 3   33     12 my $repeating = defined($_[2]) && $_[2];
1330 3   33     12 my $_noactions = defined($_[3]) && $_[3];
1331 3 50       9 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  3         6  
  3         5  
1332 3 50       19 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
1333 3         4 my $text;
1334 3         5 my $lastsep="";
1335 3         4 my $current_match;
1336 3         11 my $expectation = new Parse::RecDescent::Expectation(q{ATKEYWORD});
1337 3         25 $expectation->at($_[1]);
1338            
1339 3         13 my $thisline;
1340 3         13 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1341              
1342            
1343              
1344 3   33     32 while (!$_matched && !$commit)
1345             {
1346            
1347 3 50       9 Parse::RecDescent::_trace(q{Trying production: [ATKEYWORD WS any block, or ';']},
1348             Parse::RecDescent::_tracefirst($_[1]),
1349             q{atrule},
1350             $tracelevel)
1351             if defined $::RD_TRACE;
1352 3         11 my $thisprod = $thisrule->{"prods"}[0];
1353 3         5 $text = $_[1];
1354 3         3 my $_savetext;
1355 3         8 @item = (q{atrule});
1356 3         7 %item = (__RULE__ => q{atrule});
1357 3         11 my $repcount = 0;
1358              
1359              
1360 3 50       7 Parse::RecDescent::_trace(q{Trying subrule: [ATKEYWORD]},
1361             Parse::RecDescent::_tracefirst($text),
1362             q{atrule},
1363             $tracelevel)
1364             if defined $::RD_TRACE;
1365 1     1   8 if (1) { no strict qw{refs};
  1         3  
  1         561  
  3         4  
1366 3         10 $expectation->is(q{})->at($text);
1367 3 50   3   35 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::ATKEYWORD($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  3         7  
1368             {
1369            
1370 3 50       9 Parse::RecDescent::_trace(q{<<Didn't match subrule: [ATKEYWORD]>>},
1371             Parse::RecDescent::_tracefirst($text),
1372             q{atrule},
1373             $tracelevel)
1374             if defined $::RD_TRACE;
1375 3         9 $expectation->failed();
1376 3         12 last;
1377             }
1378 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [ATKEYWORD]<< (return value: [}
1379             . $_tok . q{]},
1380            
1381             Parse::RecDescent::_tracefirst($text),
1382             q{atrule},
1383             $tracelevel)
1384             if defined $::RD_TRACE;
1385 0         0 $item{q{ATKEYWORD}} = $_tok;
1386 0         0 push @item, $_tok;
1387            
1388             }
1389              
1390 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [WS]},
1391             Parse::RecDescent::_tracefirst($text),
1392             q{atrule},
1393             $tracelevel)
1394             if defined $::RD_TRACE;
1395 0         0 $expectation->is(q{WS})->at($text);
1396            
1397 0 0   0   0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::CSS::Parse::CompiledGrammar::WS, 0, 100000000, $_noactions,$expectation,sub { \@arg })))
  0         0  
1398             {
1399 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [WS]>>},
1400             Parse::RecDescent::_tracefirst($text),
1401             q{atrule},
1402             $tracelevel)
1403             if defined $::RD_TRACE;
1404 0         0 last;
1405             }
1406 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [WS]<< (}
1407             . @$_tok . q{ times)},
1408            
1409             Parse::RecDescent::_tracefirst($text),
1410             q{atrule},
1411             $tracelevel)
1412             if defined $::RD_TRACE;
1413 0         0 $item{q{WS(s?)}} = $_tok;
1414 0         0 push @item, $_tok;
1415            
1416              
1417              
1418 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [any]},
1419             Parse::RecDescent::_tracefirst($text),
1420             q{atrule},
1421             $tracelevel)
1422             if defined $::RD_TRACE;
1423 0         0 $expectation->is(q{any})->at($text);
1424            
1425 0 0   0   0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::CSS::Parse::CompiledGrammar::any, 0, 100000000, $_noactions,$expectation,sub { \@arg })))
  0         0  
1426             {
1427 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [any]>>},
1428             Parse::RecDescent::_tracefirst($text),
1429             q{atrule},
1430             $tracelevel)
1431             if defined $::RD_TRACE;
1432 0         0 last;
1433             }
1434 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [any]<< (}
1435             . @$_tok . q{ times)},
1436            
1437             Parse::RecDescent::_tracefirst($text),
1438             q{atrule},
1439             $tracelevel)
1440             if defined $::RD_TRACE;
1441 0         0 $item{q{any(s?)}} = $_tok;
1442 0         0 push @item, $_tok;
1443            
1444              
1445              
1446 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_atrule]},
1447             Parse::RecDescent::_tracefirst($text),
1448             q{atrule},
1449             $tracelevel)
1450             if defined $::RD_TRACE;
1451 1     1   8 if (1) { no strict qw{refs};
  1         53  
  1         705  
  0         0  
1452 0         0 $expectation->is(q{block, or ';'})->at($text);
1453 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::_alternation_1_of_production_1_of_rule_atrule($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
1454             {
1455            
1456 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_atrule]>>},
1457             Parse::RecDescent::_tracefirst($text),
1458             q{atrule},
1459             $tracelevel)
1460             if defined $::RD_TRACE;
1461 0         0 $expectation->failed();
1462 0         0 last;
1463             }
1464 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_atrule]<< (return value: [}
1465             . $_tok . q{]},
1466            
1467             Parse::RecDescent::_tracefirst($text),
1468             q{atrule},
1469             $tracelevel)
1470             if defined $::RD_TRACE;
1471 0         0 $item{q{_alternation_1_of_production_1_of_rule_atrule}} = $_tok;
1472 0         0 push @item, $_tok;
1473            
1474             }
1475              
1476 0 0       0 Parse::RecDescent::_trace(q{Trying action},
1477             Parse::RecDescent::_tracefirst($text),
1478             q{atrule},
1479             $tracelevel)
1480             if defined $::RD_TRACE;
1481            
1482              
1483 0 0       0 $_tok = ($_noactions) ? 0 : do {print "at-rule\n"};
  0         0  
1484 0 0       0 unless (defined $_tok)
1485             {
1486 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
1487             if defined $::RD_TRACE;
1488 0         0 last;
1489             }
1490 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
1491             . $_tok . q{])},
1492             Parse::RecDescent::_tracefirst($text))
1493             if defined $::RD_TRACE;
1494 0         0 push @item, $_tok;
1495 0         0 $item{__ACTION1__}=$_tok;
1496            
1497              
1498              
1499 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [ATKEYWORD WS any block, or ';']<<},
1500             Parse::RecDescent::_tracefirst($text),
1501             q{atrule},
1502             $tracelevel)
1503             if defined $::RD_TRACE;
1504 0         0 $_matched = 1;
1505 0         0 last;
1506             }
1507              
1508              
1509 3 50 33     21 unless ( $_matched || defined($score) )
1510             {
1511            
1512              
1513 3         6 $_[1] = $text; # NOT SURE THIS IS NEEDED
1514 3 50       6 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
1515             Parse::RecDescent::_tracefirst($_[1]),
1516             q{atrule},
1517             $tracelevel)
1518             if defined $::RD_TRACE;
1519 3         21 return undef;
1520             }
1521 0 0 0     0 if (!defined($return) && defined($score))
1522             {
1523 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1524             q{atrule},
1525             $tracelevel)
1526             if defined $::RD_TRACE;
1527 0         0 $return = $score_return;
1528             }
1529 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
1530 0 0       0 $return = $item[$#item] unless defined $return;
1531 0 0       0 if (defined $::RD_TRACE)
1532             {
1533 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1534             $return . q{])}, "",
1535             q{atrule},
1536             $tracelevel);
1537 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
1538             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
1539             Parse::RecDescent::_tracefirst($text),
1540             , q{atrule},
1541             $tracelevel)
1542             }
1543 0         0 $_[1] = $text;
1544 0         0 return $return;
1545             }
1546              
1547             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1548             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::_alternation_1_of_production_1_of_rule_value
1549             {
1550 43     43   693 my $thisparser = $_[0];
1551 1     1   6 use vars q{$tracelevel};
  1         1  
  1         382  
1552 43   50     136 local $tracelevel = ($tracelevel||0)+1;
1553 43         57 $ERRORS = 0;
1554 43         114 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_value"};
1555            
1556 43 50       87 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_value]},
1557             Parse::RecDescent::_tracefirst($_[1]),
1558             q{_alternation_1_of_production_1_of_rule_value},
1559             $tracelevel)
1560             if defined $::RD_TRACE;
1561              
1562            
1563 43         51 my $err_at = @{$thisparser->{errors}};
  43         78  
1564              
1565 43         60 my $score;
1566             my $score_return;
1567 0         0 my $_tok;
1568 43         56 my $return = undef;
1569 43         53 my $_matched=0;
1570 43         49 my $commit=0;
1571 43         65 my @item = ();
1572 43         69 my %item = ();
1573 43   33     135 my $repeating = defined($_[2]) && $_[2];
1574 43   33     125 my $_noactions = defined($_[3]) && $_[3];
1575 43 50       93 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  43         58  
  43         92  
1576 43 50       104 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
1577 43         63 my $text;
1578 43         63 my $lastsep="";
1579 43         60 my $current_match;
1580 43         136 my $expectation = new Parse::RecDescent::Expectation(q{any, or block, or ATKEYWORD});
1581 43         332 $expectation->at($_[1]);
1582            
1583 43         165 my $thisline;
1584 43         241 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1585              
1586            
1587              
1588 43   33     378 while (!$_matched && !$commit)
1589             {
1590            
1591 43 50       95 Parse::RecDescent::_trace(q{Trying production: [any]},
1592             Parse::RecDescent::_tracefirst($_[1]),
1593             q{_alternation_1_of_production_1_of_rule_value},
1594             $tracelevel)
1595             if defined $::RD_TRACE;
1596 43         124 my $thisprod = $thisrule->{"prods"}[0];
1597 43         71 $text = $_[1];
1598 43         44 my $_savetext;
1599 43         77 @item = (q{_alternation_1_of_production_1_of_rule_value});
1600 43         104 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_value});
1601 43         58 my $repcount = 0;
1602              
1603              
1604 43 50       82 Parse::RecDescent::_trace(q{Trying subrule: [any]},
1605             Parse::RecDescent::_tracefirst($text),
1606             q{_alternation_1_of_production_1_of_rule_value},
1607             $tracelevel)
1608             if defined $::RD_TRACE;
1609 1     1   5 if (1) { no strict qw{refs};
  1         2  
  1         392  
  43         52  
1610 43         124 $expectation->is(q{})->at($text);
1611 43 100   43   451 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::any($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  43         98  
1612             {
1613            
1614 20 50       70 Parse::RecDescent::_trace(q{<<Didn't match subrule: [any]>>},
1615             Parse::RecDescent::_tracefirst($text),
1616             q{_alternation_1_of_production_1_of_rule_value},
1617             $tracelevel)
1618             if defined $::RD_TRACE;
1619 20         69 $expectation->failed();
1620 20         98 last;
1621             }
1622 23 50       111 Parse::RecDescent::_trace(q{>>Matched subrule: [any]<< (return value: [}
1623             . $_tok . q{]},
1624            
1625             Parse::RecDescent::_tracefirst($text),
1626             q{_alternation_1_of_production_1_of_rule_value},
1627             $tracelevel)
1628             if defined $::RD_TRACE;
1629 23         69 $item{q{any}} = $_tok;
1630 23         45 push @item, $_tok;
1631            
1632             }
1633              
1634 23 50       65 Parse::RecDescent::_trace(q{Trying action},
1635             Parse::RecDescent::_tracefirst($text),
1636             q{_alternation_1_of_production_1_of_rule_value},
1637             $tracelevel)
1638             if defined $::RD_TRACE;
1639            
1640              
1641 23 50       66 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  23         58  
1642 23 50       62 unless (defined $_tok)
1643             {
1644 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
1645             if defined $::RD_TRACE;
1646 0         0 last;
1647             }
1648 23 50       50 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
1649             . $_tok . q{])},
1650             Parse::RecDescent::_tracefirst($text))
1651             if defined $::RD_TRACE;
1652 23         36 push @item, $_tok;
1653 23         58 $item{__ACTION1__}=$_tok;
1654            
1655              
1656              
1657 23 50       58 Parse::RecDescent::_trace(q{>>Matched production: [any]<<},
1658             Parse::RecDescent::_tracefirst($text),
1659             q{_alternation_1_of_production_1_of_rule_value},
1660             $tracelevel)
1661             if defined $::RD_TRACE;
1662 23         38 $_matched = 1;
1663 23         48 last;
1664             }
1665              
1666              
1667 43   66     238 while (!$_matched && !$commit)
1668             {
1669            
1670 20 50       59 Parse::RecDescent::_trace(q{Trying production: [block]},
1671             Parse::RecDescent::_tracefirst($_[1]),
1672             q{_alternation_1_of_production_1_of_rule_value},
1673             $tracelevel)
1674             if defined $::RD_TRACE;
1675 20         61 my $thisprod = $thisrule->{"prods"}[1];
1676 20         43 $text = $_[1];
1677 20         37 my $_savetext;
1678 20         54 @item = (q{_alternation_1_of_production_1_of_rule_value});
1679 20         75 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_value});
1680 20         38 my $repcount = 0;
1681              
1682              
1683 20 50       67 Parse::RecDescent::_trace(q{Trying subrule: [block]},
1684             Parse::RecDescent::_tracefirst($text),
1685             q{_alternation_1_of_production_1_of_rule_value},
1686             $tracelevel)
1687             if defined $::RD_TRACE;
1688 1     1   5 if (1) { no strict qw{refs};
  1         1  
  1         391  
  20         24  
1689 20         77 $expectation->is(q{})->at($text);
1690 20 50   20   265 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::block($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  20         38  
1691             {
1692            
1693 20 50       45 Parse::RecDescent::_trace(q{<<Didn't match subrule: [block]>>},
1694             Parse::RecDescent::_tracefirst($text),
1695             q{_alternation_1_of_production_1_of_rule_value},
1696             $tracelevel)
1697             if defined $::RD_TRACE;
1698 20         108 $expectation->failed();
1699 20         74 last;
1700             }
1701 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [block]<< (return value: [}
1702             . $_tok . q{]},
1703            
1704             Parse::RecDescent::_tracefirst($text),
1705             q{_alternation_1_of_production_1_of_rule_value},
1706             $tracelevel)
1707             if defined $::RD_TRACE;
1708 0         0 $item{q{block}} = $_tok;
1709 0         0 push @item, $_tok;
1710            
1711             }
1712              
1713 0 0       0 Parse::RecDescent::_trace(q{Trying action},
1714             Parse::RecDescent::_tracefirst($text),
1715             q{_alternation_1_of_production_1_of_rule_value},
1716             $tracelevel)
1717             if defined $::RD_TRACE;
1718            
1719              
1720 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  0         0  
1721 0 0       0 unless (defined $_tok)
1722             {
1723 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
1724             if defined $::RD_TRACE;
1725 0         0 last;
1726             }
1727 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
1728             . $_tok . q{])},
1729             Parse::RecDescent::_tracefirst($text))
1730             if defined $::RD_TRACE;
1731 0         0 push @item, $_tok;
1732 0         0 $item{__ACTION1__}=$_tok;
1733            
1734              
1735              
1736 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [block]<<},
1737             Parse::RecDescent::_tracefirst($text),
1738             q{_alternation_1_of_production_1_of_rule_value},
1739             $tracelevel)
1740             if defined $::RD_TRACE;
1741 0         0 $_matched = 1;
1742 0         0 last;
1743             }
1744              
1745              
1746 43   66     180 while (!$_matched && !$commit)
1747             {
1748            
1749 20 50       44 Parse::RecDescent::_trace(q{Trying production: [ATKEYWORD OWS]},
1750             Parse::RecDescent::_tracefirst($_[1]),
1751             q{_alternation_1_of_production_1_of_rule_value},
1752             $tracelevel)
1753             if defined $::RD_TRACE;
1754 20         53 my $thisprod = $thisrule->{"prods"}[2];
1755 20         34 $text = $_[1];
1756 20         28 my $_savetext;
1757 20         43 @item = (q{_alternation_1_of_production_1_of_rule_value});
1758 20         57 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_value});
1759 20         48 my $repcount = 0;
1760              
1761              
1762 20 50       72 Parse::RecDescent::_trace(q{Trying subrule: [ATKEYWORD]},
1763             Parse::RecDescent::_tracefirst($text),
1764             q{_alternation_1_of_production_1_of_rule_value},
1765             $tracelevel)
1766             if defined $::RD_TRACE;
1767 1     1   4 if (1) { no strict qw{refs};
  1         1  
  1         217  
  20         26  
1768 20         84 $expectation->is(q{})->at($text);
1769 20 50   20   237 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::ATKEYWORD($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  20         49  
1770             {
1771            
1772 20 50       52 Parse::RecDescent::_trace(q{<<Didn't match subrule: [ATKEYWORD]>>},
1773             Parse::RecDescent::_tracefirst($text),
1774             q{_alternation_1_of_production_1_of_rule_value},
1775             $tracelevel)
1776             if defined $::RD_TRACE;
1777 20         75 $expectation->failed();
1778 20         72 last;
1779             }
1780 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [ATKEYWORD]<< (return value: [}
1781             . $_tok . q{]},
1782            
1783             Parse::RecDescent::_tracefirst($text),
1784             q{_alternation_1_of_production_1_of_rule_value},
1785             $tracelevel)
1786             if defined $::RD_TRACE;
1787 0         0 $item{q{ATKEYWORD}} = $_tok;
1788 0         0 push @item, $_tok;
1789            
1790             }
1791              
1792 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [OWS]},
1793             Parse::RecDescent::_tracefirst($text),
1794             q{_alternation_1_of_production_1_of_rule_value},
1795             $tracelevel)
1796             if defined $::RD_TRACE;
1797 1     1   5 if (1) { no strict qw{refs};
  1         2  
  1         803  
  0         0  
1798 0         0 $expectation->is(q{OWS})->at($text);
1799 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::OWS($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
1800             {
1801            
1802 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match subrule: [OWS]>>},
1803             Parse::RecDescent::_tracefirst($text),
1804             q{_alternation_1_of_production_1_of_rule_value},
1805             $tracelevel)
1806             if defined $::RD_TRACE;
1807 0         0 $expectation->failed();
1808 0         0 last;
1809             }
1810 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [OWS]<< (return value: [}
1811             . $_tok . q{]},
1812            
1813             Parse::RecDescent::_tracefirst($text),
1814             q{_alternation_1_of_production_1_of_rule_value},
1815             $tracelevel)
1816             if defined $::RD_TRACE;
1817 0         0 $item{q{OWS}} = $_tok;
1818 0         0 push @item, $_tok;
1819            
1820             }
1821              
1822 0 0       0 Parse::RecDescent::_trace(q{Trying action},
1823             Parse::RecDescent::_tracefirst($text),
1824             q{_alternation_1_of_production_1_of_rule_value},
1825             $tracelevel)
1826             if defined $::RD_TRACE;
1827            
1828              
1829 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1].$item[2]};
  0         0  
1830 0 0       0 unless (defined $_tok)
1831             {
1832 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
1833             if defined $::RD_TRACE;
1834 0         0 last;
1835             }
1836 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
1837             . $_tok . q{])},
1838             Parse::RecDescent::_tracefirst($text))
1839             if defined $::RD_TRACE;
1840 0         0 push @item, $_tok;
1841 0         0 $item{__ACTION1__}=$_tok;
1842            
1843              
1844              
1845 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [ATKEYWORD OWS]<<},
1846             Parse::RecDescent::_tracefirst($text),
1847             q{_alternation_1_of_production_1_of_rule_value},
1848             $tracelevel)
1849             if defined $::RD_TRACE;
1850 0         0 $_matched = 1;
1851 0         0 last;
1852             }
1853              
1854              
1855 43 100 66     190 unless ( $_matched || defined($score) )
1856             {
1857            
1858              
1859 20         43 $_[1] = $text; # NOT SURE THIS IS NEEDED
1860 20 50       64 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
1861             Parse::RecDescent::_tracefirst($_[1]),
1862             q{_alternation_1_of_production_1_of_rule_value},
1863             $tracelevel)
1864             if defined $::RD_TRACE;
1865 20         160 return undef;
1866             }
1867 23 50 33     76 if (!defined($return) && defined($score))
1868             {
1869 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1870             q{_alternation_1_of_production_1_of_rule_value},
1871             $tracelevel)
1872             if defined $::RD_TRACE;
1873 0         0 $return = $score_return;
1874             }
1875 23         24 splice @{$thisparser->{errors}}, $err_at;
  23         64  
1876 23 50       51 $return = $item[$#item] unless defined $return;
1877 23 50       68 if (defined $::RD_TRACE)
1878             {
1879 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1880             $return . q{])}, "",
1881             q{_alternation_1_of_production_1_of_rule_value},
1882             $tracelevel);
1883 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
1884             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
1885             Parse::RecDescent::_tracefirst($text),
1886             , q{_alternation_1_of_production_1_of_rule_value},
1887             $tracelevel)
1888             }
1889 23         45 $_[1] = $text;
1890 23         200 return $return;
1891             }
1892              
1893             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1894             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::statement
1895             {
1896 17     17   32 my $thisparser = $_[0];
1897 1     1   8 use vars q{$tracelevel};
  1         2  
  1         449  
1898 17   50     49 local $tracelevel = ($tracelevel||0)+1;
1899 17         20 $ERRORS = 0;
1900 17         49 my $thisrule = $thisparser->{"rules"}{"statement"};
1901            
1902 17 50       45 Parse::RecDescent::_trace(q{Trying rule: [statement]},
1903             Parse::RecDescent::_tracefirst($_[1]),
1904             q{statement},
1905             $tracelevel)
1906             if defined $::RD_TRACE;
1907              
1908            
1909 17         30 my $err_at = @{$thisparser->{errors}};
  17         36  
1910              
1911 17         27 my $score;
1912             my $score_return;
1913 0         0 my $_tok;
1914 17         21 my $return = undef;
1915 17         22 my $_matched=0;
1916 17         21 my $commit=0;
1917 17         29 my @item = ();
1918 17         33 my %item = ();
1919 17   33     64 my $repeating = defined($_[2]) && $_[2];
1920 17   33     75 my $_noactions = defined($_[3]) && $_[3];
1921 17 50       69 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  17         27  
  17         31  
1922 17 50       53 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
1923 17         25 my $text;
1924 17         32 my $lastsep="";
1925 17         16 my $current_match;
1926 17         65 my $expectation = new Parse::RecDescent::Expectation(q{ruleset, or atrule});
1927 17         134 $expectation->at($_[1]);
1928            
1929 17         68 my $thisline;
1930 17         69 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1931              
1932            
1933              
1934 17   33     160 while (!$_matched && !$commit)
1935             {
1936            
1937 17 50       53 Parse::RecDescent::_trace(q{Trying production: [ruleset]},
1938             Parse::RecDescent::_tracefirst($_[1]),
1939             q{statement},
1940             $tracelevel)
1941             if defined $::RD_TRACE;
1942 17         50 my $thisprod = $thisrule->{"prods"}[0];
1943 17         31 $text = $_[1];
1944 17         24 my $_savetext;
1945 17         32 @item = (q{statement});
1946 17         44 %item = (__RULE__ => q{statement});
1947 17         20 my $repcount = 0;
1948              
1949              
1950 17 50       51 Parse::RecDescent::_trace(q{Trying subrule: [ruleset]},
1951             Parse::RecDescent::_tracefirst($text),
1952             q{statement},
1953             $tracelevel)
1954             if defined $::RD_TRACE;
1955 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         507  
  17         20  
1956 17         50 $expectation->is(q{})->at($text);
1957 17 100   17   182 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::ruleset($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  17         34  
1958             {
1959            
1960 3 50       17 Parse::RecDescent::_trace(q{<<Didn't match subrule: [ruleset]>>},
1961             Parse::RecDescent::_tracefirst($text),
1962             q{statement},
1963             $tracelevel)
1964             if defined $::RD_TRACE;
1965 3         14 $expectation->failed();
1966 3         58 last;
1967             }
1968 14 50       119 Parse::RecDescent::_trace(q{>>Matched subrule: [ruleset]<< (return value: [}
1969             . $_tok . q{]},
1970            
1971             Parse::RecDescent::_tracefirst($text),
1972             q{statement},
1973             $tracelevel)
1974             if defined $::RD_TRACE;
1975 14         37 $item{q{ruleset}} = $_tok;
1976 14         31 push @item, $_tok;
1977            
1978             }
1979              
1980 14 50       38 Parse::RecDescent::_trace(q{Trying action},
1981             Parse::RecDescent::_tracefirst($text),
1982             q{statement},
1983             $tracelevel)
1984             if defined $::RD_TRACE;
1985            
1986              
1987 14 50       40 $_tok = ($_noactions) ? 0 : do {4;};
  14         26  
1988 14 50       34 unless (defined $_tok)
1989             {
1990 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
1991             if defined $::RD_TRACE;
1992 0         0 last;
1993             }
1994 14 50       36 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
1995             . $_tok . q{])},
1996             Parse::RecDescent::_tracefirst($text))
1997             if defined $::RD_TRACE;
1998 14         26 push @item, $_tok;
1999 14         24 $item{__ACTION1__}=$_tok;
2000            
2001              
2002              
2003 14 50       30 Parse::RecDescent::_trace(q{>>Matched production: [ruleset]<<},
2004             Parse::RecDescent::_tracefirst($text),
2005             q{statement},
2006             $tracelevel)
2007             if defined $::RD_TRACE;
2008 14         18 $_matched = 1;
2009 14         35 last;
2010             }
2011              
2012              
2013 17   66     71 while (!$_matched && !$commit)
2014             {
2015            
2016 3 50       11 Parse::RecDescent::_trace(q{Trying production: [atrule]},
2017             Parse::RecDescent::_tracefirst($_[1]),
2018             q{statement},
2019             $tracelevel)
2020             if defined $::RD_TRACE;
2021 3         10 my $thisprod = $thisrule->{"prods"}[1];
2022 3         6 $text = $_[1];
2023 3         7 my $_savetext;
2024 3         9 @item = (q{statement});
2025 3         10 %item = (__RULE__ => q{statement});
2026 3         5 my $repcount = 0;
2027              
2028              
2029 3 50       9 Parse::RecDescent::_trace(q{Trying subrule: [atrule]},
2030             Parse::RecDescent::_tracefirst($text),
2031             q{statement},
2032             $tracelevel)
2033             if defined $::RD_TRACE;
2034 1     1   6 if (1) { no strict qw{refs};
  1         1  
  1         764  
  3         7  
2035 3         10 $expectation->is(q{})->at($text);
2036 3 50   3   42 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::atrule($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  3         9  
2037             {
2038            
2039 3 50       8 Parse::RecDescent::_trace(q{<<Didn't match subrule: [atrule]>>},
2040             Parse::RecDescent::_tracefirst($text),
2041             q{statement},
2042             $tracelevel)
2043             if defined $::RD_TRACE;
2044 3         8 $expectation->failed();
2045 3         10 last;
2046             }
2047 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [atrule]<< (return value: [}
2048             . $_tok . q{]},
2049            
2050             Parse::RecDescent::_tracefirst($text),
2051             q{statement},
2052             $tracelevel)
2053             if defined $::RD_TRACE;
2054 0         0 $item{q{atrule}} = $_tok;
2055 0         0 push @item, $_tok;
2056            
2057             }
2058              
2059 0 0       0 Parse::RecDescent::_trace(q{Trying action},
2060             Parse::RecDescent::_tracefirst($text),
2061             q{statement},
2062             $tracelevel)
2063             if defined $::RD_TRACE;
2064            
2065              
2066 0 0       0 $_tok = ($_noactions) ? 0 : do {5;};
  0         0  
2067 0 0       0 unless (defined $_tok)
2068             {
2069 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
2070             if defined $::RD_TRACE;
2071 0         0 last;
2072             }
2073 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
2074             . $_tok . q{])},
2075             Parse::RecDescent::_tracefirst($text))
2076             if defined $::RD_TRACE;
2077 0         0 push @item, $_tok;
2078 0         0 $item{__ACTION1__}=$_tok;
2079            
2080              
2081              
2082 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [atrule]<<},
2083             Parse::RecDescent::_tracefirst($text),
2084             q{statement},
2085             $tracelevel)
2086             if defined $::RD_TRACE;
2087 0         0 $_matched = 1;
2088 0         0 last;
2089             }
2090              
2091              
2092 17 100 66     64 unless ( $_matched || defined($score) )
2093             {
2094            
2095              
2096 3         4 $_[1] = $text; # NOT SURE THIS IS NEEDED
2097 3 50       7 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
2098             Parse::RecDescent::_tracefirst($_[1]),
2099             q{statement},
2100             $tracelevel)
2101             if defined $::RD_TRACE;
2102 3         30 return undef;
2103             }
2104 14 50 33     63 if (!defined($return) && defined($score))
2105             {
2106 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
2107             q{statement},
2108             $tracelevel)
2109             if defined $::RD_TRACE;
2110 0         0 $return = $score_return;
2111             }
2112 14         19 splice @{$thisparser->{errors}}, $err_at;
  14         41  
2113 14 50       47 $return = $item[$#item] unless defined $return;
2114 14 50       39 if (defined $::RD_TRACE)
2115             {
2116 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
2117             $return . q{])}, "",
2118             q{statement},
2119             $tracelevel);
2120 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
2121             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
2122             Parse::RecDescent::_tracefirst($text),
2123             , q{statement},
2124             $tracelevel)
2125             }
2126 14         26 $_[1] = $text;
2127 14         175 return $return;
2128             }
2129              
2130             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2131             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::HASH
2132             {
2133 54     54   124 my $thisparser = $_[0];
2134 1     1   6 use vars q{$tracelevel};
  1         1  
  1         675  
2135 54   50     220 local $tracelevel = ($tracelevel||0)+1;
2136 54         419 $ERRORS = 0;
2137 54         166 my $thisrule = $thisparser->{"rules"}{"HASH"};
2138            
2139 54 50       137 Parse::RecDescent::_trace(q{Trying rule: [HASH]},
2140             Parse::RecDescent::_tracefirst($_[1]),
2141             q{HASH},
2142             $tracelevel)
2143             if defined $::RD_TRACE;
2144              
2145            
2146 54         58 my $err_at = @{$thisparser->{errors}};
  54         131  
2147              
2148 54         69 my $score;
2149             my $score_return;
2150 0         0 my $_tok;
2151 54         70 my $return = undef;
2152 54         75 my $_matched=0;
2153 54         89 my $commit=0;
2154 54         101 my @item = ();
2155 54         110 my %item = ();
2156 54   33     232 my $repeating = defined($_[2]) && $_[2];
2157 54   33     229 my $_noactions = defined($_[3]) && $_[3];
2158 54 50       118 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  54         54  
  54         143  
2159 54 50       211 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
2160 54         87 my $text;
2161 54         125 my $lastsep="";
2162 54         66 my $current_match;
2163 54         184 my $expectation = new Parse::RecDescent::Expectation(q{'#'});
2164 54         441 $expectation->at($_[1]);
2165            
2166 54         241 my $thisline;
2167 54         265 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2168              
2169            
2170              
2171 54   33     549 while (!$_matched && !$commit)
2172             {
2173            
2174 54 50       143 Parse::RecDescent::_trace(q{Trying production: ['#' macro_name]},
2175             Parse::RecDescent::_tracefirst($_[1]),
2176             q{HASH},
2177             $tracelevel)
2178             if defined $::RD_TRACE;
2179 54         170 my $thisprod = $thisrule->{"prods"}[0];
2180 54         94 $text = $_[1];
2181 54         74 my $_savetext;
2182 54         141 @item = (q{HASH});
2183 54         159 %item = (__RULE__ => q{HASH});
2184 54         71 my $repcount = 0;
2185              
2186              
2187 54 50       109 Parse::RecDescent::_trace(q{Trying terminal: ['#']},
2188             Parse::RecDescent::_tracefirst($text),
2189             q{HASH},
2190             $tracelevel)
2191             if defined $::RD_TRACE;
2192 54         93 $lastsep = "";
2193 54         152 $expectation->is(q{})->at($text);
2194            
2195              
2196 54 50 66     594 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\#/)
  54 100       509  
2197             {
2198            
2199 53         166 $expectation->failed();
2200 53 50       264 Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
2201             Parse::RecDescent::_tracefirst($text))
2202             if defined $::RD_TRACE;
2203 53         121 last;
2204             }
2205 1         7 $current_match = substr($text, $-[0], $+[0] - $-[0]);
2206 1         5 substr($text,0,length($current_match),q{});
2207 1 50       4 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
2208             . $current_match . q{])},
2209             Parse::RecDescent::_tracefirst($text))
2210             if defined $::RD_TRACE;
2211 1         4 push @item, $item{__STRING1__}=$current_match;
2212            
2213              
2214 1 50       4 Parse::RecDescent::_trace(q{Trying subrule: [macro_name]},
2215             Parse::RecDescent::_tracefirst($text),
2216             q{HASH},
2217             $tracelevel)
2218             if defined $::RD_TRACE;
2219 1     1   6 if (1) { no strict qw{refs};
  1         2  
  1         596  
  1         2  
2220 1         5 $expectation->is(q{macro_name})->at($text);
2221 1 50   1   14 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  1         3  
2222             {
2223            
2224 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match subrule: [macro_name]>>},
2225             Parse::RecDescent::_tracefirst($text),
2226             q{HASH},
2227             $tracelevel)
2228             if defined $::RD_TRACE;
2229 0         0 $expectation->failed();
2230 0         0 last;
2231             }
2232 1 50       6 Parse::RecDescent::_trace(q{>>Matched subrule: [macro_name]<< (return value: [}
2233             . $_tok . q{]},
2234            
2235             Parse::RecDescent::_tracefirst($text),
2236             q{HASH},
2237             $tracelevel)
2238             if defined $::RD_TRACE;
2239 1         3 $item{q{macro_name}} = $_tok;
2240 1         3 push @item, $_tok;
2241            
2242             }
2243              
2244 1 50       4 Parse::RecDescent::_trace(q{Trying action},
2245             Parse::RecDescent::_tracefirst($text),
2246             q{HASH},
2247             $tracelevel)
2248             if defined $::RD_TRACE;
2249            
2250              
2251 1 50       4 $_tok = ($_noactions) ? 0 : do {$return = '#'.$item[2]};
  1         3  
2252 1 50       4 unless (defined $_tok)
2253             {
2254 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
2255             if defined $::RD_TRACE;
2256 0         0 last;
2257             }
2258 1 50       4 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
2259             . $_tok . q{])},
2260             Parse::RecDescent::_tracefirst($text))
2261             if defined $::RD_TRACE;
2262 1         3 push @item, $_tok;
2263 1         3 $item{__ACTION1__}=$_tok;
2264            
2265              
2266              
2267 1 50       4 Parse::RecDescent::_trace(q{>>Matched production: ['#' macro_name]<<},
2268             Parse::RecDescent::_tracefirst($text),
2269             q{HASH},
2270             $tracelevel)
2271             if defined $::RD_TRACE;
2272 1         1 $_matched = 1;
2273 1         3 last;
2274             }
2275              
2276              
2277 54 100 66     267 unless ( $_matched || defined($score) )
2278             {
2279            
2280              
2281 53         80 $_[1] = $text; # NOT SURE THIS IS NEEDED
2282 53 50       127 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
2283             Parse::RecDescent::_tracefirst($_[1]),
2284             q{HASH},
2285             $tracelevel)
2286             if defined $::RD_TRACE;
2287 53         372 return undef;
2288             }
2289 1 50 33     4 if (!defined($return) && defined($score))
2290             {
2291 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
2292             q{HASH},
2293             $tracelevel)
2294             if defined $::RD_TRACE;
2295 0         0 $return = $score_return;
2296             }
2297 1         2 splice @{$thisparser->{errors}}, $err_at;
  1         4  
2298 1 50       3 $return = $item[$#item] unless defined $return;
2299 1 50       3 if (defined $::RD_TRACE)
2300             {
2301 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
2302             $return . q{])}, "",
2303             q{HASH},
2304             $tracelevel);
2305 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
2306             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
2307             Parse::RecDescent::_tracefirst($text),
2308             , q{HASH},
2309             $tracelevel)
2310             }
2311 1         3 $_[1] = $text;
2312 1         11 return $return;
2313             }
2314              
2315             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2316             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::property
2317             {
2318 33     33   73 my $thisparser = $_[0];
2319 1     1   6 use vars q{$tracelevel};
  1         2  
  1         398  
2320 33   50     116 local $tracelevel = ($tracelevel||0)+1;
2321 33         61 $ERRORS = 0;
2322 33         83 my $thisrule = $thisparser->{"rules"}{"property"};
2323            
2324 33 50       156 Parse::RecDescent::_trace(q{Trying rule: [property]},
2325             Parse::RecDescent::_tracefirst($_[1]),
2326             q{property},
2327             $tracelevel)
2328             if defined $::RD_TRACE;
2329              
2330            
2331 33         30 my $err_at = @{$thisparser->{errors}};
  33         73  
2332              
2333 33         53 my $score;
2334             my $score_return;
2335 0         0 my $_tok;
2336 33         47 my $return = undef;
2337 33         40 my $_matched=0;
2338 33         52 my $commit=0;
2339 33         75 my @item = ();
2340 33         52 my %item = ();
2341 33   33     113 my $repeating = defined($_[2]) && $_[2];
2342 33   33     1130 my $_noactions = defined($_[3]) && $_[3];
2343 33 50       87 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  33         55  
  33         76  
2344 33 50       95 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
2345 33         47 my $text;
2346 33         51 my $lastsep="";
2347 33         49 my $current_match;
2348 33         111 my $expectation = new Parse::RecDescent::Expectation(q{IDENT});
2349 33         263 $expectation->at($_[1]);
2350            
2351 33         131 my $thisline;
2352 33         144 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2353              
2354            
2355              
2356 33   33     354 while (!$_matched && !$commit)
2357             {
2358            
2359 33 50       71 Parse::RecDescent::_trace(q{Trying production: [IDENT OWS]},
2360             Parse::RecDescent::_tracefirst($_[1]),
2361             q{property},
2362             $tracelevel)
2363             if defined $::RD_TRACE;
2364 33         138 my $thisprod = $thisrule->{"prods"}[0];
2365 33         56 $text = $_[1];
2366 33         44 my $_savetext;
2367 33         91 @item = (q{property});
2368 33         87 %item = (__RULE__ => q{property});
2369 33         61 my $repcount = 0;
2370              
2371              
2372 33 50       71 Parse::RecDescent::_trace(q{Trying subrule: [IDENT]},
2373             Parse::RecDescent::_tracefirst($text),
2374             q{property},
2375             $tracelevel)
2376             if defined $::RD_TRACE;
2377 1     1   6 if (1) { no strict qw{refs};
  1         1  
  1         171  
  33         44  
2378 33         107 $expectation->is(q{})->at($text);
2379 33 100   33   394 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::IDENT($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  33         81  
2380             {
2381            
2382 13 50       40 Parse::RecDescent::_trace(q{<<Didn't match subrule: [IDENT]>>},
2383             Parse::RecDescent::_tracefirst($text),
2384             q{property},
2385             $tracelevel)
2386             if defined $::RD_TRACE;
2387 13         48 $expectation->failed();
2388 13         49 last;
2389             }
2390 20 50       93 Parse::RecDescent::_trace(q{>>Matched subrule: [IDENT]<< (return value: [}
2391             . $_tok . q{]},
2392            
2393             Parse::RecDescent::_tracefirst($text),
2394             q{property},
2395             $tracelevel)
2396             if defined $::RD_TRACE;
2397 20         47 $item{q{IDENT}} = $_tok;
2398 20         43 push @item, $_tok;
2399            
2400             }
2401              
2402 20 50       52 Parse::RecDescent::_trace(q{Trying subrule: [OWS]},
2403             Parse::RecDescent::_tracefirst($text),
2404             q{property},
2405             $tracelevel)
2406             if defined $::RD_TRACE;
2407 1     1   4 if (1) { no strict qw{refs};
  1         1  
  1         549  
  20         35  
2408 20         69 $expectation->is(q{OWS})->at($text);
2409 20 50   20   252 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::OWS($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  20         52  
2410             {
2411            
2412 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match subrule: [OWS]>>},
2413             Parse::RecDescent::_tracefirst($text),
2414             q{property},
2415             $tracelevel)
2416             if defined $::RD_TRACE;
2417 0         0 $expectation->failed();
2418 0         0 last;
2419             }
2420 20 50       85 Parse::RecDescent::_trace(q{>>Matched subrule: [OWS]<< (return value: [}
2421             . $_tok . q{]},
2422            
2423             Parse::RecDescent::_tracefirst($text),
2424             q{property},
2425             $tracelevel)
2426             if defined $::RD_TRACE;
2427 20         52 $item{q{OWS}} = $_tok;
2428 20         41 push @item, $_tok;
2429            
2430             }
2431              
2432 20 50       41 Parse::RecDescent::_trace(q{Trying action},
2433             Parse::RecDescent::_tracefirst($text),
2434             q{property},
2435             $tracelevel)
2436             if defined $::RD_TRACE;
2437            
2438              
2439 20 50       47 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  20         52  
2440 20 50       63 unless (defined $_tok)
2441             {
2442 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
2443             if defined $::RD_TRACE;
2444 0         0 last;
2445             }
2446 20 50       50 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
2447             . $_tok . q{])},
2448             Parse::RecDescent::_tracefirst($text))
2449             if defined $::RD_TRACE;
2450 20         31 push @item, $_tok;
2451 20         46 $item{__ACTION1__}=$_tok;
2452            
2453              
2454              
2455 20 50       46 Parse::RecDescent::_trace(q{>>Matched production: [IDENT OWS]<<},
2456             Parse::RecDescent::_tracefirst($text),
2457             q{property},
2458             $tracelevel)
2459             if defined $::RD_TRACE;
2460 20         23 $_matched = 1;
2461 20         33 last;
2462             }
2463              
2464              
2465 33 100 66     153 unless ( $_matched || defined($score) )
2466             {
2467            
2468              
2469 13         35 $_[1] = $text; # NOT SURE THIS IS NEEDED
2470 13 50       33 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
2471             Parse::RecDescent::_tracefirst($_[1]),
2472             q{property},
2473             $tracelevel)
2474             if defined $::RD_TRACE;
2475 13         97 return undef;
2476             }
2477 20 50 33     54 if (!defined($return) && defined($score))
2478             {
2479 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
2480             q{property},
2481             $tracelevel)
2482             if defined $::RD_TRACE;
2483 0         0 $return = $score_return;
2484             }
2485 20         25 splice @{$thisparser->{errors}}, $err_at;
  20         41  
2486 20 50       44 $return = $item[$#item] unless defined $return;
2487 20 50       46 if (defined $::RD_TRACE)
2488             {
2489 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
2490             $return . q{])}, "",
2491             q{property},
2492             $tracelevel);
2493 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
2494             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
2495             Parse::RecDescent::_tracefirst($text),
2496             , q{property},
2497             $tracelevel)
2498             }
2499 20         46 $_[1] = $text;
2500 20         201 return $return;
2501             }
2502              
2503             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2504             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::OWS
2505             {
2506 90     90   167 my $thisparser = $_[0];
2507 1     1   5 use vars q{$tracelevel};
  1         2  
  1         840  
2508 90   50     242 local $tracelevel = ($tracelevel||0)+1;
2509 90         108 $ERRORS = 0;
2510 90         220 my $thisrule = $thisparser->{"rules"}{"OWS"};
2511            
2512 90 50       265 Parse::RecDescent::_trace(q{Trying rule: [OWS]},
2513             Parse::RecDescent::_tracefirst($_[1]),
2514             q{OWS},
2515             $tracelevel)
2516             if defined $::RD_TRACE;
2517              
2518            
2519 90         140 my $err_at = @{$thisparser->{errors}};
  90         187  
2520              
2521 90         162 my $score;
2522             my $score_return;
2523 0         0 my $_tok;
2524 90         122 my $return = undef;
2525 90         107 my $_matched=0;
2526 90         106 my $commit=0;
2527 90         158 my @item = ();
2528 90         210 my %item = ();
2529 90   33     291 my $repeating = defined($_[2]) && $_[2];
2530 90   33     358 my $_noactions = defined($_[3]) && $_[3];
2531 90 50       162 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  90         91  
  90         178  
2532 90 50       230 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
2533 90         121 my $text;
2534 90         106 my $lastsep="";
2535 90         95 my $current_match;
2536 90         300 my $expectation = new Parse::RecDescent::Expectation(q{WS});
2537 90         777 $expectation->at($_[1]);
2538            
2539 90         364 my $thisline;
2540 90         407 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2541              
2542            
2543              
2544 90   33     1086 while (!$_matched && !$commit)
2545             {
2546            
2547 90 50       229 Parse::RecDescent::_trace(q{Trying production: [WS]},
2548             Parse::RecDescent::_tracefirst($_[1]),
2549             q{OWS},
2550             $tracelevel)
2551             if defined $::RD_TRACE;
2552 90         247 my $thisprod = $thisrule->{"prods"}[0];
2553 90         135 $text = $_[1];
2554 90         116 my $_savetext;
2555 90         204 @item = (q{OWS});
2556 90         253 %item = (__RULE__ => q{OWS});
2557 90         202 my $repcount = 0;
2558              
2559              
2560 90 50       202 Parse::RecDescent::_trace(q{Trying repeated subrule: [WS]},
2561             Parse::RecDescent::_tracefirst($text),
2562             q{OWS},
2563             $tracelevel)
2564             if defined $::RD_TRACE;
2565 90         254 $expectation->is(q{})->at($text);
2566            
2567 90 50   118   1104 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::CSS::Parse::CompiledGrammar::WS, 0, 100000000, $_noactions,$expectation,sub { \@arg })))
  118         279  
2568             {
2569 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [WS]>>},
2570             Parse::RecDescent::_tracefirst($text),
2571             q{OWS},
2572             $tracelevel)
2573             if defined $::RD_TRACE;
2574 0         0 last;
2575             }
2576 90 50       1161 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [WS]<< (}
2577             . @$_tok . q{ times)},
2578            
2579             Parse::RecDescent::_tracefirst($text),
2580             q{OWS},
2581             $tracelevel)
2582             if defined $::RD_TRACE;
2583 90         171 $item{q{WS(s?)}} = $_tok;
2584 90         179 push @item, $_tok;
2585            
2586              
2587              
2588 90 50       196 Parse::RecDescent::_trace(q{Trying action},
2589             Parse::RecDescent::_tracefirst($text),
2590             q{OWS},
2591             $tracelevel)
2592             if defined $::RD_TRACE;
2593            
2594              
2595 90 100       185 $_tok = ($_noactions) ? 0 : do {$return = ''; if (scalar(@{$item[1]}) > 0){$return = ' ';} 1;};
  90 50       165  
  90         113  
  90         255  
  28         54  
  90         148  
2596 90 50       200 unless (defined $_tok)
2597             {
2598 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
2599             if defined $::RD_TRACE;
2600 0         0 last;
2601             }
2602 90 50       235 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
2603             . $_tok . q{])},
2604             Parse::RecDescent::_tracefirst($text))
2605             if defined $::RD_TRACE;
2606 90         160 push @item, $_tok;
2607 90         186 $item{__ACTION1__}=$_tok;
2608            
2609              
2610              
2611 90 50       178 Parse::RecDescent::_trace(q{>>Matched production: [WS]<<},
2612             Parse::RecDescent::_tracefirst($text),
2613             q{OWS},
2614             $tracelevel)
2615             if defined $::RD_TRACE;
2616 90         137 $_matched = 1;
2617 90         212 last;
2618             }
2619              
2620              
2621 90 50 33     245 unless ( $_matched || defined($score) )
2622             {
2623            
2624              
2625 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
2626 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
2627             Parse::RecDescent::_tracefirst($_[1]),
2628             q{OWS},
2629             $tracelevel)
2630             if defined $::RD_TRACE;
2631 0         0 return undef;
2632             }
2633 90 50 33     295 if (!defined($return) && defined($score))
2634             {
2635 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
2636             q{OWS},
2637             $tracelevel)
2638             if defined $::RD_TRACE;
2639 0         0 $return = $score_return;
2640             }
2641 90         116 splice @{$thisparser->{errors}}, $err_at;
  90         203  
2642 90 50       199 $return = $item[$#item] unless defined $return;
2643 90 50       185 if (defined $::RD_TRACE)
2644             {
2645 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
2646             $return . q{])}, "",
2647             q{OWS},
2648             $tracelevel);
2649 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
2650             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
2651             Parse::RecDescent::_tracefirst($text),
2652             , q{OWS},
2653             $tracelevel)
2654             }
2655 90         158 $_[1] = $text;
2656 90         803 return $return;
2657             }
2658              
2659             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2660             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::selector
2661             {
2662 17     17   215 my $thisparser = $_[0];
2663 1     1   5 use vars q{$tracelevel};
  1         1  
  1         971  
2664 17   50     56 local $tracelevel = ($tracelevel||0)+1;
2665 17         40 $ERRORS = 0;
2666 17         50 my $thisrule = $thisparser->{"rules"}{"selector"};
2667            
2668 17 50       42 Parse::RecDescent::_trace(q{Trying rule: [selector]},
2669             Parse::RecDescent::_tracefirst($_[1]),
2670             q{selector},
2671             $tracelevel)
2672             if defined $::RD_TRACE;
2673              
2674            
2675 17         18 my $err_at = @{$thisparser->{errors}};
  17         28  
2676              
2677 17         28 my $score;
2678             my $score_return;
2679 0         0 my $_tok;
2680 17         22 my $return = undef;
2681 17         31 my $_matched=0;
2682 17         42 my $commit=0;
2683 17         28 my @item = ();
2684 17         30 my %item = ();
2685 17   33     63 my $repeating = defined($_[2]) && $_[2];
2686 17   33     51 my $_noactions = defined($_[3]) && $_[3];
2687 17 50       53 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  17         23  
  17         36  
2688 17 50       76 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
2689 17         31 my $text;
2690 17         25 my $lastsep="";
2691 17         19 my $current_match;
2692 17         61 my $expectation = new Parse::RecDescent::Expectation(q{any});
2693 17         140 $expectation->at($_[1]);
2694            
2695 17         77 my $thisline;
2696 17         71 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2697              
2698            
2699              
2700 17   33     155 while (!$_matched && !$commit)
2701             {
2702            
2703 17 50       44 Parse::RecDescent::_trace(q{Trying production: [any]},
2704             Parse::RecDescent::_tracefirst($_[1]),
2705             q{selector},
2706             $tracelevel)
2707             if defined $::RD_TRACE;
2708 17         51 my $thisprod = $thisrule->{"prods"}[0];
2709 17         24 $text = $_[1];
2710 17         23 my $_savetext;
2711 17         39 @item = (q{selector});
2712 17         52 %item = (__RULE__ => q{selector});
2713 17         29 my $repcount = 0;
2714              
2715              
2716 17 50       38 Parse::RecDescent::_trace(q{Trying repeated subrule: [any]},
2717             Parse::RecDescent::_tracefirst($text),
2718             q{selector},
2719             $tracelevel)
2720             if defined $::RD_TRACE;
2721 17         52 $expectation->is(q{})->at($text);
2722            
2723 17 100   64   220 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::CSS::Parse::CompiledGrammar::any, 1, 100000000, $_noactions,$expectation,sub { \@arg })))
  64         178  
2724             {
2725 3 50       56 Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [any]>>},
2726             Parse::RecDescent::_tracefirst($text),
2727             q{selector},
2728             $tracelevel)
2729             if defined $::RD_TRACE;
2730 3         11 last;
2731             }
2732 14 50       327 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [any]<< (}
2733             . @$_tok . q{ times)},
2734            
2735             Parse::RecDescent::_tracefirst($text),
2736             q{selector},
2737             $tracelevel)
2738             if defined $::RD_TRACE;
2739 14         52 $item{q{any(s)}} = $_tok;
2740 14         35 push @item, $_tok;
2741            
2742              
2743              
2744 14 50       35 Parse::RecDescent::_trace(q{Trying action},
2745             Parse::RecDescent::_tracefirst($text),
2746             q{selector},
2747             $tracelevel)
2748             if defined $::RD_TRACE;
2749            
2750              
2751 14 50       44 $_tok = ($_noactions) ? 0 : do {
2752 27         157 $ruleset->add_selector(new CSS::Selector({'name' => $_}))
2753 14         26 for(map{s/^\s*(.*?)\s*$/$1/;$_}split /\s*,\s*/, join('',@{$item[1]}));
  27         228  
  14         171  
2754 14         37 1;
2755             };
2756 14 50       34 unless (defined $_tok)
2757             {
2758 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
2759             if defined $::RD_TRACE;
2760 0         0 last;
2761             }
2762 14 50       40 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
2763             . $_tok . q{])},
2764             Parse::RecDescent::_tracefirst($text))
2765             if defined $::RD_TRACE;
2766 14         19 push @item, $_tok;
2767 14         37 $item{__ACTION1__}=$_tok;
2768            
2769              
2770              
2771 14 50       28 Parse::RecDescent::_trace(q{>>Matched production: [any]<<},
2772             Parse::RecDescent::_tracefirst($text),
2773             q{selector},
2774             $tracelevel)
2775             if defined $::RD_TRACE;
2776 14         18 $_matched = 1;
2777 14         41 last;
2778             }
2779              
2780              
2781 17 100 66     70 unless ( $_matched || defined($score) )
2782             {
2783            
2784              
2785 3         8 $_[1] = $text; # NOT SURE THIS IS NEEDED
2786 3 50       12 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
2787             Parse::RecDescent::_tracefirst($_[1]),
2788             q{selector},
2789             $tracelevel)
2790             if defined $::RD_TRACE;
2791 3         31 return undef;
2792             }
2793 14 50 33     67 if (!defined($return) && defined($score))
2794             {
2795 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
2796             q{selector},
2797             $tracelevel)
2798             if defined $::RD_TRACE;
2799 0         0 $return = $score_return;
2800             }
2801 14         26 splice @{$thisparser->{errors}}, $err_at;
  14         44  
2802 14 50       45 $return = $item[$#item] unless defined $return;
2803 14 50       36 if (defined $::RD_TRACE)
2804             {
2805 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
2806             $return . q{])}, "",
2807             q{selector},
2808             $tracelevel);
2809 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
2810             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
2811             Parse::RecDescent::_tracefirst($text),
2812             , q{selector},
2813             $tracelevel)
2814             }
2815 14         28 $_[1] = $text;
2816 14         179 return $return;
2817             }
2818              
2819             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2820             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::value
2821             {
2822 20     20   30 my $thisparser = $_[0];
2823 1     1   7 use vars q{$tracelevel};
  1         2  
  1         940  
2824 20   50     63 local $tracelevel = ($tracelevel||0)+1;
2825 20         36 $ERRORS = 0;
2826 20         72 my $thisrule = $thisparser->{"rules"}{"value"};
2827            
2828 20 50       56 Parse::RecDescent::_trace(q{Trying rule: [value]},
2829             Parse::RecDescent::_tracefirst($_[1]),
2830             q{value},
2831             $tracelevel)
2832             if defined $::RD_TRACE;
2833              
2834            
2835 20         26 my $err_at = @{$thisparser->{errors}};
  20         41  
2836              
2837 20         27 my $score;
2838             my $score_return;
2839 0         0 my $_tok;
2840 20         25 my $return = undef;
2841 20         35 my $_matched=0;
2842 20         25 my $commit=0;
2843 20         49 my @item = ();
2844 20         34 my %item = ();
2845 20   33     86 my $repeating = defined($_[2]) && $_[2];
2846 20   33     69 my $_noactions = defined($_[3]) && $_[3];
2847 20 50       42 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  20         22  
  20         46  
2848 20 50       64 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
2849 20         26 my $text;
2850 20         34 my $lastsep="";
2851 20         30 my $current_match;
2852 20         86 my $expectation = new Parse::RecDescent::Expectation(q{any, or block, or ATKEYWORD});
2853 20         151 $expectation->at($_[1]);
2854            
2855 20         81 my $thisline;
2856 20         82 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2857              
2858            
2859              
2860 20   33     192 while (!$_matched && !$commit)
2861             {
2862            
2863 20 50       51 Parse::RecDescent::_trace(q{Trying production: [any, or block, or ATKEYWORD]},
2864             Parse::RecDescent::_tracefirst($_[1]),
2865             q{value},
2866             $tracelevel)
2867             if defined $::RD_TRACE;
2868 20         68 my $thisprod = $thisrule->{"prods"}[0];
2869 20         29 $text = $_[1];
2870 20         26 my $_savetext;
2871 20         65 @item = (q{value});
2872 20         56 %item = (__RULE__ => q{value});
2873 20         31 my $repcount = 0;
2874              
2875              
2876 20 50       119 Parse::RecDescent::_trace(q{Trying repeated subrule: [any, or block, or ATKEYWORD]},
2877             Parse::RecDescent::_tracefirst($text),
2878             q{value},
2879             $tracelevel)
2880             if defined $::RD_TRACE;
2881 20         57 $expectation->is(q{})->at($text);
2882            
2883 20 50   43   230 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::CSS::Parse::CompiledGrammar::_alternation_1_of_production_1_of_rule_value, 1, 100000000, $_noactions,$expectation,sub { \@arg })))
  43         97  
2884             {
2885 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [any, or block, or ATKEYWORD]>>},
2886             Parse::RecDescent::_tracefirst($text),
2887             q{value},
2888             $tracelevel)
2889             if defined $::RD_TRACE;
2890 0         0 last;
2891             }
2892 20 50       399 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_value]<< (}
2893             . @$_tok . q{ times)},
2894            
2895             Parse::RecDescent::_tracefirst($text),
2896             q{value},
2897             $tracelevel)
2898             if defined $::RD_TRACE;
2899 20         61 $item{q{_alternation_1_of_production_1_of_rule_value(s)}} = $_tok;
2900 20         61 push @item, $_tok;
2901            
2902              
2903              
2904 20 50       53 Parse::RecDescent::_trace(q{Trying action},
2905             Parse::RecDescent::_tracefirst($text),
2906             q{value},
2907             $tracelevel)
2908             if defined $::RD_TRACE;
2909            
2910              
2911 20 50       54 $_tok = ($_noactions) ? 0 : do {$return = join('',@{$item[1]})};
  20         28  
  20         85  
2912 20 50       59 unless (defined $_tok)
2913             {
2914 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
2915             if defined $::RD_TRACE;
2916 0         0 last;
2917             }
2918 20 50       43 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
2919             . $_tok . q{])},
2920             Parse::RecDescent::_tracefirst($text))
2921             if defined $::RD_TRACE;
2922 20         34 push @item, $_tok;
2923 20         56 $item{__ACTION1__}=$_tok;
2924            
2925              
2926              
2927 20 50       50 Parse::RecDescent::_trace(q{>>Matched production: [any, or block, or ATKEYWORD]<<},
2928             Parse::RecDescent::_tracefirst($text),
2929             q{value},
2930             $tracelevel)
2931             if defined $::RD_TRACE;
2932 20         27 $_matched = 1;
2933 20         36 last;
2934             }
2935              
2936              
2937 20 50 33     68 unless ( $_matched || defined($score) )
2938             {
2939            
2940              
2941 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
2942 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
2943             Parse::RecDescent::_tracefirst($_[1]),
2944             q{value},
2945             $tracelevel)
2946             if defined $::RD_TRACE;
2947 0         0 return undef;
2948             }
2949 20 50 33     60 if (!defined($return) && defined($score))
2950             {
2951 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
2952             q{value},
2953             $tracelevel)
2954             if defined $::RD_TRACE;
2955 0         0 $return = $score_return;
2956             }
2957 20         29 splice @{$thisparser->{errors}}, $err_at;
  20         67  
2958 20 50       50 $return = $item[$#item] unless defined $return;
2959 20 50       50 if (defined $::RD_TRACE)
2960             {
2961 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
2962             $return . q{])}, "",
2963             q{value},
2964             $tracelevel);
2965 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
2966             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
2967             Parse::RecDescent::_tracefirst($text),
2968             , q{value},
2969             $tracelevel)
2970             }
2971 20         45 $_[1] = $text;
2972 20         250 return $return;
2973             }
2974              
2975             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2976             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::_alternation_1_of_production_1_of_rule_atrule
2977             {
2978 0     0   0 my $thisparser = $_[0];
2979 1     1   6 use vars q{$tracelevel};
  1         2  
  1         399  
2980 0   0     0 local $tracelevel = ($tracelevel||0)+1;
2981 0         0 $ERRORS = 0;
2982 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_atrule"};
2983            
2984 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_atrule]},
2985             Parse::RecDescent::_tracefirst($_[1]),
2986             q{_alternation_1_of_production_1_of_rule_atrule},
2987             $tracelevel)
2988             if defined $::RD_TRACE;
2989              
2990            
2991 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
2992              
2993 0         0 my $score;
2994             my $score_return;
2995 0         0 my $_tok;
2996 0         0 my $return = undef;
2997 0         0 my $_matched=0;
2998 0         0 my $commit=0;
2999 0         0 my @item = ();
3000 0         0 my %item = ();
3001 0   0     0 my $repeating = defined($_[2]) && $_[2];
3002 0   0     0 my $_noactions = defined($_[3]) && $_[3];
3003 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
3004 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
3005 0         0 my $text;
3006 0         0 my $lastsep="";
3007 0         0 my $current_match;
3008 0         0 my $expectation = new Parse::RecDescent::Expectation(q{block, or ';'});
3009 0         0 $expectation->at($_[1]);
3010            
3011 0         0 my $thisline;
3012 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
3013              
3014            
3015              
3016 0   0     0 while (!$_matched && !$commit)
3017             {
3018            
3019 0 0       0 Parse::RecDescent::_trace(q{Trying production: [block]},
3020             Parse::RecDescent::_tracefirst($_[1]),
3021             q{_alternation_1_of_production_1_of_rule_atrule},
3022             $tracelevel)
3023             if defined $::RD_TRACE;
3024 0         0 my $thisprod = $thisrule->{"prods"}[0];
3025 0         0 $text = $_[1];
3026 0         0 my $_savetext;
3027 0         0 @item = (q{_alternation_1_of_production_1_of_rule_atrule});
3028 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_atrule});
3029 0         0 my $repcount = 0;
3030              
3031              
3032 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [block]},
3033             Parse::RecDescent::_tracefirst($text),
3034             q{_alternation_1_of_production_1_of_rule_atrule},
3035             $tracelevel)
3036             if defined $::RD_TRACE;
3037 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         1544  
  0         0  
3038 0         0 $expectation->is(q{})->at($text);
3039 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::block($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
3040             {
3041            
3042 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match subrule: [block]>>},
3043             Parse::RecDescent::_tracefirst($text),
3044             q{_alternation_1_of_production_1_of_rule_atrule},
3045             $tracelevel)
3046             if defined $::RD_TRACE;
3047 0         0 $expectation->failed();
3048 0         0 last;
3049             }
3050 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [block]<< (return value: [}
3051             . $_tok . q{]},
3052            
3053             Parse::RecDescent::_tracefirst($text),
3054             q{_alternation_1_of_production_1_of_rule_atrule},
3055             $tracelevel)
3056             if defined $::RD_TRACE;
3057 0         0 $item{q{block}} = $_tok;
3058 0         0 push @item, $_tok;
3059            
3060             }
3061              
3062 0 0       0 Parse::RecDescent::_trace(q{Trying action},
3063             Parse::RecDescent::_tracefirst($text),
3064             q{_alternation_1_of_production_1_of_rule_atrule},
3065             $tracelevel)
3066             if defined $::RD_TRACE;
3067            
3068              
3069 0 0       0 $_tok = ($_noactions) ? 0 : do { print "token: ".shift @item; print " : @item\n" };
  0         0  
  0         0  
3070 0 0       0 unless (defined $_tok)
3071             {
3072 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
3073             if defined $::RD_TRACE;
3074 0         0 last;
3075             }
3076 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
3077             . $_tok . q{])},
3078             Parse::RecDescent::_tracefirst($text))
3079             if defined $::RD_TRACE;
3080 0         0 push @item, $_tok;
3081            
3082            
3083              
3084              
3085 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [block]<<},
3086             Parse::RecDescent::_tracefirst($text),
3087             q{_alternation_1_of_production_1_of_rule_atrule},
3088             $tracelevel)
3089             if defined $::RD_TRACE;
3090 0         0 $_matched = 1;
3091 0         0 last;
3092             }
3093              
3094              
3095 0   0     0 while (!$_matched && !$commit)
3096             {
3097            
3098 0 0       0 Parse::RecDescent::_trace(q{Trying production: [';' WS]},
3099             Parse::RecDescent::_tracefirst($_[1]),
3100             q{_alternation_1_of_production_1_of_rule_atrule},
3101             $tracelevel)
3102             if defined $::RD_TRACE;
3103 0         0 my $thisprod = $thisrule->{"prods"}[1];
3104 0         0 $text = $_[1];
3105 0         0 my $_savetext;
3106 0         0 @item = (q{_alternation_1_of_production_1_of_rule_atrule});
3107 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_atrule});
3108 0         0 my $repcount = 0;
3109              
3110              
3111 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [';']},
3112             Parse::RecDescent::_tracefirst($text),
3113             q{_alternation_1_of_production_1_of_rule_atrule},
3114             $tracelevel)
3115             if defined $::RD_TRACE;
3116 0         0 $lastsep = "";
3117 0         0 $expectation->is(q{})->at($text);
3118            
3119              
3120 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\;/)
  0 0       0  
3121             {
3122            
3123 0         0 $expectation->failed();
3124 0 0       0 Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
3125             Parse::RecDescent::_tracefirst($text))
3126             if defined $::RD_TRACE;
3127 0         0 last;
3128             }
3129 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
3130 0         0 substr($text,0,length($current_match),q{});
3131 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3132             . $current_match . q{])},
3133             Parse::RecDescent::_tracefirst($text))
3134             if defined $::RD_TRACE;
3135 0         0 push @item, $item{__STRING1__}=$current_match;
3136            
3137              
3138 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [WS]},
3139             Parse::RecDescent::_tracefirst($text),
3140             q{_alternation_1_of_production_1_of_rule_atrule},
3141             $tracelevel)
3142             if defined $::RD_TRACE;
3143 0         0 $expectation->is(q{WS})->at($text);
3144            
3145 0 0   0   0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::CSS::Parse::CompiledGrammar::WS, 0, 100000000, $_noactions,$expectation,sub { \@arg })))
  0         0  
3146             {
3147 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [WS]>>},
3148             Parse::RecDescent::_tracefirst($text),
3149             q{_alternation_1_of_production_1_of_rule_atrule},
3150             $tracelevel)
3151             if defined $::RD_TRACE;
3152 0         0 last;
3153             }
3154 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [WS]<< (}
3155             . @$_tok . q{ times)},
3156            
3157             Parse::RecDescent::_tracefirst($text),
3158             q{_alternation_1_of_production_1_of_rule_atrule},
3159             $tracelevel)
3160             if defined $::RD_TRACE;
3161 0         0 $item{q{WS(s?)}} = $_tok;
3162 0         0 push @item, $_tok;
3163            
3164              
3165              
3166 0 0       0 Parse::RecDescent::_trace(q{Trying action},
3167             Parse::RecDescent::_tracefirst($text),
3168             q{_alternation_1_of_production_1_of_rule_atrule},
3169             $tracelevel)
3170             if defined $::RD_TRACE;
3171            
3172              
3173 0 0       0 $_tok = ($_noactions) ? 0 : do { print "token: ".shift @item; print " : @item\n" };
  0         0  
  0         0  
3174 0 0       0 unless (defined $_tok)
3175             {
3176 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
3177             if defined $::RD_TRACE;
3178 0         0 last;
3179             }
3180 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
3181             . $_tok . q{])},
3182             Parse::RecDescent::_tracefirst($text))
3183             if defined $::RD_TRACE;
3184 0         0 push @item, $_tok;
3185            
3186            
3187              
3188              
3189 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [';' WS]<<},
3190             Parse::RecDescent::_tracefirst($text),
3191             q{_alternation_1_of_production_1_of_rule_atrule},
3192             $tracelevel)
3193             if defined $::RD_TRACE;
3194 0         0 $_matched = 1;
3195 0         0 last;
3196             }
3197              
3198              
3199 0 0 0     0 unless ( $_matched || defined($score) )
3200             {
3201            
3202              
3203 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
3204 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
3205             Parse::RecDescent::_tracefirst($_[1]),
3206             q{_alternation_1_of_production_1_of_rule_atrule},
3207             $tracelevel)
3208             if defined $::RD_TRACE;
3209 0         0 return undef;
3210             }
3211 0 0 0     0 if (!defined($return) && defined($score))
3212             {
3213 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
3214             q{_alternation_1_of_production_1_of_rule_atrule},
3215             $tracelevel)
3216             if defined $::RD_TRACE;
3217 0         0 $return = $score_return;
3218             }
3219 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
3220 0 0       0 $return = $item[$#item] unless defined $return;
3221 0 0       0 if (defined $::RD_TRACE)
3222             {
3223 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
3224             $return . q{])}, "",
3225             q{_alternation_1_of_production_1_of_rule_atrule},
3226             $tracelevel);
3227 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
3228             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
3229             Parse::RecDescent::_tracefirst($text),
3230             , q{_alternation_1_of_production_1_of_rule_atrule},
3231             $tracelevel)
3232             }
3233 0         0 $_[1] = $text;
3234 0         0 return $return;
3235             }
3236              
3237             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
3238             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::_alternation_1_of_production_1_of_rule_ruleset
3239             {
3240 33     33   527 my $thisparser = $_[0];
3241 1     1   6 use vars q{$tracelevel};
  1         2  
  1         1202  
3242 33   50     108 local $tracelevel = ($tracelevel||0)+1;
3243 33         48 $ERRORS = 0;
3244 33         96 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_ruleset"};
3245            
3246 33 50       98 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_ruleset]},
3247             Parse::RecDescent::_tracefirst($_[1]),
3248             q{_alternation_1_of_production_1_of_rule_ruleset},
3249             $tracelevel)
3250             if defined $::RD_TRACE;
3251              
3252            
3253 33         54 my $err_at = @{$thisparser->{errors}};
  33         61  
3254              
3255 33         56 my $score;
3256             my $score_return;
3257 0         0 my $_tok;
3258 33         48 my $return = undef;
3259 33         40 my $_matched=0;
3260 33         38 my $commit=0;
3261 33         69 my @item = ();
3262 33         73 my %item = ();
3263 33   33     100 my $repeating = defined($_[2]) && $_[2];
3264 33   33     97 my $_noactions = defined($_[3]) && $_[3];
3265 33 50       79 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  33         47  
  33         75  
3266 33 50       112 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
3267 33         39 my $text;
3268 33         44 my $lastsep="";
3269 33         31 my $current_match;
3270 33         107 my $expectation = new Parse::RecDescent::Expectation(q{';'});
3271 33         268 $expectation->at($_[1]);
3272            
3273 33         137 my $thisline;
3274 33         355 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
3275              
3276            
3277              
3278 33   33     306 while (!$_matched && !$commit)
3279             {
3280            
3281 33 50       72 Parse::RecDescent::_trace(q{Trying production: [';' WS declaration]},
3282             Parse::RecDescent::_tracefirst($_[1]),
3283             q{_alternation_1_of_production_1_of_rule_ruleset},
3284             $tracelevel)
3285             if defined $::RD_TRACE;
3286 33         90 my $thisprod = $thisrule->{"prods"}[0];
3287 33         42 $text = $_[1];
3288 33         41 my $_savetext;
3289 33         62 @item = (q{_alternation_1_of_production_1_of_rule_ruleset});
3290 33         66 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_ruleset});
3291 33         58 my $repcount = 0;
3292              
3293              
3294 33 50       61 Parse::RecDescent::_trace(q{Trying terminal: [';']},
3295             Parse::RecDescent::_tracefirst($text),
3296             q{_alternation_1_of_production_1_of_rule_ruleset},
3297             $tracelevel)
3298             if defined $::RD_TRACE;
3299 33         47 $lastsep = "";
3300 33         89 $expectation->is(q{})->at($text);
3301            
3302              
3303 33 50 66     370 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\;/)
  33 100       367  
3304             {
3305            
3306 14         44 $expectation->failed();
3307 14 50       70 Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
3308             Parse::RecDescent::_tracefirst($text))
3309             if defined $::RD_TRACE;
3310 14         34 last;
3311             }
3312 19         364 $current_match = substr($text, $-[0], $+[0] - $-[0]);
3313 19         80 substr($text,0,length($current_match),q{});
3314 19 50       45 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3315             . $current_match . q{])},
3316             Parse::RecDescent::_tracefirst($text))
3317             if defined $::RD_TRACE;
3318 19         68 push @item, $item{__STRING1__}=$current_match;
3319            
3320              
3321 19 50       58 Parse::RecDescent::_trace(q{Trying repeated subrule: [WS]},
3322             Parse::RecDescent::_tracefirst($text),
3323             q{_alternation_1_of_production_1_of_rule_ruleset},
3324             $tracelevel)
3325             if defined $::RD_TRACE;
3326 19         61 $expectation->is(q{WS})->at($text);
3327            
3328 19 50   29   247 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::CSS::Parse::CompiledGrammar::WS, 0, 100000000, $_noactions,$expectation,sub { \@arg })))
  29         76  
3329             {
3330 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [WS]>>},
3331             Parse::RecDescent::_tracefirst($text),
3332             q{_alternation_1_of_production_1_of_rule_ruleset},
3333             $tracelevel)
3334             if defined $::RD_TRACE;
3335 0         0 last;
3336             }
3337 19 50       519 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [WS]<< (}
3338             . @$_tok . q{ times)},
3339            
3340             Parse::RecDescent::_tracefirst($text),
3341             q{_alternation_1_of_production_1_of_rule_ruleset},
3342             $tracelevel)
3343             if defined $::RD_TRACE;
3344 19         51 $item{q{WS(s?)}} = $_tok;
3345 19         32 push @item, $_tok;
3346            
3347              
3348              
3349 19 50       51 Parse::RecDescent::_trace(q{Trying repeated subrule: [declaration]},
3350             Parse::RecDescent::_tracefirst($text),
3351             q{_alternation_1_of_production_1_of_rule_ruleset},
3352             $tracelevel)
3353             if defined $::RD_TRACE;
3354 19         73 $expectation->is(q{declaration})->at($text);
3355            
3356 19 50   19   272 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::CSS::Parse::CompiledGrammar::declaration, 0, 1, $_noactions,$expectation,sub { \@arg })))
  19         42  
3357             {
3358 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [declaration]>>},
3359             Parse::RecDescent::_tracefirst($text),
3360             q{_alternation_1_of_production_1_of_rule_ruleset},
3361             $tracelevel)
3362             if defined $::RD_TRACE;
3363 0         0 last;
3364             }
3365 19 50       343 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [declaration]<< (}
3366             . @$_tok . q{ times)},
3367            
3368             Parse::RecDescent::_tracefirst($text),
3369             q{_alternation_1_of_production_1_of_rule_ruleset},
3370             $tracelevel)
3371             if defined $::RD_TRACE;
3372 19         59 $item{q{declaration(?)}} = $_tok;
3373 19         34 push @item, $_tok;
3374            
3375              
3376              
3377 19 50       49 Parse::RecDescent::_trace(q{Trying action},
3378             Parse::RecDescent::_tracefirst($text),
3379             q{_alternation_1_of_production_1_of_rule_ruleset},
3380             $tracelevel)
3381             if defined $::RD_TRACE;
3382            
3383              
3384 19 50       44 $_tok = ($_noactions) ? 0 : do {6;};
  19         43  
3385 19 50       58 unless (defined $_tok)
3386             {
3387 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
3388             if defined $::RD_TRACE;
3389 0         0 last;
3390             }
3391 19 50       47 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
3392             . $_tok . q{])},
3393             Parse::RecDescent::_tracefirst($text))
3394             if defined $::RD_TRACE;
3395 19         49 push @item, $_tok;
3396 19         46 $item{__ACTION1__}=$_tok;
3397            
3398              
3399              
3400 19 50       55 Parse::RecDescent::_trace(q{>>Matched production: [';' WS declaration]<<},
3401             Parse::RecDescent::_tracefirst($text),
3402             q{_alternation_1_of_production_1_of_rule_ruleset},
3403             $tracelevel)
3404             if defined $::RD_TRACE;
3405 19         23 $_matched = 1;
3406 19         48 last;
3407             }
3408              
3409              
3410 33 100 66     173 unless ( $_matched || defined($score) )
3411             {
3412            
3413              
3414 14         22 $_[1] = $text; # NOT SURE THIS IS NEEDED
3415 14 50       88 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
3416             Parse::RecDescent::_tracefirst($_[1]),
3417             q{_alternation_1_of_production_1_of_rule_ruleset},
3418             $tracelevel)
3419             if defined $::RD_TRACE;
3420 14         95 return undef;
3421             }
3422 19 50 33     127 if (!defined($return) && defined($score))
3423             {
3424 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
3425             q{_alternation_1_of_production_1_of_rule_ruleset},
3426             $tracelevel)
3427             if defined $::RD_TRACE;
3428 0         0 $return = $score_return;
3429             }
3430 19         33 splice @{$thisparser->{errors}}, $err_at;
  19         49  
3431 19 50       90 $return = $item[$#item] unless defined $return;
3432 19 50       53 if (defined $::RD_TRACE)
3433             {
3434 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
3435             $return . q{])}, "",
3436             q{_alternation_1_of_production_1_of_rule_ruleset},
3437             $tracelevel);
3438 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
3439             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
3440             Parse::RecDescent::_tracefirst($text),
3441             , q{_alternation_1_of_production_1_of_rule_ruleset},
3442             $tracelevel)
3443             }
3444 19         33 $_[1] = $text;
3445 19         188 return $return;
3446             }
3447              
3448             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
3449             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::_alternation_1_of_production_1_of_rule_block
3450             {
3451 0     0   0 my $thisparser = $_[0];
3452 1     1   7 use vars q{$tracelevel};
  1         2  
  1         422  
3453 0   0     0 local $tracelevel = ($tracelevel||0)+1;
3454 0         0 $ERRORS = 0;
3455 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_block"};
3456            
3457 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_block]},
3458             Parse::RecDescent::_tracefirst($_[1]),
3459             q{_alternation_1_of_production_1_of_rule_block},
3460             $tracelevel)
3461             if defined $::RD_TRACE;
3462              
3463            
3464 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
3465              
3466 0         0 my $score;
3467             my $score_return;
3468 0         0 my $_tok;
3469 0         0 my $return = undef;
3470 0         0 my $_matched=0;
3471 0         0 my $commit=0;
3472 0         0 my @item = ();
3473 0         0 my %item = ();
3474 0   0     0 my $repeating = defined($_[2]) && $_[2];
3475 0   0     0 my $_noactions = defined($_[3]) && $_[3];
3476 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
3477 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
3478 0         0 my $text;
3479 0         0 my $lastsep="";
3480 0         0 my $current_match;
3481 0         0 my $expectation = new Parse::RecDescent::Expectation(q{any, or block, or ATKEYWORD, or ';'});
3482 0         0 $expectation->at($_[1]);
3483            
3484 0         0 my $thisline;
3485 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
3486              
3487            
3488              
3489 0   0     0 while (!$_matched && !$commit)
3490             {
3491            
3492 0 0       0 Parse::RecDescent::_trace(q{Trying production: [any]},
3493             Parse::RecDescent::_tracefirst($_[1]),
3494             q{_alternation_1_of_production_1_of_rule_block},
3495             $tracelevel)
3496             if defined $::RD_TRACE;
3497 0         0 my $thisprod = $thisrule->{"prods"}[0];
3498 0         0 $text = $_[1];
3499 0         0 my $_savetext;
3500 0         0 @item = (q{_alternation_1_of_production_1_of_rule_block});
3501 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_block});
3502 0         0 my $repcount = 0;
3503              
3504              
3505 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [any]},
3506             Parse::RecDescent::_tracefirst($text),
3507             q{_alternation_1_of_production_1_of_rule_block},
3508             $tracelevel)
3509             if defined $::RD_TRACE;
3510 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         473  
  0         0  
3511 0         0 $expectation->is(q{})->at($text);
3512 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::any($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
3513             {
3514            
3515 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match subrule: [any]>>},
3516             Parse::RecDescent::_tracefirst($text),
3517             q{_alternation_1_of_production_1_of_rule_block},
3518             $tracelevel)
3519             if defined $::RD_TRACE;
3520 0         0 $expectation->failed();
3521 0         0 last;
3522             }
3523 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [any]<< (return value: [}
3524             . $_tok . q{]},
3525            
3526             Parse::RecDescent::_tracefirst($text),
3527             q{_alternation_1_of_production_1_of_rule_block},
3528             $tracelevel)
3529             if defined $::RD_TRACE;
3530 0         0 $item{q{any}} = $_tok;
3531 0         0 push @item, $_tok;
3532            
3533             }
3534              
3535 0 0       0 Parse::RecDescent::_trace(q{Trying action},
3536             Parse::RecDescent::_tracefirst($text),
3537             q{_alternation_1_of_production_1_of_rule_block},
3538             $tracelevel)
3539             if defined $::RD_TRACE;
3540            
3541              
3542 0 0       0 $_tok = ($_noactions) ? 0 : do { print "token: ".shift @item; print " : @item\n" };
  0         0  
  0         0  
3543 0 0       0 unless (defined $_tok)
3544             {
3545 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
3546             if defined $::RD_TRACE;
3547 0         0 last;
3548             }
3549 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
3550             . $_tok . q{])},
3551             Parse::RecDescent::_tracefirst($text))
3552             if defined $::RD_TRACE;
3553 0         0 push @item, $_tok;
3554            
3555            
3556              
3557              
3558 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [any]<<},
3559             Parse::RecDescent::_tracefirst($text),
3560             q{_alternation_1_of_production_1_of_rule_block},
3561             $tracelevel)
3562             if defined $::RD_TRACE;
3563 0         0 $_matched = 1;
3564 0         0 last;
3565             }
3566              
3567              
3568 0   0     0 while (!$_matched && !$commit)
3569             {
3570            
3571 0 0       0 Parse::RecDescent::_trace(q{Trying production: [block]},
3572             Parse::RecDescent::_tracefirst($_[1]),
3573             q{_alternation_1_of_production_1_of_rule_block},
3574             $tracelevel)
3575             if defined $::RD_TRACE;
3576 0         0 my $thisprod = $thisrule->{"prods"}[1];
3577 0         0 $text = $_[1];
3578 0         0 my $_savetext;
3579 0         0 @item = (q{_alternation_1_of_production_1_of_rule_block});
3580 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_block});
3581 0         0 my $repcount = 0;
3582              
3583              
3584 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [block]},
3585             Parse::RecDescent::_tracefirst($text),
3586             q{_alternation_1_of_production_1_of_rule_block},
3587             $tracelevel)
3588             if defined $::RD_TRACE;
3589 1     1   7 if (1) { no strict qw{refs};
  1         1  
  1         483  
  0         0  
3590 0         0 $expectation->is(q{})->at($text);
3591 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::block($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
3592             {
3593            
3594 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match subrule: [block]>>},
3595             Parse::RecDescent::_tracefirst($text),
3596             q{_alternation_1_of_production_1_of_rule_block},
3597             $tracelevel)
3598             if defined $::RD_TRACE;
3599 0         0 $expectation->failed();
3600 0         0 last;
3601             }
3602 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [block]<< (return value: [}
3603             . $_tok . q{]},
3604            
3605             Parse::RecDescent::_tracefirst($text),
3606             q{_alternation_1_of_production_1_of_rule_block},
3607             $tracelevel)
3608             if defined $::RD_TRACE;
3609 0         0 $item{q{block}} = $_tok;
3610 0         0 push @item, $_tok;
3611            
3612             }
3613              
3614 0 0       0 Parse::RecDescent::_trace(q{Trying action},
3615             Parse::RecDescent::_tracefirst($text),
3616             q{_alternation_1_of_production_1_of_rule_block},
3617             $tracelevel)
3618             if defined $::RD_TRACE;
3619            
3620              
3621 0 0       0 $_tok = ($_noactions) ? 0 : do { print "token: ".shift @item; print " : @item\n" };
  0         0  
  0         0  
3622 0 0       0 unless (defined $_tok)
3623             {
3624 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
3625             if defined $::RD_TRACE;
3626 0         0 last;
3627             }
3628 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
3629             . $_tok . q{])},
3630             Parse::RecDescent::_tracefirst($text))
3631             if defined $::RD_TRACE;
3632 0         0 push @item, $_tok;
3633            
3634            
3635              
3636              
3637 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [block]<<},
3638             Parse::RecDescent::_tracefirst($text),
3639             q{_alternation_1_of_production_1_of_rule_block},
3640             $tracelevel)
3641             if defined $::RD_TRACE;
3642 0         0 $_matched = 1;
3643 0         0 last;
3644             }
3645              
3646              
3647 0   0     0 while (!$_matched && !$commit)
3648             {
3649            
3650 0 0       0 Parse::RecDescent::_trace(q{Trying production: [ATKEYWORD WS]},
3651             Parse::RecDescent::_tracefirst($_[1]),
3652             q{_alternation_1_of_production_1_of_rule_block},
3653             $tracelevel)
3654             if defined $::RD_TRACE;
3655 0         0 my $thisprod = $thisrule->{"prods"}[2];
3656 0         0 $text = $_[1];
3657 0         0 my $_savetext;
3658 0         0 @item = (q{_alternation_1_of_production_1_of_rule_block});
3659 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_block});
3660 0         0 my $repcount = 0;
3661              
3662              
3663 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [ATKEYWORD]},
3664             Parse::RecDescent::_tracefirst($text),
3665             q{_alternation_1_of_production_1_of_rule_block},
3666             $tracelevel)
3667             if defined $::RD_TRACE;
3668 1     1   5 if (1) { no strict qw{refs};
  1         1  
  1         1395  
  0         0  
3669 0         0 $expectation->is(q{})->at($text);
3670 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::ATKEYWORD($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
3671             {
3672            
3673 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match subrule: [ATKEYWORD]>>},
3674             Parse::RecDescent::_tracefirst($text),
3675             q{_alternation_1_of_production_1_of_rule_block},
3676             $tracelevel)
3677             if defined $::RD_TRACE;
3678 0         0 $expectation->failed();
3679 0         0 last;
3680             }
3681 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [ATKEYWORD]<< (return value: [}
3682             . $_tok . q{]},
3683            
3684             Parse::RecDescent::_tracefirst($text),
3685             q{_alternation_1_of_production_1_of_rule_block},
3686             $tracelevel)
3687             if defined $::RD_TRACE;
3688 0         0 $item{q{ATKEYWORD}} = $_tok;
3689 0         0 push @item, $_tok;
3690            
3691             }
3692              
3693 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [WS]},
3694             Parse::RecDescent::_tracefirst($text),
3695             q{_alternation_1_of_production_1_of_rule_block},
3696             $tracelevel)
3697             if defined $::RD_TRACE;
3698 0         0 $expectation->is(q{WS})->at($text);
3699            
3700 0 0   0   0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::CSS::Parse::CompiledGrammar::WS, 0, 100000000, $_noactions,$expectation,sub { \@arg })))
  0         0  
3701             {
3702 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [WS]>>},
3703             Parse::RecDescent::_tracefirst($text),
3704             q{_alternation_1_of_production_1_of_rule_block},
3705             $tracelevel)
3706             if defined $::RD_TRACE;
3707 0         0 last;
3708             }
3709 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [WS]<< (}
3710             . @$_tok . q{ times)},
3711            
3712             Parse::RecDescent::_tracefirst($text),
3713             q{_alternation_1_of_production_1_of_rule_block},
3714             $tracelevel)
3715             if defined $::RD_TRACE;
3716 0         0 $item{q{WS(s?)}} = $_tok;
3717 0         0 push @item, $_tok;
3718            
3719              
3720              
3721 0 0       0 Parse::RecDescent::_trace(q{Trying action},
3722             Parse::RecDescent::_tracefirst($text),
3723             q{_alternation_1_of_production_1_of_rule_block},
3724             $tracelevel)
3725             if defined $::RD_TRACE;
3726            
3727              
3728 0 0       0 $_tok = ($_noactions) ? 0 : do { print "token: ".shift @item; print " : @item\n" };
  0         0  
  0         0  
3729 0 0       0 unless (defined $_tok)
3730             {
3731 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
3732             if defined $::RD_TRACE;
3733 0         0 last;
3734             }
3735 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
3736             . $_tok . q{])},
3737             Parse::RecDescent::_tracefirst($text))
3738             if defined $::RD_TRACE;
3739 0         0 push @item, $_tok;
3740            
3741            
3742              
3743              
3744 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [ATKEYWORD WS]<<},
3745             Parse::RecDescent::_tracefirst($text),
3746             q{_alternation_1_of_production_1_of_rule_block},
3747             $tracelevel)
3748             if defined $::RD_TRACE;
3749 0         0 $_matched = 1;
3750 0         0 last;
3751             }
3752              
3753              
3754 0   0     0 while (!$_matched && !$commit)
3755             {
3756            
3757 0 0       0 Parse::RecDescent::_trace(q{Trying production: [';']},
3758             Parse::RecDescent::_tracefirst($_[1]),
3759             q{_alternation_1_of_production_1_of_rule_block},
3760             $tracelevel)
3761             if defined $::RD_TRACE;
3762 0         0 my $thisprod = $thisrule->{"prods"}[3];
3763 0         0 $text = $_[1];
3764 0         0 my $_savetext;
3765 0         0 @item = (q{_alternation_1_of_production_1_of_rule_block});
3766 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_block});
3767 0         0 my $repcount = 0;
3768              
3769              
3770 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [';']},
3771             Parse::RecDescent::_tracefirst($text),
3772             q{_alternation_1_of_production_1_of_rule_block},
3773             $tracelevel)
3774             if defined $::RD_TRACE;
3775 0         0 $lastsep = "";
3776 0         0 $expectation->is(q{})->at($text);
3777            
3778              
3779 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\;/)
  0 0       0  
3780             {
3781            
3782 0         0 $expectation->failed();
3783 0 0       0 Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
3784             Parse::RecDescent::_tracefirst($text))
3785             if defined $::RD_TRACE;
3786 0         0 last;
3787             }
3788 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
3789 0         0 substr($text,0,length($current_match),q{});
3790 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3791             . $current_match . q{])},
3792             Parse::RecDescent::_tracefirst($text))
3793             if defined $::RD_TRACE;
3794 0         0 push @item, $item{__STRING1__}=$current_match;
3795            
3796              
3797 0 0       0 Parse::RecDescent::_trace(q{Trying action},
3798             Parse::RecDescent::_tracefirst($text),
3799             q{_alternation_1_of_production_1_of_rule_block},
3800             $tracelevel)
3801             if defined $::RD_TRACE;
3802            
3803              
3804 0 0       0 $_tok = ($_noactions) ? 0 : do { print "token: ".shift @item; print " : @item\n" };
  0         0  
  0         0  
3805 0 0       0 unless (defined $_tok)
3806             {
3807 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
3808             if defined $::RD_TRACE;
3809 0         0 last;
3810             }
3811 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
3812             . $_tok . q{])},
3813             Parse::RecDescent::_tracefirst($text))
3814             if defined $::RD_TRACE;
3815 0         0 push @item, $_tok;
3816            
3817            
3818              
3819              
3820 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [';']<<},
3821             Parse::RecDescent::_tracefirst($text),
3822             q{_alternation_1_of_production_1_of_rule_block},
3823             $tracelevel)
3824             if defined $::RD_TRACE;
3825 0         0 $_matched = 1;
3826 0         0 last;
3827             }
3828              
3829              
3830 0 0 0     0 unless ( $_matched || defined($score) )
3831             {
3832            
3833              
3834 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
3835 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
3836             Parse::RecDescent::_tracefirst($_[1]),
3837             q{_alternation_1_of_production_1_of_rule_block},
3838             $tracelevel)
3839             if defined $::RD_TRACE;
3840 0         0 return undef;
3841             }
3842 0 0 0     0 if (!defined($return) && defined($score))
3843             {
3844 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
3845             q{_alternation_1_of_production_1_of_rule_block},
3846             $tracelevel)
3847             if defined $::RD_TRACE;
3848 0         0 $return = $score_return;
3849             }
3850 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
3851 0 0       0 $return = $item[$#item] unless defined $return;
3852 0 0       0 if (defined $::RD_TRACE)
3853             {
3854 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
3855             $return . q{])}, "",
3856             q{_alternation_1_of_production_1_of_rule_block},
3857             $tracelevel);
3858 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
3859             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
3860             Parse::RecDescent::_tracefirst($text),
3861             , q{_alternation_1_of_production_1_of_rule_block},
3862             $tracelevel)
3863             }
3864 0         0 $_[1] = $text;
3865 0         0 return $return;
3866             }
3867              
3868             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
3869             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::WS
3870             {
3871 260     260   3233 my $thisparser = $_[0];
3872 1     1   6 use vars q{$tracelevel};
  1         1  
  1         960  
3873 260   50     708 local $tracelevel = ($tracelevel||0)+1;
3874 260         325 $ERRORS = 0;
3875 260         549 my $thisrule = $thisparser->{"rules"}{"WS"};
3876            
3877 260 50       507 Parse::RecDescent::_trace(q{Trying rule: [WS]},
3878             Parse::RecDescent::_tracefirst($_[1]),
3879             q{WS},
3880             $tracelevel)
3881             if defined $::RD_TRACE;
3882              
3883            
3884 260         311 my $err_at = @{$thisparser->{errors}};
  260         436  
3885              
3886 260         331 my $score;
3887             my $score_return;
3888 0         0 my $_tok;
3889 260         319 my $return = undef;
3890 260         459 my $_matched=0;
3891 260         306 my $commit=0;
3892 260         353 my @item = ();
3893 260         401 my %item = ();
3894 260   33     811 my $repeating = defined($_[2]) && $_[2];
3895 260   33     817 my $_noactions = defined($_[3]) && $_[3];
3896 260 50       539 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  260         367  
  260         537  
3897 260 50       684 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
3898 260         287 my $text;
3899 260         397 my $lastsep="";
3900 260         298 my $current_match;
3901 260         771 my $expectation = new Parse::RecDescent::Expectation(q{/[ \\t\\r\\n\\f]+/});
3902 260         2065 $expectation->at($_[1]);
3903            
3904 260         1203 my $thisline;
3905 260         1089 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
3906              
3907            
3908              
3909 260   33     2397 while (!$_matched && !$commit)
3910             {
3911            
3912 260 50       608 Parse::RecDescent::_trace(q{Trying production: [/[ \\t\\r\\n\\f]+/]},
3913             Parse::RecDescent::_tracefirst($_[1]),
3914             q{WS},
3915             $tracelevel)
3916             if defined $::RD_TRACE;
3917 260         579 my $thisprod = $thisrule->{"prods"}[0];
3918 260         418 $text = $_[1];
3919 260         381 my $_savetext;
3920 260         463 @item = (q{WS});
3921 260         520 %item = (__RULE__ => q{WS});
3922 260         306 my $repcount = 0;
3923              
3924              
3925 260 50       592 Parse::RecDescent::_trace(q{Trying terminal: [/[ \\t\\r\\n\\f]+/]}, Parse::RecDescent::_tracefirst($text),
3926             q{WS},
3927             $tracelevel)
3928             if defined $::RD_TRACE;
3929 260         368 $lastsep = "";
3930 260         709 $expectation->is(q{})->at($text);
3931            
3932              
3933 260 50 66     2741 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:[ \t\r\n\f]+)/)
  260 100       2484  
3934             {
3935            
3936 174         462 $expectation->failed();
3937 174 50       787 Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
3938             Parse::RecDescent::_tracefirst($text))
3939             if defined $::RD_TRACE;
3940              
3941 174         347 last;
3942             }
3943 86         429 $current_match = substr($text, $-[0], $+[0] - $-[0]);
3944 86         253 substr($text,0,length($current_match),q{});
3945 86 50       236 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3946             . $current_match . q{])},
3947             Parse::RecDescent::_tracefirst($text))
3948             if defined $::RD_TRACE;
3949 86         224 push @item, $item{__PATTERN1__}=$current_match;
3950            
3951              
3952 86 50       411 Parse::RecDescent::_trace(q{Trying action},
3953             Parse::RecDescent::_tracefirst($text),
3954             q{WS},
3955             $tracelevel)
3956             if defined $::RD_TRACE;
3957            
3958              
3959 86 50       193 $_tok = ($_noactions) ? 0 : do {$return = ' ';};
  86         187  
3960 86 50       264 unless (defined $_tok)
3961             {
3962 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
3963             if defined $::RD_TRACE;
3964 0         0 last;
3965             }
3966 86 50       180 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
3967             . $_tok . q{])},
3968             Parse::RecDescent::_tracefirst($text))
3969             if defined $::RD_TRACE;
3970 86         103 push @item, $_tok;
3971 86         166 $item{__ACTION1__}=$_tok;
3972            
3973              
3974              
3975 86 50       145 Parse::RecDescent::_trace(q{>>Matched production: [/[ \\t\\r\\n\\f]+/]<<},
3976             Parse::RecDescent::_tracefirst($text),
3977             q{WS},
3978             $tracelevel)
3979             if defined $::RD_TRACE;
3980 86         93 $_matched = 1;
3981 86         168 last;
3982             }
3983              
3984              
3985 260 100 66     1017 unless ( $_matched || defined($score) )
3986             {
3987            
3988              
3989 174         254 $_[1] = $text; # NOT SURE THIS IS NEEDED
3990 174 50       359 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
3991             Parse::RecDescent::_tracefirst($_[1]),
3992             q{WS},
3993             $tracelevel)
3994             if defined $::RD_TRACE;
3995 174         1191 return undef;
3996             }
3997 86 50 33     220 if (!defined($return) && defined($score))
3998             {
3999 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
4000             q{WS},
4001             $tracelevel)
4002             if defined $::RD_TRACE;
4003 0         0 $return = $score_return;
4004             }
4005 86         91 splice @{$thisparser->{errors}}, $err_at;
  86         192  
4006 86 50       211 $return = $item[$#item] unless defined $return;
4007 86 50       198 if (defined $::RD_TRACE)
4008             {
4009 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
4010             $return . q{])}, "",
4011             q{WS},
4012             $tracelevel);
4013 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
4014             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
4015             Parse::RecDescent::_tracefirst($text),
4016             , q{WS},
4017             $tracelevel)
4018             }
4019 86         165 $_[1] = $text;
4020 86         647 return $return;
4021             }
4022              
4023             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
4024             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_ident
4025             {
4026 191     191   295 my $thisparser = $_[0];
4027 1     1   6 use vars q{$tracelevel};
  1         1  
  1         423  
4028 191   50     507 local $tracelevel = ($tracelevel||0)+1;
4029 191         242 $ERRORS = 0;
4030 191         395 my $thisrule = $thisparser->{"rules"}{"macro_ident"};
4031            
4032 191 50       402 Parse::RecDescent::_trace(q{Trying rule: [macro_ident]},
4033             Parse::RecDescent::_tracefirst($_[1]),
4034             q{macro_ident},
4035             $tracelevel)
4036             if defined $::RD_TRACE;
4037              
4038            
4039 191         187 my $err_at = @{$thisparser->{errors}};
  191         352  
4040              
4041 191         232 my $score;
4042             my $score_return;
4043 0         0 my $_tok;
4044 191         252 my $return = undef;
4045 191         6168 my $_matched=0;
4046 191         249 my $commit=0;
4047 191         357 my @item = ();
4048 191         277 my %item = ();
4049 191   33     619 my $repeating = defined($_[2]) && $_[2];
4050 191   33     546 my $_noactions = defined($_[3]) && $_[3];
4051 191 50       484 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  191         254  
  191         1057  
4052 191 50       504 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
4053 191         240 my $text;
4054 191         229 my $lastsep="";
4055 191         211 my $current_match;
4056 191         641 my $expectation = new Parse::RecDescent::Expectation(q{macro_nmstart});
4057 191         1468 $expectation->at($_[1]);
4058            
4059 191         796 my $thisline;
4060 191         1135 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
4061              
4062            
4063              
4064 191   33     1675 while (!$_matched && !$commit)
4065             {
4066            
4067 191 50       392 Parse::RecDescent::_trace(q{Trying production: [macro_nmstart macro_nmchar]},
4068             Parse::RecDescent::_tracefirst($_[1]),
4069             q{macro_ident},
4070             $tracelevel)
4071             if defined $::RD_TRACE;
4072 191         495 my $thisprod = $thisrule->{"prods"}[0];
4073 191         233 $text = $_[1];
4074 191         237 my $_savetext;
4075 191         434 @item = (q{macro_ident});
4076 191         378 %item = (__RULE__ => q{macro_ident});
4077 191         284 my $repcount = 0;
4078              
4079              
4080 191 50       397 Parse::RecDescent::_trace(q{Trying subrule: [macro_nmstart]},
4081             Parse::RecDescent::_tracefirst($text),
4082             q{macro_ident},
4083             $tracelevel)
4084             if defined $::RD_TRACE;
4085 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         931  
  191         403  
4086 191         490 $expectation->is(q{})->at($text);
4087 191 100   191   2007 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_nmstart($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  191         373  
4088             {
4089            
4090 123 50       286 Parse::RecDescent::_trace(q{<<Didn't match subrule: [macro_nmstart]>>},
4091             Parse::RecDescent::_tracefirst($text),
4092             q{macro_ident},
4093             $tracelevel)
4094             if defined $::RD_TRACE;
4095 123         301 $expectation->failed();
4096 123         428 last;
4097             }
4098 68 50       315 Parse::RecDescent::_trace(q{>>Matched subrule: [macro_nmstart]<< (return value: [}
4099             . $_tok . q{]},
4100            
4101             Parse::RecDescent::_tracefirst($text),
4102             q{macro_ident},
4103             $tracelevel)
4104             if defined $::RD_TRACE;
4105 68         158 $item{q{macro_nmstart}} = $_tok;
4106 68         108 push @item, $_tok;
4107            
4108             }
4109              
4110 68 50       180 Parse::RecDescent::_trace(q{Trying repeated subrule: [macro_nmchar]},
4111             Parse::RecDescent::_tracefirst($text),
4112             q{macro_ident},
4113             $tracelevel)
4114             if defined $::RD_TRACE;
4115 68         239 $expectation->is(q{macro_nmchar})->at($text);
4116            
4117 68 50   202   823 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_nmchar, 0, 100000000, $_noactions,$expectation,sub { \@arg })))
  202         462  
4118             {
4119 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [macro_nmchar]>>},
4120             Parse::RecDescent::_tracefirst($text),
4121             q{macro_ident},
4122             $tracelevel)
4123             if defined $::RD_TRACE;
4124 0         0 last;
4125             }
4126 68 50       1051 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [macro_nmchar]<< (}
4127             . @$_tok . q{ times)},
4128            
4129             Parse::RecDescent::_tracefirst($text),
4130             q{macro_ident},
4131             $tracelevel)
4132             if defined $::RD_TRACE;
4133 68         188 $item{q{macro_nmchar(s?)}} = $_tok;
4134 68         108 push @item, $_tok;
4135            
4136              
4137              
4138 68 50       154 Parse::RecDescent::_trace(q{Trying action},
4139             Parse::RecDescent::_tracefirst($text),
4140             q{macro_ident},
4141             $tracelevel)
4142             if defined $::RD_TRACE;
4143            
4144              
4145 68 100       156 $_tok = ($_noactions) ? 0 : do {$return = $item[1]; if (scalar(@{$item[2]}) > 0){$return .= join('',@{$item[2]});} 1;};
  68 50       136  
  68         121  
  68         222  
  43         66  
  43         134  
  68         152  
4146 68 50       200 unless (defined $_tok)
4147             {
4148 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
4149             if defined $::RD_TRACE;
4150 0         0 last;
4151             }
4152 68 50       143 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
4153             . $_tok . q{])},
4154             Parse::RecDescent::_tracefirst($text))
4155             if defined $::RD_TRACE;
4156 68         96 push @item, $_tok;
4157 68         153 $item{__ACTION1__}=$_tok;
4158            
4159              
4160              
4161 68 50       153 Parse::RecDescent::_trace(q{>>Matched production: [macro_nmstart macro_nmchar]<<},
4162             Parse::RecDescent::_tracefirst($text),
4163             q{macro_ident},
4164             $tracelevel)
4165             if defined $::RD_TRACE;
4166 68         103 $_matched = 1;
4167 68         103 last;
4168             }
4169              
4170              
4171 191 100 66     1035 unless ( $_matched || defined($score) )
4172             {
4173            
4174              
4175 123         261 $_[1] = $text; # NOT SURE THIS IS NEEDED
4176 123 50       344 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
4177             Parse::RecDescent::_tracefirst($_[1]),
4178             q{macro_ident},
4179             $tracelevel)
4180             if defined $::RD_TRACE;
4181 123         855 return undef;
4182             }
4183 68 50 33     263 if (!defined($return) && defined($score))
4184             {
4185 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
4186             q{macro_ident},
4187             $tracelevel)
4188             if defined $::RD_TRACE;
4189 0         0 $return = $score_return;
4190             }
4191 68         96 splice @{$thisparser->{errors}}, $err_at;
  68         158  
4192 68 50       150 $return = $item[$#item] unless defined $return;
4193 68 50       153 if (defined $::RD_TRACE)
4194             {
4195 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
4196             $return . q{])}, "",
4197             q{macro_ident},
4198             $tracelevel);
4199 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
4200             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
4201             Parse::RecDescent::_tracefirst($text),
4202             , q{macro_ident},
4203             $tracelevel)
4204             }
4205 68         108 $_[1] = $text;
4206 68         695 return $return;
4207             }
4208              
4209             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
4210             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::_alternation_1_of_production_1_of_rule_macro_string2
4211             {
4212 0     0   0 my $thisparser = $_[0];
4213 1     1   20 use vars q{$tracelevel};
  1         2  
  1         1136  
4214 0   0     0 local $tracelevel = ($tracelevel||0)+1;
4215 0         0 $ERRORS = 0;
4216 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_macro_string2"};
4217            
4218 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_macro_string2]},
4219             Parse::RecDescent::_tracefirst($_[1]),
4220             q{_alternation_1_of_production_1_of_rule_macro_string2},
4221             $tracelevel)
4222             if defined $::RD_TRACE;
4223              
4224            
4225 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
4226              
4227 0         0 my $score;
4228             my $score_return;
4229 0         0 my $_tok;
4230 0         0 my $return = undef;
4231 0         0 my $_matched=0;
4232 0         0 my $commit=0;
4233 0         0 my @item = ();
4234 0         0 my %item = ();
4235 0   0     0 my $repeating = defined($_[2]) && $_[2];
4236 0   0     0 my $_noactions = defined($_[3]) && $_[3];
4237 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
4238 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
4239 0         0 my $text;
4240 0         0 my $lastsep="";
4241 0         0 my $current_match;
4242 0         0 my $expectation = new Parse::RecDescent::Expectation(q{/[\\t !#$%&(-~]/, or '\\', or '"', or macro_nonascii, or macro_escape});
4243 0         0 $expectation->at($_[1]);
4244            
4245 0         0 my $thisline;
4246 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
4247              
4248            
4249              
4250 0   0     0 while (!$_matched && !$commit)
4251             {
4252            
4253 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/[\\t !#$%&(-~]/]},
4254             Parse::RecDescent::_tracefirst($_[1]),
4255             q{_alternation_1_of_production_1_of_rule_macro_string2},
4256             $tracelevel)
4257             if defined $::RD_TRACE;
4258 0         0 my $thisprod = $thisrule->{"prods"}[0];
4259 0         0 $text = $_[1];
4260 0         0 my $_savetext;
4261 0         0 @item = (q{_alternation_1_of_production_1_of_rule_macro_string2});
4262 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_macro_string2});
4263 0         0 my $repcount = 0;
4264              
4265              
4266 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/[\\t !#$%&(-~]/]}, Parse::RecDescent::_tracefirst($text),
4267             q{_alternation_1_of_production_1_of_rule_macro_string2},
4268             $tracelevel)
4269             if defined $::RD_TRACE;
4270 0         0 $lastsep = "";
4271 0         0 $expectation->is(q{})->at($text);
4272            
4273              
4274 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:[\t !#$%&(-~])/)
  0 0       0  
4275             {
4276            
4277 0         0 $expectation->failed();
4278 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
4279             Parse::RecDescent::_tracefirst($text))
4280             if defined $::RD_TRACE;
4281              
4282 0         0 last;
4283             }
4284 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
4285 0         0 substr($text,0,length($current_match),q{});
4286 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4287             . $current_match . q{])},
4288             Parse::RecDescent::_tracefirst($text))
4289             if defined $::RD_TRACE;
4290 0         0 push @item, $item{__PATTERN1__}=$current_match;
4291            
4292              
4293 0 0       0 Parse::RecDescent::_trace(q{Trying action},
4294             Parse::RecDescent::_tracefirst($text),
4295             q{_alternation_1_of_production_1_of_rule_macro_string2},
4296             $tracelevel)
4297             if defined $::RD_TRACE;
4298            
4299              
4300 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  0         0  
4301 0 0       0 unless (defined $_tok)
4302             {
4303 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
4304             if defined $::RD_TRACE;
4305 0         0 last;
4306             }
4307 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
4308             . $_tok . q{])},
4309             Parse::RecDescent::_tracefirst($text))
4310             if defined $::RD_TRACE;
4311 0         0 push @item, $_tok;
4312 0         0 $item{__ACTION1__}=$_tok;
4313            
4314              
4315              
4316 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/[\\t !#$%&(-~]/]<<},
4317             Parse::RecDescent::_tracefirst($text),
4318             q{_alternation_1_of_production_1_of_rule_macro_string2},
4319             $tracelevel)
4320             if defined $::RD_TRACE;
4321 0         0 $_matched = 1;
4322 0         0 last;
4323             }
4324              
4325              
4326 0   0     0 while (!$_matched && !$commit)
4327             {
4328            
4329 0 0       0 Parse::RecDescent::_trace(q{Trying production: ['\\' macro_nl]},
4330             Parse::RecDescent::_tracefirst($_[1]),
4331             q{_alternation_1_of_production_1_of_rule_macro_string2},
4332             $tracelevel)
4333             if defined $::RD_TRACE;
4334 0         0 my $thisprod = $thisrule->{"prods"}[1];
4335 0         0 $text = $_[1];
4336 0         0 my $_savetext;
4337 0         0 @item = (q{_alternation_1_of_production_1_of_rule_macro_string2});
4338 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_macro_string2});
4339 0         0 my $repcount = 0;
4340              
4341              
4342 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['\\']},
4343             Parse::RecDescent::_tracefirst($text),
4344             q{_alternation_1_of_production_1_of_rule_macro_string2},
4345             $tracelevel)
4346             if defined $::RD_TRACE;
4347 0         0 $lastsep = "";
4348 0         0 $expectation->is(q{})->at($text);
4349            
4350              
4351 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\\/)
  0 0       0  
4352             {
4353            
4354 0         0 $expectation->failed();
4355 0 0       0 Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
4356             Parse::RecDescent::_tracefirst($text))
4357             if defined $::RD_TRACE;
4358 0         0 last;
4359             }
4360 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
4361 0         0 substr($text,0,length($current_match),q{});
4362 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4363             . $current_match . q{])},
4364             Parse::RecDescent::_tracefirst($text))
4365             if defined $::RD_TRACE;
4366 0         0 push @item, $item{__STRING1__}=$current_match;
4367            
4368              
4369 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [macro_nl]},
4370             Parse::RecDescent::_tracefirst($text),
4371             q{_alternation_1_of_production_1_of_rule_macro_string2},
4372             $tracelevel)
4373             if defined $::RD_TRACE;
4374 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         976  
  0         0  
4375 0         0 $expectation->is(q{macro_nl})->at($text);
4376 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_nl($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
4377             {
4378            
4379 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match subrule: [macro_nl]>>},
4380             Parse::RecDescent::_tracefirst($text),
4381             q{_alternation_1_of_production_1_of_rule_macro_string2},
4382             $tracelevel)
4383             if defined $::RD_TRACE;
4384 0         0 $expectation->failed();
4385 0         0 last;
4386             }
4387 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [macro_nl]<< (return value: [}
4388             . $_tok . q{]},
4389            
4390             Parse::RecDescent::_tracefirst($text),
4391             q{_alternation_1_of_production_1_of_rule_macro_string2},
4392             $tracelevel)
4393             if defined $::RD_TRACE;
4394 0         0 $item{q{macro_nl}} = $_tok;
4395 0         0 push @item, $_tok;
4396            
4397             }
4398              
4399 0 0       0 Parse::RecDescent::_trace(q{Trying action},
4400             Parse::RecDescent::_tracefirst($text),
4401             q{_alternation_1_of_production_1_of_rule_macro_string2},
4402             $tracelevel)
4403             if defined $::RD_TRACE;
4404            
4405              
4406 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = ''};
  0         0  
4407 0 0       0 unless (defined $_tok)
4408             {
4409 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
4410             if defined $::RD_TRACE;
4411 0         0 last;
4412             }
4413 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
4414             . $_tok . q{])},
4415             Parse::RecDescent::_tracefirst($text))
4416             if defined $::RD_TRACE;
4417 0         0 push @item, $_tok;
4418 0         0 $item{__ACTION1__}=$_tok;
4419            
4420              
4421              
4422 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['\\' macro_nl]<<},
4423             Parse::RecDescent::_tracefirst($text),
4424             q{_alternation_1_of_production_1_of_rule_macro_string2},
4425             $tracelevel)
4426             if defined $::RD_TRACE;
4427 0         0 $_matched = 1;
4428 0         0 last;
4429             }
4430              
4431              
4432 0   0     0 while (!$_matched && !$commit)
4433             {
4434            
4435 0 0       0 Parse::RecDescent::_trace(q{Trying production: ['"']},
4436             Parse::RecDescent::_tracefirst($_[1]),
4437             q{_alternation_1_of_production_1_of_rule_macro_string2},
4438             $tracelevel)
4439             if defined $::RD_TRACE;
4440 0         0 my $thisprod = $thisrule->{"prods"}[2];
4441 0         0 $text = $_[1];
4442 0         0 my $_savetext;
4443 0         0 @item = (q{_alternation_1_of_production_1_of_rule_macro_string2});
4444 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_macro_string2});
4445 0         0 my $repcount = 0;
4446              
4447              
4448 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['"']},
4449             Parse::RecDescent::_tracefirst($text),
4450             q{_alternation_1_of_production_1_of_rule_macro_string2},
4451             $tracelevel)
4452             if defined $::RD_TRACE;
4453 0         0 $lastsep = "";
4454 0         0 $expectation->is(q{})->at($text);
4455            
4456              
4457 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\"/)
  0 0       0  
4458             {
4459            
4460 0         0 $expectation->failed();
4461 0 0       0 Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
4462             Parse::RecDescent::_tracefirst($text))
4463             if defined $::RD_TRACE;
4464 0         0 last;
4465             }
4466 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
4467 0         0 substr($text,0,length($current_match),q{});
4468 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4469             . $current_match . q{])},
4470             Parse::RecDescent::_tracefirst($text))
4471             if defined $::RD_TRACE;
4472 0         0 push @item, $item{__STRING1__}=$current_match;
4473            
4474              
4475 0 0       0 Parse::RecDescent::_trace(q{Trying action},
4476             Parse::RecDescent::_tracefirst($text),
4477             q{_alternation_1_of_production_1_of_rule_macro_string2},
4478             $tracelevel)
4479             if defined $::RD_TRACE;
4480            
4481              
4482 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  0         0  
4483 0 0       0 unless (defined $_tok)
4484             {
4485 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
4486             if defined $::RD_TRACE;
4487 0         0 last;
4488             }
4489 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
4490             . $_tok . q{])},
4491             Parse::RecDescent::_tracefirst($text))
4492             if defined $::RD_TRACE;
4493 0         0 push @item, $_tok;
4494 0         0 $item{__ACTION1__}=$_tok;
4495            
4496              
4497              
4498 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['"']<<},
4499             Parse::RecDescent::_tracefirst($text),
4500             q{_alternation_1_of_production_1_of_rule_macro_string2},
4501             $tracelevel)
4502             if defined $::RD_TRACE;
4503 0         0 $_matched = 1;
4504 0         0 last;
4505             }
4506              
4507              
4508 0   0     0 while (!$_matched && !$commit)
4509             {
4510            
4511 0 0       0 Parse::RecDescent::_trace(q{Trying production: [macro_nonascii]},
4512             Parse::RecDescent::_tracefirst($_[1]),
4513             q{_alternation_1_of_production_1_of_rule_macro_string2},
4514             $tracelevel)
4515             if defined $::RD_TRACE;
4516 0         0 my $thisprod = $thisrule->{"prods"}[3];
4517 0         0 $text = $_[1];
4518 0         0 my $_savetext;
4519 0         0 @item = (q{_alternation_1_of_production_1_of_rule_macro_string2});
4520 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_macro_string2});
4521 0         0 my $repcount = 0;
4522              
4523              
4524 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [macro_nonascii]},
4525             Parse::RecDescent::_tracefirst($text),
4526             q{_alternation_1_of_production_1_of_rule_macro_string2},
4527             $tracelevel)
4528             if defined $::RD_TRACE;
4529 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         479  
  0         0  
4530 0         0 $expectation->is(q{})->at($text);
4531 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_nonascii($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
4532             {
4533            
4534 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match subrule: [macro_nonascii]>>},
4535             Parse::RecDescent::_tracefirst($text),
4536             q{_alternation_1_of_production_1_of_rule_macro_string2},
4537             $tracelevel)
4538             if defined $::RD_TRACE;
4539 0         0 $expectation->failed();
4540 0         0 last;
4541             }
4542 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [macro_nonascii]<< (return value: [}
4543             . $_tok . q{]},
4544            
4545             Parse::RecDescent::_tracefirst($text),
4546             q{_alternation_1_of_production_1_of_rule_macro_string2},
4547             $tracelevel)
4548             if defined $::RD_TRACE;
4549 0         0 $item{q{macro_nonascii}} = $_tok;
4550 0         0 push @item, $_tok;
4551            
4552             }
4553              
4554 0 0       0 Parse::RecDescent::_trace(q{Trying action},
4555             Parse::RecDescent::_tracefirst($text),
4556             q{_alternation_1_of_production_1_of_rule_macro_string2},
4557             $tracelevel)
4558             if defined $::RD_TRACE;
4559            
4560              
4561 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  0         0  
4562 0 0       0 unless (defined $_tok)
4563             {
4564 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
4565             if defined $::RD_TRACE;
4566 0         0 last;
4567             }
4568 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
4569             . $_tok . q{])},
4570             Parse::RecDescent::_tracefirst($text))
4571             if defined $::RD_TRACE;
4572 0         0 push @item, $_tok;
4573 0         0 $item{__ACTION1__}=$_tok;
4574            
4575              
4576              
4577 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [macro_nonascii]<<},
4578             Parse::RecDescent::_tracefirst($text),
4579             q{_alternation_1_of_production_1_of_rule_macro_string2},
4580             $tracelevel)
4581             if defined $::RD_TRACE;
4582 0         0 $_matched = 1;
4583 0         0 last;
4584             }
4585              
4586              
4587 0   0     0 while (!$_matched && !$commit)
4588             {
4589            
4590 0 0       0 Parse::RecDescent::_trace(q{Trying production: [macro_escape]},
4591             Parse::RecDescent::_tracefirst($_[1]),
4592             q{_alternation_1_of_production_1_of_rule_macro_string2},
4593             $tracelevel)
4594             if defined $::RD_TRACE;
4595 0         0 my $thisprod = $thisrule->{"prods"}[4];
4596 0         0 $text = $_[1];
4597 0         0 my $_savetext;
4598 0         0 @item = (q{_alternation_1_of_production_1_of_rule_macro_string2});
4599 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_macro_string2});
4600 0         0 my $repcount = 0;
4601              
4602              
4603 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [macro_escape]},
4604             Parse::RecDescent::_tracefirst($text),
4605             q{_alternation_1_of_production_1_of_rule_macro_string2},
4606             $tracelevel)
4607             if defined $::RD_TRACE;
4608 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         880  
  0         0  
4609 0         0 $expectation->is(q{})->at($text);
4610 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_escape($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
4611             {
4612            
4613 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match subrule: [macro_escape]>>},
4614             Parse::RecDescent::_tracefirst($text),
4615             q{_alternation_1_of_production_1_of_rule_macro_string2},
4616             $tracelevel)
4617             if defined $::RD_TRACE;
4618 0         0 $expectation->failed();
4619 0         0 last;
4620             }
4621 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [macro_escape]<< (return value: [}
4622             . $_tok . q{]},
4623            
4624             Parse::RecDescent::_tracefirst($text),
4625             q{_alternation_1_of_production_1_of_rule_macro_string2},
4626             $tracelevel)
4627             if defined $::RD_TRACE;
4628 0         0 $item{q{macro_escape}} = $_tok;
4629 0         0 push @item, $_tok;
4630            
4631             }
4632              
4633 0 0       0 Parse::RecDescent::_trace(q{Trying action},
4634             Parse::RecDescent::_tracefirst($text),
4635             q{_alternation_1_of_production_1_of_rule_macro_string2},
4636             $tracelevel)
4637             if defined $::RD_TRACE;
4638            
4639              
4640 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  0         0  
4641 0 0       0 unless (defined $_tok)
4642             {
4643 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
4644             if defined $::RD_TRACE;
4645 0         0 last;
4646             }
4647 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
4648             . $_tok . q{])},
4649             Parse::RecDescent::_tracefirst($text))
4650             if defined $::RD_TRACE;
4651 0         0 push @item, $_tok;
4652 0         0 $item{__ACTION1__}=$_tok;
4653            
4654              
4655              
4656 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [macro_escape]<<},
4657             Parse::RecDescent::_tracefirst($text),
4658             q{_alternation_1_of_production_1_of_rule_macro_string2},
4659             $tracelevel)
4660             if defined $::RD_TRACE;
4661 0         0 $_matched = 1;
4662 0         0 last;
4663             }
4664              
4665              
4666 0 0 0     0 unless ( $_matched || defined($score) )
4667             {
4668            
4669              
4670 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
4671 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
4672             Parse::RecDescent::_tracefirst($_[1]),
4673             q{_alternation_1_of_production_1_of_rule_macro_string2},
4674             $tracelevel)
4675             if defined $::RD_TRACE;
4676 0         0 return undef;
4677             }
4678 0 0 0     0 if (!defined($return) && defined($score))
4679             {
4680 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
4681             q{_alternation_1_of_production_1_of_rule_macro_string2},
4682             $tracelevel)
4683             if defined $::RD_TRACE;
4684 0         0 $return = $score_return;
4685             }
4686 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
4687 0 0       0 $return = $item[$#item] unless defined $return;
4688 0 0       0 if (defined $::RD_TRACE)
4689             {
4690 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
4691             $return . q{])}, "",
4692             q{_alternation_1_of_production_1_of_rule_macro_string2},
4693             $tracelevel);
4694 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
4695             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
4696             Parse::RecDescent::_tracefirst($text),
4697             , q{_alternation_1_of_production_1_of_rule_macro_string2},
4698             $tracelevel)
4699             }
4700 0         0 $_[1] = $text;
4701 0         0 return $return;
4702             }
4703              
4704             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
4705             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_nmstart
4706             {
4707 191     191   330 my $thisparser = $_[0];
4708 1     1   7 use vars q{$tracelevel};
  1         2  
  1         956  
4709 191   50     478 local $tracelevel = ($tracelevel||0)+1;
4710 191         272 $ERRORS = 0;
4711 191         365 my $thisrule = $thisparser->{"rules"}{"macro_nmstart"};
4712            
4713 191 50       376 Parse::RecDescent::_trace(q{Trying rule: [macro_nmstart]},
4714             Parse::RecDescent::_tracefirst($_[1]),
4715             q{macro_nmstart},
4716             $tracelevel)
4717             if defined $::RD_TRACE;
4718              
4719            
4720 191         182 my $err_at = @{$thisparser->{errors}};
  191         370  
4721              
4722 191         251 my $score;
4723             my $score_return;
4724 0         0 my $_tok;
4725 191         210 my $return = undef;
4726 191         252 my $_matched=0;
4727 191         176 my $commit=0;
4728 191         259 my @item = ();
4729 191         314 my %item = ();
4730 191   33     479 my $repeating = defined($_[2]) && $_[2];
4731 191   33     689 my $_noactions = defined($_[3]) && $_[3];
4732 191 50       354 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  191         198  
  191         414  
4733 191 50       518 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
4734 191         217 my $text;
4735 191         300 my $lastsep="";
4736 191         185 my $current_match;
4737 191         615 my $expectation = new Parse::RecDescent::Expectation(q{/[a-zA-Z]/, or macro_nonascii, or macro_escape});
4738 191         1540 $expectation->at($_[1]);
4739            
4740 191         683 my $thisline;
4741 191         729 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
4742              
4743            
4744              
4745 191   33     1624 while (!$_matched && !$commit)
4746             {
4747            
4748 191 50       383 Parse::RecDescent::_trace(q{Trying production: [/[a-zA-Z]/]},
4749             Parse::RecDescent::_tracefirst($_[1]),
4750             q{macro_nmstart},
4751             $tracelevel)
4752             if defined $::RD_TRACE;
4753 191         540 my $thisprod = $thisrule->{"prods"}[0];
4754 191         274 $text = $_[1];
4755 191         243 my $_savetext;
4756 191         400 @item = (q{macro_nmstart});
4757 191         578 %item = (__RULE__ => q{macro_nmstart});
4758 191         279 my $repcount = 0;
4759              
4760              
4761 191 50       430 Parse::RecDescent::_trace(q{Trying terminal: [/[a-zA-Z]/]}, Parse::RecDescent::_tracefirst($text),
4762             q{macro_nmstart},
4763             $tracelevel)
4764             if defined $::RD_TRACE;
4765 191         234 $lastsep = "";
4766 191         507 $expectation->is(q{})->at($text);
4767            
4768              
4769 191 50 66     1984 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:[a-zA-Z])/)
  191 100       1999  
4770             {
4771            
4772 123         374 $expectation->failed();
4773 123 50       563 Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
4774             Parse::RecDescent::_tracefirst($text))
4775             if defined $::RD_TRACE;
4776              
4777 123         314 last;
4778             }
4779 68         379 $current_match = substr($text, $-[0], $+[0] - $-[0]);
4780 68         283 substr($text,0,length($current_match),q{});
4781 68 50       185 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4782             . $current_match . q{])},
4783             Parse::RecDescent::_tracefirst($text))
4784             if defined $::RD_TRACE;
4785 68         199 push @item, $item{__PATTERN1__}=$current_match;
4786            
4787              
4788 68 50       157 Parse::RecDescent::_trace(q{Trying action},
4789             Parse::RecDescent::_tracefirst($text),
4790             q{macro_nmstart},
4791             $tracelevel)
4792             if defined $::RD_TRACE;
4793            
4794              
4795 68 50       123 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  68         185  
4796 68 50       161 unless (defined $_tok)
4797             {
4798 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
4799             if defined $::RD_TRACE;
4800 0         0 last;
4801             }
4802 68 50       145 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
4803             . $_tok . q{])},
4804             Parse::RecDescent::_tracefirst($text))
4805             if defined $::RD_TRACE;
4806 68         111 push @item, $_tok;
4807 68         150 $item{__ACTION1__}=$_tok;
4808            
4809              
4810              
4811 68 50       153 Parse::RecDescent::_trace(q{>>Matched production: [/[a-zA-Z]/]<<},
4812             Parse::RecDescent::_tracefirst($text),
4813             q{macro_nmstart},
4814             $tracelevel)
4815             if defined $::RD_TRACE;
4816 68         101 $_matched = 1;
4817 68         154 last;
4818             }
4819              
4820              
4821 191   66     624 while (!$_matched && !$commit)
4822             {
4823            
4824 123 50       279 Parse::RecDescent::_trace(q{Trying production: [macro_nonascii]},
4825             Parse::RecDescent::_tracefirst($_[1]),
4826             q{macro_nmstart},
4827             $tracelevel)
4828             if defined $::RD_TRACE;
4829 123         296 my $thisprod = $thisrule->{"prods"}[1];
4830 123         254 $text = $_[1];
4831 123         163 my $_savetext;
4832 123         293 @item = (q{macro_nmstart});
4833 123         304 %item = (__RULE__ => q{macro_nmstart});
4834 123         172 my $repcount = 0;
4835              
4836              
4837 123 50       242 Parse::RecDescent::_trace(q{Trying subrule: [macro_nonascii]},
4838             Parse::RecDescent::_tracefirst($text),
4839             q{macro_nmstart},
4840             $tracelevel)
4841             if defined $::RD_TRACE;
4842 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         665  
  123         122  
4843 123         349 $expectation->is(q{})->at($text);
4844 123 50   123   1280 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_nonascii($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  123         346  
4845             {
4846            
4847 123 50       322 Parse::RecDescent::_trace(q{<<Didn't match subrule: [macro_nonascii]>>},
4848             Parse::RecDescent::_tracefirst($text),
4849             q{macro_nmstart},
4850             $tracelevel)
4851             if defined $::RD_TRACE;
4852 123         349 $expectation->failed();
4853 123         441 last;
4854             }
4855 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [macro_nonascii]<< (return value: [}
4856             . $_tok . q{]},
4857            
4858             Parse::RecDescent::_tracefirst($text),
4859             q{macro_nmstart},
4860             $tracelevel)
4861             if defined $::RD_TRACE;
4862 0         0 $item{q{macro_nonascii}} = $_tok;
4863 0         0 push @item, $_tok;
4864            
4865             }
4866              
4867 0 0       0 Parse::RecDescent::_trace(q{Trying action},
4868             Parse::RecDescent::_tracefirst($text),
4869             q{macro_nmstart},
4870             $tracelevel)
4871             if defined $::RD_TRACE;
4872            
4873              
4874 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  0         0  
4875 0 0       0 unless (defined $_tok)
4876             {
4877 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
4878             if defined $::RD_TRACE;
4879 0         0 last;
4880             }
4881 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
4882             . $_tok . q{])},
4883             Parse::RecDescent::_tracefirst($text))
4884             if defined $::RD_TRACE;
4885 0         0 push @item, $_tok;
4886 0         0 $item{__ACTION1__}=$_tok;
4887            
4888              
4889              
4890 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [macro_nonascii]<<},
4891             Parse::RecDescent::_tracefirst($text),
4892             q{macro_nmstart},
4893             $tracelevel)
4894             if defined $::RD_TRACE;
4895 0         0 $_matched = 1;
4896 0         0 last;
4897             }
4898              
4899              
4900 191   66     832 while (!$_matched && !$commit)
4901             {
4902            
4903 123 50       255 Parse::RecDescent::_trace(q{Trying production: [macro_escape]},
4904             Parse::RecDescent::_tracefirst($_[1]),
4905             q{macro_nmstart},
4906             $tracelevel)
4907             if defined $::RD_TRACE;
4908 123         288 my $thisprod = $thisrule->{"prods"}[2];
4909 123         240 $text = $_[1];
4910 123         131 my $_savetext;
4911 123         350 @item = (q{macro_nmstart});
4912 123         279 %item = (__RULE__ => q{macro_nmstart});
4913 123         284 my $repcount = 0;
4914              
4915              
4916 123 50       233 Parse::RecDescent::_trace(q{Trying subrule: [macro_escape]},
4917             Parse::RecDescent::_tracefirst($text),
4918             q{macro_nmstart},
4919             $tracelevel)
4920             if defined $::RD_TRACE;
4921 1     1   11 if (1) { no strict qw{refs};
  1         2  
  1         732  
  123         149  
4922 123         336 $expectation->is(q{})->at($text);
4923 123 50   123   1644 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_escape($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  123         254  
4924             {
4925            
4926 123 50       242 Parse::RecDescent::_trace(q{<<Didn't match subrule: [macro_escape]>>},
4927             Parse::RecDescent::_tracefirst($text),
4928             q{macro_nmstart},
4929             $tracelevel)
4930             if defined $::RD_TRACE;
4931 123         311 $expectation->failed();
4932 123         457 last;
4933             }
4934 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [macro_escape]<< (return value: [}
4935             . $_tok . q{]},
4936            
4937             Parse::RecDescent::_tracefirst($text),
4938             q{macro_nmstart},
4939             $tracelevel)
4940             if defined $::RD_TRACE;
4941 0         0 $item{q{macro_escape}} = $_tok;
4942 0         0 push @item, $_tok;
4943            
4944             }
4945              
4946 0 0       0 Parse::RecDescent::_trace(q{Trying action},
4947             Parse::RecDescent::_tracefirst($text),
4948             q{macro_nmstart},
4949             $tracelevel)
4950             if defined $::RD_TRACE;
4951            
4952              
4953 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  0         0  
4954 0 0       0 unless (defined $_tok)
4955             {
4956 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
4957             if defined $::RD_TRACE;
4958 0         0 last;
4959             }
4960 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
4961             . $_tok . q{])},
4962             Parse::RecDescent::_tracefirst($text))
4963             if defined $::RD_TRACE;
4964 0         0 push @item, $_tok;
4965 0         0 $item{__ACTION1__}=$_tok;
4966            
4967              
4968              
4969 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [macro_escape]<<},
4970             Parse::RecDescent::_tracefirst($text),
4971             q{macro_nmstart},
4972             $tracelevel)
4973             if defined $::RD_TRACE;
4974 0         0 $_matched = 1;
4975 0         0 last;
4976             }
4977              
4978              
4979 191 100 66     1061 unless ( $_matched || defined($score) )
4980             {
4981            
4982              
4983 123         242 $_[1] = $text; # NOT SURE THIS IS NEEDED
4984 123 50       317 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
4985             Parse::RecDescent::_tracefirst($_[1]),
4986             q{macro_nmstart},
4987             $tracelevel)
4988             if defined $::RD_TRACE;
4989 123         842 return undef;
4990             }
4991 68 50 33     180 if (!defined($return) && defined($score))
4992             {
4993 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
4994             q{macro_nmstart},
4995             $tracelevel)
4996             if defined $::RD_TRACE;
4997 0         0 $return = $score_return;
4998             }
4999 68         75 splice @{$thisparser->{errors}}, $err_at;
  68         164  
5000 68 50       135 $return = $item[$#item] unless defined $return;
5001 68 50       212 if (defined $::RD_TRACE)
5002             {
5003 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
5004             $return . q{])}, "",
5005             q{macro_nmstart},
5006             $tracelevel);
5007 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
5008             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
5009             Parse::RecDescent::_tracefirst($text),
5010             , q{macro_nmstart},
5011             $tracelevel)
5012             }
5013 68         132 $_[1] = $text;
5014 68         636 return $return;
5015             }
5016              
5017             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5018             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::INCLUDES
5019             {
5020 53     53   79 my $thisparser = $_[0];
5021 1     1   6 use vars q{$tracelevel};
  1         3  
  1         922  
5022 53   50     152 local $tracelevel = ($tracelevel||0)+1;
5023 53         65 $ERRORS = 0;
5024 53         122 my $thisrule = $thisparser->{"rules"}{"INCLUDES"};
5025            
5026 53 50       151 Parse::RecDescent::_trace(q{Trying rule: [INCLUDES]},
5027             Parse::RecDescent::_tracefirst($_[1]),
5028             q{INCLUDES},
5029             $tracelevel)
5030             if defined $::RD_TRACE;
5031              
5032            
5033 53         72 my $err_at = @{$thisparser->{errors}};
  53         141  
5034              
5035 53         79 my $score;
5036             my $score_return;
5037 0         0 my $_tok;
5038 53         73 my $return = undef;
5039 53         85 my $_matched=0;
5040 53         87 my $commit=0;
5041 53         114 my @item = ();
5042 53         78 my %item = ();
5043 53   33     219 my $repeating = defined($_[2]) && $_[2];
5044 53   33     192 my $_noactions = defined($_[3]) && $_[3];
5045 53 50       110 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  53         88  
  53         102  
5046 53 50       181 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
5047 53         74 my $text;
5048 53         99 my $lastsep="";
5049 53         62 my $current_match;
5050 53         214 my $expectation = new Parse::RecDescent::Expectation(q{'~='});
5051 53         427 $expectation->at($_[1]);
5052            
5053 53         221 my $thisline;
5054 53         288 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5055              
5056            
5057              
5058 53   33     503 while (!$_matched && !$commit)
5059             {
5060            
5061 53 50       155 Parse::RecDescent::_trace(q{Trying production: ['~=']},
5062             Parse::RecDescent::_tracefirst($_[1]),
5063             q{INCLUDES},
5064             $tracelevel)
5065             if defined $::RD_TRACE;
5066 53         166 my $thisprod = $thisrule->{"prods"}[0];
5067 53         85 $text = $_[1];
5068 53         66 my $_savetext;
5069 53         106 @item = (q{INCLUDES});
5070 53         120 %item = (__RULE__ => q{INCLUDES});
5071 53         72 my $repcount = 0;
5072              
5073              
5074 53 50       137 Parse::RecDescent::_trace(q{Trying terminal: ['~=']},
5075             Parse::RecDescent::_tracefirst($text),
5076             q{INCLUDES},
5077             $tracelevel)
5078             if defined $::RD_TRACE;
5079 53         83 $lastsep = "";
5080 53         210 $expectation->is(q{})->at($text);
5081            
5082              
5083 53 50 33     571 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\~\=/)
  53 50       495  
5084             {
5085            
5086 53         160 $expectation->failed();
5087 53 50       225 Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
5088             Parse::RecDescent::_tracefirst($text))
5089             if defined $::RD_TRACE;
5090 53         121 last;
5091             }
5092 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
5093 0         0 substr($text,0,length($current_match),q{});
5094 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5095             . $current_match . q{])},
5096             Parse::RecDescent::_tracefirst($text))
5097             if defined $::RD_TRACE;
5098 0         0 push @item, $item{__STRING1__}=$current_match;
5099            
5100              
5101 0 0       0 Parse::RecDescent::_trace(q{Trying action},
5102             Parse::RecDescent::_tracefirst($text),
5103             q{INCLUDES},
5104             $tracelevel)
5105             if defined $::RD_TRACE;
5106            
5107              
5108 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  0         0  
5109 0 0       0 unless (defined $_tok)
5110             {
5111 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
5112             if defined $::RD_TRACE;
5113 0         0 last;
5114             }
5115 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
5116             . $_tok . q{])},
5117             Parse::RecDescent::_tracefirst($text))
5118             if defined $::RD_TRACE;
5119 0         0 push @item, $_tok;
5120 0         0 $item{__ACTION1__}=$_tok;
5121            
5122              
5123              
5124 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['~=']<<},
5125             Parse::RecDescent::_tracefirst($text),
5126             q{INCLUDES},
5127             $tracelevel)
5128             if defined $::RD_TRACE;
5129 0         0 $_matched = 1;
5130 0         0 last;
5131             }
5132              
5133              
5134 53 50 33     244 unless ( $_matched || defined($score) )
5135             {
5136            
5137              
5138 53         77 $_[1] = $text; # NOT SURE THIS IS NEEDED
5139 53 50       103 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
5140             Parse::RecDescent::_tracefirst($_[1]),
5141             q{INCLUDES},
5142             $tracelevel)
5143             if defined $::RD_TRACE;
5144 53         376 return undef;
5145             }
5146 0 0 0     0 if (!defined($return) && defined($score))
5147             {
5148 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
5149             q{INCLUDES},
5150             $tracelevel)
5151             if defined $::RD_TRACE;
5152 0         0 $return = $score_return;
5153             }
5154 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
5155 0 0       0 $return = $item[$#item] unless defined $return;
5156 0 0       0 if (defined $::RD_TRACE)
5157             {
5158 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
5159             $return . q{])}, "",
5160             q{INCLUDES},
5161             $tracelevel);
5162 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
5163             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
5164             Parse::RecDescent::_tracefirst($text),
5165             , q{INCLUDES},
5166             $tracelevel)
5167             }
5168 0         0 $_[1] = $text;
5169 0         0 return $return;
5170             }
5171              
5172             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5173             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_string1
5174             {
5175 57     57   114 my $thisparser = $_[0];
5176 1     1   5 use vars q{$tracelevel};
  1         2  
  1         1284  
5177 57   50     188 local $tracelevel = ($tracelevel||0)+1;
5178 57         92 $ERRORS = 0;
5179 57         147 my $thisrule = $thisparser->{"rules"}{"macro_string1"};
5180            
5181 57 50       143 Parse::RecDescent::_trace(q{Trying rule: [macro_string1]},
5182             Parse::RecDescent::_tracefirst($_[1]),
5183             q{macro_string1},
5184             $tracelevel)
5185             if defined $::RD_TRACE;
5186              
5187            
5188 57         64 my $err_at = @{$thisparser->{errors}};
  57         172  
5189              
5190 57         111 my $score;
5191             my $score_return;
5192 0         0 my $_tok;
5193 57         76 my $return = undef;
5194 57         78 my $_matched=0;
5195 57         159 my $commit=0;
5196 57         113 my @item = ();
5197 57         120 my %item = ();
5198 57   33     193 my $repeating = defined($_[2]) && $_[2];
5199 57   33     207 my $_noactions = defined($_[3]) && $_[3];
5200 57 50       121 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  57         75  
  57         152  
5201 57 50       151 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
5202 57         84 my $text;
5203 57         135 my $lastsep="";
5204 57         105 my $current_match;
5205 57         209 my $expectation = new Parse::RecDescent::Expectation(q{'"'});
5206 57         451 $expectation->at($_[1]);
5207            
5208 57         281 my $thisline;
5209 57         237 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5210              
5211            
5212              
5213 57   33     673 while (!$_matched && !$commit)
5214             {
5215            
5216 57 50       127 Parse::RecDescent::_trace(q{Trying production: ['"' /[\\t !#$%&(-~]/, or '\\', or ''', or macro_nonascii, or macro_escape '"']},
5217             Parse::RecDescent::_tracefirst($_[1]),
5218             q{macro_string1},
5219             $tracelevel)
5220             if defined $::RD_TRACE;
5221 57         163 my $thisprod = $thisrule->{"prods"}[0];
5222 57         92 $text = $_[1];
5223 57         68 my $_savetext;
5224 57         163 @item = (q{macro_string1});
5225 57         155 %item = (__RULE__ => q{macro_string1});
5226 57         88 my $repcount = 0;
5227              
5228              
5229 57 50       118 Parse::RecDescent::_trace(q{Trying terminal: ['"']},
5230             Parse::RecDescent::_tracefirst($text),
5231             q{macro_string1},
5232             $tracelevel)
5233             if defined $::RD_TRACE;
5234 57         95 $lastsep = "";
5235 57         160 $expectation->is(q{})->at($text);
5236            
5237              
5238 57 50 66     685 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\"/)
  57 100       664  
5239             {
5240            
5241 55         145 $expectation->failed();
5242 55 50       273 Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
5243             Parse::RecDescent::_tracefirst($text))
5244             if defined $::RD_TRACE;
5245 55         126 last;
5246             }
5247 2         14 $current_match = substr($text, $-[0], $+[0] - $-[0]);
5248 2         9 substr($text,0,length($current_match),q{});
5249 2 50       6 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5250             . $current_match . q{])},
5251             Parse::RecDescent::_tracefirst($text))
5252             if defined $::RD_TRACE;
5253 2         7 push @item, $item{__STRING1__}=$current_match;
5254            
5255              
5256 2 50       8 Parse::RecDescent::_trace(q{Trying repeated subrule: [/[\\t !#$%&(-~]/, or '\\', or ''', or macro_nonascii, or macro_escape]},
5257             Parse::RecDescent::_tracefirst($text),
5258             q{macro_string1},
5259             $tracelevel)
5260             if defined $::RD_TRACE;
5261 2         8 $expectation->is(q{/[\\t !#$%&(-~]/, or '\\', or ''', or macro_nonascii, or macro_escape})->at($text);
5262            
5263 2 50   13   29 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::CSS::Parse::CompiledGrammar::_alternation_1_of_production_1_of_rule_macro_string1, 0, 100000000, $_noactions,$expectation,sub { \@arg })))
  13         28  
5264             {
5265 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [/[\\t !#$%&(-~]/, or '\\', or ''', or macro_nonascii, or macro_escape]>>},
5266             Parse::RecDescent::_tracefirst($text),
5267             q{macro_string1},
5268             $tracelevel)
5269             if defined $::RD_TRACE;
5270 0         0 last;
5271             }
5272 2 50       38 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_macro_string1]<< (}
5273             . @$_tok . q{ times)},
5274            
5275             Parse::RecDescent::_tracefirst($text),
5276             q{macro_string1},
5277             $tracelevel)
5278             if defined $::RD_TRACE;
5279 2         7 $item{q{_alternation_1_of_production_1_of_rule_macro_string1(s?)}} = $_tok;
5280 2         4 push @item, $_tok;
5281            
5282              
5283              
5284 2 50       5 Parse::RecDescent::_trace(q{Trying terminal: ['"']},
5285             Parse::RecDescent::_tracefirst($text),
5286             q{macro_string1},
5287             $tracelevel)
5288             if defined $::RD_TRACE;
5289 2         4 $lastsep = "";
5290 2         27 $expectation->is(q{'"'})->at($text);
5291            
5292              
5293 2 50 33     29 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\"/)
  2 50       27  
5294             {
5295            
5296 0         0 $expectation->failed();
5297 0 0       0 Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
5298             Parse::RecDescent::_tracefirst($text))
5299             if defined $::RD_TRACE;
5300 0         0 last;
5301             }
5302 2         13 $current_match = substr($text, $-[0], $+[0] - $-[0]);
5303 2         7 substr($text,0,length($current_match),q{});
5304 2 50       6 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5305             . $current_match . q{])},
5306             Parse::RecDescent::_tracefirst($text))
5307             if defined $::RD_TRACE;
5308 2         7 push @item, $item{__STRING2__}=$current_match;
5309            
5310              
5311 2 50       7 Parse::RecDescent::_trace(q{Trying action},
5312             Parse::RecDescent::_tracefirst($text),
5313             q{macro_string1},
5314             $tracelevel)
5315             if defined $::RD_TRACE;
5316            
5317              
5318 2 50       5 $_tok = ($_noactions) ? 0 : do {$return = '"'.join('', @{$item[2]}).'"'};
  2         4  
  2         11  
5319 2 50       7 unless (defined $_tok)
5320             {
5321 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
5322             if defined $::RD_TRACE;
5323 0         0 last;
5324             }
5325 2 50       7 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
5326             . $_tok . q{])},
5327             Parse::RecDescent::_tracefirst($text))
5328             if defined $::RD_TRACE;
5329 2         5 push @item, $_tok;
5330 2         6 $item{__ACTION1__}=$_tok;
5331            
5332              
5333              
5334 2 50       6 Parse::RecDescent::_trace(q{>>Matched production: ['"' /[\\t !#$%&(-~]/, or '\\', or ''', or macro_nonascii, or macro_escape '"']<<},
5335             Parse::RecDescent::_tracefirst($text),
5336             q{macro_string1},
5337             $tracelevel)
5338             if defined $::RD_TRACE;
5339 2         4 $_matched = 1;
5340 2         6 last;
5341             }
5342              
5343              
5344 57 100 66     297 unless ( $_matched || defined($score) )
5345             {
5346            
5347              
5348 55         100 $_[1] = $text; # NOT SURE THIS IS NEEDED
5349 55 50       105 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
5350             Parse::RecDescent::_tracefirst($_[1]),
5351             q{macro_string1},
5352             $tracelevel)
5353             if defined $::RD_TRACE;
5354 55         440 return undef;
5355             }
5356 2 50 33     8 if (!defined($return) && defined($score))
5357             {
5358 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
5359             q{macro_string1},
5360             $tracelevel)
5361             if defined $::RD_TRACE;
5362 0         0 $return = $score_return;
5363             }
5364 2         3 splice @{$thisparser->{errors}}, $err_at;
  2         15  
5365 2 50       8 $return = $item[$#item] unless defined $return;
5366 2 50       7 if (defined $::RD_TRACE)
5367             {
5368 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
5369             $return . q{])}, "",
5370             q{macro_string1},
5371             $tracelevel);
5372 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
5373             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
5374             Parse::RecDescent::_tracefirst($text),
5375             , q{macro_string1},
5376             $tracelevel)
5377             }
5378 2         10 $_[1] = $text;
5379 2         23 return $return;
5380             }
5381              
5382             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5383             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_string
5384             {
5385 57     57   114 my $thisparser = $_[0];
5386 1     1   7 use vars q{$tracelevel};
  1         2  
  1         335  
5387 57   50     215 local $tracelevel = ($tracelevel||0)+1;
5388 57         127 $ERRORS = 0;
5389 57         143 my $thisrule = $thisparser->{"rules"}{"macro_string"};
5390            
5391 57 50       176 Parse::RecDescent::_trace(q{Trying rule: [macro_string]},
5392             Parse::RecDescent::_tracefirst($_[1]),
5393             q{macro_string},
5394             $tracelevel)
5395             if defined $::RD_TRACE;
5396              
5397            
5398 57         73 my $err_at = @{$thisparser->{errors}};
  57         109  
5399              
5400 57         80 my $score;
5401             my $score_return;
5402 0         0 my $_tok;
5403 57         88 my $return = undef;
5404 57         75 my $_matched=0;
5405 57         82 my $commit=0;
5406 57         127 my @item = ();
5407 57         138 my %item = ();
5408 57   33     208 my $repeating = defined($_[2]) && $_[2];
5409 57   33     174 my $_noactions = defined($_[3]) && $_[3];
5410 57 50       125 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  57         69  
  57         118  
5411 57 50       162 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
5412 57         82 my $text;
5413 57         102 my $lastsep="";
5414 57         62 my $current_match;
5415 57         206 my $expectation = new Parse::RecDescent::Expectation(q{macro_string1, or macro_string2});
5416 57         452 $expectation->at($_[1]);
5417            
5418 57         212 my $thisline;
5419 57         245 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5420              
5421            
5422              
5423 57   33     523 while (!$_matched && !$commit)
5424             {
5425            
5426 57 50       149 Parse::RecDescent::_trace(q{Trying production: [macro_string1]},
5427             Parse::RecDescent::_tracefirst($_[1]),
5428             q{macro_string},
5429             $tracelevel)
5430             if defined $::RD_TRACE;
5431 57         223 my $thisprod = $thisrule->{"prods"}[0];
5432 57         168 $text = $_[1];
5433 57         87 my $_savetext;
5434 57         168 @item = (q{macro_string});
5435 57         140 %item = (__RULE__ => q{macro_string});
5436 57         113 my $repcount = 0;
5437              
5438              
5439 57 50       138 Parse::RecDescent::_trace(q{Trying subrule: [macro_string1]},
5440             Parse::RecDescent::_tracefirst($text),
5441             q{macro_string},
5442             $tracelevel)
5443             if defined $::RD_TRACE;
5444 1     1   5 if (1) { no strict qw{refs};
  1         2  
  1         378  
  57         82  
5445 57         166 $expectation->is(q{})->at($text);
5446 57 100   57   680 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_string1($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  57         122  
5447             {
5448            
5449 55 50       142 Parse::RecDescent::_trace(q{<<Didn't match subrule: [macro_string1]>>},
5450             Parse::RecDescent::_tracefirst($text),
5451             q{macro_string},
5452             $tracelevel)
5453             if defined $::RD_TRACE;
5454 55         153 $expectation->failed();
5455 55         365 last;
5456             }
5457 2 50       11 Parse::RecDescent::_trace(q{>>Matched subrule: [macro_string1]<< (return value: [}
5458             . $_tok . q{]},
5459            
5460             Parse::RecDescent::_tracefirst($text),
5461             q{macro_string},
5462             $tracelevel)
5463             if defined $::RD_TRACE;
5464 2         7 $item{q{macro_string1}} = $_tok;
5465 2         5 push @item, $_tok;
5466            
5467             }
5468              
5469 2 50       6 Parse::RecDescent::_trace(q{Trying action},
5470             Parse::RecDescent::_tracefirst($text),
5471             q{macro_string},
5472             $tracelevel)
5473             if defined $::RD_TRACE;
5474            
5475              
5476 2 50       6 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  2         6  
5477 2 50       6 unless (defined $_tok)
5478             {
5479 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
5480             if defined $::RD_TRACE;
5481 0         0 last;
5482             }
5483 2 50       6 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
5484             . $_tok . q{])},
5485             Parse::RecDescent::_tracefirst($text))
5486             if defined $::RD_TRACE;
5487 2         4 push @item, $_tok;
5488 2         31 $item{__ACTION1__}=$_tok;
5489            
5490              
5491              
5492 2 50       7 Parse::RecDescent::_trace(q{>>Matched production: [macro_string1]<<},
5493             Parse::RecDescent::_tracefirst($text),
5494             q{macro_string},
5495             $tracelevel)
5496             if defined $::RD_TRACE;
5497 2         3 $_matched = 1;
5498 2         5 last;
5499             }
5500              
5501              
5502 57   66     380 while (!$_matched && !$commit)
5503             {
5504            
5505 55 50       109 Parse::RecDescent::_trace(q{Trying production: [macro_string2]},
5506             Parse::RecDescent::_tracefirst($_[1]),
5507             q{macro_string},
5508             $tracelevel)
5509             if defined $::RD_TRACE;
5510 55         158 my $thisprod = $thisrule->{"prods"}[1];
5511 55         116 $text = $_[1];
5512 55         86 my $_savetext;
5513 55         158 @item = (q{macro_string});
5514 55         155 %item = (__RULE__ => q{macro_string});
5515 55         85 my $repcount = 0;
5516              
5517              
5518 55 50       164 Parse::RecDescent::_trace(q{Trying subrule: [macro_string2]},
5519             Parse::RecDescent::_tracefirst($text),
5520             q{macro_string},
5521             $tracelevel)
5522             if defined $::RD_TRACE;
5523 1     1   4 if (1) { no strict qw{refs};
  1         2  
  1         593  
  55         60  
5524 55         180 $expectation->is(q{})->at($text);
5525 55 50   55   658 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_string2($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  55         123  
5526             {
5527            
5528 55 50       123 Parse::RecDescent::_trace(q{<<Didn't match subrule: [macro_string2]>>},
5529             Parse::RecDescent::_tracefirst($text),
5530             q{macro_string},
5531             $tracelevel)
5532             if defined $::RD_TRACE;
5533 55         218 $expectation->failed();
5534 55         241 last;
5535             }
5536 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [macro_string2]<< (return value: [}
5537             . $_tok . q{]},
5538            
5539             Parse::RecDescent::_tracefirst($text),
5540             q{macro_string},
5541             $tracelevel)
5542             if defined $::RD_TRACE;
5543 0         0 $item{q{macro_string2}} = $_tok;
5544 0         0 push @item, $_tok;
5545            
5546             }
5547              
5548 0 0       0 Parse::RecDescent::_trace(q{Trying action},
5549             Parse::RecDescent::_tracefirst($text),
5550             q{macro_string},
5551             $tracelevel)
5552             if defined $::RD_TRACE;
5553            
5554              
5555 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  0         0  
5556 0 0       0 unless (defined $_tok)
5557             {
5558 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
5559             if defined $::RD_TRACE;
5560 0         0 last;
5561             }
5562 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
5563             . $_tok . q{])},
5564             Parse::RecDescent::_tracefirst($text))
5565             if defined $::RD_TRACE;
5566 0         0 push @item, $_tok;
5567 0         0 $item{__ACTION1__}=$_tok;
5568            
5569              
5570              
5571 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [macro_string2]<<},
5572             Parse::RecDescent::_tracefirst($text),
5573             q{macro_string},
5574             $tracelevel)
5575             if defined $::RD_TRACE;
5576 0         0 $_matched = 1;
5577 0         0 last;
5578             }
5579              
5580              
5581 57 100 66     509 unless ( $_matched || defined($score) )
5582             {
5583            
5584              
5585 55         121 $_[1] = $text; # NOT SURE THIS IS NEEDED
5586 55 50       144 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
5587             Parse::RecDescent::_tracefirst($_[1]),
5588             q{macro_string},
5589             $tracelevel)
5590             if defined $::RD_TRACE;
5591 55         382 return undef;
5592             }
5593 2 50 33     9 if (!defined($return) && defined($score))
5594             {
5595 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
5596             q{macro_string},
5597             $tracelevel)
5598             if defined $::RD_TRACE;
5599 0         0 $return = $score_return;
5600             }
5601 2         3 splice @{$thisparser->{errors}}, $err_at;
  2         5  
5602 2 50       7 $return = $item[$#item] unless defined $return;
5603 2 50       6 if (defined $::RD_TRACE)
5604             {
5605 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
5606             $return . q{])}, "",
5607             q{macro_string},
5608             $tracelevel);
5609 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
5610             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
5611             Parse::RecDescent::_tracefirst($text),
5612             , q{macro_string},
5613             $tracelevel)
5614             }
5615 2         5 $_[1] = $text;
5616 2         20 return $return;
5617             }
5618              
5619             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5620             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::UNICODERANGE
5621             {
5622 53     53   102 my $thisparser = $_[0];
5623 1     1   4 use vars q{$tracelevel};
  1         2  
  1         891  
5624 53   50     184 local $tracelevel = ($tracelevel||0)+1;
5625 53         104 $ERRORS = 0;
5626 53         137 my $thisrule = $thisparser->{"rules"}{"UNICODERANGE"};
5627            
5628 53 50       127 Parse::RecDescent::_trace(q{Trying rule: [UNICODERANGE]},
5629             Parse::RecDescent::_tracefirst($_[1]),
5630             q{UNICODERANGE},
5631             $tracelevel)
5632             if defined $::RD_TRACE;
5633              
5634            
5635 53         56 my $err_at = @{$thisparser->{errors}};
  53         126  
5636              
5637 53         85 my $score;
5638             my $score_return;
5639 0         0 my $_tok;
5640 53         64 my $return = undef;
5641 53         64 my $_matched=0;
5642 53         60 my $commit=0;
5643 53         93 my @item = ();
5644 53         106 my %item = ();
5645 53   33     215 my $repeating = defined($_[2]) && $_[2];
5646 53   33     165 my $_noactions = defined($_[3]) && $_[3];
5647 53 50       113 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  53         100  
  53         135  
5648 53 50       139 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
5649 53         174 my $text;
5650 53         93 my $lastsep="";
5651 53         63 my $current_match;
5652 53         194 my $expectation = new Parse::RecDescent::Expectation(q{/U\\+[0-9A-F?]\{1,6\}(-[0-9A-F]\{1,6\})?/});
5653 53         436 $expectation->at($_[1]);
5654            
5655 53         206 my $thisline;
5656 53         215 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5657              
5658            
5659              
5660 53   33     538 while (!$_matched && !$commit)
5661             {
5662            
5663 53 50       130 Parse::RecDescent::_trace(q{Trying production: [/U\\+[0-9A-F?]\{1,6\}(-[0-9A-F]\{1,6\})?/]},
5664             Parse::RecDescent::_tracefirst($_[1]),
5665             q{UNICODERANGE},
5666             $tracelevel)
5667             if defined $::RD_TRACE;
5668 53         191 my $thisprod = $thisrule->{"prods"}[0];
5669 53         81 $text = $_[1];
5670 53         82 my $_savetext;
5671 53         111 @item = (q{UNICODERANGE});
5672 53         154 %item = (__RULE__ => q{UNICODERANGE});
5673 53         88 my $repcount = 0;
5674              
5675              
5676 53 50       124 Parse::RecDescent::_trace(q{Trying terminal: [/U\\+[0-9A-F?]\{1,6\}(-[0-9A-F]\{1,6\})?/]}, Parse::RecDescent::_tracefirst($text),
5677             q{UNICODERANGE},
5678             $tracelevel)
5679             if defined $::RD_TRACE;
5680 53         125 $lastsep = "";
5681 53         163 $expectation->is(q{})->at($text);
5682            
5683              
5684 53 50 33     564 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:U\+[0-9A-F?]{1,6}(-[0-9A-F]{1,6})?)/)
  53 50       608  
5685             {
5686            
5687 53         141 $expectation->failed();
5688 53 50       248 Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
5689             Parse::RecDescent::_tracefirst($text))
5690             if defined $::RD_TRACE;
5691              
5692 53         105 last;
5693             }
5694 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
5695 0         0 substr($text,0,length($current_match),q{});
5696 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5697             . $current_match . q{])},
5698             Parse::RecDescent::_tracefirst($text))
5699             if defined $::RD_TRACE;
5700 0         0 push @item, $item{__PATTERN1__}=$current_match;
5701            
5702              
5703 0 0       0 Parse::RecDescent::_trace(q{Trying action},
5704             Parse::RecDescent::_tracefirst($text),
5705             q{UNICODERANGE},
5706             $tracelevel)
5707             if defined $::RD_TRACE;
5708            
5709              
5710 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  0         0  
5711 0 0       0 unless (defined $_tok)
5712             {
5713 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
5714             if defined $::RD_TRACE;
5715 0         0 last;
5716             }
5717 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
5718             . $_tok . q{])},
5719             Parse::RecDescent::_tracefirst($text))
5720             if defined $::RD_TRACE;
5721 0         0 push @item, $_tok;
5722 0         0 $item{__ACTION1__}=$_tok;
5723            
5724              
5725              
5726 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/U\\+[0-9A-F?]\{1,6\}(-[0-9A-F]\{1,6\})?/]<<},
5727             Parse::RecDescent::_tracefirst($text),
5728             q{UNICODERANGE},
5729             $tracelevel)
5730             if defined $::RD_TRACE;
5731 0         0 $_matched = 1;
5732 0         0 last;
5733             }
5734              
5735              
5736 53 50 33     234 unless ( $_matched || defined($score) )
5737             {
5738            
5739              
5740 53         111 $_[1] = $text; # NOT SURE THIS IS NEEDED
5741 53 50       449 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
5742             Parse::RecDescent::_tracefirst($_[1]),
5743             q{UNICODERANGE},
5744             $tracelevel)
5745             if defined $::RD_TRACE;
5746 53         365 return undef;
5747             }
5748 0 0 0     0 if (!defined($return) && defined($score))
5749             {
5750 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
5751             q{UNICODERANGE},
5752             $tracelevel)
5753             if defined $::RD_TRACE;
5754 0         0 $return = $score_return;
5755             }
5756 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
5757 0 0       0 $return = $item[$#item] unless defined $return;
5758 0 0       0 if (defined $::RD_TRACE)
5759             {
5760 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
5761             $return . q{])}, "",
5762             q{UNICODERANGE},
5763             $tracelevel);
5764 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
5765             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
5766             Parse::RecDescent::_tracefirst($text),
5767             , q{UNICODERANGE},
5768             $tracelevel)
5769             }
5770 0         0 $_[1] = $text;
5771 0         0 return $return;
5772             }
5773              
5774             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5775             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_w
5776             {
5777 5     5   11 my $thisparser = $_[0];
5778 1     1   8 use vars q{$tracelevel};
  1         3  
  1         1060  
5779 5   50     20 local $tracelevel = ($tracelevel||0)+1;
5780 5         8 $ERRORS = 0;
5781 5         13 my $thisrule = $thisparser->{"rules"}{"macro_w"};
5782            
5783 5 50       35 Parse::RecDescent::_trace(q{Trying rule: [macro_w]},
5784             Parse::RecDescent::_tracefirst($_[1]),
5785             q{macro_w},
5786             $tracelevel)
5787             if defined $::RD_TRACE;
5788              
5789            
5790 5         9 my $err_at = @{$thisparser->{errors}};
  5         12  
5791              
5792 5         8 my $score;
5793             my $score_return;
5794 0         0 my $_tok;
5795 5         8 my $return = undef;
5796 5         7 my $_matched=0;
5797 5         8 my $commit=0;
5798 5         9 my @item = ();
5799 5         10 my %item = ();
5800 5   33     21 my $repeating = defined($_[2]) && $_[2];
5801 5   33     18 my $_noactions = defined($_[3]) && $_[3];
5802 5 50       15 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  5         8  
  5         10  
5803 5 50       17 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
5804 5         8 my $text;
5805 5         7 my $lastsep="";
5806 5         7 my $current_match;
5807 5         19 my $expectation = new Parse::RecDescent::Expectation(q{/[ \\t\\r\\n\\f]*/});
5808 5         43 $expectation->at($_[1]);
5809            
5810 5         21 my $thisline;
5811 5         23 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5812              
5813            
5814              
5815 5   33     53 while (!$_matched && !$commit)
5816             {
5817            
5818 5 50       16 Parse::RecDescent::_trace(q{Trying production: [/[ \\t\\r\\n\\f]*/]},
5819             Parse::RecDescent::_tracefirst($_[1]),
5820             q{macro_w},
5821             $tracelevel)
5822             if defined $::RD_TRACE;
5823 5         14 my $thisprod = $thisrule->{"prods"}[0];
5824 5         8 $text = $_[1];
5825 5         8 my $_savetext;
5826 5         18 @item = (q{macro_w});
5827 5         13 %item = (__RULE__ => q{macro_w});
5828 5         8 my $repcount = 0;
5829              
5830              
5831 5 50       12 Parse::RecDescent::_trace(q{Trying terminal: [/[ \\t\\r\\n\\f]*/]}, Parse::RecDescent::_tracefirst($text),
5832             q{macro_w},
5833             $tracelevel)
5834             if defined $::RD_TRACE;
5835 5         9 $lastsep = "";
5836 5         18 $expectation->is(q{})->at($text);
5837            
5838              
5839 5 50 33     79 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:[ \t\r\n\f]*)/)
  5 50       65  
5840             {
5841            
5842 0         0 $expectation->failed();
5843 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
5844             Parse::RecDescent::_tracefirst($text))
5845             if defined $::RD_TRACE;
5846              
5847 0         0 last;
5848             }
5849 5         28 $current_match = substr($text, $-[0], $+[0] - $-[0]);
5850 5         17 substr($text,0,length($current_match),q{});
5851 5 50       14 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5852             . $current_match . q{])},
5853             Parse::RecDescent::_tracefirst($text))
5854             if defined $::RD_TRACE;
5855 5         17 push @item, $item{__PATTERN1__}=$current_match;
5856            
5857              
5858 5 50       12 Parse::RecDescent::_trace(q{Trying action},
5859             Parse::RecDescent::_tracefirst($text),
5860             q{macro_w},
5861             $tracelevel)
5862             if defined $::RD_TRACE;
5863            
5864              
5865 5 50       12 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  5         14  
5866 5 50       24 unless (defined $_tok)
5867             {
5868 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
5869             if defined $::RD_TRACE;
5870 0         0 last;
5871             }
5872 5 50       14 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
5873             . $_tok . q{])},
5874             Parse::RecDescent::_tracefirst($text))
5875             if defined $::RD_TRACE;
5876 5         10 push @item, $_tok;
5877 5         10 $item{__ACTION1__}=$_tok;
5878            
5879              
5880              
5881 5 50       11 Parse::RecDescent::_trace(q{>>Matched production: [/[ \\t\\r\\n\\f]*/]<<},
5882             Parse::RecDescent::_tracefirst($text),
5883             q{macro_w},
5884             $tracelevel)
5885             if defined $::RD_TRACE;
5886 5         8 $_matched = 1;
5887 5         13 last;
5888             }
5889              
5890              
5891 5 50 33     33 unless ( $_matched || defined($score) )
5892             {
5893            
5894              
5895 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
5896 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
5897             Parse::RecDescent::_tracefirst($_[1]),
5898             q{macro_w},
5899             $tracelevel)
5900             if defined $::RD_TRACE;
5901 0         0 return undef;
5902             }
5903 5 50 33     18 if (!defined($return) && defined($score))
5904             {
5905 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
5906             q{macro_w},
5907             $tracelevel)
5908             if defined $::RD_TRACE;
5909 0         0 $return = $score_return;
5910             }
5911 5         9 splice @{$thisparser->{errors}}, $err_at;
  5         11  
5912 5 50       15 $return = $item[$#item] unless defined $return;
5913 5 50       13 if (defined $::RD_TRACE)
5914             {
5915 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
5916             $return . q{])}, "",
5917             q{macro_w},
5918             $tracelevel);
5919 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
5920             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
5921             Parse::RecDescent::_tracefirst($text),
5922             , q{macro_w},
5923             $tracelevel)
5924             }
5925 5         10 $_[1] = $text;
5926 5         49 return $return;
5927             }
5928              
5929             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5930             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::STRING
5931             {
5932 55     55   129 my $thisparser = $_[0];
5933 1     1   9 use vars q{$tracelevel};
  1         2  
  1         424  
5934 55   50     278 local $tracelevel = ($tracelevel||0)+1;
5935 55         93 $ERRORS = 0;
5936 55         141 my $thisrule = $thisparser->{"rules"}{"STRING"};
5937            
5938 55 50       155 Parse::RecDescent::_trace(q{Trying rule: [STRING]},
5939             Parse::RecDescent::_tracefirst($_[1]),
5940             q{STRING},
5941             $tracelevel)
5942             if defined $::RD_TRACE;
5943              
5944            
5945 55         61 my $err_at = @{$thisparser->{errors}};
  55         107  
5946              
5947 55         118 my $score;
5948             my $score_return;
5949 0         0 my $_tok;
5950 55         99 my $return = undef;
5951 55         66 my $_matched=0;
5952 55         77 my $commit=0;
5953 55         92 my @item = ();
5954 55         102 my %item = ();
5955 55   33     179 my $repeating = defined($_[2]) && $_[2];
5956 55   33     184 my $_noactions = defined($_[3]) && $_[3];
5957 55 50       144 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  55         77  
  55         128  
5958 55 50       176 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
5959 55         55 my $text;
5960 55         86 my $lastsep="";
5961 55         80 my $current_match;
5962 55         225 my $expectation = new Parse::RecDescent::Expectation(q{macro_string});
5963 55         580 $expectation->at($_[1]);
5964            
5965 55         278 my $thisline;
5966 55         257 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5967              
5968            
5969              
5970 55   33     1704 while (!$_matched && !$commit)
5971             {
5972            
5973 55 50       122 Parse::RecDescent::_trace(q{Trying production: [macro_string]},
5974             Parse::RecDescent::_tracefirst($_[1]),
5975             q{STRING},
5976             $tracelevel)
5977             if defined $::RD_TRACE;
5978 55         172 my $thisprod = $thisrule->{"prods"}[0];
5979 55         100 $text = $_[1];
5980 55         78 my $_savetext;
5981 55         170 @item = (q{STRING});
5982 55         165 %item = (__RULE__ => q{STRING});
5983 55         70 my $repcount = 0;
5984              
5985              
5986 55 50       118 Parse::RecDescent::_trace(q{Trying subrule: [macro_string]},
5987             Parse::RecDescent::_tracefirst($text),
5988             q{STRING},
5989             $tracelevel)
5990             if defined $::RD_TRACE;
5991 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         645  
  55         59  
5992 55         178 $expectation->is(q{})->at($text);
5993 55 100   55   663 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_string($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  55         130  
5994             {
5995            
5996 54 50       143 Parse::RecDescent::_trace(q{<<Didn't match subrule: [macro_string]>>},
5997             Parse::RecDescent::_tracefirst($text),
5998             q{STRING},
5999             $tracelevel)
6000             if defined $::RD_TRACE;
6001 54         204 $expectation->failed();
6002 54         212 last;
6003             }
6004 1 50       5 Parse::RecDescent::_trace(q{>>Matched subrule: [macro_string]<< (return value: [}
6005             . $_tok . q{]},
6006            
6007             Parse::RecDescent::_tracefirst($text),
6008             q{STRING},
6009             $tracelevel)
6010             if defined $::RD_TRACE;
6011 1         2 $item{q{macro_string}} = $_tok;
6012 1         3 push @item, $_tok;
6013            
6014             }
6015              
6016 1 50       4 Parse::RecDescent::_trace(q{Trying action},
6017             Parse::RecDescent::_tracefirst($text),
6018             q{STRING},
6019             $tracelevel)
6020             if defined $::RD_TRACE;
6021            
6022              
6023 1 50       4 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  1         3  
6024 1 50       4 unless (defined $_tok)
6025             {
6026 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
6027             if defined $::RD_TRACE;
6028 0         0 last;
6029             }
6030 1 50       9 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
6031             . $_tok . q{])},
6032             Parse::RecDescent::_tracefirst($text))
6033             if defined $::RD_TRACE;
6034 1         3 push @item, $_tok;
6035 1         2 $item{__ACTION1__}=$_tok;
6036            
6037              
6038              
6039 1 50       10 Parse::RecDescent::_trace(q{>>Matched production: [macro_string]<<},
6040             Parse::RecDescent::_tracefirst($text),
6041             q{STRING},
6042             $tracelevel)
6043             if defined $::RD_TRACE;
6044 1         2 $_matched = 1;
6045 1         3 last;
6046             }
6047              
6048              
6049 55 100 66     328 unless ( $_matched || defined($score) )
6050             {
6051            
6052              
6053 54         79 $_[1] = $text; # NOT SURE THIS IS NEEDED
6054 54 50       138 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
6055             Parse::RecDescent::_tracefirst($_[1]),
6056             q{STRING},
6057             $tracelevel)
6058             if defined $::RD_TRACE;
6059 54         355 return undef;
6060             }
6061 1 50 33     5 if (!defined($return) && defined($score))
6062             {
6063 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
6064             q{STRING},
6065             $tracelevel)
6066             if defined $::RD_TRACE;
6067 0         0 $return = $score_return;
6068             }
6069 1         2 splice @{$thisparser->{errors}}, $err_at;
  1         3  
6070 1 50       5 $return = $item[$#item] unless defined $return;
6071 1 50       3 if (defined $::RD_TRACE)
6072             {
6073 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
6074             $return . q{])}, "",
6075             q{STRING},
6076             $tracelevel);
6077 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
6078             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
6079             Parse::RecDescent::_tracefirst($text),
6080             , q{STRING},
6081             $tracelevel)
6082             }
6083 1         4 $_[1] = $text;
6084 1         10 return $return;
6085             }
6086              
6087             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
6088             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::DIMENSION
6089             {
6090 55     55   107 my $thisparser = $_[0];
6091 1     1   6 use vars q{$tracelevel};
  1         3  
  1         408  
6092 55   50     179 local $tracelevel = ($tracelevel||0)+1;
6093 55         97 $ERRORS = 0;
6094 55         141 my $thisrule = $thisparser->{"rules"}{"DIMENSION"};
6095            
6096 55 50       171 Parse::RecDescent::_trace(q{Trying rule: [DIMENSION]},
6097             Parse::RecDescent::_tracefirst($_[1]),
6098             q{DIMENSION},
6099             $tracelevel)
6100             if defined $::RD_TRACE;
6101              
6102            
6103 55         73 my $err_at = @{$thisparser->{errors}};
  55         128  
6104              
6105 55         79 my $score;
6106             my $score_return;
6107 0         0 my $_tok;
6108 55         68 my $return = undef;
6109 55         86 my $_matched=0;
6110 55         67 my $commit=0;
6111 55         119 my @item = ();
6112 55         125 my %item = ();
6113 55   33     219 my $repeating = defined($_[2]) && $_[2];
6114 55   33     168 my $_noactions = defined($_[3]) && $_[3];
6115 55 50       134 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  55         73  
  55         104  
6116 55 50       194 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
6117 55         70 my $text;
6118 55         83 my $lastsep="";
6119 55         59 my $current_match;
6120 55         177 my $expectation = new Parse::RecDescent::Expectation(q{macro_num});
6121 55         448 $expectation->at($_[1]);
6122            
6123 55         200 my $thisline;
6124 55         227 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
6125              
6126            
6127              
6128 55   33     495 while (!$_matched && !$commit)
6129             {
6130            
6131 55 50       192 Parse::RecDescent::_trace(q{Trying production: [macro_num macro_ident]},
6132             Parse::RecDescent::_tracefirst($_[1]),
6133             q{DIMENSION},
6134             $tracelevel)
6135             if defined $::RD_TRACE;
6136 55         200 my $thisprod = $thisrule->{"prods"}[0];
6137 55         66 $text = $_[1];
6138 55         73 my $_savetext;
6139 55         125 @item = (q{DIMENSION});
6140 55         120 %item = (__RULE__ => q{DIMENSION});
6141 55         78 my $repcount = 0;
6142              
6143              
6144 55 50       113 Parse::RecDescent::_trace(q{Trying subrule: [macro_num]},
6145             Parse::RecDescent::_tracefirst($text),
6146             q{DIMENSION},
6147             $tracelevel)
6148             if defined $::RD_TRACE;
6149 1     1   6 if (1) { no strict qw{refs};
  1         3  
  1         222  
  55         82  
6150 55         229 $expectation->is(q{})->at($text);
6151 55 50   55   546 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_num($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  55         131  
6152             {
6153            
6154 55 50       171 Parse::RecDescent::_trace(q{<<Didn't match subrule: [macro_num]>>},
6155             Parse::RecDescent::_tracefirst($text),
6156             q{DIMENSION},
6157             $tracelevel)
6158             if defined $::RD_TRACE;
6159 55         152 $expectation->failed();
6160 55         210 last;
6161             }
6162 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [macro_num]<< (return value: [}
6163             . $_tok . q{]},
6164            
6165             Parse::RecDescent::_tracefirst($text),
6166             q{DIMENSION},
6167             $tracelevel)
6168             if defined $::RD_TRACE;
6169 0         0 $item{q{macro_num}} = $_tok;
6170 0         0 push @item, $_tok;
6171            
6172             }
6173              
6174 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [macro_ident]},
6175             Parse::RecDescent::_tracefirst($text),
6176             q{DIMENSION},
6177             $tracelevel)
6178             if defined $::RD_TRACE;
6179 1     1   4 if (1) { no strict qw{refs};
  1         2  
  1         603  
  0         0  
6180 0         0 $expectation->is(q{macro_ident})->at($text);
6181 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_ident($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
6182             {
6183            
6184 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match subrule: [macro_ident]>>},
6185             Parse::RecDescent::_tracefirst($text),
6186             q{DIMENSION},
6187             $tracelevel)
6188             if defined $::RD_TRACE;
6189 0         0 $expectation->failed();
6190 0         0 last;
6191             }
6192 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [macro_ident]<< (return value: [}
6193             . $_tok . q{]},
6194            
6195             Parse::RecDescent::_tracefirst($text),
6196             q{DIMENSION},
6197             $tracelevel)
6198             if defined $::RD_TRACE;
6199 0         0 $item{q{macro_ident}} = $_tok;
6200 0         0 push @item, $_tok;
6201            
6202             }
6203              
6204 0 0       0 Parse::RecDescent::_trace(q{Trying action},
6205             Parse::RecDescent::_tracefirst($text),
6206             q{DIMENSION},
6207             $tracelevel)
6208             if defined $::RD_TRACE;
6209            
6210              
6211 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1].$item[2]};
  0         0  
6212 0 0       0 unless (defined $_tok)
6213             {
6214 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
6215             if defined $::RD_TRACE;
6216 0         0 last;
6217             }
6218 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
6219             . $_tok . q{])},
6220             Parse::RecDescent::_tracefirst($text))
6221             if defined $::RD_TRACE;
6222 0         0 push @item, $_tok;
6223 0         0 $item{__ACTION1__}=$_tok;
6224            
6225              
6226              
6227 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [macro_num macro_ident]<<},
6228             Parse::RecDescent::_tracefirst($text),
6229             q{DIMENSION},
6230             $tracelevel)
6231             if defined $::RD_TRACE;
6232 0         0 $_matched = 1;
6233 0         0 last;
6234             }
6235              
6236              
6237 55 50 33     379 unless ( $_matched || defined($score) )
6238             {
6239            
6240              
6241 55         82 $_[1] = $text; # NOT SURE THIS IS NEEDED
6242 55 50       137 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
6243             Parse::RecDescent::_tracefirst($_[1]),
6244             q{DIMENSION},
6245             $tracelevel)
6246             if defined $::RD_TRACE;
6247 55         414 return undef;
6248             }
6249 0 0 0     0 if (!defined($return) && defined($score))
6250             {
6251 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
6252             q{DIMENSION},
6253             $tracelevel)
6254             if defined $::RD_TRACE;
6255 0         0 $return = $score_return;
6256             }
6257 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
6258 0 0       0 $return = $item[$#item] unless defined $return;
6259 0 0       0 if (defined $::RD_TRACE)
6260             {
6261 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
6262             $return . q{])}, "",
6263             q{DIMENSION},
6264             $tracelevel);
6265 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
6266             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
6267             Parse::RecDescent::_tracefirst($text),
6268             , q{DIMENSION},
6269             $tracelevel)
6270             }
6271 0         0 $_[1] = $text;
6272 0         0 return $return;
6273             }
6274              
6275             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
6276             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_string2
6277             {
6278 55     55   117 my $thisparser = $_[0];
6279 1     1   6 use vars q{$tracelevel};
  1         2  
  1         1272  
6280 55   50     194 local $tracelevel = ($tracelevel||0)+1;
6281 55         194 $ERRORS = 0;
6282 55         152 my $thisrule = $thisparser->{"rules"}{"macro_string2"};
6283            
6284 55 50       139 Parse::RecDescent::_trace(q{Trying rule: [macro_string2]},
6285             Parse::RecDescent::_tracefirst($_[1]),
6286             q{macro_string2},
6287             $tracelevel)
6288             if defined $::RD_TRACE;
6289              
6290            
6291 55         66 my $err_at = @{$thisparser->{errors}};
  55         134  
6292              
6293 55         91 my $score;
6294             my $score_return;
6295 0         0 my $_tok;
6296 55         61 my $return = undef;
6297 55         93 my $_matched=0;
6298 55         61 my $commit=0;
6299 55         108 my @item = ();
6300 55         97 my %item = ();
6301 55   33     183 my $repeating = defined($_[2]) && $_[2];
6302 55   33     191 my $_noactions = defined($_[3]) && $_[3];
6303 55 50       163 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  55         62  
  55         139  
6304 55 50       218 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
6305 55         96 my $text;
6306 55         87 my $lastsep="";
6307 55         59 my $current_match;
6308 55         215 my $expectation = new Parse::RecDescent::Expectation(q{'''});
6309 55         449 $expectation->at($_[1]);
6310            
6311 55         216 my $thisline;
6312 55         264 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
6313              
6314            
6315              
6316 55   33     579 while (!$_matched && !$commit)
6317             {
6318            
6319 55 50       139 Parse::RecDescent::_trace(q{Trying production: [''' /[\\t !#$%&(-~]/, or '\\', or '"', or macro_nonascii, or macro_escape ''']},
6320             Parse::RecDescent::_tracefirst($_[1]),
6321             q{macro_string2},
6322             $tracelevel)
6323             if defined $::RD_TRACE;
6324 55         180 my $thisprod = $thisrule->{"prods"}[0];
6325 55         84 $text = $_[1];
6326 55         55 my $_savetext;
6327 55         103 @item = (q{macro_string2});
6328 55         134 %item = (__RULE__ => q{macro_string2});
6329 55         94 my $repcount = 0;
6330              
6331              
6332 55 50       146 Parse::RecDescent::_trace(q{Trying terminal: [''']},
6333             Parse::RecDescent::_tracefirst($text),
6334             q{macro_string2},
6335             $tracelevel)
6336             if defined $::RD_TRACE;
6337 55         73 $lastsep = "";
6338 55         167 $expectation->is(q{})->at($text);
6339            
6340              
6341 55 50 33     622 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and do { $_tok = "'"; 1 } and
  55 50 33     384  
  55   33     75  
  55         412  
6342             substr($text,0,length($_tok)) eq $_tok and
6343 0         0 do { substr($text,0,length($_tok)) = ""; 1; }
  0         0  
6344             )
6345             {
6346            
6347 55         159 $expectation->failed();
6348 55 50       243 Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
6349             Parse::RecDescent::_tracefirst($text))
6350             if defined $::RD_TRACE;
6351 55         119 last;
6352             }
6353 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6354             . $_tok . q{])},
6355             Parse::RecDescent::_tracefirst($text))
6356             if defined $::RD_TRACE;
6357 0         0 push @item, $item{__STRING1__}=$_tok;
6358            
6359              
6360 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [/[\\t !#$%&(-~]/, or '\\', or '"', or macro_nonascii, or macro_escape]},
6361             Parse::RecDescent::_tracefirst($text),
6362             q{macro_string2},
6363             $tracelevel)
6364             if defined $::RD_TRACE;
6365 0         0 $expectation->is(q{/[\\t !#$%&(-~]/, or '\\', or '"', or macro_nonascii, or macro_escape})->at($text);
6366            
6367 0 0   0   0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::CSS::Parse::CompiledGrammar::_alternation_1_of_production_1_of_rule_macro_string2, 0, 100000000, $_noactions,$expectation,sub { \@arg })))
  0         0  
6368             {
6369 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [/[\\t !#$%&(-~]/, or '\\', or '"', or macro_nonascii, or macro_escape]>>},
6370             Parse::RecDescent::_tracefirst($text),
6371             q{macro_string2},
6372             $tracelevel)
6373             if defined $::RD_TRACE;
6374 0         0 last;
6375             }
6376 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_macro_string2]<< (}
6377             . @$_tok . q{ times)},
6378            
6379             Parse::RecDescent::_tracefirst($text),
6380             q{macro_string2},
6381             $tracelevel)
6382             if defined $::RD_TRACE;
6383 0         0 $item{q{_alternation_1_of_production_1_of_rule_macro_string2(s?)}} = $_tok;
6384 0         0 push @item, $_tok;
6385            
6386              
6387              
6388 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [''']},
6389             Parse::RecDescent::_tracefirst($text),
6390             q{macro_string2},
6391             $tracelevel)
6392             if defined $::RD_TRACE;
6393 0         0 $lastsep = "";
6394 0         0 $expectation->is(q{'''})->at($text);
6395            
6396              
6397 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and do { $_tok = "'"; 1 } and
  0 0 0     0  
  0   0     0  
  0         0  
6398             substr($text,0,length($_tok)) eq $_tok and
6399 0         0 do { substr($text,0,length($_tok)) = ""; 1; }
  0         0  
6400             )
6401             {
6402            
6403 0         0 $expectation->failed();
6404 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
6405             Parse::RecDescent::_tracefirst($text))
6406             if defined $::RD_TRACE;
6407 0         0 last;
6408             }
6409 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6410             . $_tok . q{])},
6411             Parse::RecDescent::_tracefirst($text))
6412             if defined $::RD_TRACE;
6413 0         0 push @item, $item{__STRING2__}=$_tok;
6414            
6415              
6416 0 0       0 Parse::RecDescent::_trace(q{Trying action},
6417             Parse::RecDescent::_tracefirst($text),
6418             q{macro_string2},
6419             $tracelevel)
6420             if defined $::RD_TRACE;
6421            
6422              
6423 0 0       0 $_tok = ($_noactions) ? 0 : do {return "'".join('', @{$item[2]})."'"};
  0         0  
  0         0  
6424 0 0       0 unless (defined $_tok)
6425             {
6426 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
6427             if defined $::RD_TRACE;
6428 0         0 last;
6429             }
6430 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
6431             . $_tok . q{])},
6432             Parse::RecDescent::_tracefirst($text))
6433             if defined $::RD_TRACE;
6434 0         0 push @item, $_tok;
6435 0         0 $item{__ACTION1__}=$_tok;
6436            
6437              
6438              
6439 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [''' /[\\t !#$%&(-~]/, or '\\', or '"', or macro_nonascii, or macro_escape ''']<<},
6440             Parse::RecDescent::_tracefirst($text),
6441             q{macro_string2},
6442             $tracelevel)
6443             if defined $::RD_TRACE;
6444 0         0 $_matched = 1;
6445 0         0 last;
6446             }
6447              
6448              
6449 55 50 33     256 unless ( $_matched || defined($score) )
6450             {
6451            
6452              
6453 55         169 $_[1] = $text; # NOT SURE THIS IS NEEDED
6454 55 50       126 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
6455             Parse::RecDescent::_tracefirst($_[1]),
6456             q{macro_string2},
6457             $tracelevel)
6458             if defined $::RD_TRACE;
6459 55         451 return undef;
6460             }
6461 0 0 0     0 if (!defined($return) && defined($score))
6462             {
6463 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
6464             q{macro_string2},
6465             $tracelevel)
6466             if defined $::RD_TRACE;
6467 0         0 $return = $score_return;
6468             }
6469 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
6470 0 0       0 $return = $item[$#item] unless defined $return;
6471 0 0       0 if (defined $::RD_TRACE)
6472             {
6473 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
6474             $return . q{])}, "",
6475             q{macro_string2},
6476             $tracelevel);
6477 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
6478             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
6479             Parse::RecDescent::_tracefirst($text),
6480             , q{macro_string2},
6481             $tracelevel)
6482             }
6483 0         0 $_[1] = $text;
6484 0         0 return $return;
6485             }
6486              
6487             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
6488             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_num
6489             {
6490 167     167   498 my $thisparser = $_[0];
6491 1     1   6 use vars q{$tracelevel};
  1         2  
  1         890  
6492 167   50     445 local $tracelevel = ($tracelevel||0)+1;
6493 167         193 $ERRORS = 0;
6494 167         551 my $thisrule = $thisparser->{"rules"}{"macro_num"};
6495            
6496 167 50       1061 Parse::RecDescent::_trace(q{Trying rule: [macro_num]},
6497             Parse::RecDescent::_tracefirst($_[1]),
6498             q{macro_num},
6499             $tracelevel)
6500             if defined $::RD_TRACE;
6501              
6502            
6503 167         360 my $err_at = @{$thisparser->{errors}};
  167         290  
6504              
6505 167         236 my $score;
6506             my $score_return;
6507 0         0 my $_tok;
6508 167         188 my $return = undef;
6509 167         382 my $_matched=0;
6510 167         191 my $commit=0;
6511 167         399 my @item = ();
6512 167         271 my %item = ();
6513 167   33     692 my $repeating = defined($_[2]) && $_[2];
6514 167   33     530 my $_noactions = defined($_[3]) && $_[3];
6515 167 50       313 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  167         425  
  167         336  
6516 167 50       409 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
6517 167         167 my $text;
6518 167         379 my $lastsep="";
6519 167         200 my $current_match;
6520 167         579 my $expectation = new Parse::RecDescent::Expectation(q{/[0-9]+|[0-9]*\\.[0-9]+/});
6521 167         1202 $expectation->at($_[1]);
6522            
6523 167         597 my $thisline;
6524 167         731 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
6525              
6526            
6527              
6528 167   33     1438 while (!$_matched && !$commit)
6529             {
6530            
6531 167 50       352 Parse::RecDescent::_trace(q{Trying production: [/[0-9]+|[0-9]*\\.[0-9]+/]},
6532             Parse::RecDescent::_tracefirst($_[1]),
6533             q{macro_num},
6534             $tracelevel)
6535             if defined $::RD_TRACE;
6536 167         321 my $thisprod = $thisrule->{"prods"}[0];
6537 167         240 $text = $_[1];
6538 167         158 my $_savetext;
6539 167         287 @item = (q{macro_num});
6540 167         306 %item = (__RULE__ => q{macro_num});
6541 167         205 my $repcount = 0;
6542              
6543              
6544 167 50       278 Parse::RecDescent::_trace(q{Trying terminal: [/[0-9]+|[0-9]*\\.[0-9]+/]}, Parse::RecDescent::_tracefirst($text),
6545             q{macro_num},
6546             $tracelevel)
6547             if defined $::RD_TRACE;
6548 167         192 $lastsep = "";
6549 167         529 $expectation->is(q{})->at($text);
6550            
6551              
6552 167 50 66     1754 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:[0-9]+|[0-9]*\.[0-9]+)/)
  167 100       1752  
6553             {
6554            
6555 165         437 $expectation->failed();
6556 165 50       753 Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
6557             Parse::RecDescent::_tracefirst($text))
6558             if defined $::RD_TRACE;
6559              
6560 165         384 last;
6561             }
6562 2         14 $current_match = substr($text, $-[0], $+[0] - $-[0]);
6563 2         9 substr($text,0,length($current_match),q{});
6564 2 50       9 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6565             . $current_match . q{])},
6566             Parse::RecDescent::_tracefirst($text))
6567             if defined $::RD_TRACE;
6568 2         7 push @item, $item{__PATTERN1__}=$current_match;
6569            
6570              
6571 2 50       7 Parse::RecDescent::_trace(q{Trying action},
6572             Parse::RecDescent::_tracefirst($text),
6573             q{macro_num},
6574             $tracelevel)
6575             if defined $::RD_TRACE;
6576            
6577              
6578 2 50       6 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  2         6  
6579 2 50       6 unless (defined $_tok)
6580             {
6581 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
6582             if defined $::RD_TRACE;
6583 0         0 last;
6584             }
6585 2 50       6 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
6586             . $_tok . q{])},
6587             Parse::RecDescent::_tracefirst($text))
6588             if defined $::RD_TRACE;
6589 2         4 push @item, $_tok;
6590 2         6 $item{__ACTION1__}=$_tok;
6591            
6592              
6593              
6594 2 50       5 Parse::RecDescent::_trace(q{>>Matched production: [/[0-9]+|[0-9]*\\.[0-9]+/]<<},
6595             Parse::RecDescent::_tracefirst($text),
6596             q{macro_num},
6597             $tracelevel)
6598             if defined $::RD_TRACE;
6599 2         3 $_matched = 1;
6600 2         4 last;
6601             }
6602              
6603              
6604 167 100 66     746 unless ( $_matched || defined($score) )
6605             {
6606            
6607              
6608 165         612 $_[1] = $text; # NOT SURE THIS IS NEEDED
6609 165 50       378 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
6610             Parse::RecDescent::_tracefirst($_[1]),
6611             q{macro_num},
6612             $tracelevel)
6613             if defined $::RD_TRACE;
6614 165         1299 return undef;
6615             }
6616 2 50 33     8 if (!defined($return) && defined($score))
6617             {
6618 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
6619             q{macro_num},
6620             $tracelevel)
6621             if defined $::RD_TRACE;
6622 0         0 $return = $score_return;
6623             }
6624 2         3 splice @{$thisparser->{errors}}, $err_at;
  2         7  
6625 2 50       5 $return = $item[$#item] unless defined $return;
6626 2 50       7 if (defined $::RD_TRACE)
6627             {
6628 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
6629             $return . q{])}, "",
6630             q{macro_num},
6631             $tracelevel);
6632 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
6633             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
6634             Parse::RecDescent::_tracefirst($text),
6635             , q{macro_num},
6636             $tracelevel)
6637             }
6638 2         4 $_[1] = $text;
6639 2         20 return $return;
6640             }
6641              
6642             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
6643             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::declaration
6644             {
6645 33     33   404 my $thisparser = $_[0];
6646 1     1   5 use vars q{$tracelevel};
  1         3  
  1         322  
6647 33   50     121 local $tracelevel = ($tracelevel||0)+1;
6648 33         53 $ERRORS = 0;
6649 33         103 my $thisrule = $thisparser->{"rules"}{"declaration"};
6650            
6651 33 50       74 Parse::RecDescent::_trace(q{Trying rule: [declaration]},
6652             Parse::RecDescent::_tracefirst($_[1]),
6653             q{declaration},
6654             $tracelevel)
6655             if defined $::RD_TRACE;
6656              
6657            
6658 33         37 my $err_at = @{$thisparser->{errors}};
  33         64  
6659              
6660 33         98 my $score;
6661             my $score_return;
6662 0         0 my $_tok;
6663 33         43 my $return = undef;
6664 33         60 my $_matched=0;
6665 33         38 my $commit=0;
6666 33         59 my @item = ();
6667 33         59 my %item = ();
6668 33   33     134 my $repeating = defined($_[2]) && $_[2];
6669 33   33     123 my $_noactions = defined($_[3]) && $_[3];
6670 33 50       100 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  33         43  
  33         62  
6671 33 50       106 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
6672 33         52 my $text;
6673 33         48 my $lastsep="";
6674 33         56 my $current_match;
6675 33         401 my $expectation = new Parse::RecDescent::Expectation(q{property});
6676 33         271 $expectation->at($_[1]);
6677            
6678 33         137 my $thisline;
6679 33         132 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
6680              
6681 33         209 local $value;
6682              
6683              
6684 33   33     150 while (!$_matched && !$commit)
6685             {
6686            
6687 33 50       84 Parse::RecDescent::_trace(q{Trying production: [property ':' WS value]},
6688             Parse::RecDescent::_tracefirst($_[1]),
6689             q{declaration},
6690             $tracelevel)
6691             if defined $::RD_TRACE;
6692 33         98 my $thisprod = $thisrule->{"prods"}[0];
6693 33         65 $text = $_[1];
6694 33         40 my $_savetext;
6695 33         70 @item = (q{declaration});
6696 33         89 %item = (__RULE__ => q{declaration});
6697 33         55 my $repcount = 0;
6698              
6699              
6700 33 50       74 Parse::RecDescent::_trace(q{Trying subrule: [property]},
6701             Parse::RecDescent::_tracefirst($text),
6702             q{declaration},
6703             $tracelevel)
6704             if defined $::RD_TRACE;
6705 1     1   4 if (1) { no strict qw{refs};
  1         2  
  1         640  
  33         35  
6706 33         107 $expectation->is(q{})->at($text);
6707 33 100   33   379 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::property($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  33         79  
6708             {
6709            
6710 13 50       33 Parse::RecDescent::_trace(q{<<Didn't match subrule: [property]>>},
6711             Parse::RecDescent::_tracefirst($text),
6712             q{declaration},
6713             $tracelevel)
6714             if defined $::RD_TRACE;
6715 13         37 $expectation->failed();
6716 13         115 last;
6717             }
6718 20 50       87 Parse::RecDescent::_trace(q{>>Matched subrule: [property]<< (return value: [}
6719             . $_tok . q{]},
6720            
6721             Parse::RecDescent::_tracefirst($text),
6722             q{declaration},
6723             $tracelevel)
6724             if defined $::RD_TRACE;
6725 20         47 $item{q{property}} = $_tok;
6726 20         38 push @item, $_tok;
6727            
6728             }
6729              
6730 20 50       52 Parse::RecDescent::_trace(q{Trying terminal: [':']},
6731             Parse::RecDescent::_tracefirst($text),
6732             q{declaration},
6733             $tracelevel)
6734             if defined $::RD_TRACE;
6735 20         33 $lastsep = "";
6736 20         70 $expectation->is(q{':'})->at($text);
6737            
6738              
6739 20 50 33     266 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\:/)
  20 50       222  
6740             {
6741            
6742 0         0 $expectation->failed();
6743 0 0       0 Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
6744             Parse::RecDescent::_tracefirst($text))
6745             if defined $::RD_TRACE;
6746 0         0 last;
6747             }
6748 20         120 $current_match = substr($text, $-[0], $+[0] - $-[0]);
6749 20         79 substr($text,0,length($current_match),q{});
6750 20 50       89 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6751             . $current_match . q{])},
6752             Parse::RecDescent::_tracefirst($text))
6753             if defined $::RD_TRACE;
6754 20         67 push @item, $item{__STRING1__}=$current_match;
6755            
6756              
6757 20 50       44 Parse::RecDescent::_trace(q{Trying repeated subrule: [WS]},
6758             Parse::RecDescent::_tracefirst($text),
6759             q{declaration},
6760             $tracelevel)
6761             if defined $::RD_TRACE;
6762 20         61 $expectation->is(q{WS})->at($text);
6763            
6764 20 50   40   244 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::CSS::Parse::CompiledGrammar::WS, 0, 100000000, $_noactions,$expectation,sub { \@arg })))
  40         92  
6765             {
6766 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [WS]>>},
6767             Parse::RecDescent::_tracefirst($text),
6768             q{declaration},
6769             $tracelevel)
6770             if defined $::RD_TRACE;
6771 0         0 last;
6772             }
6773 20 50       336 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [WS]<< (}
6774             . @$_tok . q{ times)},
6775            
6776             Parse::RecDescent::_tracefirst($text),
6777             q{declaration},
6778             $tracelevel)
6779             if defined $::RD_TRACE;
6780 20         41 $item{q{WS(s?)}} = $_tok;
6781 20         30 push @item, $_tok;
6782            
6783              
6784              
6785 20 50       50 Parse::RecDescent::_trace(q{Trying subrule: [value]},
6786             Parse::RecDescent::_tracefirst($text),
6787             q{declaration},
6788             $tracelevel)
6789             if defined $::RD_TRACE;
6790 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         1242  
  20         33  
6791 20         72 $expectation->is(q{value})->at($text);
6792 20 50   20   240 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::value($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  20         48  
6793             {
6794            
6795 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match subrule: [value]>>},
6796             Parse::RecDescent::_tracefirst($text),
6797             q{declaration},
6798             $tracelevel)
6799             if defined $::RD_TRACE;
6800 0         0 $expectation->failed();
6801 0         0 last;
6802             }
6803 20 50       118 Parse::RecDescent::_trace(q{>>Matched subrule: [value]<< (return value: [}
6804             . $_tok . q{]},
6805            
6806             Parse::RecDescent::_tracefirst($text),
6807             q{declaration},
6808             $tracelevel)
6809             if defined $::RD_TRACE;
6810 20         73 $item{q{value}} = $_tok;
6811 20         45 push @item, $_tok;
6812            
6813             }
6814              
6815 20 50       70 Parse::RecDescent::_trace(q{Trying action},
6816             Parse::RecDescent::_tracefirst($text),
6817             q{declaration},
6818             $tracelevel)
6819             if defined $::RD_TRACE;
6820            
6821              
6822 20 50       40 $_tok = ($_noactions) ? 0 : do {
6823 20         231 $ruleset->add_property(new CSS::Property({
6824             'property' => $item[1],
6825             'value' => $item[4],
6826             }));
6827 20         40 1;
6828             };
6829 20 50       49 unless (defined $_tok)
6830             {
6831 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
6832             if defined $::RD_TRACE;
6833 0         0 last;
6834             }
6835 20 50       41 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
6836             . $_tok . q{])},
6837             Parse::RecDescent::_tracefirst($text))
6838             if defined $::RD_TRACE;
6839 20         40 push @item, $_tok;
6840 20         44 $item{__ACTION1__}=$_tok;
6841            
6842              
6843              
6844 20 50       49 Parse::RecDescent::_trace(q{>>Matched production: [property ':' WS value]<<},
6845             Parse::RecDescent::_tracefirst($text),
6846             q{declaration},
6847             $tracelevel)
6848             if defined $::RD_TRACE;
6849 20         41 $_matched = 1;
6850 20         66 last;
6851             }
6852              
6853              
6854 33   66     139 while (!$_matched && !$commit)
6855             {
6856            
6857 13 50       50 Parse::RecDescent::_trace(q{Trying production: [<rulevar: local $value>]},
6858             Parse::RecDescent::_tracefirst($_[1]),
6859             q{declaration},
6860             $tracelevel)
6861             if defined $::RD_TRACE;
6862 13         33 my $thisprod = $thisrule->{"prods"}[1];
6863 13         20 $text = $_[1];
6864 13         18 my $_savetext;
6865 13         28 @item = (q{declaration});
6866 13         30 %item = (__RULE__ => q{declaration});
6867 13         21 my $repcount = 0;
6868              
6869              
6870 13 50       32 Parse::RecDescent::_trace(q{>>Rejecting production<< (found <rulevar: local $value>)},
6871             Parse::RecDescent::_tracefirst($text),
6872             q{declaration},
6873             $tracelevel)
6874             if defined $::RD_TRACE;
6875 13         19 undef $return;
6876            
6877              
6878 13         15 $_tok = undef;
6879            
6880 13 50       33 last unless defined $_tok;
6881              
6882 0 0       0 Parse::RecDescent::_trace(q{Trying action},
6883             Parse::RecDescent::_tracefirst($text),
6884             q{declaration},
6885             $tracelevel)
6886             if defined $::RD_TRACE;
6887            
6888              
6889 0 0       0 $_tok = ($_noactions) ? 0 : do { print "token: ".shift @item; print " : @item\n" };
  0         0  
  0         0  
6890 0 0       0 unless (defined $_tok)
6891             {
6892 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
6893             if defined $::RD_TRACE;
6894 0         0 last;
6895             }
6896 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
6897             . $_tok . q{])},
6898             Parse::RecDescent::_tracefirst($text))
6899             if defined $::RD_TRACE;
6900 0         0 push @item, $_tok;
6901            
6902            
6903              
6904              
6905 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [<rulevar: local $value>]<<},
6906             Parse::RecDescent::_tracefirst($text),
6907             q{declaration},
6908             $tracelevel)
6909             if defined $::RD_TRACE;
6910 0         0 $_matched = 1;
6911 0         0 last;
6912             }
6913              
6914              
6915 33 100 66     109 unless ( $_matched || defined($score) )
6916             {
6917            
6918              
6919 13         19 $_[1] = $text; # NOT SURE THIS IS NEEDED
6920 13 50       44 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
6921             Parse::RecDescent::_tracefirst($_[1]),
6922             q{declaration},
6923             $tracelevel)
6924             if defined $::RD_TRACE;
6925 13         90 return undef;
6926             }
6927 20 50 33     94 if (!defined($return) && defined($score))
6928             {
6929 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
6930             q{declaration},
6931             $tracelevel)
6932             if defined $::RD_TRACE;
6933 0         0 $return = $score_return;
6934             }
6935 20         31 splice @{$thisparser->{errors}}, $err_at;
  20         48  
6936 20 50       64 $return = $item[$#item] unless defined $return;
6937 20 50       56 if (defined $::RD_TRACE)
6938             {
6939 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
6940             $return . q{])}, "",
6941             q{declaration},
6942             $tracelevel);
6943 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
6944             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
6945             Parse::RecDescent::_tracefirst($text),
6946             , q{declaration},
6947             $tracelevel)
6948             }
6949 20         45 $_[1] = $text;
6950 20         323 return $return;
6951             }
6952              
6953             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
6954             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_escape
6955             {
6956 195     195   331 my $thisparser = $_[0];
6957 1     1   9 use vars q{$tracelevel};
  1         3  
  1         464  
6958 195   50     554 local $tracelevel = ($tracelevel||0)+1;
6959 195         310 $ERRORS = 0;
6960 195         436 my $thisrule = $thisparser->{"rules"}{"macro_escape"};
6961            
6962 195 50       415 Parse::RecDescent::_trace(q{Trying rule: [macro_escape]},
6963             Parse::RecDescent::_tracefirst($_[1]),
6964             q{macro_escape},
6965             $tracelevel)
6966             if defined $::RD_TRACE;
6967              
6968            
6969 195         202 my $err_at = @{$thisparser->{errors}};
  195         333  
6970              
6971 195         243 my $score;
6972             my $score_return;
6973 0         0 my $_tok;
6974 195         206 my $return = undef;
6975 195         207 my $_matched=0;
6976 195         223 my $commit=0;
6977 195         291 my @item = ();
6978 195         316 my %item = ();
6979 195   33     545 my $repeating = defined($_[2]) && $_[2];
6980 195   33     505 my $_noactions = defined($_[3]) && $_[3];
6981 195 50       354 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  195         221  
  195         412  
6982 195 50       511 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
6983 195         206 my $text;
6984 195         258 my $lastsep="";
6985 195         205 my $current_match;
6986 195         619 my $expectation = new Parse::RecDescent::Expectation(q{macro_unicode, or /\\\\[ -~\\200-\\4177777]/});
6987 195         1455 $expectation->at($_[1]);
6988            
6989 195         753 my $thisline;
6990 195         752 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
6991              
6992            
6993              
6994 195   33     2166 while (!$_matched && !$commit)
6995             {
6996            
6997 195 50       404 Parse::RecDescent::_trace(q{Trying production: [macro_unicode]},
6998             Parse::RecDescent::_tracefirst($_[1]),
6999             q{macro_escape},
7000             $tracelevel)
7001             if defined $::RD_TRACE;
7002 195         497 my $thisprod = $thisrule->{"prods"}[0];
7003 195         260 $text = $_[1];
7004 195         200 my $_savetext;
7005 195         350 @item = (q{macro_escape});
7006 195         421 %item = (__RULE__ => q{macro_escape});
7007 195         245 my $repcount = 0;
7008              
7009              
7010 195 50       375 Parse::RecDescent::_trace(q{Trying subrule: [macro_unicode]},
7011             Parse::RecDescent::_tracefirst($text),
7012             q{macro_escape},
7013             $tracelevel)
7014             if defined $::RD_TRACE;
7015 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         1341  
  195         258  
7016 195         600 $expectation->is(q{})->at($text);
7017 195 50   195   2063 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_unicode($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  195         464  
7018             {
7019            
7020 195 50       479 Parse::RecDescent::_trace(q{<<Didn't match subrule: [macro_unicode]>>},
7021             Parse::RecDescent::_tracefirst($text),
7022             q{macro_escape},
7023             $tracelevel)
7024             if defined $::RD_TRACE;
7025 195         552 $expectation->failed();
7026 195         713 last;
7027             }
7028 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [macro_unicode]<< (return value: [}
7029             . $_tok . q{]},
7030            
7031             Parse::RecDescent::_tracefirst($text),
7032             q{macro_escape},
7033             $tracelevel)
7034             if defined $::RD_TRACE;
7035 0         0 $item{q{macro_unicode}} = $_tok;
7036 0         0 push @item, $_tok;
7037            
7038             }
7039              
7040 0 0       0 Parse::RecDescent::_trace(q{Trying action},
7041             Parse::RecDescent::_tracefirst($text),
7042             q{macro_escape},
7043             $tracelevel)
7044             if defined $::RD_TRACE;
7045            
7046              
7047 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  0         0  
7048 0 0       0 unless (defined $_tok)
7049             {
7050 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
7051             if defined $::RD_TRACE;
7052 0         0 last;
7053             }
7054 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
7055             . $_tok . q{])},
7056             Parse::RecDescent::_tracefirst($text))
7057             if defined $::RD_TRACE;
7058 0         0 push @item, $_tok;
7059 0         0 $item{__ACTION1__}=$_tok;
7060            
7061              
7062              
7063 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [macro_unicode]<<},
7064             Parse::RecDescent::_tracefirst($text),
7065             q{macro_escape},
7066             $tracelevel)
7067             if defined $::RD_TRACE;
7068 0         0 $_matched = 1;
7069 0         0 last;
7070             }
7071              
7072              
7073 195   33     984 while (!$_matched && !$commit)
7074             {
7075            
7076 195 50       381 Parse::RecDescent::_trace(q{Trying production: [/\\\\[ -~\\200-\\4177777]/]},
7077             Parse::RecDescent::_tracefirst($_[1]),
7078             q{macro_escape},
7079             $tracelevel)
7080             if defined $::RD_TRACE;
7081 195         416 my $thisprod = $thisrule->{"prods"}[1];
7082 195         308 $text = $_[1];
7083 195         200 my $_savetext;
7084 195         378 @item = (q{macro_escape});
7085 195         472 %item = (__RULE__ => q{macro_escape});
7086 195         214 my $repcount = 0;
7087              
7088              
7089 195 50       412 Parse::RecDescent::_trace(q{Trying terminal: [/\\\\[ -~\\200-\\4177777]/]}, Parse::RecDescent::_tracefirst($text),
7090             q{macro_escape},
7091             $tracelevel)
7092             if defined $::RD_TRACE;
7093 195         269 $lastsep = "";
7094 195         476 $expectation->is(q{})->at($text);
7095            
7096              
7097 195 50 33     1905 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:\\[ -~\200-\4177777])/)
  195 50       1643  
7098             {
7099            
7100 195         514 $expectation->failed();
7101 195 50       811 Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7102             Parse::RecDescent::_tracefirst($text))
7103             if defined $::RD_TRACE;
7104              
7105 195         361 last;
7106             }
7107 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
7108 0         0 substr($text,0,length($current_match),q{});
7109 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7110             . $current_match . q{])},
7111             Parse::RecDescent::_tracefirst($text))
7112             if defined $::RD_TRACE;
7113 0         0 push @item, $item{__PATTERN1__}=$current_match;
7114            
7115              
7116 0 0       0 Parse::RecDescent::_trace(q{Trying action},
7117             Parse::RecDescent::_tracefirst($text),
7118             q{macro_escape},
7119             $tracelevel)
7120             if defined $::RD_TRACE;
7121            
7122              
7123 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  0         0  
7124 0 0       0 unless (defined $_tok)
7125             {
7126 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
7127             if defined $::RD_TRACE;
7128 0         0 last;
7129             }
7130 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
7131             . $_tok . q{])},
7132             Parse::RecDescent::_tracefirst($text))
7133             if defined $::RD_TRACE;
7134 0         0 push @item, $_tok;
7135 0         0 $item{__ACTION1__}=$_tok;
7136            
7137              
7138              
7139 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/\\\\[ -~\\200-\\4177777]/]<<},
7140             Parse::RecDescent::_tracefirst($text),
7141             q{macro_escape},
7142             $tracelevel)
7143             if defined $::RD_TRACE;
7144 0         0 $_matched = 1;
7145 0         0 last;
7146             }
7147              
7148              
7149 195 50 33     878 unless ( $_matched || defined($score) )
7150             {
7151            
7152              
7153 195         293 $_[1] = $text; # NOT SURE THIS IS NEEDED
7154 195 50       397 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
7155             Parse::RecDescent::_tracefirst($_[1]),
7156             q{macro_escape},
7157             $tracelevel)
7158             if defined $::RD_TRACE;
7159 195         1480 return undef;
7160             }
7161 0 0 0     0 if (!defined($return) && defined($score))
7162             {
7163 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
7164             q{macro_escape},
7165             $tracelevel)
7166             if defined $::RD_TRACE;
7167 0         0 $return = $score_return;
7168             }
7169 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
7170 0 0       0 $return = $item[$#item] unless defined $return;
7171 0 0       0 if (defined $::RD_TRACE)
7172             {
7173 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
7174             $return . q{])}, "",
7175             q{macro_escape},
7176             $tracelevel);
7177 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
7178             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
7179             Parse::RecDescent::_tracefirst($text),
7180             , q{macro_escape},
7181             $tracelevel)
7182             }
7183 0         0 $_[1] = $text;
7184 0         0 return $return;
7185             }
7186              
7187             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
7188             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::FUNCTION
7189             {
7190 53     53   96 my $thisparser = $_[0];
7191 1     1   9 use vars q{$tracelevel};
  1         3  
  1         444  
7192 53   50     143 local $tracelevel = ($tracelevel||0)+1;
7193 53         104 $ERRORS = 0;
7194 53         772 my $thisrule = $thisparser->{"rules"}{"FUNCTION"};
7195            
7196 53 50       120 Parse::RecDescent::_trace(q{Trying rule: [FUNCTION]},
7197             Parse::RecDescent::_tracefirst($_[1]),
7198             q{FUNCTION},
7199             $tracelevel)
7200             if defined $::RD_TRACE;
7201              
7202            
7203 53         51 my $err_at = @{$thisparser->{errors}};
  53         125  
7204              
7205 53         69 my $score;
7206             my $score_return;
7207 0         0 my $_tok;
7208 53         93 my $return = undef;
7209 53         111 my $_matched=0;
7210 53         84 my $commit=0;
7211 53         118 my @item = ();
7212 53         87 my %item = ();
7213 53   33     185 my $repeating = defined($_[2]) && $_[2];
7214 53   33     173 my $_noactions = defined($_[3]) && $_[3];
7215 53 50       137 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  53         98  
  53         116  
7216 53 50       173 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
7217 53         80 my $text;
7218 53         72 my $lastsep="";
7219 53         60 my $current_match;
7220 53         179 my $expectation = new Parse::RecDescent::Expectation(q{macro_ident});
7221 53         414 $expectation->at($_[1]);
7222            
7223 53         230 my $thisline;
7224 53         242 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
7225              
7226            
7227              
7228 53   33     539 while (!$_matched && !$commit)
7229             {
7230            
7231 53 50       162 Parse::RecDescent::_trace(q{Trying production: [macro_ident '(']},
7232             Parse::RecDescent::_tracefirst($_[1]),
7233             q{FUNCTION},
7234             $tracelevel)
7235             if defined $::RD_TRACE;
7236 53         201 my $thisprod = $thisrule->{"prods"}[0];
7237 53         92 $text = $_[1];
7238 53         83 my $_savetext;
7239 53         129 @item = (q{FUNCTION});
7240 53         149 %item = (__RULE__ => q{FUNCTION});
7241 53         68 my $repcount = 0;
7242              
7243              
7244 53 50       148 Parse::RecDescent::_trace(q{Trying subrule: [macro_ident]},
7245             Parse::RecDescent::_tracefirst($text),
7246             q{FUNCTION},
7247             $tracelevel)
7248             if defined $::RD_TRACE;
7249 1     1   6 if (1) { no strict qw{refs};
  1         2  
  1         922  
  53         51  
7250 53         145 $expectation->is(q{})->at($text);
7251 53 50   53   538 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_ident($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  53         106  
7252             {
7253            
7254 53 50       127 Parse::RecDescent::_trace(q{<<Didn't match subrule: [macro_ident]>>},
7255             Parse::RecDescent::_tracefirst($text),
7256             q{FUNCTION},
7257             $tracelevel)
7258             if defined $::RD_TRACE;
7259 53         143 $expectation->failed();
7260 53         189 last;
7261             }
7262 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [macro_ident]<< (return value: [}
7263             . $_tok . q{]},
7264            
7265             Parse::RecDescent::_tracefirst($text),
7266             q{FUNCTION},
7267             $tracelevel)
7268             if defined $::RD_TRACE;
7269 0         0 $item{q{macro_ident}} = $_tok;
7270 0         0 push @item, $_tok;
7271            
7272             }
7273              
7274 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
7275             Parse::RecDescent::_tracefirst($text),
7276             q{FUNCTION},
7277             $tracelevel)
7278             if defined $::RD_TRACE;
7279 0         0 $lastsep = "";
7280 0         0 $expectation->is(q{'('})->at($text);
7281            
7282              
7283 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\(/)
  0 0       0  
7284             {
7285            
7286 0         0 $expectation->failed();
7287 0 0       0 Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
7288             Parse::RecDescent::_tracefirst($text))
7289             if defined $::RD_TRACE;
7290 0         0 last;
7291             }
7292 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
7293 0         0 substr($text,0,length($current_match),q{});
7294 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7295             . $current_match . q{])},
7296             Parse::RecDescent::_tracefirst($text))
7297             if defined $::RD_TRACE;
7298 0         0 push @item, $item{__STRING1__}=$current_match;
7299            
7300              
7301 0 0       0 Parse::RecDescent::_trace(q{Trying action},
7302             Parse::RecDescent::_tracefirst($text),
7303             q{FUNCTION},
7304             $tracelevel)
7305             if defined $::RD_TRACE;
7306            
7307              
7308 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1].'('};
  0         0  
7309 0 0       0 unless (defined $_tok)
7310             {
7311 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
7312             if defined $::RD_TRACE;
7313 0         0 last;
7314             }
7315 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
7316             . $_tok . q{])},
7317             Parse::RecDescent::_tracefirst($text))
7318             if defined $::RD_TRACE;
7319 0         0 push @item, $_tok;
7320 0         0 $item{__ACTION1__}=$_tok;
7321            
7322              
7323              
7324 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [macro_ident '(']<<},
7325             Parse::RecDescent::_tracefirst($text),
7326             q{FUNCTION},
7327             $tracelevel)
7328             if defined $::RD_TRACE;
7329 0         0 $_matched = 1;
7330 0         0 last;
7331             }
7332              
7333              
7334 53 50 33     346 unless ( $_matched || defined($score) )
7335             {
7336            
7337              
7338 53         96 $_[1] = $text; # NOT SURE THIS IS NEEDED
7339 53 50       110 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
7340             Parse::RecDescent::_tracefirst($_[1]),
7341             q{FUNCTION},
7342             $tracelevel)
7343             if defined $::RD_TRACE;
7344 53         342 return undef;
7345             }
7346 0 0 0     0 if (!defined($return) && defined($score))
7347             {
7348 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
7349             q{FUNCTION},
7350             $tracelevel)
7351             if defined $::RD_TRACE;
7352 0         0 $return = $score_return;
7353             }
7354 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
7355 0 0       0 $return = $item[$#item] unless defined $return;
7356 0 0       0 if (defined $::RD_TRACE)
7357             {
7358 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
7359             $return . q{])}, "",
7360             q{FUNCTION},
7361             $tracelevel);
7362 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
7363             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
7364             Parse::RecDescent::_tracefirst($text),
7365             , q{FUNCTION},
7366             $tracelevel)
7367             }
7368 0         0 $_[1] = $text;
7369 0         0 return $return;
7370             }
7371              
7372             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
7373             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::stylesheet
7374             {
7375 3     3   244 my $thisparser = $_[0];
7376 1     1   8 use vars q{$tracelevel};
  1         2  
  1         1413  
7377 3   50     29 local $tracelevel = ($tracelevel||0)+1;
7378 3         6 $ERRORS = 0;
7379 3         11 my $thisrule = $thisparser->{"rules"}{"stylesheet"};
7380            
7381 3 50       16 Parse::RecDescent::_trace(q{Trying rule: [stylesheet]},
7382             Parse::RecDescent::_tracefirst($_[1]),
7383             q{stylesheet},
7384             $tracelevel)
7385             if defined $::RD_TRACE;
7386              
7387            
7388 3         6 my $err_at = @{$thisparser->{errors}};
  3         9  
7389              
7390 3         6 my $score;
7391             my $score_return;
7392 0         0 my $_tok;
7393 3         6 my $return = undef;
7394 3         7 my $_matched=0;
7395 3         6 my $commit=0;
7396 3         7 my @item = ();
7397 3         10 my %item = ();
7398 3   33     12 my $repeating = defined($_[2]) && $_[2];
7399 3   33     15 my $_noactions = defined($_[3]) && $_[3];
7400 3 50       14 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  3         9  
  3         11  
7401 3 50       24 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
7402 3         7 my $text;
7403 3         8 my $lastsep="";
7404 3         7 my $current_match;
7405 3         28 my $expectation = new Parse::RecDescent::Expectation(q{WS, or statement});
7406 3         41 $expectation->at($_[1]);
7407            
7408 3         21 my $thisline;
7409 3         26 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
7410              
7411 3         30 local $all_rulesets;
7412              
7413              
7414 3   33     27 while (!$_matched && !$commit)
7415             {
7416            
7417 3 50       10 Parse::RecDescent::_trace(q{Trying production: [WS, or statement]},
7418             Parse::RecDescent::_tracefirst($_[1]),
7419             q{stylesheet},
7420             $tracelevel)
7421             if defined $::RD_TRACE;
7422 3         15 my $thisprod = $thisrule->{"prods"}[0];
7423 3         7 $text = $_[1];
7424 3         5 my $_savetext;
7425 3         13 @item = (q{stylesheet});
7426 3         11 %item = (__RULE__ => q{stylesheet});
7427 3         6 my $repcount = 0;
7428              
7429              
7430 3 50       13 Parse::RecDescent::_trace(q{Trying repeated subrule: [WS, or statement]},
7431             Parse::RecDescent::_tracefirst($text),
7432             q{stylesheet},
7433             $tracelevel)
7434             if defined $::RD_TRACE;
7435 3         14 $expectation->is(q{})->at($text);
7436            
7437 3 50   17   47 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::CSS::Parse::CompiledGrammar::_alternation_1_of_production_1_of_rule_stylesheet, 1, 100000000, $_noactions,$expectation,sub { \@arg })))
  17         58  
7438             {
7439 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [WS, or statement]>>},
7440             Parse::RecDescent::_tracefirst($text),
7441             q{stylesheet},
7442             $tracelevel)
7443             if defined $::RD_TRACE;
7444 0         0 last;
7445             }
7446 3 50       190 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_stylesheet]<< (}
7447             . @$_tok . q{ times)},
7448            
7449             Parse::RecDescent::_tracefirst($text),
7450             q{stylesheet},
7451             $tracelevel)
7452             if defined $::RD_TRACE;
7453 3         9 $item{q{_alternation_1_of_production_1_of_rule_stylesheet(s)}} = $_tok;
7454 3         7 push @item, $_tok;
7455            
7456              
7457              
7458 3 50       9 Parse::RecDescent::_trace(q{Trying action},
7459             Parse::RecDescent::_tracefirst($text),
7460             q{stylesheet},
7461             $tracelevel)
7462             if defined $::RD_TRACE;
7463            
7464              
7465 3 50       9 $_tok = ($_noactions) ? 0 : do {$return = $all_rulesets;};
  3         8  
7466 3 50       11 unless (defined $_tok)
7467             {
7468 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
7469             if defined $::RD_TRACE;
7470 0         0 last;
7471             }
7472 3 50       8 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
7473             . $_tok . q{])},
7474             Parse::RecDescent::_tracefirst($text))
7475             if defined $::RD_TRACE;
7476 3         5 push @item, $_tok;
7477 3         10 $item{__ACTION1__}=$_tok;
7478            
7479              
7480              
7481 3 50       7 Parse::RecDescent::_trace(q{>>Matched production: [WS, or statement]<<},
7482             Parse::RecDescent::_tracefirst($text),
7483             q{stylesheet},
7484             $tracelevel)
7485             if defined $::RD_TRACE;
7486 3         7 $_matched = 1;
7487 3         6 last;
7488             }
7489              
7490              
7491 3   33     9 while (!$_matched && !$commit)
7492             {
7493            
7494 0 0       0 Parse::RecDescent::_trace(q{Trying production: [<rulevar: local $all_rulesets>]},
7495             Parse::RecDescent::_tracefirst($_[1]),
7496             q{stylesheet},
7497             $tracelevel)
7498             if defined $::RD_TRACE;
7499 0         0 my $thisprod = $thisrule->{"prods"}[1];
7500 0         0 $text = $_[1];
7501 0         0 my $_savetext;
7502 0         0 @item = (q{stylesheet});
7503 0         0 %item = (__RULE__ => q{stylesheet});
7504 0         0 my $repcount = 0;
7505              
7506              
7507 0 0       0 Parse::RecDescent::_trace(q{>>Rejecting production<< (found <rulevar: local $all_rulesets>)},
7508             Parse::RecDescent::_tracefirst($text),
7509             q{stylesheet},
7510             $tracelevel)
7511             if defined $::RD_TRACE;
7512 0         0 undef $return;
7513            
7514              
7515 0         0 $_tok = undef;
7516            
7517 0 0       0 last unless defined $_tok;
7518              
7519 0 0       0 Parse::RecDescent::_trace(q{Trying action},
7520             Parse::RecDescent::_tracefirst($text),
7521             q{stylesheet},
7522             $tracelevel)
7523             if defined $::RD_TRACE;
7524            
7525              
7526 0 0       0 $_tok = ($_noactions) ? 0 : do { print "token: ".shift @item; print " : @item\n" };
  0         0  
  0         0  
7527 0 0       0 unless (defined $_tok)
7528             {
7529 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
7530             if defined $::RD_TRACE;
7531 0         0 last;
7532             }
7533 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
7534             . $_tok . q{])},
7535             Parse::RecDescent::_tracefirst($text))
7536             if defined $::RD_TRACE;
7537 0         0 push @item, $_tok;
7538            
7539            
7540              
7541              
7542 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [<rulevar: local $all_rulesets>]<<},
7543             Parse::RecDescent::_tracefirst($text),
7544             q{stylesheet},
7545             $tracelevel)
7546             if defined $::RD_TRACE;
7547 0         0 $_matched = 1;
7548 0         0 last;
7549             }
7550              
7551              
7552 3 50 33     9 unless ( $_matched || defined($score) )
7553             {
7554            
7555              
7556 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
7557 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
7558             Parse::RecDescent::_tracefirst($_[1]),
7559             q{stylesheet},
7560             $tracelevel)
7561             if defined $::RD_TRACE;
7562 0         0 return undef;
7563             }
7564 3 50 33     12 if (!defined($return) && defined($score))
7565             {
7566 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
7567             q{stylesheet},
7568             $tracelevel)
7569             if defined $::RD_TRACE;
7570 0         0 $return = $score_return;
7571             }
7572 3         4 splice @{$thisparser->{errors}}, $err_at;
  3         38  
7573 3 50       11 $return = $item[$#item] unless defined $return;
7574 3 50       9 if (defined $::RD_TRACE)
7575             {
7576 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
7577             $return . q{])}, "",
7578             q{stylesheet},
7579             $tracelevel);
7580 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
7581             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
7582             Parse::RecDescent::_tracefirst($text),
7583             , q{stylesheet},
7584             $tracelevel)
7585             }
7586 3         8 $_[1] = $text;
7587 3         39 return $return;
7588             }
7589              
7590             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
7591             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::NUMBER
7592             {
7593 57     57   111 my $thisparser = $_[0];
7594 1     1   8 use vars q{$tracelevel};
  1         2  
  1         403  
7595 57   50     2127 local $tracelevel = ($tracelevel||0)+1;
7596 57         158 $ERRORS = 0;
7597 57         159 my $thisrule = $thisparser->{"rules"}{"NUMBER"};
7598            
7599 57 50       321 Parse::RecDescent::_trace(q{Trying rule: [NUMBER]},
7600             Parse::RecDescent::_tracefirst($_[1]),
7601             q{NUMBER},
7602             $tracelevel)
7603             if defined $::RD_TRACE;
7604              
7605            
7606 57         97 my $err_at = @{$thisparser->{errors}};
  57         131  
7607              
7608 57         249 my $score;
7609             my $score_return;
7610 0         0 my $_tok;
7611 57         107 my $return = undef;
7612 57         58 my $_matched=0;
7613 57         70 my $commit=0;
7614 57         133 my @item = ();
7615 57         97 my %item = ();
7616 57   33     244 my $repeating = defined($_[2]) && $_[2];
7617 57   33     193 my $_noactions = defined($_[3]) && $_[3];
7618 57 50       143 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  57         67  
  57         104  
7619 57 50       168 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
7620 57         70 my $text;
7621 57         89 my $lastsep="";
7622 57         230 my $current_match;
7623 57         191 my $expectation = new Parse::RecDescent::Expectation(q{macro_num});
7624 57         676 $expectation->at($_[1]);
7625            
7626 57         416 my $thisline;
7627 57         419 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
7628              
7629            
7630              
7631 57   33     743 while (!$_matched && !$commit)
7632             {
7633            
7634 57 50       151 Parse::RecDescent::_trace(q{Trying production: [macro_num]},
7635             Parse::RecDescent::_tracefirst($_[1]),
7636             q{NUMBER},
7637             $tracelevel)
7638             if defined $::RD_TRACE;
7639 57         394 my $thisprod = $thisrule->{"prods"}[0];
7640 57         78 $text = $_[1];
7641 57         76 my $_savetext;
7642 57         154 @item = (q{NUMBER});
7643 57         331 %item = (__RULE__ => q{NUMBER});
7644 57         90 my $repcount = 0;
7645              
7646              
7647 57 50       131 Parse::RecDescent::_trace(q{Trying subrule: [macro_num]},
7648             Parse::RecDescent::_tracefirst($text),
7649             q{NUMBER},
7650             $tracelevel)
7651             if defined $::RD_TRACE;
7652 1     1   6 if (1) { no strict qw{refs};
  1         2  
  1         676  
  57         226  
7653 57         180 $expectation->is(q{})->at($text);
7654 57 100   57   6107 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_num($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  57         117  
7655             {
7656            
7657 55 50       129 Parse::RecDescent::_trace(q{<<Didn't match subrule: [macro_num]>>},
7658             Parse::RecDescent::_tracefirst($text),
7659             q{NUMBER},
7660             $tracelevel)
7661             if defined $::RD_TRACE;
7662 55         170 $expectation->failed();
7663 55         219 last;
7664             }
7665 2 50       9 Parse::RecDescent::_trace(q{>>Matched subrule: [macro_num]<< (return value: [}
7666             . $_tok . q{]},
7667            
7668             Parse::RecDescent::_tracefirst($text),
7669             q{NUMBER},
7670             $tracelevel)
7671             if defined $::RD_TRACE;
7672 2         5 $item{q{macro_num}} = $_tok;
7673 2         4 push @item, $_tok;
7674            
7675             }
7676              
7677 2 50       6 Parse::RecDescent::_trace(q{Trying action},
7678             Parse::RecDescent::_tracefirst($text),
7679             q{NUMBER},
7680             $tracelevel)
7681             if defined $::RD_TRACE;
7682            
7683              
7684 2 50       15 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  2         6  
7685 2 50       7 unless (defined $_tok)
7686             {
7687 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
7688             if defined $::RD_TRACE;
7689 0         0 last;
7690             }
7691 2 50       6 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
7692             . $_tok . q{])},
7693             Parse::RecDescent::_tracefirst($text))
7694             if defined $::RD_TRACE;
7695 2         4 push @item, $_tok;
7696 2         5 $item{__ACTION1__}=$_tok;
7697            
7698              
7699              
7700 2 50       7 Parse::RecDescent::_trace(q{>>Matched production: [macro_num]<<},
7701             Parse::RecDescent::_tracefirst($text),
7702             q{NUMBER},
7703             $tracelevel)
7704             if defined $::RD_TRACE;
7705 2         3 $_matched = 1;
7706 2         4 last;
7707             }
7708              
7709              
7710 57 100 66     415 unless ( $_matched || defined($score) )
7711             {
7712            
7713              
7714 55         89 $_[1] = $text; # NOT SURE THIS IS NEEDED
7715 55 50       127 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
7716             Parse::RecDescent::_tracefirst($_[1]),
7717             q{NUMBER},
7718             $tracelevel)
7719             if defined $::RD_TRACE;
7720 55         364 return undef;
7721             }
7722 2 50 33     8 if (!defined($return) && defined($score))
7723             {
7724 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
7725             q{NUMBER},
7726             $tracelevel)
7727             if defined $::RD_TRACE;
7728 0         0 $return = $score_return;
7729             }
7730 2         3 splice @{$thisparser->{errors}}, $err_at;
  2         6  
7731 2 50       7 $return = $item[$#item] unless defined $return;
7732 2 50       6 if (defined $::RD_TRACE)
7733             {
7734 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
7735             $return . q{])}, "",
7736             q{NUMBER},
7737             $tracelevel);
7738 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
7739             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
7740             Parse::RecDescent::_tracefirst($text),
7741             , q{NUMBER},
7742             $tracelevel)
7743             }
7744 2         11 $_[1] = $text;
7745 2         18 return $return;
7746             }
7747              
7748             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
7749             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_name
7750             {
7751 1     1   3 my $thisparser = $_[0];
7752 1     1   6 use vars q{$tracelevel};
  1         3  
  1         1113  
7753 1   50     5 local $tracelevel = ($tracelevel||0)+1;
7754 1         2 $ERRORS = 0;
7755 1         5 my $thisrule = $thisparser->{"rules"}{"macro_name"};
7756            
7757 1 50       5 Parse::RecDescent::_trace(q{Trying rule: [macro_name]},
7758             Parse::RecDescent::_tracefirst($_[1]),
7759             q{macro_name},
7760             $tracelevel)
7761             if defined $::RD_TRACE;
7762              
7763            
7764 1         2 my $err_at = @{$thisparser->{errors}};
  1         3  
7765              
7766 1         3 my $score;
7767             my $score_return;
7768 0         0 my $_tok;
7769 1         2 my $return = undef;
7770 1         3 my $_matched=0;
7771 1         2 my $commit=0;
7772 1         3 my @item = ();
7773 1         3 my %item = ();
7774 1   33     5 my $repeating = defined($_[2]) && $_[2];
7775 1   33     5 my $_noactions = defined($_[3]) && $_[3];
7776 1 50       5 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  1         1  
  1         3  
7777 1 50       4 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
7778 1         2 my $text;
7779 1         3 my $lastsep="";
7780 1         1 my $current_match;
7781 1         6 my $expectation = new Parse::RecDescent::Expectation(q{macro_nmchar});
7782 1         10 $expectation->at($_[1]);
7783            
7784 1         5 my $thisline;
7785 1         4 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
7786              
7787            
7788              
7789 1   33     16 while (!$_matched && !$commit)
7790             {
7791            
7792 1 50       27 Parse::RecDescent::_trace(q{Trying production: [macro_nmchar]},
7793             Parse::RecDescent::_tracefirst($_[1]),
7794             q{macro_name},
7795             $tracelevel)
7796             if defined $::RD_TRACE;
7797 1         12 my $thisprod = $thisrule->{"prods"}[0];
7798 1         3 $text = $_[1];
7799 1         1 my $_savetext;
7800 1         3 @item = (q{macro_name});
7801 1         3 %item = (__RULE__ => q{macro_name});
7802 1         2 my $repcount = 0;
7803              
7804              
7805 1 50       3 Parse::RecDescent::_trace(q{Trying repeated subrule: [macro_nmchar]},
7806             Parse::RecDescent::_tracefirst($text),
7807             q{macro_name},
7808             $tracelevel)
7809             if defined $::RD_TRACE;
7810 1         3 $expectation->is(q{})->at($text);
7811            
7812 1 50   7   14 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_nmchar, 1, 100000000, $_noactions,$expectation,sub { \@arg })))
  7         14  
7813             {
7814 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [macro_nmchar]>>},
7815             Parse::RecDescent::_tracefirst($text),
7816             q{macro_name},
7817             $tracelevel)
7818             if defined $::RD_TRACE;
7819 0         0 last;
7820             }
7821 1 50       20 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [macro_nmchar]<< (}
7822             . @$_tok . q{ times)},
7823            
7824             Parse::RecDescent::_tracefirst($text),
7825             q{macro_name},
7826             $tracelevel)
7827             if defined $::RD_TRACE;
7828 1         4 $item{q{macro_nmchar(s)}} = $_tok;
7829 1         2 push @item, $_tok;
7830            
7831              
7832              
7833 1 50       3 Parse::RecDescent::_trace(q{Trying action},
7834             Parse::RecDescent::_tracefirst($text),
7835             q{macro_name},
7836             $tracelevel)
7837             if defined $::RD_TRACE;
7838            
7839              
7840 1 50       6 $_tok = ($_noactions) ? 0 : do {$return = join('',@{$item[1]})};
  1         2  
  1         4  
7841 1 50       5 unless (defined $_tok)
7842             {
7843 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
7844             if defined $::RD_TRACE;
7845 0         0 last;
7846             }
7847 1 50       3 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
7848             . $_tok . q{])},
7849             Parse::RecDescent::_tracefirst($text))
7850             if defined $::RD_TRACE;
7851 1         3 push @item, $_tok;
7852 1         3 $item{__ACTION1__}=$_tok;
7853            
7854              
7855              
7856 1 50       4 Parse::RecDescent::_trace(q{>>Matched production: [macro_nmchar]<<},
7857             Parse::RecDescent::_tracefirst($text),
7858             q{macro_name},
7859             $tracelevel)
7860             if defined $::RD_TRACE;
7861 1         2 $_matched = 1;
7862 1         3 last;
7863             }
7864              
7865              
7866 1 50 33     5 unless ( $_matched || defined($score) )
7867             {
7868            
7869              
7870 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
7871 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
7872             Parse::RecDescent::_tracefirst($_[1]),
7873             q{macro_name},
7874             $tracelevel)
7875             if defined $::RD_TRACE;
7876 0         0 return undef;
7877             }
7878 1 50 33     58 if (!defined($return) && defined($score))
7879             {
7880 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
7881             q{macro_name},
7882             $tracelevel)
7883             if defined $::RD_TRACE;
7884 0         0 $return = $score_return;
7885             }
7886 1         1 splice @{$thisparser->{errors}}, $err_at;
  1         3  
7887 1 50       5 $return = $item[$#item] unless defined $return;
7888 1 50       4 if (defined $::RD_TRACE)
7889             {
7890 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
7891             $return . q{])}, "",
7892             q{macro_name},
7893             $tracelevel);
7894 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
7895             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
7896             Parse::RecDescent::_tracefirst($text),
7897             , q{macro_name},
7898             $tracelevel)
7899             }
7900 1         3 $_[1] = $text;
7901 1         14 return $return;
7902             }
7903              
7904             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
7905             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::_alternation_1_of_production_1_of_rule_stylesheet
7906             {
7907 17     17   269 my $thisparser = $_[0];
7908 1     1   8 use vars q{$tracelevel};
  1         2  
  1         462  
7909 17   50     77 local $tracelevel = ($tracelevel||0)+1;
7910 17         30 $ERRORS = 0;
7911 17         56 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_stylesheet"};
7912            
7913 17 50       59 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_stylesheet]},
7914             Parse::RecDescent::_tracefirst($_[1]),
7915             q{_alternation_1_of_production_1_of_rule_stylesheet},
7916             $tracelevel)
7917             if defined $::RD_TRACE;
7918              
7919            
7920 17         28 my $err_at = @{$thisparser->{errors}};
  17         42  
7921              
7922 17         29 my $score;
7923             my $score_return;
7924 0         0 my $_tok;
7925 17         38 my $return = undef;
7926 17         34 my $_matched=0;
7927 17         33 my $commit=0;
7928 17         29 my @item = ();
7929 17         35 my %item = ();
7930 17   33     104 my $repeating = defined($_[2]) && $_[2];
7931 17   33     93 my $_noactions = defined($_[3]) && $_[3];
7932 17 50       64 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  17         33  
  17         50  
7933 17 50       68 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
7934 17         24 my $text;
7935 17         35 my $lastsep="";
7936 17         29 my $current_match;
7937 17         72 my $expectation = new Parse::RecDescent::Expectation(q{WS, or statement});
7938 17         152 $expectation->at($_[1]);
7939            
7940 17         71 my $thisline;
7941 17         81 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
7942              
7943            
7944              
7945 17   33     198 while (!$_matched && !$commit)
7946             {
7947            
7948 17 50       54 Parse::RecDescent::_trace(q{Trying production: [WS]},
7949             Parse::RecDescent::_tracefirst($_[1]),
7950             q{_alternation_1_of_production_1_of_rule_stylesheet},
7951             $tracelevel)
7952             if defined $::RD_TRACE;
7953 17         55 my $thisprod = $thisrule->{"prods"}[0];
7954 17         26 $text = $_[1];
7955 17         35 my $_savetext;
7956 17         41 @item = (q{_alternation_1_of_production_1_of_rule_stylesheet});
7957 17         45 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_stylesheet});
7958 17         31 my $repcount = 0;
7959              
7960              
7961 17 50       45 Parse::RecDescent::_trace(q{Trying subrule: [WS]},
7962             Parse::RecDescent::_tracefirst($text),
7963             q{_alternation_1_of_production_1_of_rule_stylesheet},
7964             $tracelevel)
7965             if defined $::RD_TRACE;
7966 1     1   8 if (1) { no strict qw{refs};
  1         3  
  1         530  
  17         29  
7967 17         56 $expectation->is(q{})->at($text);
7968 17 50   17   187 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::WS($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  17         38  
7969             {
7970            
7971 17 50       55 Parse::RecDescent::_trace(q{<<Didn't match subrule: [WS]>>},
7972             Parse::RecDescent::_tracefirst($text),
7973             q{_alternation_1_of_production_1_of_rule_stylesheet},
7974             $tracelevel)
7975             if defined $::RD_TRACE;
7976 17         58 $expectation->failed();
7977 17         65 last;
7978             }
7979 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [WS]<< (return value: [}
7980             . $_tok . q{]},
7981            
7982             Parse::RecDescent::_tracefirst($text),
7983             q{_alternation_1_of_production_1_of_rule_stylesheet},
7984             $tracelevel)
7985             if defined $::RD_TRACE;
7986 0         0 $item{q{WS}} = $_tok;
7987 0         0 push @item, $_tok;
7988            
7989             }
7990              
7991 0 0       0 Parse::RecDescent::_trace(q{Trying action},
7992             Parse::RecDescent::_tracefirst($text),
7993             q{_alternation_1_of_production_1_of_rule_stylesheet},
7994             $tracelevel)
7995             if defined $::RD_TRACE;
7996            
7997              
7998 0 0       0 $_tok = ($_noactions) ? 0 : do {2;};
  0         0  
7999 0 0       0 unless (defined $_tok)
8000             {
8001 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
8002             if defined $::RD_TRACE;
8003 0         0 last;
8004             }
8005 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
8006             . $_tok . q{])},
8007             Parse::RecDescent::_tracefirst($text))
8008             if defined $::RD_TRACE;
8009 0         0 push @item, $_tok;
8010 0         0 $item{__ACTION1__}=$_tok;
8011            
8012              
8013              
8014 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [WS]<<},
8015             Parse::RecDescent::_tracefirst($text),
8016             q{_alternation_1_of_production_1_of_rule_stylesheet},
8017             $tracelevel)
8018             if defined $::RD_TRACE;
8019 0         0 $_matched = 1;
8020 0         0 last;
8021             }
8022              
8023              
8024 17   33     111 while (!$_matched && !$commit)
8025             {
8026            
8027 17 50       48 Parse::RecDescent::_trace(q{Trying production: [statement]},
8028             Parse::RecDescent::_tracefirst($_[1]),
8029             q{_alternation_1_of_production_1_of_rule_stylesheet},
8030             $tracelevel)
8031             if defined $::RD_TRACE;
8032 17         43 my $thisprod = $thisrule->{"prods"}[1];
8033 17         38 $text = $_[1];
8034 17         29 my $_savetext;
8035 17         42 @item = (q{_alternation_1_of_production_1_of_rule_stylesheet});
8036 17         35 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_stylesheet});
8037 17         23 my $repcount = 0;
8038              
8039              
8040 17 50       34 Parse::RecDescent::_trace(q{Trying subrule: [statement]},
8041             Parse::RecDescent::_tracefirst($text),
8042             q{_alternation_1_of_production_1_of_rule_stylesheet},
8043             $tracelevel)
8044             if defined $::RD_TRACE;
8045 1     1   6 if (1) { no strict qw{refs};
  1         3  
  1         757  
  17         17  
8046 17         57 $expectation->is(q{})->at($text);
8047 17 100   17   187 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::statement($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  17         45  
8048             {
8049            
8050 3 50       11 Parse::RecDescent::_trace(q{<<Didn't match subrule: [statement]>>},
8051             Parse::RecDescent::_tracefirst($text),
8052             q{_alternation_1_of_production_1_of_rule_stylesheet},
8053             $tracelevel)
8054             if defined $::RD_TRACE;
8055 3         10 $expectation->failed();
8056 3         16 last;
8057             }
8058 14 50       86 Parse::RecDescent::_trace(q{>>Matched subrule: [statement]<< (return value: [}
8059             . $_tok . q{]},
8060            
8061             Parse::RecDescent::_tracefirst($text),
8062             q{_alternation_1_of_production_1_of_rule_stylesheet},
8063             $tracelevel)
8064             if defined $::RD_TRACE;
8065 14         39 $item{q{statement}} = $_tok;
8066 14         31 push @item, $_tok;
8067            
8068             }
8069              
8070 14 50       38 Parse::RecDescent::_trace(q{Trying action},
8071             Parse::RecDescent::_tracefirst($text),
8072             q{_alternation_1_of_production_1_of_rule_stylesheet},
8073             $tracelevel)
8074             if defined $::RD_TRACE;
8075            
8076              
8077 14 50       33 $_tok = ($_noactions) ? 0 : do {3;};
  14         24  
8078 14 50       33 unless (defined $_tok)
8079             {
8080 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
8081             if defined $::RD_TRACE;
8082 0         0 last;
8083             }
8084 14 50       51 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
8085             . $_tok . q{])},
8086             Parse::RecDescent::_tracefirst($text))
8087             if defined $::RD_TRACE;
8088 14         17 push @item, $_tok;
8089 14         29 $item{__ACTION1__}=$_tok;
8090            
8091              
8092              
8093 14 50       36 Parse::RecDescent::_trace(q{>>Matched production: [statement]<<},
8094             Parse::RecDescent::_tracefirst($text),
8095             q{_alternation_1_of_production_1_of_rule_stylesheet},
8096             $tracelevel)
8097             if defined $::RD_TRACE;
8098 14         24 $_matched = 1;
8099 14         39 last;
8100             }
8101              
8102              
8103 17 100 66     67 unless ( $_matched || defined($score) )
8104             {
8105            
8106              
8107 3         8 $_[1] = $text; # NOT SURE THIS IS NEEDED
8108 3 50       18 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
8109             Parse::RecDescent::_tracefirst($_[1]),
8110             q{_alternation_1_of_production_1_of_rule_stylesheet},
8111             $tracelevel)
8112             if defined $::RD_TRACE;
8113 3         31 return undef;
8114             }
8115 14 50 33     86 if (!defined($return) && defined($score))
8116             {
8117 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
8118             q{_alternation_1_of_production_1_of_rule_stylesheet},
8119             $tracelevel)
8120             if defined $::RD_TRACE;
8121 0         0 $return = $score_return;
8122             }
8123 14         20 splice @{$thisparser->{errors}}, $err_at;
  14         41  
8124 14 50       35 $return = $item[$#item] unless defined $return;
8125 14 50       38 if (defined $::RD_TRACE)
8126             {
8127 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
8128             $return . q{])}, "",
8129             q{_alternation_1_of_production_1_of_rule_stylesheet},
8130             $tracelevel);
8131 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
8132             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
8133             Parse::RecDescent::_tracefirst($text),
8134             , q{_alternation_1_of_production_1_of_rule_stylesheet},
8135             $tracelevel)
8136             }
8137 14         39 $_[1] = $text;
8138 14         158 return $return;
8139             }
8140              
8141             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
8142             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::ATKEYWORD
8143             {
8144 23     23   67 my $thisparser = $_[0];
8145 1     1   7 use vars q{$tracelevel};
  1         3  
  1         687  
8146 23   50     76 local $tracelevel = ($tracelevel||0)+1;
8147 23         35 $ERRORS = 0;
8148 23         64 my $thisrule = $thisparser->{"rules"}{"ATKEYWORD"};
8149            
8150 23 50       49 Parse::RecDescent::_trace(q{Trying rule: [ATKEYWORD]},
8151             Parse::RecDescent::_tracefirst($_[1]),
8152             q{ATKEYWORD},
8153             $tracelevel)
8154             if defined $::RD_TRACE;
8155              
8156            
8157 23         33 my $err_at = @{$thisparser->{errors}};
  23         52  
8158              
8159 23         48 my $score;
8160             my $score_return;
8161 0         0 my $_tok;
8162 23         35 my $return = undef;
8163 23         34 my $_matched=0;
8164 23         25 my $commit=0;
8165 23         41 my @item = ();
8166 23         46 my %item = ();
8167 23   33     81 my $repeating = defined($_[2]) && $_[2];
8168 23   33     77 my $_noactions = defined($_[3]) && $_[3];
8169 23 50       55 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  23         22  
  23         55  
8170 23 50       81 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
8171 23         25 my $text;
8172 23         37 my $lastsep="";
8173 23         24 my $current_match;
8174 23         99 my $expectation = new Parse::RecDescent::Expectation(q{'@'});
8175 23         192 $expectation->at($_[1]);
8176            
8177 23         88 my $thisline;
8178 23         88 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
8179              
8180            
8181              
8182 23   33     218 while (!$_matched && !$commit)
8183             {
8184            
8185 23 50       57 Parse::RecDescent::_trace(q{Trying production: ['@' macro_ident]},
8186             Parse::RecDescent::_tracefirst($_[1]),
8187             q{ATKEYWORD},
8188             $tracelevel)
8189             if defined $::RD_TRACE;
8190 23         82 my $thisprod = $thisrule->{"prods"}[0];
8191 23         34 $text = $_[1];
8192 23         26 my $_savetext;
8193 23         51 @item = (q{ATKEYWORD});
8194 23         60 %item = (__RULE__ => q{ATKEYWORD});
8195 23         33 my $repcount = 0;
8196              
8197              
8198 23 50       58 Parse::RecDescent::_trace(q{Trying terminal: ['@']},
8199             Parse::RecDescent::_tracefirst($text),
8200             q{ATKEYWORD},
8201             $tracelevel)
8202             if defined $::RD_TRACE;
8203 23         38 $lastsep = "";
8204 23         68 $expectation->is(q{})->at($text);
8205            
8206              
8207 23 50 33     278 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\@/)
  23 50       208  
8208             {
8209            
8210 23         72 $expectation->failed();
8211 23 50       122 Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
8212             Parse::RecDescent::_tracefirst($text))
8213             if defined $::RD_TRACE;
8214 23         49 last;
8215             }
8216 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
8217 0         0 substr($text,0,length($current_match),q{});
8218 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8219             . $current_match . q{])},
8220             Parse::RecDescent::_tracefirst($text))
8221             if defined $::RD_TRACE;
8222 0         0 push @item, $item{__STRING1__}=$current_match;
8223            
8224              
8225 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [macro_ident]},
8226             Parse::RecDescent::_tracefirst($text),
8227             q{ATKEYWORD},
8228             $tracelevel)
8229             if defined $::RD_TRACE;
8230 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         664  
  0         0  
8231 0         0 $expectation->is(q{macro_ident})->at($text);
8232 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_ident($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
8233             {
8234            
8235 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match subrule: [macro_ident]>>},
8236             Parse::RecDescent::_tracefirst($text),
8237             q{ATKEYWORD},
8238             $tracelevel)
8239             if defined $::RD_TRACE;
8240 0         0 $expectation->failed();
8241 0         0 last;
8242             }
8243 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [macro_ident]<< (return value: [}
8244             . $_tok . q{]},
8245            
8246             Parse::RecDescent::_tracefirst($text),
8247             q{ATKEYWORD},
8248             $tracelevel)
8249             if defined $::RD_TRACE;
8250 0         0 $item{q{macro_ident}} = $_tok;
8251 0         0 push @item, $_tok;
8252            
8253             }
8254              
8255 0 0       0 Parse::RecDescent::_trace(q{Trying action},
8256             Parse::RecDescent::_tracefirst($text),
8257             q{ATKEYWORD},
8258             $tracelevel)
8259             if defined $::RD_TRACE;
8260            
8261              
8262 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = '@'.$item[2]};
  0         0  
8263 0 0       0 unless (defined $_tok)
8264             {
8265 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
8266             if defined $::RD_TRACE;
8267 0         0 last;
8268             }
8269 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
8270             . $_tok . q{])},
8271             Parse::RecDescent::_tracefirst($text))
8272             if defined $::RD_TRACE;
8273 0         0 push @item, $_tok;
8274 0         0 $item{__ACTION1__}=$_tok;
8275            
8276              
8277              
8278 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['@' macro_ident]<<},
8279             Parse::RecDescent::_tracefirst($text),
8280             q{ATKEYWORD},
8281             $tracelevel)
8282             if defined $::RD_TRACE;
8283 0         0 $_matched = 1;
8284 0         0 last;
8285             }
8286              
8287              
8288 23 50 33     112 unless ( $_matched || defined($score) )
8289             {
8290            
8291              
8292 23         47 $_[1] = $text; # NOT SURE THIS IS NEEDED
8293 23 50       57 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
8294             Parse::RecDescent::_tracefirst($_[1]),
8295             q{ATKEYWORD},
8296             $tracelevel)
8297             if defined $::RD_TRACE;
8298 23         165 return undef;
8299             }
8300 0 0 0     0 if (!defined($return) && defined($score))
8301             {
8302 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
8303             q{ATKEYWORD},
8304             $tracelevel)
8305             if defined $::RD_TRACE;
8306 0         0 $return = $score_return;
8307             }
8308 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
8309 0 0       0 $return = $item[$#item] unless defined $return;
8310 0 0       0 if (defined $::RD_TRACE)
8311             {
8312 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
8313             $return . q{])}, "",
8314             q{ATKEYWORD},
8315             $tracelevel);
8316 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
8317             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
8318             Parse::RecDescent::_tracefirst($text),
8319             , q{ATKEYWORD},
8320             $tracelevel)
8321             }
8322 0         0 $_[1] = $text;
8323 0         0 return $return;
8324             }
8325              
8326             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
8327             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::URI
8328             {
8329 107     107   172 my $thisparser = $_[0];
8330 1     1   7 use vars q{$tracelevel};
  1         2  
  1         727  
8331 107   50     438 local $tracelevel = ($tracelevel||0)+1;
8332 107         143 $ERRORS = 0;
8333 107         1531 my $thisrule = $thisparser->{"rules"}{"URI"};
8334            
8335 107 50       253 Parse::RecDescent::_trace(q{Trying rule: [URI]},
8336             Parse::RecDescent::_tracefirst($_[1]),
8337             q{URI},
8338             $tracelevel)
8339             if defined $::RD_TRACE;
8340              
8341            
8342 107         141 my $err_at = @{$thisparser->{errors}};
  107         376  
8343              
8344 107         276 my $score;
8345             my $score_return;
8346 0         0 my $_tok;
8347 107         136 my $return = undef;
8348 107         117 my $_matched=0;
8349 107         123 my $commit=0;
8350 107         158 my @item = ();
8351 107         164 my %item = ();
8352 107   33     351 my $repeating = defined($_[2]) && $_[2];
8353 107   33     354 my $_noactions = defined($_[3]) && $_[3];
8354 107 50       200 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  107         138  
  107         249  
8355 107 50       320 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
8356 107         147 my $text;
8357 107         144 my $lastsep="";
8358 107         125 my $current_match;
8359 107         347 my $expectation = new Parse::RecDescent::Expectation(q{'url('});
8360 107         881 $expectation->at($_[1]);
8361            
8362 107         419 my $thisline;
8363 107         456 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
8364              
8365            
8366              
8367 107   33     1026 while (!$_matched && !$commit)
8368             {
8369            
8370 107 50       243 Parse::RecDescent::_trace(q{Trying production: ['url(' macro_w macro_string macro_w ')']},
8371             Parse::RecDescent::_tracefirst($_[1]),
8372             q{URI},
8373             $tracelevel)
8374             if defined $::RD_TRACE;
8375 107         283 my $thisprod = $thisrule->{"prods"}[0];
8376 107         144 $text = $_[1];
8377 107         132 my $_savetext;
8378 107         191 @item = (q{URI});
8379 107         255 %item = (__RULE__ => q{URI});
8380 107         859 my $repcount = 0;
8381              
8382              
8383 107 50       274 Parse::RecDescent::_trace(q{Trying terminal: ['url(']},
8384             Parse::RecDescent::_tracefirst($text),
8385             q{URI},
8386             $tracelevel)
8387             if defined $::RD_TRACE;
8388 107         174 $lastsep = "";
8389 107         293 $expectation->is(q{})->at($text);
8390            
8391              
8392 107 50 66     1141 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\Aurl\(/)
  107 100       1060  
8393             {
8394            
8395 105         277 $expectation->failed();
8396 105 50       452 Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
8397             Parse::RecDescent::_tracefirst($text))
8398             if defined $::RD_TRACE;
8399 105         249 last;
8400             }
8401 2         16 $current_match = substr($text, $-[0], $+[0] - $-[0]);
8402 2         9 substr($text,0,length($current_match),q{});
8403 2 50       6 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8404             . $current_match . q{])},
8405             Parse::RecDescent::_tracefirst($text))
8406             if defined $::RD_TRACE;
8407 2         7 push @item, $item{__STRING1__}=$current_match;
8408            
8409              
8410 2 50       8 Parse::RecDescent::_trace(q{Trying subrule: [macro_w]},
8411             Parse::RecDescent::_tracefirst($text),
8412             q{URI},
8413             $tracelevel)
8414             if defined $::RD_TRACE;
8415 1     1   6 if (1) { no strict qw{refs};
  1         2  
  1         267  
  2         3  
8416 2         10 $expectation->is(q{macro_w})->at($text);
8417 2 50   2   30 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_w($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  2         6  
8418             {
8419            
8420 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match subrule: [macro_w]>>},
8421             Parse::RecDescent::_tracefirst($text),
8422             q{URI},
8423             $tracelevel)
8424             if defined $::RD_TRACE;
8425 0         0 $expectation->failed();
8426 0         0 last;
8427             }
8428 2 50       9 Parse::RecDescent::_trace(q{>>Matched subrule: [macro_w]<< (return value: [}
8429             . $_tok . q{]},
8430            
8431             Parse::RecDescent::_tracefirst($text),
8432             q{URI},
8433             $tracelevel)
8434             if defined $::RD_TRACE;
8435 2         5 $item{q{macro_w}} = $_tok;
8436 2         5 push @item, $_tok;
8437            
8438             }
8439              
8440 2 50       7 Parse::RecDescent::_trace(q{Trying subrule: [macro_string]},
8441             Parse::RecDescent::_tracefirst($text),
8442             q{URI},
8443             $tracelevel)
8444             if defined $::RD_TRACE;
8445 1     1   5 if (1) { no strict qw{refs};
  1         3  
  1         203  
  2         2  
8446 2         9 $expectation->is(q{macro_string})->at($text);
8447 2 100   2   27 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_string($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  2         5  
8448             {
8449            
8450 1 50       5 Parse::RecDescent::_trace(q{<<Didn't match subrule: [macro_string]>>},
8451             Parse::RecDescent::_tracefirst($text),
8452             q{URI},
8453             $tracelevel)
8454             if defined $::RD_TRACE;
8455 1         6 $expectation->failed();
8456 1         14 last;
8457             }
8458 1 50       9 Parse::RecDescent::_trace(q{>>Matched subrule: [macro_string]<< (return value: [}
8459             . $_tok . q{]},
8460            
8461             Parse::RecDescent::_tracefirst($text),
8462             q{URI},
8463             $tracelevel)
8464             if defined $::RD_TRACE;
8465 1         4 $item{q{macro_string}} = $_tok;
8466 1         2 push @item, $_tok;
8467            
8468             }
8469              
8470 1 50       5 Parse::RecDescent::_trace(q{Trying subrule: [macro_w]},
8471             Parse::RecDescent::_tracefirst($text),
8472             q{URI},
8473             $tracelevel)
8474             if defined $::RD_TRACE;
8475 1     1   5 if (1) { no strict qw{refs};
  1         4  
  1         967  
  1         2  
8476 1         7 $expectation->is(q{macro_w})->at($text);
8477 1 50   1   19 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_w($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  1         4  
8478             {
8479            
8480 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match subrule: [macro_w]>>},
8481             Parse::RecDescent::_tracefirst($text),
8482             q{URI},
8483             $tracelevel)
8484             if defined $::RD_TRACE;
8485 0         0 $expectation->failed();
8486 0         0 last;
8487             }
8488 1 50       7 Parse::RecDescent::_trace(q{>>Matched subrule: [macro_w]<< (return value: [}
8489             . $_tok . q{]},
8490            
8491             Parse::RecDescent::_tracefirst($text),
8492             q{URI},
8493             $tracelevel)
8494             if defined $::RD_TRACE;
8495 1         4 $item{q{macro_w}} = $_tok;
8496 1         3 push @item, $_tok;
8497            
8498             }
8499              
8500 1 50       4 Parse::RecDescent::_trace(q{Trying terminal: [')']},
8501             Parse::RecDescent::_tracefirst($text),
8502             q{URI},
8503             $tracelevel)
8504             if defined $::RD_TRACE;
8505 1         2 $lastsep = "";
8506 1         5 $expectation->is(q{')'})->at($text);
8507            
8508              
8509 1 50 33     33 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\)/)
  1 50       15  
8510             {
8511            
8512 0         0 $expectation->failed();
8513 0 0       0 Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
8514             Parse::RecDescent::_tracefirst($text))
8515             if defined $::RD_TRACE;
8516 0         0 last;
8517             }
8518 1         7 $current_match = substr($text, $-[0], $+[0] - $-[0]);
8519 1         4 substr($text,0,length($current_match),q{});
8520 1 50       6 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8521             . $current_match . q{])},
8522             Parse::RecDescent::_tracefirst($text))
8523             if defined $::RD_TRACE;
8524 1         4 push @item, $item{__STRING2__}=$current_match;
8525            
8526              
8527 1 50       3 Parse::RecDescent::_trace(q{Trying action},
8528             Parse::RecDescent::_tracefirst($text),
8529             q{URI},
8530             $tracelevel)
8531             if defined $::RD_TRACE;
8532            
8533              
8534 1 50       6 $_tok = ($_noactions) ? 0 : do {$return = "url(".$item[3].")"};
  1         5  
8535 1 50       5 unless (defined $_tok)
8536             {
8537 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
8538             if defined $::RD_TRACE;
8539 0         0 last;
8540             }
8541 1 50       5 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
8542             . $_tok . q{])},
8543             Parse::RecDescent::_tracefirst($text))
8544             if defined $::RD_TRACE;
8545 1         2 push @item, $_tok;
8546 1         3 $item{__ACTION1__}=$_tok;
8547            
8548              
8549              
8550 1 50       4 Parse::RecDescent::_trace(q{>>Matched production: ['url(' macro_w macro_string macro_w ')']<<},
8551             Parse::RecDescent::_tracefirst($text),
8552             q{URI},
8553             $tracelevel)
8554             if defined $::RD_TRACE;
8555 1         2 $_matched = 1;
8556 1         3 last;
8557             }
8558              
8559              
8560 107   66     470 while (!$_matched && !$commit)
8561             {
8562            
8563 106 50       207 Parse::RecDescent::_trace(q{Trying production: ['url(' macro_w /[!#$%&*-~]/, or macro_nonascii, or macro_escape macro_w ')']},
8564             Parse::RecDescent::_tracefirst($_[1]),
8565             q{URI},
8566             $tracelevel)
8567             if defined $::RD_TRACE;
8568 106         224 my $thisprod = $thisrule->{"prods"}[1];
8569 106         167 $text = $_[1];
8570 106         117 my $_savetext;
8571 106         195 @item = (q{URI});
8572 106         253 %item = (__RULE__ => q{URI});
8573 106         1131 my $repcount = 0;
8574              
8575              
8576 106 50       226 Parse::RecDescent::_trace(q{Trying terminal: ['url(']},
8577             Parse::RecDescent::_tracefirst($text),
8578             q{URI},
8579             $tracelevel)
8580             if defined $::RD_TRACE;
8581 106         162 $lastsep = "";
8582 106         385 $expectation->is(q{})->at($text);
8583            
8584              
8585 106 50 66     1048 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\Aurl\(/)
  106 100       930  
8586             {
8587            
8588 105         284 $expectation->failed();
8589 105 50       484 Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
8590             Parse::RecDescent::_tracefirst($text))
8591             if defined $::RD_TRACE;
8592 105         245 last;
8593             }
8594 1         6 $current_match = substr($text, $-[0], $+[0] - $-[0]);
8595 1         4 substr($text,0,length($current_match),q{});
8596 1 50       3 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8597             . $current_match . q{])},
8598             Parse::RecDescent::_tracefirst($text))
8599             if defined $::RD_TRACE;
8600 1         3 push @item, $item{__STRING1__}=$current_match;
8601            
8602              
8603 1 50       4 Parse::RecDescent::_trace(q{Trying subrule: [macro_w]},
8604             Parse::RecDescent::_tracefirst($text),
8605             q{URI},
8606             $tracelevel)
8607             if defined $::RD_TRACE;
8608 1     1   6 if (1) { no strict qw{refs};
  1         3  
  1         419  
  1         3  
8609 1         4 $expectation->is(q{macro_w})->at($text);
8610 1 50   1   12 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_w($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  1         3  
8611             {
8612            
8613 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match subrule: [macro_w]>>},
8614             Parse::RecDescent::_tracefirst($text),
8615             q{URI},
8616             $tracelevel)
8617             if defined $::RD_TRACE;
8618 0         0 $expectation->failed();
8619 0         0 last;
8620             }
8621 1 50       5 Parse::RecDescent::_trace(q{>>Matched subrule: [macro_w]<< (return value: [}
8622             . $_tok . q{]},
8623            
8624             Parse::RecDescent::_tracefirst($text),
8625             q{URI},
8626             $tracelevel)
8627             if defined $::RD_TRACE;
8628 1         4 $item{q{macro_w}} = $_tok;
8629 1         2 push @item, $_tok;
8630            
8631             }
8632              
8633 1 50       4 Parse::RecDescent::_trace(q{Trying repeated subrule: [/[!#$%&*-~]/, or macro_nonascii, or macro_escape]},
8634             Parse::RecDescent::_tracefirst($text),
8635             q{URI},
8636             $tracelevel)
8637             if defined $::RD_TRACE;
8638 1         4 $expectation->is(q{/[!#$%&*-~]/, or macro_nonascii, or macro_escape})->at($text);
8639            
8640 1 50   9   18 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::CSS::Parse::CompiledGrammar::_alternation_1_of_production_2_of_rule_URI, 0, 100000000, $_noactions,$expectation,sub { \@arg })))
  9         16  
8641             {
8642 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [/[!#$%&*-~]/, or macro_nonascii, or macro_escape]>>},
8643             Parse::RecDescent::_tracefirst($text),
8644             q{URI},
8645             $tracelevel)
8646             if defined $::RD_TRACE;
8647 0         0 last;
8648             }
8649 1 50       20 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_2_of_rule_URI]<< (}
8650             . @$_tok . q{ times)},
8651            
8652             Parse::RecDescent::_tracefirst($text),
8653             q{URI},
8654             $tracelevel)
8655             if defined $::RD_TRACE;
8656 1         4 $item{q{_alternation_1_of_production_2_of_rule_URI(s?)}} = $_tok;
8657 1         4 push @item, $_tok;
8658            
8659              
8660              
8661 1 50       4 Parse::RecDescent::_trace(q{Trying subrule: [macro_w]},
8662             Parse::RecDescent::_tracefirst($text),
8663             q{URI},
8664             $tracelevel)
8665             if defined $::RD_TRACE;
8666 1     1   13 if (1) { no strict qw{refs};
  1         2  
  1         1018  
  1         2  
8667 1         5 $expectation->is(q{macro_w})->at($text);
8668 1 50   1   13 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_w($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  1         2  
8669             {
8670            
8671 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match subrule: [macro_w]>>},
8672             Parse::RecDescent::_tracefirst($text),
8673             q{URI},
8674             $tracelevel)
8675             if defined $::RD_TRACE;
8676 0         0 $expectation->failed();
8677 0         0 last;
8678             }
8679 1 50       6 Parse::RecDescent::_trace(q{>>Matched subrule: [macro_w]<< (return value: [}
8680             . $_tok . q{]},
8681            
8682             Parse::RecDescent::_tracefirst($text),
8683             q{URI},
8684             $tracelevel)
8685             if defined $::RD_TRACE;
8686 1         2 $item{q{macro_w}} = $_tok;
8687 1         3 push @item, $_tok;
8688            
8689             }
8690              
8691 1 50       4 Parse::RecDescent::_trace(q{Trying terminal: [')']},
8692             Parse::RecDescent::_tracefirst($text),
8693             q{URI},
8694             $tracelevel)
8695             if defined $::RD_TRACE;
8696 1         3 $lastsep = "";
8697 1         15 $expectation->is(q{')'})->at($text);
8698            
8699              
8700 1 50 33     21 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\)/)
  1 50       15  
8701             {
8702            
8703 0         0 $expectation->failed();
8704 0 0       0 Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
8705             Parse::RecDescent::_tracefirst($text))
8706             if defined $::RD_TRACE;
8707 0         0 last;
8708             }
8709 1         7 $current_match = substr($text, $-[0], $+[0] - $-[0]);
8710 1         5 substr($text,0,length($current_match),q{});
8711 1 50       4 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8712             . $current_match . q{])},
8713             Parse::RecDescent::_tracefirst($text))
8714             if defined $::RD_TRACE;
8715 1         5 push @item, $item{__STRING2__}=$current_match;
8716            
8717              
8718 1 50       5 Parse::RecDescent::_trace(q{Trying action},
8719             Parse::RecDescent::_tracefirst($text),
8720             q{URI},
8721             $tracelevel)
8722             if defined $::RD_TRACE;
8723            
8724              
8725 1 50       11 $_tok = ($_noactions) ? 0 : do {$return = "url(".join('',@{$item[3]}).")"};
  1         2  
  1         7  
8726 1 50       5 unless (defined $_tok)
8727             {
8728 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
8729             if defined $::RD_TRACE;
8730 0         0 last;
8731             }
8732 1 50       4 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
8733             . $_tok . q{])},
8734             Parse::RecDescent::_tracefirst($text))
8735             if defined $::RD_TRACE;
8736 1         2 push @item, $_tok;
8737 1         3 $item{__ACTION1__}=$_tok;
8738            
8739              
8740              
8741 1 50       4 Parse::RecDescent::_trace(q{>>Matched production: ['url(' macro_w /[!#$%&*-~]/, or macro_nonascii, or macro_escape macro_w ')']<<},
8742             Parse::RecDescent::_tracefirst($text),
8743             q{URI},
8744             $tracelevel)
8745             if defined $::RD_TRACE;
8746 1         2 $_matched = 1;
8747 1         3 last;
8748             }
8749              
8750              
8751 107 100 66     537 unless ( $_matched || defined($score) )
8752             {
8753            
8754              
8755 105         218 $_[1] = $text; # NOT SURE THIS IS NEEDED
8756 105 50       214 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
8757             Parse::RecDescent::_tracefirst($_[1]),
8758             q{URI},
8759             $tracelevel)
8760             if defined $::RD_TRACE;
8761 105         763 return undef;
8762             }
8763 2 50 33     9 if (!defined($return) && defined($score))
8764             {
8765 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
8766             q{URI},
8767             $tracelevel)
8768             if defined $::RD_TRACE;
8769 0         0 $return = $score_return;
8770             }
8771 2         3 splice @{$thisparser->{errors}}, $err_at;
  2         5  
8772 2 50       7 $return = $item[$#item] unless defined $return;
8773 2 50       7 if (defined $::RD_TRACE)
8774             {
8775 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
8776             $return . q{])}, "",
8777             q{URI},
8778             $tracelevel);
8779 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
8780             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
8781             Parse::RecDescent::_tracefirst($text),
8782             , q{URI},
8783             $tracelevel)
8784             }
8785 2         5 $_[1] = $text;
8786 2         28 return $return;
8787             }
8788              
8789             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
8790             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::any_item
8791             {
8792 107     107   176 my $thisparser = $_[0];
8793 1     1   6 use vars q{$tracelevel};
  1         3  
  1         425  
8794 107   50     318 local $tracelevel = ($tracelevel||0)+1;
8795 107         151 $ERRORS = 0;
8796 107         237 my $thisrule = $thisparser->{"rules"}{"any_item"};
8797            
8798 107 50       205 Parse::RecDescent::_trace(q{Trying rule: [any_item]},
8799             Parse::RecDescent::_tracefirst($_[1]),
8800             q{any_item},
8801             $tracelevel)
8802             if defined $::RD_TRACE;
8803              
8804            
8805 107         162 my $err_at = @{$thisparser->{errors}};
  107         202  
8806              
8807 107         117 my $score;
8808             my $score_return;
8809 0         0 my $_tok;
8810 107         181 my $return = undef;
8811 107         130 my $_matched=0;
8812 107         147 my $commit=0;
8813 107         176 my @item = ();
8814 107         148 my %item = ();
8815 107   33     315 my $repeating = defined($_[2]) && $_[2];
8816 107   33     336 my $_noactions = defined($_[3]) && $_[3];
8817 107 50       247 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  107         114  
  107         189  
8818 107 50       333 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
8819 107         186 my $text;
8820 107         146 my $lastsep="";
8821 107         106 my $current_match;
8822 107         2913 my $expectation = new Parse::RecDescent::Expectation(q{URI, or IDENT, or NUMBER, or PERCENTAGE, or DIMENSION, or STRING, or HASH, or UNICODERANGE, or INCLUDES, or FUNCTION, or DASHMATCH, or '(', or '[', or DELIM});
8823 107         1023 $expectation->at($_[1]);
8824            
8825 107         561 my $thisline;
8826 107         574 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
8827              
8828            
8829              
8830 107   33     1304 while (!$_matched && !$commit)
8831             {
8832            
8833 107 50       260 Parse::RecDescent::_trace(q{Trying production: [URI]},
8834             Parse::RecDescent::_tracefirst($_[1]),
8835             q{any_item},
8836             $tracelevel)
8837             if defined $::RD_TRACE;
8838 107         316 my $thisprod = $thisrule->{"prods"}[0];
8839 107         296 $text = $_[1];
8840 107         109 my $_savetext;
8841 107         207 @item = (q{any_item});
8842 107         410 %item = (__RULE__ => q{any_item});
8843 107         127 my $repcount = 0;
8844              
8845              
8846 107 50       213 Parse::RecDescent::_trace(q{Trying subrule: [URI]},
8847             Parse::RecDescent::_tracefirst($text),
8848             q{any_item},
8849             $tracelevel)
8850             if defined $::RD_TRACE;
8851 1     1   6 if (1) { no strict qw{refs};
  1         2  
  1         535  
  107         129  
8852 107         460 $expectation->is(q{})->at($text);
8853 107 100   107   1529 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::URI($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  107         228  
8854             {
8855            
8856 105 50       269 Parse::RecDescent::_trace(q{<<Didn't match subrule: [URI]>>},
8857             Parse::RecDescent::_tracefirst($text),
8858             q{any_item},
8859             $tracelevel)
8860             if defined $::RD_TRACE;
8861 105         260 $expectation->failed();
8862 105         418 last;
8863             }
8864 2 50       22 Parse::RecDescent::_trace(q{>>Matched subrule: [URI]<< (return value: [}
8865             . $_tok . q{]},
8866            
8867             Parse::RecDescent::_tracefirst($text),
8868             q{any_item},
8869             $tracelevel)
8870             if defined $::RD_TRACE;
8871 2         9 $item{q{URI}} = $_tok;
8872 2         5 push @item, $_tok;
8873            
8874             }
8875              
8876 2 50       7 Parse::RecDescent::_trace(q{Trying action},
8877             Parse::RecDescent::_tracefirst($text),
8878             q{any_item},
8879             $tracelevel)
8880             if defined $::RD_TRACE;
8881            
8882              
8883 2 50       8 $_tok = ($_noactions) ? 0 : do {$return = $item[1];};
  2         6  
8884 2 50       8 unless (defined $_tok)
8885             {
8886 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
8887             if defined $::RD_TRACE;
8888 0         0 last;
8889             }
8890 2 50       6 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
8891             . $_tok . q{])},
8892             Parse::RecDescent::_tracefirst($text))
8893             if defined $::RD_TRACE;
8894 2         5 push @item, $_tok;
8895 2         5 $item{__ACTION1__}=$_tok;
8896            
8897              
8898              
8899 2 50       14 Parse::RecDescent::_trace(q{>>Matched production: [URI]<<},
8900             Parse::RecDescent::_tracefirst($text),
8901             q{any_item},
8902             $tracelevel)
8903             if defined $::RD_TRACE;
8904 2         6 $_matched = 1;
8905 2         3 last;
8906             }
8907              
8908              
8909 107   66     602 while (!$_matched && !$commit)
8910             {
8911            
8912 105 50       216 Parse::RecDescent::_trace(q{Trying production: [IDENT]},
8913             Parse::RecDescent::_tracefirst($_[1]),
8914             q{any_item},
8915             $tracelevel)
8916             if defined $::RD_TRACE;
8917 105         261 my $thisprod = $thisrule->{"prods"}[1];
8918 105         179 $text = $_[1];
8919 105         150 my $_savetext;
8920 105         240 @item = (q{any_item});
8921 105         281 %item = (__RULE__ => q{any_item});
8922 105         131 my $repcount = 0;
8923              
8924              
8925 105 50       296 Parse::RecDescent::_trace(q{Trying subrule: [IDENT]},
8926             Parse::RecDescent::_tracefirst($text),
8927             q{any_item},
8928             $tracelevel)
8929             if defined $::RD_TRACE;
8930 1     1   13 if (1) { no strict qw{refs};
  1         3  
  1         592  
  105         131  
8931 105         285 $expectation->is(q{})->at($text);
8932 105 100   105   1110 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::IDENT($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  105         201  
8933             {
8934            
8935 57 50       147 Parse::RecDescent::_trace(q{<<Didn't match subrule: [IDENT]>>},
8936             Parse::RecDescent::_tracefirst($text),
8937             q{any_item},
8938             $tracelevel)
8939             if defined $::RD_TRACE;
8940 57         148 $expectation->failed();
8941 57         226 last;
8942             }
8943 48 50       192 Parse::RecDescent::_trace(q{>>Matched subrule: [IDENT]<< (return value: [}
8944             . $_tok . q{]},
8945            
8946             Parse::RecDescent::_tracefirst($text),
8947             q{any_item},
8948             $tracelevel)
8949             if defined $::RD_TRACE;
8950 48         165 $item{q{IDENT}} = $_tok;
8951 48         95 push @item, $_tok;
8952            
8953             }
8954              
8955 48 50       96 Parse::RecDescent::_trace(q{Trying action},
8956             Parse::RecDescent::_tracefirst($text),
8957             q{any_item},
8958             $tracelevel)
8959             if defined $::RD_TRACE;
8960            
8961              
8962 48 50       102 $_tok = ($_noactions) ? 0 : do {$return = $item[1];};
  48         107  
8963 48 50       113 unless (defined $_tok)
8964             {
8965 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
8966             if defined $::RD_TRACE;
8967 0         0 last;
8968             }
8969 48 50       101 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
8970             . $_tok . q{])},
8971             Parse::RecDescent::_tracefirst($text))
8972             if defined $::RD_TRACE;
8973 48         72 push @item, $_tok;
8974 48         112 $item{__ACTION1__}=$_tok;
8975            
8976              
8977              
8978 48 50       136 Parse::RecDescent::_trace(q{>>Matched production: [IDENT]<<},
8979             Parse::RecDescent::_tracefirst($text),
8980             q{any_item},
8981             $tracelevel)
8982             if defined $::RD_TRACE;
8983 48         54 $_matched = 1;
8984 48         102 last;
8985             }
8986              
8987              
8988 107   66     496 while (!$_matched && !$commit)
8989             {
8990            
8991 57 50       137 Parse::RecDescent::_trace(q{Trying production: [NUMBER]},
8992             Parse::RecDescent::_tracefirst($_[1]),
8993             q{any_item},
8994             $tracelevel)
8995             if defined $::RD_TRACE;
8996 57         145 my $thisprod = $thisrule->{"prods"}[2];
8997 57         106 $text = $_[1];
8998 57         70 my $_savetext;
8999 57         153 @item = (q{any_item});
9000 57         167 %item = (__RULE__ => q{any_item});
9001 57         86 my $repcount = 0;
9002              
9003              
9004 57 50       156 Parse::RecDescent::_trace(q{Trying subrule: [NUMBER]},
9005             Parse::RecDescent::_tracefirst($text),
9006             q{any_item},
9007             $tracelevel)
9008             if defined $::RD_TRACE;
9009 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         570  
  57         122  
9010 57         206 $expectation->is(q{})->at($text);
9011 57 100   57   737 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::NUMBER($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  57         300  
9012             {
9013            
9014 55 50       155 Parse::RecDescent::_trace(q{<<Didn't match subrule: [NUMBER]>>},
9015             Parse::RecDescent::_tracefirst($text),
9016             q{any_item},
9017             $tracelevel)
9018             if defined $::RD_TRACE;
9019 55         143 $expectation->failed();
9020 55         197 last;
9021             }
9022 2 50       11 Parse::RecDescent::_trace(q{>>Matched subrule: [NUMBER]<< (return value: [}
9023             . $_tok . q{]},
9024            
9025             Parse::RecDescent::_tracefirst($text),
9026             q{any_item},
9027             $tracelevel)
9028             if defined $::RD_TRACE;
9029 2         6 $item{q{NUMBER}} = $_tok;
9030 2         5 push @item, $_tok;
9031            
9032             }
9033              
9034 2 50       5 Parse::RecDescent::_trace(q{Trying action},
9035             Parse::RecDescent::_tracefirst($text),
9036             q{any_item},
9037             $tracelevel)
9038             if defined $::RD_TRACE;
9039            
9040              
9041 2 50       6 $_tok = ($_noactions) ? 0 : do {$return = $item[1];};
  2         5  
9042 2 50       7 unless (defined $_tok)
9043             {
9044 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
9045             if defined $::RD_TRACE;
9046 0         0 last;
9047             }
9048 2 50       8 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
9049             . $_tok . q{])},
9050             Parse::RecDescent::_tracefirst($text))
9051             if defined $::RD_TRACE;
9052 2         3 push @item, $_tok;
9053 2         6 $item{__ACTION1__}=$_tok;
9054            
9055              
9056              
9057 2 50       5 Parse::RecDescent::_trace(q{>>Matched production: [NUMBER]<<},
9058             Parse::RecDescent::_tracefirst($text),
9059             q{any_item},
9060             $tracelevel)
9061             if defined $::RD_TRACE;
9062 2         3 $_matched = 1;
9063 2         6 last;
9064             }
9065              
9066              
9067 107   66     454 while (!$_matched && !$commit)
9068             {
9069            
9070 55 50       138 Parse::RecDescent::_trace(q{Trying production: [PERCENTAGE]},
9071             Parse::RecDescent::_tracefirst($_[1]),
9072             q{any_item},
9073             $tracelevel)
9074             if defined $::RD_TRACE;
9075 55         159 my $thisprod = $thisrule->{"prods"}[3];
9076 55         94 $text = $_[1];
9077 55         79 my $_savetext;
9078 55         122 @item = (q{any_item});
9079 55         138 %item = (__RULE__ => q{any_item});
9080 55         72 my $repcount = 0;
9081              
9082              
9083 55 50       223 Parse::RecDescent::_trace(q{Trying subrule: [PERCENTAGE]},
9084             Parse::RecDescent::_tracefirst($text),
9085             q{any_item},
9086             $tracelevel)
9087             if defined $::RD_TRACE;
9088 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         570  
  55         60  
9089 55         177 $expectation->is(q{})->at($text);
9090 55 50   55   5291 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::PERCENTAGE($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  55         145  
9091             {
9092            
9093 55 50       135 Parse::RecDescent::_trace(q{<<Didn't match subrule: [PERCENTAGE]>>},
9094             Parse::RecDescent::_tracefirst($text),
9095             q{any_item},
9096             $tracelevel)
9097             if defined $::RD_TRACE;
9098 55         142 $expectation->failed();
9099 55         202 last;
9100             }
9101 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [PERCENTAGE]<< (return value: [}
9102             . $_tok . q{]},
9103            
9104             Parse::RecDescent::_tracefirst($text),
9105             q{any_item},
9106             $tracelevel)
9107             if defined $::RD_TRACE;
9108 0         0 $item{q{PERCENTAGE}} = $_tok;
9109 0         0 push @item, $_tok;
9110            
9111             }
9112              
9113 0 0       0 Parse::RecDescent::_trace(q{Trying action},
9114             Parse::RecDescent::_tracefirst($text),
9115             q{any_item},
9116             $tracelevel)
9117             if defined $::RD_TRACE;
9118            
9119              
9120 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1];};
  0         0  
9121 0 0       0 unless (defined $_tok)
9122             {
9123 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
9124             if defined $::RD_TRACE;
9125 0         0 last;
9126             }
9127 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
9128             . $_tok . q{])},
9129             Parse::RecDescent::_tracefirst($text))
9130             if defined $::RD_TRACE;
9131 0         0 push @item, $_tok;
9132 0         0 $item{__ACTION1__}=$_tok;
9133            
9134              
9135              
9136 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [PERCENTAGE]<<},
9137             Parse::RecDescent::_tracefirst($text),
9138             q{any_item},
9139             $tracelevel)
9140             if defined $::RD_TRACE;
9141 0         0 $_matched = 1;
9142 0         0 last;
9143             }
9144              
9145              
9146 107   66     436 while (!$_matched && !$commit)
9147             {
9148            
9149 55 50       177 Parse::RecDescent::_trace(q{Trying production: [DIMENSION]},
9150             Parse::RecDescent::_tracefirst($_[1]),
9151             q{any_item},
9152             $tracelevel)
9153             if defined $::RD_TRACE;
9154 55         162 my $thisprod = $thisrule->{"prods"}[4];
9155 55         105 $text = $_[1];
9156 55         65 my $_savetext;
9157 55         168 @item = (q{any_item});
9158 55         163 %item = (__RULE__ => q{any_item});
9159 55         98 my $repcount = 0;
9160              
9161              
9162 55 50       138 Parse::RecDescent::_trace(q{Trying subrule: [DIMENSION]},
9163             Parse::RecDescent::_tracefirst($text),
9164             q{any_item},
9165             $tracelevel)
9166             if defined $::RD_TRACE;
9167 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         553  
  55         80  
9168 55         158 $expectation->is(q{})->at($text);
9169 55 50   55   647 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::DIMENSION($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  55         114  
9170             {
9171            
9172 55 50       118 Parse::RecDescent::_trace(q{<<Didn't match subrule: [DIMENSION]>>},
9173             Parse::RecDescent::_tracefirst($text),
9174             q{any_item},
9175             $tracelevel)
9176             if defined $::RD_TRACE;
9177 55         149 $expectation->failed();
9178 55         202 last;
9179             }
9180 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [DIMENSION]<< (return value: [}
9181             . $_tok . q{]},
9182            
9183             Parse::RecDescent::_tracefirst($text),
9184             q{any_item},
9185             $tracelevel)
9186             if defined $::RD_TRACE;
9187 0         0 $item{q{DIMENSION}} = $_tok;
9188 0         0 push @item, $_tok;
9189            
9190             }
9191              
9192 0 0       0 Parse::RecDescent::_trace(q{Trying action},
9193             Parse::RecDescent::_tracefirst($text),
9194             q{any_item},
9195             $tracelevel)
9196             if defined $::RD_TRACE;
9197            
9198              
9199 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1];};
  0         0  
9200 0 0       0 unless (defined $_tok)
9201             {
9202 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
9203             if defined $::RD_TRACE;
9204 0         0 last;
9205             }
9206 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
9207             . $_tok . q{])},
9208             Parse::RecDescent::_tracefirst($text))
9209             if defined $::RD_TRACE;
9210 0         0 push @item, $_tok;
9211 0         0 $item{__ACTION1__}=$_tok;
9212            
9213              
9214              
9215 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [DIMENSION]<<},
9216             Parse::RecDescent::_tracefirst($text),
9217             q{any_item},
9218             $tracelevel)
9219             if defined $::RD_TRACE;
9220 0         0 $_matched = 1;
9221 0         0 last;
9222             }
9223              
9224              
9225 107   66     436 while (!$_matched && !$commit)
9226             {
9227            
9228 55 50       123 Parse::RecDescent::_trace(q{Trying production: [STRING]},
9229             Parse::RecDescent::_tracefirst($_[1]),
9230             q{any_item},
9231             $tracelevel)
9232             if defined $::RD_TRACE;
9233 55         149 my $thisprod = $thisrule->{"prods"}[5];
9234 55         84 $text = $_[1];
9235 55         69 my $_savetext;
9236 55         119 @item = (q{any_item});
9237 55         151 %item = (__RULE__ => q{any_item});
9238 55         82 my $repcount = 0;
9239              
9240              
9241 55 50       160 Parse::RecDescent::_trace(q{Trying subrule: [STRING]},
9242             Parse::RecDescent::_tracefirst($text),
9243             q{any_item},
9244             $tracelevel)
9245             if defined $::RD_TRACE;
9246 1     1   6 if (1) { no strict qw{refs};
  1         2  
  1         513  
  55         68  
9247 55         216 $expectation->is(q{})->at($text);
9248 55 100   55   623 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::STRING($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  55         111  
9249             {
9250            
9251 54 50       126 Parse::RecDescent::_trace(q{<<Didn't match subrule: [STRING]>>},
9252             Parse::RecDescent::_tracefirst($text),
9253             q{any_item},
9254             $tracelevel)
9255             if defined $::RD_TRACE;
9256 54         140 $expectation->failed();
9257 54         211 last;
9258             }
9259 1 50       7 Parse::RecDescent::_trace(q{>>Matched subrule: [STRING]<< (return value: [}
9260             . $_tok . q{]},
9261            
9262             Parse::RecDescent::_tracefirst($text),
9263             q{any_item},
9264             $tracelevel)
9265             if defined $::RD_TRACE;
9266 1         3 $item{q{STRING}} = $_tok;
9267 1         3 push @item, $_tok;
9268            
9269             }
9270              
9271 1 50       3 Parse::RecDescent::_trace(q{Trying action},
9272             Parse::RecDescent::_tracefirst($text),
9273             q{any_item},
9274             $tracelevel)
9275             if defined $::RD_TRACE;
9276            
9277              
9278 1 50       4 $_tok = ($_noactions) ? 0 : do {$return = $item[1];};
  1         3  
9279 1 50       4 unless (defined $_tok)
9280             {
9281 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
9282             if defined $::RD_TRACE;
9283 0         0 last;
9284             }
9285 1 50       12 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
9286             . $_tok . q{])},
9287             Parse::RecDescent::_tracefirst($text))
9288             if defined $::RD_TRACE;
9289 1         2 push @item, $_tok;
9290 1         3 $item{__ACTION1__}=$_tok;
9291            
9292              
9293              
9294 1 50       3 Parse::RecDescent::_trace(q{>>Matched production: [STRING]<<},
9295             Parse::RecDescent::_tracefirst($text),
9296             q{any_item},
9297             $tracelevel)
9298             if defined $::RD_TRACE;
9299 1         2 $_matched = 1;
9300 1         3 last;
9301             }
9302              
9303              
9304 107   66     496 while (!$_matched && !$commit)
9305             {
9306            
9307 54 50       248 Parse::RecDescent::_trace(q{Trying production: [HASH]},
9308             Parse::RecDescent::_tracefirst($_[1]),
9309             q{any_item},
9310             $tracelevel)
9311             if defined $::RD_TRACE;
9312 54         144 my $thisprod = $thisrule->{"prods"}[6];
9313 54         83 $text = $_[1];
9314 54         69 my $_savetext;
9315 54         156 @item = (q{any_item});
9316 54         144 %item = (__RULE__ => q{any_item});
9317 54         97 my $repcount = 0;
9318              
9319              
9320 54 50       123 Parse::RecDescent::_trace(q{Trying subrule: [HASH]},
9321             Parse::RecDescent::_tracefirst($text),
9322             q{any_item},
9323             $tracelevel)
9324             if defined $::RD_TRACE;
9325 1     1   5 if (1) { no strict qw{refs};
  1         2  
  1         465  
  54         216  
9326 54         170 $expectation->is(q{})->at($text);
9327 54 100   54   914 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::HASH($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  54         138  
9328             {
9329            
9330 53 50       108 Parse::RecDescent::_trace(q{<<Didn't match subrule: [HASH]>>},
9331             Parse::RecDescent::_tracefirst($text),
9332             q{any_item},
9333             $tracelevel)
9334             if defined $::RD_TRACE;
9335 53         164 $expectation->failed();
9336 53         200 last;
9337             }
9338 1 50       7 Parse::RecDescent::_trace(q{>>Matched subrule: [HASH]<< (return value: [}
9339             . $_tok . q{]},
9340            
9341             Parse::RecDescent::_tracefirst($text),
9342             q{any_item},
9343             $tracelevel)
9344             if defined $::RD_TRACE;
9345 1         9 $item{q{HASH}} = $_tok;
9346 1         3 push @item, $_tok;
9347            
9348             }
9349              
9350 1 50       4 Parse::RecDescent::_trace(q{Trying action},
9351             Parse::RecDescent::_tracefirst($text),
9352             q{any_item},
9353             $tracelevel)
9354             if defined $::RD_TRACE;
9355            
9356              
9357 1 50       4 $_tok = ($_noactions) ? 0 : do {$return = $item[1];};
  1         3  
9358 1 50       4 unless (defined $_tok)
9359             {
9360 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
9361             if defined $::RD_TRACE;
9362 0         0 last;
9363             }
9364 1 50       4 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
9365             . $_tok . q{])},
9366             Parse::RecDescent::_tracefirst($text))
9367             if defined $::RD_TRACE;
9368 1         2 push @item, $_tok;
9369 1         2 $item{__ACTION1__}=$_tok;
9370            
9371              
9372              
9373 1 50       4 Parse::RecDescent::_trace(q{>>Matched production: [HASH]<<},
9374             Parse::RecDescent::_tracefirst($text),
9375             q{any_item},
9376             $tracelevel)
9377             if defined $::RD_TRACE;
9378 1         2 $_matched = 1;
9379 1         3 last;
9380             }
9381              
9382              
9383 107   66     479 while (!$_matched && !$commit)
9384             {
9385            
9386 53 50       130 Parse::RecDescent::_trace(q{Trying production: [UNICODERANGE]},
9387             Parse::RecDescent::_tracefirst($_[1]),
9388             q{any_item},
9389             $tracelevel)
9390             if defined $::RD_TRACE;
9391 53         150 my $thisprod = $thisrule->{"prods"}[7];
9392 53         88 $text = $_[1];
9393 53         62 my $_savetext;
9394 53         130 @item = (q{any_item});
9395 53         134 %item = (__RULE__ => q{any_item});
9396 53         84 my $repcount = 0;
9397              
9398              
9399 53 50       152 Parse::RecDescent::_trace(q{Trying subrule: [UNICODERANGE]},
9400             Parse::RecDescent::_tracefirst($text),
9401             q{any_item},
9402             $tracelevel)
9403             if defined $::RD_TRACE;
9404 1     1   11 if (1) { no strict qw{refs};
  1         2  
  1         603  
  53         85  
9405 53         366 $expectation->is(q{})->at($text);
9406 53 50   53   650 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::UNICODERANGE($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  53         117  
9407             {
9408            
9409 53 50       100 Parse::RecDescent::_trace(q{<<Didn't match subrule: [UNICODERANGE]>>},
9410             Parse::RecDescent::_tracefirst($text),
9411             q{any_item},
9412             $tracelevel)
9413             if defined $::RD_TRACE;
9414 53         181 $expectation->failed();
9415 53         200 last;
9416             }
9417 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [UNICODERANGE]<< (return value: [}
9418             . $_tok . q{]},
9419            
9420             Parse::RecDescent::_tracefirst($text),
9421             q{any_item},
9422             $tracelevel)
9423             if defined $::RD_TRACE;
9424 0         0 $item{q{UNICODERANGE}} = $_tok;
9425 0         0 push @item, $_tok;
9426            
9427             }
9428              
9429 0 0       0 Parse::RecDescent::_trace(q{Trying action},
9430             Parse::RecDescent::_tracefirst($text),
9431             q{any_item},
9432             $tracelevel)
9433             if defined $::RD_TRACE;
9434            
9435              
9436 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1];};
  0         0  
9437 0 0       0 unless (defined $_tok)
9438             {
9439 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
9440             if defined $::RD_TRACE;
9441 0         0 last;
9442             }
9443 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
9444             . $_tok . q{])},
9445             Parse::RecDescent::_tracefirst($text))
9446             if defined $::RD_TRACE;
9447 0         0 push @item, $_tok;
9448 0         0 $item{__ACTION1__}=$_tok;
9449            
9450              
9451              
9452 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [UNICODERANGE]<<},
9453             Parse::RecDescent::_tracefirst($text),
9454             q{any_item},
9455             $tracelevel)
9456             if defined $::RD_TRACE;
9457 0         0 $_matched = 1;
9458 0         0 last;
9459             }
9460              
9461              
9462 107   66     446 while (!$_matched && !$commit)
9463             {
9464            
9465 53 50       146 Parse::RecDescent::_trace(q{Trying production: [INCLUDES]},
9466             Parse::RecDescent::_tracefirst($_[1]),
9467             q{any_item},
9468             $tracelevel)
9469             if defined $::RD_TRACE;
9470 53         143 my $thisprod = $thisrule->{"prods"}[8];
9471 53         90 $text = $_[1];
9472 53         56 my $_savetext;
9473 53         116 @item = (q{any_item});
9474 53         124 %item = (__RULE__ => q{any_item});
9475 53         108 my $repcount = 0;
9476              
9477              
9478 53 50       131 Parse::RecDescent::_trace(q{Trying subrule: [INCLUDES]},
9479             Parse::RecDescent::_tracefirst($text),
9480             q{any_item},
9481             $tracelevel)
9482             if defined $::RD_TRACE;
9483 1     1   35 if (1) { no strict qw{refs};
  1         2  
  1         611  
  53         58  
9484 53         185 $expectation->is(q{})->at($text);
9485 53 50   53   622 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::INCLUDES($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  53         169  
9486             {
9487            
9488 53 50       140 Parse::RecDescent::_trace(q{<<Didn't match subrule: [INCLUDES]>>},
9489             Parse::RecDescent::_tracefirst($text),
9490             q{any_item},
9491             $tracelevel)
9492             if defined $::RD_TRACE;
9493 53         152 $expectation->failed();
9494 53         215 last;
9495             }
9496 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [INCLUDES]<< (return value: [}
9497             . $_tok . q{]},
9498            
9499             Parse::RecDescent::_tracefirst($text),
9500             q{any_item},
9501             $tracelevel)
9502             if defined $::RD_TRACE;
9503 0         0 $item{q{INCLUDES}} = $_tok;
9504 0         0 push @item, $_tok;
9505            
9506             }
9507              
9508 0 0       0 Parse::RecDescent::_trace(q{Trying action},
9509             Parse::RecDescent::_tracefirst($text),
9510             q{any_item},
9511             $tracelevel)
9512             if defined $::RD_TRACE;
9513            
9514              
9515 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1];};
  0         0  
9516 0 0       0 unless (defined $_tok)
9517             {
9518 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
9519             if defined $::RD_TRACE;
9520 0         0 last;
9521             }
9522 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
9523             . $_tok . q{])},
9524             Parse::RecDescent::_tracefirst($text))
9525             if defined $::RD_TRACE;
9526 0         0 push @item, $_tok;
9527 0         0 $item{__ACTION1__}=$_tok;
9528            
9529              
9530              
9531 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [INCLUDES]<<},
9532             Parse::RecDescent::_tracefirst($text),
9533             q{any_item},
9534             $tracelevel)
9535             if defined $::RD_TRACE;
9536 0         0 $_matched = 1;
9537 0         0 last;
9538             }
9539              
9540              
9541 107   66     418 while (!$_matched && !$commit)
9542             {
9543            
9544 53 50       115 Parse::RecDescent::_trace(q{Trying production: [FUNCTION]},
9545             Parse::RecDescent::_tracefirst($_[1]),
9546             q{any_item},
9547             $tracelevel)
9548             if defined $::RD_TRACE;
9549 53         146 my $thisprod = $thisrule->{"prods"}[9];
9550 53         88 $text = $_[1];
9551 53         67 my $_savetext;
9552 53         131 @item = (q{any_item});
9553 53         125 %item = (__RULE__ => q{any_item});
9554 53         76 my $repcount = 0;
9555              
9556              
9557 53 50       161 Parse::RecDescent::_trace(q{Trying subrule: [FUNCTION]},
9558             Parse::RecDescent::_tracefirst($text),
9559             q{any_item},
9560             $tracelevel)
9561             if defined $::RD_TRACE;
9562 1     1   6 if (1) { no strict qw{refs};
  1         2  
  1         544  
  53         59  
9563 53         161 $expectation->is(q{})->at($text);
9564 53 50   53   649 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::FUNCTION($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  53         167  
9565             {
9566            
9567 53 50       113 Parse::RecDescent::_trace(q{<<Didn't match subrule: [FUNCTION]>>},
9568             Parse::RecDescent::_tracefirst($text),
9569             q{any_item},
9570             $tracelevel)
9571             if defined $::RD_TRACE;
9572 53         158 $expectation->failed();
9573 53         216 last;
9574             }
9575 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [FUNCTION]<< (return value: [}
9576             . $_tok . q{]},
9577            
9578             Parse::RecDescent::_tracefirst($text),
9579             q{any_item},
9580             $tracelevel)
9581             if defined $::RD_TRACE;
9582 0         0 $item{q{FUNCTION}} = $_tok;
9583 0         0 push @item, $_tok;
9584            
9585             }
9586              
9587 0 0       0 Parse::RecDescent::_trace(q{Trying action},
9588             Parse::RecDescent::_tracefirst($text),
9589             q{any_item},
9590             $tracelevel)
9591             if defined $::RD_TRACE;
9592            
9593              
9594 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1];};
  0         0  
9595 0 0       0 unless (defined $_tok)
9596             {
9597 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
9598             if defined $::RD_TRACE;
9599 0         0 last;
9600             }
9601 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
9602             . $_tok . q{])},
9603             Parse::RecDescent::_tracefirst($text))
9604             if defined $::RD_TRACE;
9605 0         0 push @item, $_tok;
9606 0         0 $item{__ACTION1__}=$_tok;
9607            
9608              
9609              
9610 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [FUNCTION]<<},
9611             Parse::RecDescent::_tracefirst($text),
9612             q{any_item},
9613             $tracelevel)
9614             if defined $::RD_TRACE;
9615 0         0 $_matched = 1;
9616 0         0 last;
9617             }
9618              
9619              
9620 107   66     415 while (!$_matched && !$commit)
9621             {
9622            
9623 53 50       129 Parse::RecDescent::_trace(q{Trying production: [DASHMATCH]},
9624             Parse::RecDescent::_tracefirst($_[1]),
9625             q{any_item},
9626             $tracelevel)
9627             if defined $::RD_TRACE;
9628 53         132 my $thisprod = $thisrule->{"prods"}[10];
9629 53         99 $text = $_[1];
9630 53         63 my $_savetext;
9631 53         144 @item = (q{any_item});
9632 53         152 %item = (__RULE__ => q{any_item});
9633 53         70 my $repcount = 0;
9634              
9635              
9636 53 50       128 Parse::RecDescent::_trace(q{Trying subrule: [DASHMATCH]},
9637             Parse::RecDescent::_tracefirst($text),
9638             q{any_item},
9639             $tracelevel)
9640             if defined $::RD_TRACE;
9641 1     1   6 if (1) { no strict qw{refs};
  1         2  
  1         3408  
  53         88  
9642 53         187 $expectation->is(q{})->at($text);
9643 53 50   53   635 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::DASHMATCH($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  53         169  
9644             {
9645            
9646 53 50       157 Parse::RecDescent::_trace(q{<<Didn't match subrule: [DASHMATCH]>>},
9647             Parse::RecDescent::_tracefirst($text),
9648             q{any_item},
9649             $tracelevel)
9650             if defined $::RD_TRACE;
9651 53         177 $expectation->failed();
9652 53         197 last;
9653             }
9654 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [DASHMATCH]<< (return value: [}
9655             . $_tok . q{]},
9656            
9657             Parse::RecDescent::_tracefirst($text),
9658             q{any_item},
9659             $tracelevel)
9660             if defined $::RD_TRACE;
9661 0         0 $item{q{DASHMATCH}} = $_tok;
9662 0         0 push @item, $_tok;
9663            
9664             }
9665              
9666 0 0       0 Parse::RecDescent::_trace(q{Trying action},
9667             Parse::RecDescent::_tracefirst($text),
9668             q{any_item},
9669             $tracelevel)
9670             if defined $::RD_TRACE;
9671            
9672              
9673 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1];};
  0         0  
9674 0 0       0 unless (defined $_tok)
9675             {
9676 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
9677             if defined $::RD_TRACE;
9678 0         0 last;
9679             }
9680 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
9681             . $_tok . q{])},
9682             Parse::RecDescent::_tracefirst($text))
9683             if defined $::RD_TRACE;
9684 0         0 push @item, $_tok;
9685 0         0 $item{__ACTION1__}=$_tok;
9686            
9687              
9688              
9689 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [DASHMATCH]<<},
9690             Parse::RecDescent::_tracefirst($text),
9691             q{any_item},
9692             $tracelevel)
9693             if defined $::RD_TRACE;
9694 0         0 $_matched = 1;
9695 0         0 last;
9696             }
9697              
9698              
9699 107   66     428 while (!$_matched && !$commit)
9700             {
9701            
9702 53 50       155 Parse::RecDescent::_trace(q{Trying production: ['(' any ')']},
9703             Parse::RecDescent::_tracefirst($_[1]),
9704             q{any_item},
9705             $tracelevel)
9706             if defined $::RD_TRACE;
9707 53         127 my $thisprod = $thisrule->{"prods"}[11];
9708 53         72 $text = $_[1];
9709 53         71 my $_savetext;
9710 53         128 @item = (q{any_item});
9711 53         176 %item = (__RULE__ => q{any_item});
9712 53         69 my $repcount = 0;
9713              
9714              
9715 53 50       118 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
9716             Parse::RecDescent::_tracefirst($text),
9717             q{any_item},
9718             $tracelevel)
9719             if defined $::RD_TRACE;
9720 53         91 $lastsep = "";
9721 53         155 $expectation->is(q{})->at($text);
9722            
9723              
9724 53 50 33     588 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\(/)
  53 50       534  
9725             {
9726            
9727 53         138 $expectation->failed();
9728 53 50       211 Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
9729             Parse::RecDescent::_tracefirst($text))
9730             if defined $::RD_TRACE;
9731 53         99 last;
9732             }
9733 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
9734 0         0 substr($text,0,length($current_match),q{});
9735 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9736             . $current_match . q{])},
9737             Parse::RecDescent::_tracefirst($text))
9738             if defined $::RD_TRACE;
9739 0         0 push @item, $item{__STRING1__}=$current_match;
9740            
9741              
9742 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [any]},
9743             Parse::RecDescent::_tracefirst($text),
9744             q{any_item},
9745             $tracelevel)
9746             if defined $::RD_TRACE;
9747 0         0 $expectation->is(q{any})->at($text);
9748            
9749 0 0   0   0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::CSS::Parse::CompiledGrammar::any, 0, 100000000, $_noactions,$expectation,sub { \@arg })))
  0         0  
9750             {
9751 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [any]>>},
9752             Parse::RecDescent::_tracefirst($text),
9753             q{any_item},
9754             $tracelevel)
9755             if defined $::RD_TRACE;
9756 0         0 last;
9757             }
9758 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [any]<< (}
9759             . @$_tok . q{ times)},
9760            
9761             Parse::RecDescent::_tracefirst($text),
9762             q{any_item},
9763             $tracelevel)
9764             if defined $::RD_TRACE;
9765 0         0 $item{q{any(s?)}} = $_tok;
9766 0         0 push @item, $_tok;
9767            
9768              
9769              
9770 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [')']},
9771             Parse::RecDescent::_tracefirst($text),
9772             q{any_item},
9773             $tracelevel)
9774             if defined $::RD_TRACE;
9775 0         0 $lastsep = "";
9776 0         0 $expectation->is(q{')'})->at($text);
9777            
9778              
9779 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\)/)
  0 0       0  
9780             {
9781            
9782 0         0 $expectation->failed();
9783 0 0       0 Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
9784             Parse::RecDescent::_tracefirst($text))
9785             if defined $::RD_TRACE;
9786 0         0 last;
9787             }
9788 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
9789 0         0 substr($text,0,length($current_match),q{});
9790 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9791             . $current_match . q{])},
9792             Parse::RecDescent::_tracefirst($text))
9793             if defined $::RD_TRACE;
9794 0         0 push @item, $item{__STRING2__}=$current_match;
9795            
9796              
9797 0 0       0 Parse::RecDescent::_trace(q{Trying action},
9798             Parse::RecDescent::_tracefirst($text),
9799             q{any_item},
9800             $tracelevel)
9801             if defined $::RD_TRACE;
9802            
9803              
9804 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = '('.join('',@{$item[2]}).')';};
  0         0  
  0         0  
9805 0 0       0 unless (defined $_tok)
9806             {
9807 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
9808             if defined $::RD_TRACE;
9809 0         0 last;
9810             }
9811 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
9812             . $_tok . q{])},
9813             Parse::RecDescent::_tracefirst($text))
9814             if defined $::RD_TRACE;
9815 0         0 push @item, $_tok;
9816 0         0 $item{__ACTION1__}=$_tok;
9817            
9818              
9819              
9820 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['(' any ')']<<},
9821             Parse::RecDescent::_tracefirst($text),
9822             q{any_item},
9823             $tracelevel)
9824             if defined $::RD_TRACE;
9825 0         0 $_matched = 1;
9826 0         0 last;
9827             }
9828              
9829              
9830 107   66     355 while (!$_matched && !$commit)
9831             {
9832            
9833 53 50       155 Parse::RecDescent::_trace(q{Trying production: ['[' any ']']},
9834             Parse::RecDescent::_tracefirst($_[1]),
9835             q{any_item},
9836             $tracelevel)
9837             if defined $::RD_TRACE;
9838 53         148 my $thisprod = $thisrule->{"prods"}[12];
9839 53         67 $text = $_[1];
9840 53         62 my $_savetext;
9841 53         145 @item = (q{any_item});
9842 53         121 %item = (__RULE__ => q{any_item});
9843 53         70 my $repcount = 0;
9844              
9845              
9846 53 50       147 Parse::RecDescent::_trace(q{Trying terminal: ['[']},
9847             Parse::RecDescent::_tracefirst($text),
9848             q{any_item},
9849             $tracelevel)
9850             if defined $::RD_TRACE;
9851 53         75 $lastsep = "";
9852 53         200 $expectation->is(q{})->at($text);
9853            
9854              
9855 53 50 33     526 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\[/)
  53 50       469  
9856             {
9857            
9858 53         144 $expectation->failed();
9859 53 50       249 Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
9860             Parse::RecDescent::_tracefirst($text))
9861             if defined $::RD_TRACE;
9862 53         103 last;
9863             }
9864 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
9865 0         0 substr($text,0,length($current_match),q{});
9866 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9867             . $current_match . q{])},
9868             Parse::RecDescent::_tracefirst($text))
9869             if defined $::RD_TRACE;
9870 0         0 push @item, $item{__STRING1__}=$current_match;
9871            
9872              
9873 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [any]},
9874             Parse::RecDescent::_tracefirst($text),
9875             q{any_item},
9876             $tracelevel)
9877             if defined $::RD_TRACE;
9878 0         0 $expectation->is(q{any})->at($text);
9879            
9880 0 0   0   0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::CSS::Parse::CompiledGrammar::any, 0, 100000000, $_noactions,$expectation,sub { \@arg })))
  0         0  
9881             {
9882 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [any]>>},
9883             Parse::RecDescent::_tracefirst($text),
9884             q{any_item},
9885             $tracelevel)
9886             if defined $::RD_TRACE;
9887 0         0 last;
9888             }
9889 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [any]<< (}
9890             . @$_tok . q{ times)},
9891            
9892             Parse::RecDescent::_tracefirst($text),
9893             q{any_item},
9894             $tracelevel)
9895             if defined $::RD_TRACE;
9896 0         0 $item{q{any(s?)}} = $_tok;
9897 0         0 push @item, $_tok;
9898            
9899              
9900              
9901 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [']']},
9902             Parse::RecDescent::_tracefirst($text),
9903             q{any_item},
9904             $tracelevel)
9905             if defined $::RD_TRACE;
9906 0         0 $lastsep = "";
9907 0         0 $expectation->is(q{']'})->at($text);
9908            
9909              
9910 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\]/)
  0 0       0  
9911             {
9912            
9913 0         0 $expectation->failed();
9914 0 0       0 Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
9915             Parse::RecDescent::_tracefirst($text))
9916             if defined $::RD_TRACE;
9917 0         0 last;
9918             }
9919 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
9920 0         0 substr($text,0,length($current_match),q{});
9921 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9922             . $current_match . q{])},
9923             Parse::RecDescent::_tracefirst($text))
9924             if defined $::RD_TRACE;
9925 0         0 push @item, $item{__STRING2__}=$current_match;
9926            
9927              
9928 0 0       0 Parse::RecDescent::_trace(q{Trying action},
9929             Parse::RecDescent::_tracefirst($text),
9930             q{any_item},
9931             $tracelevel)
9932             if defined $::RD_TRACE;
9933            
9934              
9935 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = '['.join('',@{$item[2]}).']';};
  0         0  
  0         0  
9936 0 0       0 unless (defined $_tok)
9937             {
9938 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
9939             if defined $::RD_TRACE;
9940 0         0 last;
9941             }
9942 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
9943             . $_tok . q{])},
9944             Parse::RecDescent::_tracefirst($text))
9945             if defined $::RD_TRACE;
9946 0         0 push @item, $_tok;
9947 0         0 $item{__ACTION1__}=$_tok;
9948            
9949              
9950              
9951 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['[' any ']']<<},
9952             Parse::RecDescent::_tracefirst($text),
9953             q{any_item},
9954             $tracelevel)
9955             if defined $::RD_TRACE;
9956 0         0 $_matched = 1;
9957 0         0 last;
9958             }
9959              
9960              
9961 107   66     331 while (!$_matched && !$commit)
9962             {
9963            
9964 53 50       131 Parse::RecDescent::_trace(q{Trying production: [DELIM]},
9965             Parse::RecDescent::_tracefirst($_[1]),
9966             q{any_item},
9967             $tracelevel)
9968             if defined $::RD_TRACE;
9969 53         115 my $thisprod = $thisrule->{"prods"}[13];
9970 53         78 $text = $_[1];
9971 53         54 my $_savetext;
9972 53         150 @item = (q{any_item});
9973 53         138 %item = (__RULE__ => q{any_item});
9974 53         74 my $repcount = 0;
9975              
9976              
9977 53 50       117 Parse::RecDescent::_trace(q{Trying subrule: [DELIM]},
9978             Parse::RecDescent::_tracefirst($text),
9979             q{any_item},
9980             $tracelevel)
9981             if defined $::RD_TRACE;
9982 1     1   14 if (1) { no strict qw{refs};
  1         2  
  1         1567  
  53         92  
9983 53         147 $expectation->is(q{})->at($text);
9984 53 100   53   600 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::DELIM($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  53         128  
9985             {
9986            
9987 37 50       106 Parse::RecDescent::_trace(q{<<Didn't match subrule: [DELIM]>>},
9988             Parse::RecDescent::_tracefirst($text),
9989             q{any_item},
9990             $tracelevel)
9991             if defined $::RD_TRACE;
9992 37         118 $expectation->failed();
9993 37         148 last;
9994             }
9995 16 50       61 Parse::RecDescent::_trace(q{>>Matched subrule: [DELIM]<< (return value: [}
9996             . $_tok . q{]},
9997            
9998             Parse::RecDescent::_tracefirst($text),
9999             q{any_item},
10000             $tracelevel)
10001             if defined $::RD_TRACE;
10002 16         34 $item{q{DELIM}} = $_tok;
10003 16         35 push @item, $_tok;
10004            
10005             }
10006              
10007 16 50       36 Parse::RecDescent::_trace(q{Trying action},
10008             Parse::RecDescent::_tracefirst($text),
10009             q{any_item},
10010             $tracelevel)
10011             if defined $::RD_TRACE;
10012            
10013              
10014 16 50       33 $_tok = ($_noactions) ? 0 : do {$return = $item[1];};
  16         32  
10015 16 50       88 unless (defined $_tok)
10016             {
10017 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
10018             if defined $::RD_TRACE;
10019 0         0 last;
10020             }
10021 16 50       33 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
10022             . $_tok . q{])},
10023             Parse::RecDescent::_tracefirst($text))
10024             if defined $::RD_TRACE;
10025 16         28 push @item, $_tok;
10026 16         35 $item{__ACTION1__}=$_tok;
10027            
10028              
10029              
10030 16 50       41 Parse::RecDescent::_trace(q{>>Matched production: [DELIM]<<},
10031             Parse::RecDescent::_tracefirst($text),
10032             q{any_item},
10033             $tracelevel)
10034             if defined $::RD_TRACE;
10035 16         20 $_matched = 1;
10036 16         28 last;
10037             }
10038              
10039              
10040 107 100 66     441 unless ( $_matched || defined($score) )
10041             {
10042            
10043              
10044 37         68 $_[1] = $text; # NOT SURE THIS IS NEEDED
10045 37 50       93 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
10046             Parse::RecDescent::_tracefirst($_[1]),
10047             q{any_item},
10048             $tracelevel)
10049             if defined $::RD_TRACE;
10050 37         1434 return undef;
10051             }
10052 70 50 33     215 if (!defined($return) && defined($score))
10053             {
10054 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
10055             q{any_item},
10056             $tracelevel)
10057             if defined $::RD_TRACE;
10058 0         0 $return = $score_return;
10059             }
10060 70         78 splice @{$thisparser->{errors}}, $err_at;
  70         167  
10061 70 50       190 $return = $item[$#item] unless defined $return;
10062 70 50       171 if (defined $::RD_TRACE)
10063             {
10064 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
10065             $return . q{])}, "",
10066             q{any_item},
10067             $tracelevel);
10068 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
10069             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
10070             Parse::RecDescent::_tracefirst($text),
10071             , q{any_item},
10072             $tracelevel)
10073             }
10074 70         117 $_[1] = $text;
10075 70         700 return $return;
10076             }
10077              
10078             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
10079             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::any
10080             {
10081 107     107   973 my $thisparser = $_[0];
10082 1     1   9 use vars q{$tracelevel};
  1         2  
  1         518  
10083 107   50     329 local $tracelevel = ($tracelevel||0)+1;
10084 107         143 $ERRORS = 0;
10085 107         300 my $thisrule = $thisparser->{"rules"}{"any"};
10086            
10087 107 50       251 Parse::RecDescent::_trace(q{Trying rule: [any]},
10088             Parse::RecDescent::_tracefirst($_[1]),
10089             q{any},
10090             $tracelevel)
10091             if defined $::RD_TRACE;
10092              
10093            
10094 107         138 my $err_at = @{$thisparser->{errors}};
  107         197  
10095              
10096 107         187 my $score;
10097             my $score_return;
10098 0         0 my $_tok;
10099 107         135 my $return = undef;
10100 107         189 my $_matched=0;
10101 107         106 my $commit=0;
10102 107         195 my @item = ();
10103 107         152 my %item = ();
10104 107   33     339 my $repeating = defined($_[2]) && $_[2];
10105 107   33     385 my $_noactions = defined($_[3]) && $_[3];
10106 107 50       257 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  107         123  
  107         275  
10107 107 50       319 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
10108 107         141 my $text;
10109 107         139 my $lastsep="";
10110 107         116 my $current_match;
10111 107         374 my $expectation = new Parse::RecDescent::Expectation(q{any_item});
10112 107         819 $expectation->at($_[1]);
10113            
10114 107         419 my $thisline;
10115 107         439 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
10116              
10117            
10118              
10119 107   33     1352 while (!$_matched && !$commit)
10120             {
10121            
10122 107 50       237 Parse::RecDescent::_trace(q{Trying production: [any_item OWS]},
10123             Parse::RecDescent::_tracefirst($_[1]),
10124             q{any},
10125             $tracelevel)
10126             if defined $::RD_TRACE;
10127 107         250 my $thisprod = $thisrule->{"prods"}[0];
10128 107         232 $text = $_[1];
10129 107         110 my $_savetext;
10130 107         208 @item = (q{any});
10131 107         257 %item = (__RULE__ => q{any});
10132 107         119 my $repcount = 0;
10133              
10134              
10135 107 50       220 Parse::RecDescent::_trace(q{Trying subrule: [any_item]},
10136             Parse::RecDescent::_tracefirst($text),
10137             q{any},
10138             $tracelevel)
10139             if defined $::RD_TRACE;
10140 1     1   8 if (1) { no strict qw{refs};
  1         3  
  1         221  
  107         132  
10141 107         318 $expectation->is(q{})->at($text);
10142 107 100   107   1110 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::any_item($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  107         240  
10143             {
10144            
10145 37 50       120 Parse::RecDescent::_trace(q{<<Didn't match subrule: [any_item]>>},
10146             Parse::RecDescent::_tracefirst($text),
10147             q{any},
10148             $tracelevel)
10149             if defined $::RD_TRACE;
10150 37         115 $expectation->failed();
10151 37         165 last;
10152             }
10153 70 50       329 Parse::RecDescent::_trace(q{>>Matched subrule: [any_item]<< (return value: [}
10154             . $_tok . q{]},
10155            
10156             Parse::RecDescent::_tracefirst($text),
10157             q{any},
10158             $tracelevel)
10159             if defined $::RD_TRACE;
10160 70         164 $item{q{any_item}} = $_tok;
10161 70         176 push @item, $_tok;
10162            
10163             }
10164              
10165 70 50       222 Parse::RecDescent::_trace(q{Trying subrule: [OWS]},
10166             Parse::RecDescent::_tracefirst($text),
10167             q{any},
10168             $tracelevel)
10169             if defined $::RD_TRACE;
10170 1     1   5 if (1) { no strict qw{refs};
  1         4  
  1         686  
  70         87  
10171 70         220 $expectation->is(q{OWS})->at($text);
10172 70 50   70   885 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::OWS($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  70         157  
10173             {
10174            
10175 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match subrule: [OWS]>>},
10176             Parse::RecDescent::_tracefirst($text),
10177             q{any},
10178             $tracelevel)
10179             if defined $::RD_TRACE;
10180 0         0 $expectation->failed();
10181 0         0 last;
10182             }
10183 70 50       298 Parse::RecDescent::_trace(q{>>Matched subrule: [OWS]<< (return value: [}
10184             . $_tok . q{]},
10185            
10186             Parse::RecDescent::_tracefirst($text),
10187             q{any},
10188             $tracelevel)
10189             if defined $::RD_TRACE;
10190 70         152 $item{q{OWS}} = $_tok;
10191 70         129 push @item, $_tok;
10192            
10193             }
10194              
10195 70 50       171 Parse::RecDescent::_trace(q{Trying action},
10196             Parse::RecDescent::_tracefirst($text),
10197             q{any},
10198             $tracelevel)
10199             if defined $::RD_TRACE;
10200            
10201              
10202 70 50       168 $_tok = ($_noactions) ? 0 : do {$return = $item[1].$item[2]};
  70         199  
10203 70 50       174 unless (defined $_tok)
10204             {
10205 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
10206             if defined $::RD_TRACE;
10207 0         0 last;
10208             }
10209 70 50       151 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
10210             . $_tok . q{])},
10211             Parse::RecDescent::_tracefirst($text))
10212             if defined $::RD_TRACE;
10213 70         124 push @item, $_tok;
10214 70         131 $item{__ACTION1__}=$_tok;
10215            
10216              
10217              
10218 70 50       124 Parse::RecDescent::_trace(q{>>Matched production: [any_item OWS]<<},
10219             Parse::RecDescent::_tracefirst($text),
10220             q{any},
10221             $tracelevel)
10222             if defined $::RD_TRACE;
10223 70         87 $_matched = 1;
10224 70         110 last;
10225             }
10226              
10227              
10228 107 100 66     491 unless ( $_matched || defined($score) )
10229             {
10230            
10231              
10232 37         87 $_[1] = $text; # NOT SURE THIS IS NEEDED
10233 37 50       88 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
10234             Parse::RecDescent::_tracefirst($_[1]),
10235             q{any},
10236             $tracelevel)
10237             if defined $::RD_TRACE;
10238 37         403 return undef;
10239             }
10240 70 50 33     193 if (!defined($return) && defined($score))
10241             {
10242 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
10243             q{any},
10244             $tracelevel)
10245             if defined $::RD_TRACE;
10246 0         0 $return = $score_return;
10247             }
10248 70         74 splice @{$thisparser->{errors}}, $err_at;
  70         206  
10249 70 50       157 $return = $item[$#item] unless defined $return;
10250 70 50       166 if (defined $::RD_TRACE)
10251             {
10252 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
10253             $return . q{])}, "",
10254             q{any},
10255             $tracelevel);
10256 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
10257             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
10258             Parse::RecDescent::_tracefirst($text),
10259             , q{any},
10260             $tracelevel)
10261             }
10262 70         117 $_[1] = $text;
10263 70         669 return $return;
10264             }
10265              
10266             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
10267             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::DASHMATCH
10268             {
10269 53     53   102 my $thisparser = $_[0];
10270 1     1   8 use vars q{$tracelevel};
  1         1  
  1         1097  
10271 53   50     199 local $tracelevel = ($tracelevel||0)+1;
10272 53         87 $ERRORS = 0;
10273 53         141 my $thisrule = $thisparser->{"rules"}{"DASHMATCH"};
10274            
10275 53 50       141 Parse::RecDescent::_trace(q{Trying rule: [DASHMATCH]},
10276             Parse::RecDescent::_tracefirst($_[1]),
10277             q{DASHMATCH},
10278             $tracelevel)
10279             if defined $::RD_TRACE;
10280              
10281            
10282 53         65 my $err_at = @{$thisparser->{errors}};
  53         101  
10283              
10284 53         81 my $score;
10285             my $score_return;
10286 0         0 my $_tok;
10287 53         67 my $return = undef;
10288 53         82 my $_matched=0;
10289 53         73 my $commit=0;
10290 53         107 my @item = ();
10291 53         102 my %item = ();
10292 53   33     186 my $repeating = defined($_[2]) && $_[2];
10293 53   33     227 my $_noactions = defined($_[3]) && $_[3];
10294 53 50       137 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  53         68  
  53         105  
10295 53 50       167 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
10296 53         59 my $text;
10297 53         106 my $lastsep="";
10298 53         58 my $current_match;
10299 53         171 my $expectation = new Parse::RecDescent::Expectation(q{'|='});
10300 53         440 $expectation->at($_[1]);
10301            
10302 53         236 my $thisline;
10303 53         238 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
10304              
10305            
10306              
10307 53   33     535 while (!$_matched && !$commit)
10308             {
10309            
10310 53 50       127 Parse::RecDescent::_trace(q{Trying production: ['|=']},
10311             Parse::RecDescent::_tracefirst($_[1]),
10312             q{DASHMATCH},
10313             $tracelevel)
10314             if defined $::RD_TRACE;
10315 53         184 my $thisprod = $thisrule->{"prods"}[0];
10316 53         79 $text = $_[1];
10317 53         67 my $_savetext;
10318 53         100 @item = (q{DASHMATCH});
10319 53         143 %item = (__RULE__ => q{DASHMATCH});
10320 53         68 my $repcount = 0;
10321              
10322              
10323 53 50       92 Parse::RecDescent::_trace(q{Trying terminal: ['|=']},
10324             Parse::RecDescent::_tracefirst($text),
10325             q{DASHMATCH},
10326             $tracelevel)
10327             if defined $::RD_TRACE;
10328 53         109 $lastsep = "";
10329 53         192 $expectation->is(q{})->at($text);
10330            
10331              
10332 53 50 33     587 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\|\=/)
  53 50       505  
10333             {
10334            
10335 53         150 $expectation->failed();
10336 53 50       267 Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
10337             Parse::RecDescent::_tracefirst($text))
10338             if defined $::RD_TRACE;
10339 53         110 last;
10340             }
10341 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
10342 0         0 substr($text,0,length($current_match),q{});
10343 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10344             . $current_match . q{])},
10345             Parse::RecDescent::_tracefirst($text))
10346             if defined $::RD_TRACE;
10347 0         0 push @item, $item{__STRING1__}=$current_match;
10348            
10349              
10350 0 0       0 Parse::RecDescent::_trace(q{Trying action},
10351             Parse::RecDescent::_tracefirst($text),
10352             q{DASHMATCH},
10353             $tracelevel)
10354             if defined $::RD_TRACE;
10355            
10356              
10357 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  0         0  
10358 0 0       0 unless (defined $_tok)
10359             {
10360 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
10361             if defined $::RD_TRACE;
10362 0         0 last;
10363             }
10364 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
10365             . $_tok . q{])},
10366             Parse::RecDescent::_tracefirst($text))
10367             if defined $::RD_TRACE;
10368 0         0 push @item, $_tok;
10369 0         0 $item{__ACTION1__}=$_tok;
10370            
10371              
10372              
10373 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['|=']<<},
10374             Parse::RecDescent::_tracefirst($text),
10375             q{DASHMATCH},
10376             $tracelevel)
10377             if defined $::RD_TRACE;
10378 0         0 $_matched = 1;
10379 0         0 last;
10380             }
10381              
10382              
10383 53 50 33     273 unless ( $_matched || defined($score) )
10384             {
10385            
10386              
10387 53         86 $_[1] = $text; # NOT SURE THIS IS NEEDED
10388 53 50       125 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
10389             Parse::RecDescent::_tracefirst($_[1]),
10390             q{DASHMATCH},
10391             $tracelevel)
10392             if defined $::RD_TRACE;
10393 53         417 return undef;
10394             }
10395 0 0 0     0 if (!defined($return) && defined($score))
10396             {
10397 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
10398             q{DASHMATCH},
10399             $tracelevel)
10400             if defined $::RD_TRACE;
10401 0         0 $return = $score_return;
10402             }
10403 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
10404 0 0       0 $return = $item[$#item] unless defined $return;
10405 0 0       0 if (defined $::RD_TRACE)
10406             {
10407 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
10408             $return . q{])}, "",
10409             q{DASHMATCH},
10410             $tracelevel);
10411 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
10412             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
10413             Parse::RecDescent::_tracefirst($text),
10414             , q{DASHMATCH},
10415             $tracelevel)
10416             }
10417 0         0 $_[1] = $text;
10418 0         0 return $return;
10419             }
10420              
10421             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
10422             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_nmchar
10423             {
10424 209     209   2765 my $thisparser = $_[0];
10425 1     1   6 use vars q{$tracelevel};
  1         3  
  1         875  
10426 209   50     546 local $tracelevel = ($tracelevel||0)+1;
10427 209         223 $ERRORS = 0;
10428 209         392 my $thisrule = $thisparser->{"rules"}{"macro_nmchar"};
10429            
10430 209 50       409 Parse::RecDescent::_trace(q{Trying rule: [macro_nmchar]},
10431             Parse::RecDescent::_tracefirst($_[1]),
10432             q{macro_nmchar},
10433             $tracelevel)
10434             if defined $::RD_TRACE;
10435              
10436            
10437 209         222 my $err_at = @{$thisparser->{errors}};
  209         575  
10438              
10439 209         265 my $score;
10440             my $score_return;
10441 0         0 my $_tok;
10442 209         246 my $return = undef;
10443 209         214 my $_matched=0;
10444 209         246 my $commit=0;
10445 209         354 my @item = ();
10446 209         348 my %item = ();
10447 209   33     746 my $repeating = defined($_[2]) && $_[2];
10448 209   33     533 my $_noactions = defined($_[3]) && $_[3];
10449 209 50       393 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  209         205  
  209         406  
10450 209 50       587 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
10451 209         214 my $text;
10452 209         248 my $lastsep="";
10453 209         214 my $current_match;
10454 209         692 my $expectation = new Parse::RecDescent::Expectation(q{/[a-z0-9-]/, or macro_nonascii, or macro_escape});
10455 209         1943 $expectation->at($_[1]);
10456            
10457 209         859 my $thisline;
10458 209         1001 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
10459              
10460            
10461              
10462 209   33     1861 while (!$_matched && !$commit)
10463             {
10464            
10465 209 50       506 Parse::RecDescent::_trace(q{Trying production: [/[a-z0-9-]/]},
10466             Parse::RecDescent::_tracefirst($_[1]),
10467             q{macro_nmchar},
10468             $tracelevel)
10469             if defined $::RD_TRACE;
10470 209         435 my $thisprod = $thisrule->{"prods"}[0];
10471 209         285 $text = $_[1];
10472 209         278 my $_savetext;
10473 209         361 @item = (q{macro_nmchar});
10474 209         395 %item = (__RULE__ => q{macro_nmchar});
10475 209         242 my $repcount = 0;
10476              
10477              
10478 209 50       417 Parse::RecDescent::_trace(q{Trying terminal: [/[a-z0-9-]/]}, Parse::RecDescent::_tracefirst($text),
10479             q{macro_nmchar},
10480             $tracelevel)
10481             if defined $::RD_TRACE;
10482 209         264 $lastsep = "";
10483 209         555 $expectation->is(q{})->at($text);
10484            
10485              
10486 209 50 66     2053 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:[a-z0-9-])/)
  209 100       1964  
10487             {
10488            
10489 69         200 $expectation->failed();
10490 69 50       342 Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10491             Parse::RecDescent::_tracefirst($text))
10492             if defined $::RD_TRACE;
10493              
10494 69         149 last;
10495             }
10496 140         712 $current_match = substr($text, $-[0], $+[0] - $-[0]);
10497 140         463 substr($text,0,length($current_match),q{});
10498 140 50       296 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10499             . $current_match . q{])},
10500             Parse::RecDescent::_tracefirst($text))
10501             if defined $::RD_TRACE;
10502 140         338 push @item, $item{__PATTERN1__}=$current_match;
10503            
10504              
10505 140 50       345 Parse::RecDescent::_trace(q{Trying action},
10506             Parse::RecDescent::_tracefirst($text),
10507             q{macro_nmchar},
10508             $tracelevel)
10509             if defined $::RD_TRACE;
10510            
10511              
10512 140 50       255 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  140         334  
10513 140 50       420 unless (defined $_tok)
10514             {
10515 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
10516             if defined $::RD_TRACE;
10517 0         0 last;
10518             }
10519 140 50       258 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
10520             . $_tok . q{])},
10521             Parse::RecDescent::_tracefirst($text))
10522             if defined $::RD_TRACE;
10523 140         338 push @item, $_tok;
10524 140         329 $item{__ACTION1__}=$_tok;
10525            
10526              
10527              
10528 140 50       247 Parse::RecDescent::_trace(q{>>Matched production: [/[a-z0-9-]/]<<},
10529             Parse::RecDescent::_tracefirst($text),
10530             q{macro_nmchar},
10531             $tracelevel)
10532             if defined $::RD_TRACE;
10533 140         169 $_matched = 1;
10534 140         259 last;
10535             }
10536              
10537              
10538 209   66     645 while (!$_matched && !$commit)
10539             {
10540            
10541 69 50       129 Parse::RecDescent::_trace(q{Trying production: [macro_nonascii]},
10542             Parse::RecDescent::_tracefirst($_[1]),
10543             q{macro_nmchar},
10544             $tracelevel)
10545             if defined $::RD_TRACE;
10546 69         170 my $thisprod = $thisrule->{"prods"}[1];
10547 69         137 $text = $_[1];
10548 69         97 my $_savetext;
10549 69         160 @item = (q{macro_nmchar});
10550 69         191 %item = (__RULE__ => q{macro_nmchar});
10551 69         94 my $repcount = 0;
10552              
10553              
10554 69 50       152 Parse::RecDescent::_trace(q{Trying subrule: [macro_nonascii]},
10555             Parse::RecDescent::_tracefirst($text),
10556             q{macro_nmchar},
10557             $tracelevel)
10558             if defined $::RD_TRACE;
10559 1     1   6 if (1) { no strict qw{refs};
  1         2  
  1         492  
  69         90  
10560 69         189 $expectation->is(q{})->at($text);
10561 69 50   69   796 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_nonascii($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  69         166  
10562             {
10563            
10564 69 50       170 Parse::RecDescent::_trace(q{<<Didn't match subrule: [macro_nonascii]>>},
10565             Parse::RecDescent::_tracefirst($text),
10566             q{macro_nmchar},
10567             $tracelevel)
10568             if defined $::RD_TRACE;
10569 69         180 $expectation->failed();
10570 69         250 last;
10571             }
10572 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [macro_nonascii]<< (return value: [}
10573             . $_tok . q{]},
10574            
10575             Parse::RecDescent::_tracefirst($text),
10576             q{macro_nmchar},
10577             $tracelevel)
10578             if defined $::RD_TRACE;
10579 0         0 $item{q{macro_nonascii}} = $_tok;
10580 0         0 push @item, $_tok;
10581            
10582             }
10583              
10584 0 0       0 Parse::RecDescent::_trace(q{Trying action},
10585             Parse::RecDescent::_tracefirst($text),
10586             q{macro_nmchar},
10587             $tracelevel)
10588             if defined $::RD_TRACE;
10589            
10590              
10591 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  0         0  
10592 0 0       0 unless (defined $_tok)
10593             {
10594 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
10595             if defined $::RD_TRACE;
10596 0         0 last;
10597             }
10598 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
10599             . $_tok . q{])},
10600             Parse::RecDescent::_tracefirst($text))
10601             if defined $::RD_TRACE;
10602 0         0 push @item, $_tok;
10603 0         0 $item{__ACTION1__}=$_tok;
10604            
10605              
10606              
10607 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [macro_nonascii]<<},
10608             Parse::RecDescent::_tracefirst($text),
10609             q{macro_nmchar},
10610             $tracelevel)
10611             if defined $::RD_TRACE;
10612 0         0 $_matched = 1;
10613 0         0 last;
10614             }
10615              
10616              
10617 209   66     696 while (!$_matched && !$commit)
10618             {
10619            
10620 69 50       174 Parse::RecDescent::_trace(q{Trying production: [macro_escape]},
10621             Parse::RecDescent::_tracefirst($_[1]),
10622             q{macro_nmchar},
10623             $tracelevel)
10624             if defined $::RD_TRACE;
10625 69         157 my $thisprod = $thisrule->{"prods"}[2];
10626 69         116 $text = $_[1];
10627 69         111 my $_savetext;
10628 69         190 @item = (q{macro_nmchar});
10629 69         207 %item = (__RULE__ => q{macro_nmchar});
10630 69         100 my $repcount = 0;
10631              
10632              
10633 69 50       181 Parse::RecDescent::_trace(q{Trying subrule: [macro_escape]},
10634             Parse::RecDescent::_tracefirst($text),
10635             q{macro_nmchar},
10636             $tracelevel)
10637             if defined $::RD_TRACE;
10638 1     1   5 if (1) { no strict qw{refs};
  1         2  
  1         774  
  69         82  
10639 69         236 $expectation->is(q{})->at($text);
10640 69 50   69   760 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_escape($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  69         152  
10641             {
10642            
10643 69 50       152 Parse::RecDescent::_trace(q{<<Didn't match subrule: [macro_escape]>>},
10644             Parse::RecDescent::_tracefirst($text),
10645             q{macro_nmchar},
10646             $tracelevel)
10647             if defined $::RD_TRACE;
10648 69         195 $expectation->failed();
10649 69         257 last;
10650             }
10651 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [macro_escape]<< (return value: [}
10652             . $_tok . q{]},
10653            
10654             Parse::RecDescent::_tracefirst($text),
10655             q{macro_nmchar},
10656             $tracelevel)
10657             if defined $::RD_TRACE;
10658 0         0 $item{q{macro_escape}} = $_tok;
10659 0         0 push @item, $_tok;
10660            
10661             }
10662              
10663 0 0       0 Parse::RecDescent::_trace(q{Trying action},
10664             Parse::RecDescent::_tracefirst($text),
10665             q{macro_nmchar},
10666             $tracelevel)
10667             if defined $::RD_TRACE;
10668            
10669              
10670 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  0         0  
10671 0 0       0 unless (defined $_tok)
10672             {
10673 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
10674             if defined $::RD_TRACE;
10675 0         0 last;
10676             }
10677 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
10678             . $_tok . q{])},
10679             Parse::RecDescent::_tracefirst($text))
10680             if defined $::RD_TRACE;
10681 0         0 push @item, $_tok;
10682 0         0 $item{__ACTION1__}=$_tok;
10683            
10684              
10685              
10686 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [macro_escape]<<},
10687             Parse::RecDescent::_tracefirst($text),
10688             q{macro_nmchar},
10689             $tracelevel)
10690             if defined $::RD_TRACE;
10691 0         0 $_matched = 1;
10692 0         0 last;
10693             }
10694              
10695              
10696 209 100 66     796 unless ( $_matched || defined($score) )
10697             {
10698            
10699              
10700 69         110 $_[1] = $text; # NOT SURE THIS IS NEEDED
10701 69 50       132 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
10702             Parse::RecDescent::_tracefirst($_[1]),
10703             q{macro_nmchar},
10704             $tracelevel)
10705             if defined $::RD_TRACE;
10706 69         449 return undef;
10707             }
10708 140 50 33     326 if (!defined($return) && defined($score))
10709             {
10710 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
10711             q{macro_nmchar},
10712             $tracelevel)
10713             if defined $::RD_TRACE;
10714 0         0 $return = $score_return;
10715             }
10716 140         165 splice @{$thisparser->{errors}}, $err_at;
  140         11337  
10717 140 50       322 $return = $item[$#item] unless defined $return;
10718 140 50       259 if (defined $::RD_TRACE)
10719             {
10720 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
10721             $return . q{])}, "",
10722             q{macro_nmchar},
10723             $tracelevel);
10724 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
10725             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
10726             Parse::RecDescent::_tracefirst($text),
10727             , q{macro_nmchar},
10728             $tracelevel)
10729             }
10730 140         214 $_[1] = $text;
10731 140         1108 return $return;
10732             }
10733              
10734             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
10735             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::ruleset
10736             {
10737 17     17   32 my $thisparser = $_[0];
10738 1     1   6 use vars q{$tracelevel};
  1         2  
  1         2945  
10739 17   50     80 local $tracelevel = ($tracelevel||0)+1;
10740 17         31 $ERRORS = 0;
10741 17         45 my $thisrule = $thisparser->{"rules"}{"ruleset"};
10742            
10743 17 50       45 Parse::RecDescent::_trace(q{Trying rule: [ruleset]},
10744             Parse::RecDescent::_tracefirst($_[1]),
10745             q{ruleset},
10746             $tracelevel)
10747             if defined $::RD_TRACE;
10748              
10749            
10750 17         32 my $err_at = @{$thisparser->{errors}};
  17         34  
10751              
10752 17         38 my $score;
10753             my $score_return;
10754 0         0 my $_tok;
10755 17         27 my $return = undef;
10756 17         24 my $_matched=0;
10757 17         26 my $commit=0;
10758 17         28 my @item = ();
10759 17         42 my %item = ();
10760 17   33     62 my $repeating = defined($_[2]) && $_[2];
10761 17   33     69 my $_noactions = defined($_[3]) && $_[3];
10762 17 50       60 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  17         26  
  17         43  
10763 17 50       62 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
10764 17         20 my $text;
10765 17         33 my $lastsep="";
10766 17         28 my $current_match;
10767 17         70 my $expectation = new Parse::RecDescent::Expectation(q{selector});
10768 17         139 $expectation->at($_[1]);
10769            
10770 17         75 my $thisline;
10771 17         63 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
10772              
10773 17         193 local $ruleset = new CSS::Style();;
10774              
10775              
10776 17   33     87 while (!$_matched && !$commit)
10777             {
10778            
10779 17 50       43 Parse::RecDescent::_trace(q{Trying production: [selector '\{' WS declaration ';' '\}' WS]},
10780             Parse::RecDescent::_tracefirst($_[1]),
10781             q{ruleset},
10782             $tracelevel)
10783             if defined $::RD_TRACE;
10784 17         46 my $thisprod = $thisrule->{"prods"}[0];
10785 17         24 $text = $_[1];
10786 17         19 my $_savetext;
10787 17         36 @item = (q{ruleset});
10788 17         47 %item = (__RULE__ => q{ruleset});
10789 17         28 my $repcount = 0;
10790              
10791              
10792 17 50       47 Parse::RecDescent::_trace(q{Trying repeated subrule: [selector]},
10793             Parse::RecDescent::_tracefirst($text),
10794             q{ruleset},
10795             $tracelevel)
10796             if defined $::RD_TRACE;
10797 17         47 $expectation->is(q{})->at($text);
10798            
10799 17 50   17   209 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::CSS::Parse::CompiledGrammar::selector, 0, 1, $_noactions,$expectation,sub { \@arg })))
  17         36  
10800             {
10801 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [selector]>>},
10802             Parse::RecDescent::_tracefirst($text),
10803             q{ruleset},
10804             $tracelevel)
10805             if defined $::RD_TRACE;
10806 0         0 last;
10807             }
10808 17 50       343 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [selector]<< (}
10809             . @$_tok . q{ times)},
10810            
10811             Parse::RecDescent::_tracefirst($text),
10812             q{ruleset},
10813             $tracelevel)
10814             if defined $::RD_TRACE;
10815 17         65 $item{q{selector(?)}} = $_tok;
10816 17         32 push @item, $_tok;
10817            
10818              
10819              
10820 17 50       54 Parse::RecDescent::_trace(q{Trying terminal: ['\{']},
10821             Parse::RecDescent::_tracefirst($text),
10822             q{ruleset},
10823             $tracelevel)
10824             if defined $::RD_TRACE;
10825 17         38 $lastsep = "";
10826 17         58 $expectation->is(q{'\{'})->at($text);
10827            
10828              
10829 17 50 66     237 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\{/)
  17 100       201  
10830             {
10831            
10832 3         12 $expectation->failed();
10833 3 50       38 Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
10834             Parse::RecDescent::_tracefirst($text))
10835             if defined $::RD_TRACE;
10836 3         10 last;
10837             }
10838 14         109 $current_match = substr($text, $-[0], $+[0] - $-[0]);
10839 14         82 substr($text,0,length($current_match),q{});
10840 14 50       40 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10841             . $current_match . q{])},
10842             Parse::RecDescent::_tracefirst($text))
10843             if defined $::RD_TRACE;
10844 14         58 push @item, $item{__STRING1__}=$current_match;
10845            
10846              
10847 14 50       34 Parse::RecDescent::_trace(q{Trying repeated subrule: [WS]},
10848             Parse::RecDescent::_tracefirst($text),
10849             q{ruleset},
10850             $tracelevel)
10851             if defined $::RD_TRACE;
10852 14         53 $expectation->is(q{WS})->at($text);
10853            
10854 14 50   28   200 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::CSS::Parse::CompiledGrammar::WS, 0, 100000000, $_noactions,$expectation,sub { \@arg })))
  28         63  
10855             {
10856 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [WS]>>},
10857             Parse::RecDescent::_tracefirst($text),
10858             q{ruleset},
10859             $tracelevel)
10860             if defined $::RD_TRACE;
10861 0         0 last;
10862             }
10863 14 50       189 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [WS]<< (}
10864             . @$_tok . q{ times)},
10865            
10866             Parse::RecDescent::_tracefirst($text),
10867             q{ruleset},
10868             $tracelevel)
10869             if defined $::RD_TRACE;
10870 14         37 $item{q{WS(s?)}} = $_tok;
10871 14         24 push @item, $_tok;
10872            
10873              
10874              
10875 14 50       32 Parse::RecDescent::_trace(q{Trying repeated subrule: [declaration]},
10876             Parse::RecDescent::_tracefirst($text),
10877             q{ruleset},
10878             $tracelevel)
10879             if defined $::RD_TRACE;
10880 14         43 $expectation->is(q{declaration})->at($text);
10881            
10882 14 50   14   163 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::CSS::Parse::CompiledGrammar::declaration, 0, 1, $_noactions,$expectation,sub { \@arg })))
  14         35  
10883             {
10884 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [declaration]>>},
10885             Parse::RecDescent::_tracefirst($text),
10886             q{ruleset},
10887             $tracelevel)
10888             if defined $::RD_TRACE;
10889 0         0 last;
10890             }
10891 14 50       321 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [declaration]<< (}
10892             . @$_tok . q{ times)},
10893            
10894             Parse::RecDescent::_tracefirst($text),
10895             q{ruleset},
10896             $tracelevel)
10897             if defined $::RD_TRACE;
10898 14         38 $item{q{declaration(?)}} = $_tok;
10899 14         24 push @item, $_tok;
10900            
10901              
10902              
10903 14 50       31 Parse::RecDescent::_trace(q{Trying repeated subrule: [';']},
10904             Parse::RecDescent::_tracefirst($text),
10905             q{ruleset},
10906             $tracelevel)
10907             if defined $::RD_TRACE;
10908 14         49 $expectation->is(q{';'})->at($text);
10909            
10910 14 50   33   211 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::CSS::Parse::CompiledGrammar::_alternation_1_of_production_1_of_rule_ruleset, 0, 100000000, $_noactions,$expectation,sub { \@arg })))
  33         149  
10911             {
10912 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [';']>>},
10913             Parse::RecDescent::_tracefirst($text),
10914             q{ruleset},
10915             $tracelevel)
10916             if defined $::RD_TRACE;
10917 0         0 last;
10918             }
10919 14 50       198 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_ruleset]<< (}
10920             . @$_tok . q{ times)},
10921            
10922             Parse::RecDescent::_tracefirst($text),
10923             q{ruleset},
10924             $tracelevel)
10925             if defined $::RD_TRACE;
10926 14         52 $item{q{_alternation_1_of_production_1_of_rule_ruleset(s?)}} = $_tok;
10927 14         25 push @item, $_tok;
10928            
10929              
10930              
10931 14 50       40 Parse::RecDescent::_trace(q{Trying terminal: ['\}']},
10932             Parse::RecDescent::_tracefirst($text),
10933             q{ruleset},
10934             $tracelevel)
10935             if defined $::RD_TRACE;
10936 14         21 $lastsep = "";
10937 14         48 $expectation->is(q{'\}'})->at($text);
10938            
10939              
10940 14 50 33     210 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\}/)
  14 50       257  
10941             {
10942            
10943 0         0 $expectation->failed();
10944 0 0       0 Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
10945             Parse::RecDescent::_tracefirst($text))
10946             if defined $::RD_TRACE;
10947 0         0 last;
10948             }
10949 14         88 $current_match = substr($text, $-[0], $+[0] - $-[0]);
10950 14         45 substr($text,0,length($current_match),q{});
10951 14 50       34 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10952             . $current_match . q{])},
10953             Parse::RecDescent::_tracefirst($text))
10954             if defined $::RD_TRACE;
10955 14         45 push @item, $item{__STRING2__}=$current_match;
10956            
10957              
10958 14 50       29 Parse::RecDescent::_trace(q{Trying repeated subrule: [WS]},
10959             Parse::RecDescent::_tracefirst($text),
10960             q{ruleset},
10961             $tracelevel)
10962             if defined $::RD_TRACE;
10963 14         44 $expectation->is(q{WS})->at($text);
10964            
10965 14 50   28   174 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::CSS::Parse::CompiledGrammar::WS, 0, 100000000, $_noactions,$expectation,sub { \@arg })))
  28         62  
10966             {
10967 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [WS]>>},
10968             Parse::RecDescent::_tracefirst($text),
10969             q{ruleset},
10970             $tracelevel)
10971             if defined $::RD_TRACE;
10972 0         0 last;
10973             }
10974 14 50       196 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [WS]<< (}
10975             . @$_tok . q{ times)},
10976            
10977             Parse::RecDescent::_tracefirst($text),
10978             q{ruleset},
10979             $tracelevel)
10980             if defined $::RD_TRACE;
10981 14         37 $item{q{WS(s?)}} = $_tok;
10982 14         21 push @item, $_tok;
10983            
10984              
10985              
10986 14 50       30 Parse::RecDescent::_trace(q{Trying action},
10987             Parse::RecDescent::_tracefirst($text),
10988             q{ruleset},
10989             $tracelevel)
10990             if defined $::RD_TRACE;
10991            
10992              
10993 14 50       46 $_tok = ($_noactions) ? 0 : do {push @{$all_rulesets}, $ruleset; 1;};
  14         17  
  14         38  
  14         30  
10994 14 50       38 unless (defined $_tok)
10995             {
10996 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
10997             if defined $::RD_TRACE;
10998 0         0 last;
10999             }
11000 14 50       28 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
11001             . $_tok . q{])},
11002             Parse::RecDescent::_tracefirst($text))
11003             if defined $::RD_TRACE;
11004 14         23 push @item, $_tok;
11005 14         29 $item{__ACTION1__}=$_tok;
11006            
11007              
11008              
11009 14 50       30 Parse::RecDescent::_trace(q{>>Matched production: [selector '\{' WS declaration ';' '\}' WS]<<},
11010             Parse::RecDescent::_tracefirst($text),
11011             q{ruleset},
11012             $tracelevel)
11013             if defined $::RD_TRACE;
11014 14         25 $_matched = 1;
11015 14         37 last;
11016             }
11017              
11018              
11019 17   66     55 while (!$_matched && !$commit)
11020             {
11021            
11022 3 50       10 Parse::RecDescent::_trace(q{Trying production: [<rulevar: local $ruleset = new CSS::Style();>]},
11023             Parse::RecDescent::_tracefirst($_[1]),
11024             q{ruleset},
11025             $tracelevel)
11026             if defined $::RD_TRACE;
11027 3         12 my $thisprod = $thisrule->{"prods"}[1];
11028 3         9 $text = $_[1];
11029 3         6 my $_savetext;
11030 3         12 @item = (q{ruleset});
11031 3         12 %item = (__RULE__ => q{ruleset});
11032 3         6 my $repcount = 0;
11033              
11034              
11035 3 50       9 Parse::RecDescent::_trace(q{>>Rejecting production<< (found <rulevar: local $ruleset = new CSS::Style();>)},
11036             Parse::RecDescent::_tracefirst($text),
11037             q{ruleset},
11038             $tracelevel)
11039             if defined $::RD_TRACE;
11040 3         7 undef $return;
11041            
11042              
11043 3         5 $_tok = undef;
11044            
11045 3 50       10 last unless defined $_tok;
11046              
11047 0 0       0 Parse::RecDescent::_trace(q{Trying action},
11048             Parse::RecDescent::_tracefirst($text),
11049             q{ruleset},
11050             $tracelevel)
11051             if defined $::RD_TRACE;
11052            
11053              
11054 0 0       0 $_tok = ($_noactions) ? 0 : do { print "token: ".shift @item; print " : @item\n" };
  0         0  
  0         0  
11055 0 0       0 unless (defined $_tok)
11056             {
11057 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
11058             if defined $::RD_TRACE;
11059 0         0 last;
11060             }
11061 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
11062             . $_tok . q{])},
11063             Parse::RecDescent::_tracefirst($text))
11064             if defined $::RD_TRACE;
11065 0         0 push @item, $_tok;
11066            
11067            
11068              
11069              
11070 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [<rulevar: local $ruleset = new CSS::Style();>]<<},
11071             Parse::RecDescent::_tracefirst($text),
11072             q{ruleset},
11073             $tracelevel)
11074             if defined $::RD_TRACE;
11075 0         0 $_matched = 1;
11076 0         0 last;
11077             }
11078              
11079              
11080 17 100 66     59 unless ( $_matched || defined($score) )
11081             {
11082            
11083              
11084 3         5 $_[1] = $text; # NOT SURE THIS IS NEEDED
11085 3 50       10 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
11086             Parse::RecDescent::_tracefirst($_[1]),
11087             q{ruleset},
11088             $tracelevel)
11089             if defined $::RD_TRACE;
11090 3         52 return undef;
11091             }
11092 14 50 33     80 if (!defined($return) && defined($score))
11093             {
11094 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
11095             q{ruleset},
11096             $tracelevel)
11097             if defined $::RD_TRACE;
11098 0         0 $return = $score_return;
11099             }
11100 14         20 splice @{$thisparser->{errors}}, $err_at;
  14         36  
11101 14 50       39 $return = $item[$#item] unless defined $return;
11102 14 50       47 if (defined $::RD_TRACE)
11103             {
11104 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
11105             $return . q{])}, "",
11106             q{ruleset},
11107             $tracelevel);
11108 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
11109             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
11110             Parse::RecDescent::_tracefirst($text),
11111             , q{ruleset},
11112             $tracelevel)
11113             }
11114 14         33 $_[1] = $text;
11115 14         226 return $return;
11116             }
11117              
11118             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
11119             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::DELIM
11120             {
11121 53     53   93 my $thisparser = $_[0];
11122 1     1   9 use vars q{$tracelevel};
  1         2  
  1         1110  
11123 53   50     174 local $tracelevel = ($tracelevel||0)+1;
11124 53         75 $ERRORS = 0;
11125 53         172 my $thisrule = $thisparser->{"rules"}{"DELIM"};
11126            
11127 53 50       123 Parse::RecDescent::_trace(q{Trying rule: [DELIM]},
11128             Parse::RecDescent::_tracefirst($_[1]),
11129             q{DELIM},
11130             $tracelevel)
11131             if defined $::RD_TRACE;
11132              
11133            
11134 53         65 my $err_at = @{$thisparser->{errors}};
  53         113  
11135              
11136 53         180 my $score;
11137             my $score_return;
11138 0         0 my $_tok;
11139 53         98 my $return = undef;
11140 53         60 my $_matched=0;
11141 53         93 my $commit=0;
11142 53         120 my @item = ();
11143 53         103 my %item = ();
11144 53   33     156 my $repeating = defined($_[2]) && $_[2];
11145 53   33     229 my $_noactions = defined($_[3]) && $_[3];
11146 53 50       123 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  53         73  
  53         98  
11147 53 50       160 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
11148 53         65 my $text;
11149 53         72 my $lastsep="";
11150 53         53 my $current_match;
11151 53         193 my $expectation = new Parse::RecDescent::Expectation(q{/[^0-9a-zA-Z\\\{\\\}\\(\\)\\[\\];]/});
11152 53         462 $expectation->at($_[1]);
11153            
11154 53         214 my $thisline;
11155 53         248 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
11156              
11157            
11158              
11159 53   33     556 while (!$_matched && !$commit)
11160             {
11161            
11162 53 50       126 Parse::RecDescent::_trace(q{Trying production: [/[^0-9a-zA-Z\\\{\\\}\\(\\)\\[\\];]/]},
11163             Parse::RecDescent::_tracefirst($_[1]),
11164             q{DELIM},
11165             $tracelevel)
11166             if defined $::RD_TRACE;
11167 53         148 my $thisprod = $thisrule->{"prods"}[0];
11168 53         75 $text = $_[1];
11169 53         63 my $_savetext;
11170 53         107 @item = (q{DELIM});
11171 53         120 %item = (__RULE__ => q{DELIM});
11172 53         65 my $repcount = 0;
11173              
11174              
11175 53 50       143 Parse::RecDescent::_trace(q{Trying terminal: [/[^0-9a-zA-Z\\\{\\\}\\(\\)\\[\\];]/]}, Parse::RecDescent::_tracefirst($text),
11176             q{DELIM},
11177             $tracelevel)
11178             if defined $::RD_TRACE;
11179 53         96 $lastsep = "";
11180 53         133 $expectation->is(q{})->at($text);
11181            
11182              
11183 53 50 66     575 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:[^0-9a-zA-Z\{\}\(\)\[\];])/)
  53 100       532  
11184             {
11185            
11186 37         139 $expectation->failed();
11187 37 50       193 Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
11188             Parse::RecDescent::_tracefirst($text))
11189             if defined $::RD_TRACE;
11190              
11191 37         87 last;
11192             }
11193 16         116 $current_match = substr($text, $-[0], $+[0] - $-[0]);
11194 16         67 substr($text,0,length($current_match),q{});
11195 16 50       47 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11196             . $current_match . q{])},
11197             Parse::RecDescent::_tracefirst($text))
11198             if defined $::RD_TRACE;
11199 16         58 push @item, $item{__PATTERN1__}=$current_match;
11200            
11201              
11202 16 50       38 Parse::RecDescent::_trace(q{Trying action},
11203             Parse::RecDescent::_tracefirst($text),
11204             q{DELIM},
11205             $tracelevel)
11206             if defined $::RD_TRACE;
11207            
11208              
11209 16 50       31 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  16         49  
11210 16 50       58 unless (defined $_tok)
11211             {
11212 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
11213             if defined $::RD_TRACE;
11214 0         0 last;
11215             }
11216 16 50       33 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
11217             . $_tok . q{])},
11218             Parse::RecDescent::_tracefirst($text))
11219             if defined $::RD_TRACE;
11220 16         29 push @item, $_tok;
11221 16         42 $item{__ACTION1__}=$_tok;
11222            
11223              
11224              
11225 16 50       35 Parse::RecDescent::_trace(q{>>Matched production: [/[^0-9a-zA-Z\\\{\\\}\\(\\)\\[\\];]/]<<},
11226             Parse::RecDescent::_tracefirst($text),
11227             q{DELIM},
11228             $tracelevel)
11229             if defined $::RD_TRACE;
11230 16         22 $_matched = 1;
11231 16         36 last;
11232             }
11233              
11234              
11235 53 100 66     265 unless ( $_matched || defined($score) )
11236             {
11237            
11238              
11239 37         75 $_[1] = $text; # NOT SURE THIS IS NEEDED
11240 37 50       94 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
11241             Parse::RecDescent::_tracefirst($_[1]),
11242             q{DELIM},
11243             $tracelevel)
11244             if defined $::RD_TRACE;
11245 37         320 return undef;
11246             }
11247 16 50 33     41 if (!defined($return) && defined($score))
11248             {
11249 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
11250             q{DELIM},
11251             $tracelevel)
11252             if defined $::RD_TRACE;
11253 0         0 $return = $score_return;
11254             }
11255 16         17 splice @{$thisparser->{errors}}, $err_at;
  16         48  
11256 16 50       37 $return = $item[$#item] unless defined $return;
11257 16 50       39 if (defined $::RD_TRACE)
11258             {
11259 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
11260             $return . q{])}, "",
11261             q{DELIM},
11262             $tracelevel);
11263 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
11264             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
11265             Parse::RecDescent::_tracefirst($text),
11266             , q{DELIM},
11267             $tracelevel)
11268             }
11269 16         38 $_[1] = $text;
11270 16         143 return $return;
11271             }
11272              
11273             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
11274             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::PERCENTAGE
11275             {
11276 55     55   96 my $thisparser = $_[0];
11277 1     1   7 use vars q{$tracelevel};
  1         2  
  1         408  
11278 55   50     200 local $tracelevel = ($tracelevel||0)+1;
11279 55         85 $ERRORS = 0;
11280 55         138 my $thisrule = $thisparser->{"rules"}{"PERCENTAGE"};
11281            
11282 55 50       134 Parse::RecDescent::_trace(q{Trying rule: [PERCENTAGE]},
11283             Parse::RecDescent::_tracefirst($_[1]),
11284             q{PERCENTAGE},
11285             $tracelevel)
11286             if defined $::RD_TRACE;
11287              
11288            
11289 55         77 my $err_at = @{$thisparser->{errors}};
  55         124  
11290              
11291 55         95 my $score;
11292             my $score_return;
11293 0         0 my $_tok;
11294 55         75 my $return = undef;
11295 55         65 my $_matched=0;
11296 55         65 my $commit=0;
11297 55         95 my @item = ();
11298 55         84 my %item = ();
11299 55   33     198 my $repeating = defined($_[2]) && $_[2];
11300 55   33     174 my $_noactions = defined($_[3]) && $_[3];
11301 55 50       165 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  55         59  
  55         151  
11302 55 50       186 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
11303 55         64 my $text;
11304 55         92 my $lastsep="";
11305 55         74 my $current_match;
11306 55         190 my $expectation = new Parse::RecDescent::Expectation(q{macro_num});
11307 55         457 $expectation->at($_[1]);
11308            
11309 55         212 my $thisline;
11310 55         366 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
11311              
11312            
11313              
11314 55   33     567 while (!$_matched && !$commit)
11315             {
11316            
11317 55 50       133 Parse::RecDescent::_trace(q{Trying production: [macro_num '%']},
11318             Parse::RecDescent::_tracefirst($_[1]),
11319             q{PERCENTAGE},
11320             $tracelevel)
11321             if defined $::RD_TRACE;
11322 55         277 my $thisprod = $thisrule->{"prods"}[0];
11323 55         91 $text = $_[1];
11324 55         66 my $_savetext;
11325 55         111 @item = (q{PERCENTAGE});
11326 55         143 %item = (__RULE__ => q{PERCENTAGE});
11327 55         122 my $repcount = 0;
11328              
11329              
11330 55 50       121 Parse::RecDescent::_trace(q{Trying subrule: [macro_num]},
11331             Parse::RecDescent::_tracefirst($text),
11332             q{PERCENTAGE},
11333             $tracelevel)
11334             if defined $::RD_TRACE;
11335 1     1   7 if (1) { no strict qw{refs};
  1         8  
  1         999  
  55         66  
11336 55         165 $expectation->is(q{})->at($text);
11337 55 50   55   681 unless (defined ($_tok = Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_num($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  55         263  
11338             {
11339            
11340 55 50       125 Parse::RecDescent::_trace(q{<<Didn't match subrule: [macro_num]>>},
11341             Parse::RecDescent::_tracefirst($text),
11342             q{PERCENTAGE},
11343             $tracelevel)
11344             if defined $::RD_TRACE;
11345 55         148 $expectation->failed();
11346 55         234 last;
11347             }
11348 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [macro_num]<< (return value: [}
11349             . $_tok . q{]},
11350            
11351             Parse::RecDescent::_tracefirst($text),
11352             q{PERCENTAGE},
11353             $tracelevel)
11354             if defined $::RD_TRACE;
11355 0         0 $item{q{macro_num}} = $_tok;
11356 0         0 push @item, $_tok;
11357            
11358             }
11359              
11360 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['%']},
11361             Parse::RecDescent::_tracefirst($text),
11362             q{PERCENTAGE},
11363             $tracelevel)
11364             if defined $::RD_TRACE;
11365 0         0 $lastsep = "";
11366 0         0 $expectation->is(q{'%'})->at($text);
11367            
11368              
11369 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\%/)
  0 0       0  
11370             {
11371            
11372 0         0 $expectation->failed();
11373 0 0       0 Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
11374             Parse::RecDescent::_tracefirst($text))
11375             if defined $::RD_TRACE;
11376 0         0 last;
11377             }
11378 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
11379 0         0 substr($text,0,length($current_match),q{});
11380 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11381             . $current_match . q{])},
11382             Parse::RecDescent::_tracefirst($text))
11383             if defined $::RD_TRACE;
11384 0         0 push @item, $item{__STRING1__}=$current_match;
11385            
11386              
11387 0 0       0 Parse::RecDescent::_trace(q{Trying action},
11388             Parse::RecDescent::_tracefirst($text),
11389             q{PERCENTAGE},
11390             $tracelevel)
11391             if defined $::RD_TRACE;
11392            
11393              
11394 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1].'&'};
  0         0  
11395 0 0       0 unless (defined $_tok)
11396             {
11397 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
11398             if defined $::RD_TRACE;
11399 0         0 last;
11400             }
11401 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
11402             . $_tok . q{])},
11403             Parse::RecDescent::_tracefirst($text))
11404             if defined $::RD_TRACE;
11405 0         0 push @item, $_tok;
11406 0         0 $item{__ACTION1__}=$_tok;
11407            
11408              
11409              
11410 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [macro_num '%']<<},
11411             Parse::RecDescent::_tracefirst($text),
11412             q{PERCENTAGE},
11413             $tracelevel)
11414             if defined $::RD_TRACE;
11415 0         0 $_matched = 1;
11416 0         0 last;
11417             }
11418              
11419              
11420 55 50 33     330 unless ( $_matched || defined($score) )
11421             {
11422            
11423              
11424 55         102 $_[1] = $text; # NOT SURE THIS IS NEEDED
11425 55 50       151 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
11426             Parse::RecDescent::_tracefirst($_[1]),
11427             q{PERCENTAGE},
11428             $tracelevel)
11429             if defined $::RD_TRACE;
11430 55         391 return undef;
11431             }
11432 0 0 0     0 if (!defined($return) && defined($score))
11433             {
11434 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
11435             q{PERCENTAGE},
11436             $tracelevel)
11437             if defined $::RD_TRACE;
11438 0         0 $return = $score_return;
11439             }
11440 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
11441 0 0       0 $return = $item[$#item] unless defined $return;
11442 0 0       0 if (defined $::RD_TRACE)
11443             {
11444 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
11445             $return . q{])}, "",
11446             q{PERCENTAGE},
11447             $tracelevel);
11448 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
11449             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
11450             Parse::RecDescent::_tracefirst($text),
11451             , q{PERCENTAGE},
11452             $tracelevel)
11453             }
11454 0         0 $_[1] = $text;
11455 0         0 return $return;
11456             }
11457              
11458             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
11459             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::block
11460             {
11461 20     20   47 my $thisparser = $_[0];
11462 1     1   7 use vars q{$tracelevel};
  1         2  
  1         1548  
11463 20   50     71 local $tracelevel = ($tracelevel||0)+1;
11464 20         23 $ERRORS = 0;
11465 20         52 my $thisrule = $thisparser->{"rules"}{"block"};
11466            
11467 20 50       62 Parse::RecDescent::_trace(q{Trying rule: [block]},
11468             Parse::RecDescent::_tracefirst($_[1]),
11469             q{block},
11470             $tracelevel)
11471             if defined $::RD_TRACE;
11472              
11473            
11474 20         24 my $err_at = @{$thisparser->{errors}};
  20         61  
11475              
11476 20         40 my $score;
11477             my $score_return;
11478 0         0 my $_tok;
11479 20         23 my $return = undef;
11480 20         28 my $_matched=0;
11481 20         49 my $commit=0;
11482 20         42 my @item = ();
11483 20         42 my %item = ();
11484 20   33     94 my $repeating = defined($_[2]) && $_[2];
11485 20   33     85 my $_noactions = defined($_[3]) && $_[3];
11486 20 50       44 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  20         25  
  20         41  
11487 20 50       63 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
11488 20         25 my $text;
11489 20         50 my $lastsep="";
11490 20         23 my $current_match;
11491 20         73 my $expectation = new Parse::RecDescent::Expectation(q{'\{'});
11492 20         156 $expectation->at($_[1]);
11493            
11494 20         86 my $thisline;
11495 20         92 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
11496              
11497            
11498              
11499 20   33     209 while (!$_matched && !$commit)
11500             {
11501            
11502 20 50       65 Parse::RecDescent::_trace(q{Trying production: ['\{' WS any, or block, or ATKEYWORD, or ';' '\}' WS]},
11503             Parse::RecDescent::_tracefirst($_[1]),
11504             q{block},
11505             $tracelevel)
11506             if defined $::RD_TRACE;
11507 20         63 my $thisprod = $thisrule->{"prods"}[0];
11508 20         44 $text = $_[1];
11509 20         22 my $_savetext;
11510 20         51 @item = (q{block});
11511 20         43 %item = (__RULE__ => q{block});
11512 20         29 my $repcount = 0;
11513              
11514              
11515 20 50       47 Parse::RecDescent::_trace(q{Trying terminal: ['\{']},
11516             Parse::RecDescent::_tracefirst($text),
11517             q{block},
11518             $tracelevel)
11519             if defined $::RD_TRACE;
11520 20         34 $lastsep = "";
11521 20         57 $expectation->is(q{})->at($text);
11522            
11523              
11524 20 50 33     300 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\{/)
  20 50       214  
11525             {
11526            
11527 20         72 $expectation->failed();
11528 20 50       95 Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
11529             Parse::RecDescent::_tracefirst($text))
11530             if defined $::RD_TRACE;
11531 20         47 last;
11532             }
11533 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
11534 0         0 substr($text,0,length($current_match),q{});
11535 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11536             . $current_match . q{])},
11537             Parse::RecDescent::_tracefirst($text))
11538             if defined $::RD_TRACE;
11539 0         0 push @item, $item{__STRING1__}=$current_match;
11540            
11541              
11542 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [WS]},
11543             Parse::RecDescent::_tracefirst($text),
11544             q{block},
11545             $tracelevel)
11546             if defined $::RD_TRACE;
11547 0         0 $expectation->is(q{WS})->at($text);
11548            
11549 0 0   0   0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::CSS::Parse::CompiledGrammar::WS, 0, 100000000, $_noactions,$expectation,sub { \@arg })))
  0         0  
11550             {
11551 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [WS]>>},
11552             Parse::RecDescent::_tracefirst($text),
11553             q{block},
11554             $tracelevel)
11555             if defined $::RD_TRACE;
11556 0         0 last;
11557             }
11558 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [WS]<< (}
11559             . @$_tok . q{ times)},
11560            
11561             Parse::RecDescent::_tracefirst($text),
11562             q{block},
11563             $tracelevel)
11564             if defined $::RD_TRACE;
11565 0         0 $item{q{WS(s?)}} = $_tok;
11566 0         0 push @item, $_tok;
11567            
11568              
11569              
11570 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [any, or block, or ATKEYWORD, or ';']},
11571             Parse::RecDescent::_tracefirst($text),
11572             q{block},
11573             $tracelevel)
11574             if defined $::RD_TRACE;
11575 0         0 $expectation->is(q{any, or block, or ATKEYWORD, or ';'})->at($text);
11576            
11577 0 0   0   0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::CSS::Parse::CompiledGrammar::_alternation_1_of_production_1_of_rule_block, 0, 100000000, $_noactions,$expectation,sub { \@arg })))
  0         0  
11578             {
11579 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [any, or block, or ATKEYWORD, or ';']>>},
11580             Parse::RecDescent::_tracefirst($text),
11581             q{block},
11582             $tracelevel)
11583             if defined $::RD_TRACE;
11584 0         0 last;
11585             }
11586 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_block]<< (}
11587             . @$_tok . q{ times)},
11588            
11589             Parse::RecDescent::_tracefirst($text),
11590             q{block},
11591             $tracelevel)
11592             if defined $::RD_TRACE;
11593 0         0 $item{q{_alternation_1_of_production_1_of_rule_block(s?)}} = $_tok;
11594 0         0 push @item, $_tok;
11595            
11596              
11597              
11598 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['\}']},
11599             Parse::RecDescent::_tracefirst($text),
11600             q{block},
11601             $tracelevel)
11602             if defined $::RD_TRACE;
11603 0         0 $lastsep = "";
11604 0         0 $expectation->is(q{'\}'})->at($text);
11605            
11606              
11607 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\}/)
  0 0       0  
11608             {
11609            
11610 0         0 $expectation->failed();
11611 0 0       0 Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
11612             Parse::RecDescent::_tracefirst($text))
11613             if defined $::RD_TRACE;
11614 0         0 last;
11615             }
11616 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
11617 0         0 substr($text,0,length($current_match),q{});
11618 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11619             . $current_match . q{])},
11620             Parse::RecDescent::_tracefirst($text))
11621             if defined $::RD_TRACE;
11622 0         0 push @item, $item{__STRING2__}=$current_match;
11623            
11624              
11625 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [WS]},
11626             Parse::RecDescent::_tracefirst($text),
11627             q{block},
11628             $tracelevel)
11629             if defined $::RD_TRACE;
11630 0         0 $expectation->is(q{WS})->at($text);
11631            
11632 0 0   0   0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::CSS::Parse::CompiledGrammar::WS, 0, 100000000, $_noactions,$expectation,sub { \@arg })))
  0         0  
11633             {
11634 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [WS]>>},
11635             Parse::RecDescent::_tracefirst($text),
11636             q{block},
11637             $tracelevel)
11638             if defined $::RD_TRACE;
11639 0         0 last;
11640             }
11641 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [WS]<< (}
11642             . @$_tok . q{ times)},
11643            
11644             Parse::RecDescent::_tracefirst($text),
11645             q{block},
11646             $tracelevel)
11647             if defined $::RD_TRACE;
11648 0         0 $item{q{WS(s?)}} = $_tok;
11649 0         0 push @item, $_tok;
11650            
11651              
11652              
11653 0 0       0 Parse::RecDescent::_trace(q{Trying action},
11654             Parse::RecDescent::_tracefirst($text),
11655             q{block},
11656             $tracelevel)
11657             if defined $::RD_TRACE;
11658            
11659              
11660 0 0       0 $_tok = ($_noactions) ? 0 : do {print "block\n"};
  0         0  
11661 0 0       0 unless (defined $_tok)
11662             {
11663 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
11664             if defined $::RD_TRACE;
11665 0         0 last;
11666             }
11667 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
11668             . $_tok . q{])},
11669             Parse::RecDescent::_tracefirst($text))
11670             if defined $::RD_TRACE;
11671 0         0 push @item, $_tok;
11672 0         0 $item{__ACTION1__}=$_tok;
11673            
11674              
11675              
11676 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['\{' WS any, or block, or ATKEYWORD, or ';' '\}' WS]<<},
11677             Parse::RecDescent::_tracefirst($text),
11678             q{block},
11679             $tracelevel)
11680             if defined $::RD_TRACE;
11681 0         0 $_matched = 1;
11682 0         0 last;
11683             }
11684              
11685              
11686 20 50 33     106 unless ( $_matched || defined($score) )
11687             {
11688            
11689              
11690 20         37 $_[1] = $text; # NOT SURE THIS IS NEEDED
11691 20 50       39 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
11692             Parse::RecDescent::_tracefirst($_[1]),
11693             q{block},
11694             $tracelevel)
11695             if defined $::RD_TRACE;
11696 20         147 return undef;
11697             }
11698 0 0 0     0 if (!defined($return) && defined($score))
11699             {
11700 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
11701             q{block},
11702             $tracelevel)
11703             if defined $::RD_TRACE;
11704 0         0 $return = $score_return;
11705             }
11706 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
11707 0 0       0 $return = $item[$#item] unless defined $return;
11708 0 0       0 if (defined $::RD_TRACE)
11709             {
11710 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
11711             $return . q{])}, "",
11712             q{block},
11713             $tracelevel);
11714 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
11715             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
11716             Parse::RecDescent::_tracefirst($text),
11717             , q{block},
11718             $tracelevel)
11719             }
11720 0         0 $_[1] = $text;
11721 0         0 return $return;
11722             }
11723              
11724             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
11725             sub Parse::RecDescent::CSS::Parse::CompiledGrammar::macro_nonascii
11726             {
11727 195     195   319 my $thisparser = $_[0];
11728 1     1   6 use vars q{$tracelevel};
  1         3  
  1         10325  
11729 195   50     614 local $tracelevel = ($tracelevel||0)+1;
11730 195         240 $ERRORS = 0;
11731 195         379 my $thisrule = $thisparser->{"rules"}{"macro_nonascii"};
11732            
11733 195 50       475 Parse::RecDescent::_trace(q{Trying rule: [macro_nonascii]},
11734             Parse::RecDescent::_tracefirst($_[1]),
11735             q{macro_nonascii},
11736             $tracelevel)
11737             if defined $::RD_TRACE;
11738              
11739            
11740 195         224 my $err_at = @{$thisparser->{errors}};
  195         351  
11741              
11742 195         236 my $score;
11743             my $score_return;
11744 0         0 my $_tok;
11745 195         244 my $return = undef;
11746 195         187 my $_matched=0;
11747 195         197 my $commit=0;
11748 195         265 my @item = ();
11749 195         275 my %item = ();
11750 195   33     508 my $repeating = defined($_[2]) && $_[2];
11751 195   33     608 my $_noactions = defined($_[3]) && $_[3];
11752 195 50       490 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  195         269  
  195         473  
11753 195 50       591 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
11754 195         246 my $text;
11755 195         244 my $lastsep="";
11756 195         260 my $current_match;
11757 195         605 my $expectation = new Parse::RecDescent::Expectation(q{/[^\\0-\\177]/});
11758 195         1675 $expectation->at($_[1]);
11759            
11760 195         741 my $thisline;
11761 195         744 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
11762              
11763            
11764              
11765 195   33     1833 while (!$_matched && !$commit)
11766             {
11767            
11768 195 50       374 Parse::RecDescent::_trace(q{Trying production: [/[^\\0-\\177]/]},
11769             Parse::RecDescent::_tracefirst($_[1]),
11770             q{macro_nonascii},
11771             $tracelevel)
11772             if defined $::RD_TRACE;
11773 195         417 my $thisprod = $thisrule->{"prods"}[0];
11774 195         239 $text = $_[1];
11775 195         329 my $_savetext;
11776 195         366 @item = (q{macro_nonascii});
11777 195         469 %item = (__RULE__ => q{macro_nonascii});
11778 195         232 my $repcount = 0;
11779              
11780              
11781 195 50       455 Parse::RecDescent::_trace(q{Trying terminal: [/[^\\0-\\177]/]}, Parse::RecDescent::_tracefirst($text),
11782             q{macro_nonascii},
11783             $tracelevel)
11784             if defined $::RD_TRACE;
11785 195         343 $lastsep = "";
11786 195         529 $expectation->is(q{})->at($text);
11787            
11788              
11789 195 50 33     2187 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:[^\0-\177])/)
  195 50       1889  
11790             {
11791            
11792 195         547 $expectation->failed();
11793 195 50       924 Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
11794             Parse::RecDescent::_tracefirst($text))
11795             if defined $::RD_TRACE;
11796              
11797 195         442 last;
11798             }
11799 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
11800 0         0 substr($text,0,length($current_match),q{});
11801 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11802             . $current_match . q{])},
11803             Parse::RecDescent::_tracefirst($text))
11804             if defined $::RD_TRACE;
11805 0         0 push @item, $item{__PATTERN1__}=$current_match;
11806            
11807              
11808 0 0       0 Parse::RecDescent::_trace(q{Trying action},
11809             Parse::RecDescent::_tracefirst($text),
11810             q{macro_nonascii},
11811             $tracelevel)
11812             if defined $::RD_TRACE;
11813            
11814              
11815 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[1]};
  0         0  
11816 0 0       0 unless (defined $_tok)
11817             {
11818 0 0       0 Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
11819             if defined $::RD_TRACE;
11820 0         0 last;
11821             }
11822 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
11823             . $_tok . q{])},
11824             Parse::RecDescent::_tracefirst($text))
11825             if defined $::RD_TRACE;
11826 0         0 push @item, $_tok;
11827 0         0 $item{__ACTION1__}=$_tok;
11828            
11829              
11830              
11831 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/[^\\0-\\177]/]<<},
11832             Parse::RecDescent::_tracefirst($text),
11833             q{macro_nonascii},
11834             $tracelevel)
11835             if defined $::RD_TRACE;
11836 0         0 $_matched = 1;
11837 0         0 last;
11838             }
11839              
11840              
11841 195 50 33     801 unless ( $_matched || defined($score) )
11842             {
11843            
11844              
11845 195         366 $_[1] = $text; # NOT SURE THIS IS NEEDED
11846 195 50       362 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
11847             Parse::RecDescent::_tracefirst($_[1]),
11848             q{macro_nonascii},
11849             $tracelevel)
11850             if defined $::RD_TRACE;
11851 195         1487 return undef;
11852             }
11853 0 0 0     0 if (!defined($return) && defined($score))
11854             {
11855 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
11856             q{macro_nonascii},
11857             $tracelevel)
11858             if defined $::RD_TRACE;
11859 0         0 $return = $score_return;
11860             }
11861 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
11862 0 0       0 $return = $item[$#item] unless defined $return;
11863 0 0       0 if (defined $::RD_TRACE)
11864             {
11865 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
11866             $return . q{])}, "",
11867             q{macro_nonascii},
11868             $tracelevel);
11869 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
11870             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
11871             Parse::RecDescent::_tracefirst($text),
11872             , q{macro_nonascii},
11873             $tracelevel)
11874             }
11875 0         0 $_[1] = $text;
11876 0         0 return $return;
11877             }
11878             }
11879 3     3 0 4336 package CSS::Parse::CompiledGrammar; sub new { my $self = bless( {
11880             '_precompiled' => 1,
11881             'localvars' => ' $all_rulesets $ruleset $value',
11882             'startcode' => '',
11883             'namespace' => 'Parse::RecDescent::CSS::Parse::CompiledGrammar',
11884             'rules' => {
11885             'macro_nl' => bless( {
11886             'impcount' => 0,
11887             'calls' => [],
11888             'changed' => 0,
11889             'opcount' => 0,
11890             'prods' => [
11891             bless( {
11892             'number' => '0',
11893             'strcount' => 0,
11894             'dircount' => 0,
11895             'uncommit' => undef,
11896             'error' => undef,
11897             'patcount' => 1,
11898             'actcount' => 1,
11899             'items' => [
11900             bless( {
11901             'pattern' => '\\n|\\r\\n|\\r|\\f',
11902             'hashname' => '__PATTERN1__',
11903             'description' => '/\\\\n|\\\\r\\\\n|\\\\r|\\\\f/',
11904             'lookahead' => 0,
11905             'rdelim' => '/',
11906             'line' => 112,
11907             'mod' => '',
11908             'ldelim' => '/'
11909             }, 'Parse::RecDescent::Token' ),
11910             bless( {
11911             'hashname' => '__ACTION1__',
11912             'lookahead' => 0,
11913             'line' => 112,
11914             'code' => '{$return = $item[1]}'
11915             }, 'Parse::RecDescent::Action' )
11916             ],
11917             'line' => undef
11918             }, 'Parse::RecDescent::Production' )
11919             ],
11920             'name' => 'macro_nl',
11921             'vars' => '',
11922             'line' => 112
11923             }, 'Parse::RecDescent::Rule' ),
11924             'IDENT' => bless( {
11925             'impcount' => 0,
11926             'calls' => [
11927             'macro_ident'
11928             ],
11929             'changed' => 0,
11930             'opcount' => 0,
11931             'prods' => [
11932             bless( {
11933             'number' => '0',
11934             'strcount' => 0,
11935             'dircount' => 0,
11936             'uncommit' => undef,
11937             'error' => undef,
11938             'patcount' => 0,
11939             'actcount' => 1,
11940             'items' => [
11941             bless( {
11942             'subrule' => 'macro_ident',
11943             'matchrule' => 0,
11944             'implicit' => undef,
11945             'argcode' => undef,
11946             'lookahead' => 0,
11947             'line' => 59
11948             }, 'Parse::RecDescent::Subrule' ),
11949             bless( {
11950             'hashname' => '__ACTION1__',
11951             'lookahead' => 0,
11952             'line' => 59,
11953             'code' => '{$return = $item[1]}'
11954             }, 'Parse::RecDescent::Action' )
11955             ],
11956             'line' => undef
11957             }, 'Parse::RecDescent::Production' )
11958             ],
11959             'name' => 'IDENT',
11960             'vars' => '',
11961             'line' => 58
11962             }, 'Parse::RecDescent::Rule' ),
11963             '_alternation_1_of_production_1_of_rule_macro_string1' => bless( {
11964             'impcount' => 0,
11965             'calls' => [
11966             'macro_nl',
11967             'macro_nonascii',
11968             'macro_escape'
11969             ],
11970             'changed' => 0,
11971             'opcount' => 0,
11972             'prods' => [
11973             bless( {
11974             'number' => '0',
11975             'strcount' => 0,
11976             'dircount' => 0,
11977             'uncommit' => undef,
11978             'error' => undef,
11979             'patcount' => 1,
11980             'actcount' => 1,
11981             'items' => [
11982             bless( {
11983             'pattern' => '[\\t !#$%&(-~]',
11984             'hashname' => '__PATTERN1__',
11985             'description' => '/[\\\\t !#$%&(-~]/',
11986             'lookahead' => 0,
11987             'rdelim' => '/',
11988             'line' => 110,
11989             'mod' => '',
11990             'ldelim' => '/'
11991             }, 'Parse::RecDescent::Token' ),
11992             bless( {
11993             'hashname' => '__ACTION1__',
11994             'lookahead' => 0,
11995             'line' => 110,
11996             'code' => '{$return = $item[1]}'
11997             }, 'Parse::RecDescent::Action' )
11998             ],
11999             'line' => undef
12000             }, 'Parse::RecDescent::Production' ),
12001             bless( {
12002             'number' => '1',
12003             'strcount' => 1,
12004             'dircount' => 0,
12005             'uncommit' => undef,
12006             'error' => undef,
12007             'patcount' => 0,
12008             'actcount' => 1,
12009             'items' => [
12010             bless( {
12011             'pattern' => '\\',
12012             'hashname' => '__STRING1__',
12013             'description' => '\'\\\\\'',
12014             'lookahead' => 0,
12015             'line' => 111
12016             }, 'Parse::RecDescent::Literal' ),
12017             bless( {
12018             'subrule' => 'macro_nl',
12019             'matchrule' => 0,
12020             'implicit' => undef,
12021             'argcode' => undef,
12022             'lookahead' => 0,
12023             'line' => 111
12024             }, 'Parse::RecDescent::Subrule' ),
12025             bless( {
12026             'hashname' => '__ACTION1__',
12027             'lookahead' => 0,
12028             'line' => 111,
12029             'code' => '{$return = \'\'}'
12030             }, 'Parse::RecDescent::Action' )
12031             ],
12032             'line' => 111
12033             }, 'Parse::RecDescent::Production' ),
12034             bless( {
12035             'number' => '2',
12036             'strcount' => 1,
12037             'dircount' => 0,
12038             'uncommit' => undef,
12039             'error' => undef,
12040             'patcount' => 0,
12041             'actcount' => 1,
12042             'items' => [
12043             bless( {
12044             'pattern' => '\'',
12045             'hashname' => '__STRING1__',
12046             'description' => '\'\'\'',
12047             'lookahead' => 0,
12048             'line' => 112
12049             }, 'Parse::RecDescent::InterpLit' ),
12050             bless( {
12051             'hashname' => '__ACTION1__',
12052             'lookahead' => 0,
12053             'line' => 112,
12054             'code' => '{$return = $item[1]}'
12055             }, 'Parse::RecDescent::Action' )
12056             ],
12057             'line' => 112
12058             }, 'Parse::RecDescent::Production' ),
12059             bless( {
12060             'number' => '3',
12061             'strcount' => 0,
12062             'dircount' => 0,
12063             'uncommit' => undef,
12064             'error' => undef,
12065             'patcount' => 0,
12066             'actcount' => 1,
12067             'items' => [
12068             bless( {
12069             'subrule' => 'macro_nonascii',
12070             'matchrule' => 0,
12071             'implicit' => undef,
12072             'argcode' => undef,
12073             'lookahead' => 0,
12074             'line' => 113
12075             }, 'Parse::RecDescent::Subrule' ),
12076             bless( {
12077             'hashname' => '__ACTION1__',
12078             'lookahead' => 0,
12079             'line' => 113,
12080             'code' => '{$return = $item[1]}'
12081             }, 'Parse::RecDescent::Action' )
12082             ],
12083             'line' => 113
12084             }, 'Parse::RecDescent::Production' ),
12085             bless( {
12086             'number' => '4',
12087             'strcount' => 0,
12088             'dircount' => 0,
12089             'uncommit' => undef,
12090             'error' => undef,
12091             'patcount' => 0,
12092             'actcount' => 1,
12093             'items' => [
12094             bless( {
12095             'subrule' => 'macro_escape',
12096             'matchrule' => 0,
12097             'implicit' => undef,
12098             'argcode' => undef,
12099             'lookahead' => 0,
12100             'line' => 114
12101             }, 'Parse::RecDescent::Subrule' ),
12102             bless( {
12103             'hashname' => '__ACTION1__',
12104             'lookahead' => 0,
12105             'line' => 114,
12106             'code' => '{$return = $item[1]}'
12107             }, 'Parse::RecDescent::Action' )
12108             ],
12109             'line' => 114
12110             }, 'Parse::RecDescent::Production' )
12111             ],
12112             'name' => '_alternation_1_of_production_1_of_rule_macro_string1',
12113             'vars' => '',
12114             'line' => 109
12115             }, 'Parse::RecDescent::Rule' ),
12116             'macro_unicode' => bless( {
12117             'impcount' => 0,
12118             'calls' => [],
12119             'changed' => 0,
12120             'opcount' => 0,
12121             'prods' => [
12122             bless( {
12123             'number' => '0',
12124             'strcount' => 0,
12125             'dircount' => 0,
12126             'uncommit' => undef,
12127             'error' => undef,
12128             'patcount' => 1,
12129             'actcount' => 1,
12130             'items' => [
12131             bless( {
12132             'pattern' => '\\[0-9a-f]{1,6}[ \\n\\r\\t\\f]?',
12133             'hashname' => '__PATTERN1__',
12134             'description' => '/\\\\[0-9a-f]\\{1,6\\}[ \\\\n\\\\r\\\\t\\\\f]?/',
12135             'lookahead' => 0,
12136             'rdelim' => '/',
12137             'line' => 89,
12138             'mod' => '',
12139             'ldelim' => '/'
12140             }, 'Parse::RecDescent::Token' ),
12141             bless( {
12142             'hashname' => '__ACTION1__',
12143             'lookahead' => 0,
12144             'line' => 89,
12145             'code' => '{$return = $item[1]}'
12146             }, 'Parse::RecDescent::Action' )
12147             ],
12148             'line' => undef
12149             }, 'Parse::RecDescent::Production' )
12150             ],
12151             'name' => 'macro_unicode',
12152             'vars' => '',
12153             'line' => 89
12154             }, 'Parse::RecDescent::Rule' ),
12155             '_alternation_1_of_production_2_of_rule_URI' => bless( {
12156             'impcount' => 0,
12157             'calls' => [
12158             'macro_nonascii',
12159             'macro_escape'
12160             ],
12161             'changed' => 0,
12162             'opcount' => 0,
12163             'prods' => [
12164             bless( {
12165             'number' => '0',
12166             'strcount' => 0,
12167             'dircount' => 0,
12168             'uncommit' => undef,
12169             'error' => undef,
12170             'patcount' => 1,
12171             'actcount' => 1,
12172             'items' => [
12173             bless( {
12174             'pattern' => '[!#$%&*-~]',
12175             'hashname' => '__PATTERN1__',
12176             'description' => '/[!#$%&*-~]/',
12177             'lookahead' => 0,
12178             'rdelim' => '/',
12179             'line' => 112,
12180             'mod' => '',
12181             'ldelim' => '/'
12182             }, 'Parse::RecDescent::Token' ),
12183             bless( {
12184             'hashname' => '__ACTION1__',
12185             'lookahead' => 0,
12186             'line' => 112,
12187             'code' => '{$return = $item[1]}'
12188             }, 'Parse::RecDescent::Action' )
12189             ],
12190             'line' => undef
12191             }, 'Parse::RecDescent::Production' ),
12192             bless( {
12193             'number' => '1',
12194             'strcount' => 0,
12195             'dircount' => 0,
12196             'uncommit' => undef,
12197             'error' => undef,
12198             'patcount' => 0,
12199             'actcount' => 1,
12200             'items' => [
12201             bless( {
12202             'subrule' => 'macro_nonascii',
12203             'matchrule' => 0,
12204             'implicit' => undef,
12205             'argcode' => undef,
12206             'lookahead' => 0,
12207             'line' => 113
12208             }, 'Parse::RecDescent::Subrule' ),
12209             bless( {
12210             'hashname' => '__ACTION1__',
12211             'lookahead' => 0,
12212             'line' => 113,
12213             'code' => '{$return = $item[1]}'
12214             }, 'Parse::RecDescent::Action' )
12215             ],
12216             'line' => 113
12217             }, 'Parse::RecDescent::Production' ),
12218             bless( {
12219             'number' => '2',
12220             'strcount' => 0,
12221             'dircount' => 0,
12222             'uncommit' => undef,
12223             'error' => undef,
12224             'patcount' => 0,
12225             'actcount' => 1,
12226             'items' => [
12227             bless( {
12228             'subrule' => 'macro_escape',
12229             'matchrule' => 0,
12230             'implicit' => undef,
12231             'argcode' => undef,
12232             'lookahead' => 0,
12233             'line' => 114
12234             }, 'Parse::RecDescent::Subrule' ),
12235             bless( {
12236             'hashname' => '__ACTION1__',
12237             'lookahead' => 0,
12238             'line' => 114,
12239             'code' => '{$return = $item[1]}'
12240             }, 'Parse::RecDescent::Action' )
12241             ],
12242             'line' => 114
12243             }, 'Parse::RecDescent::Production' )
12244             ],
12245             'name' => '_alternation_1_of_production_2_of_rule_URI',
12246             'vars' => '',
12247             'line' => 111
12248             }, 'Parse::RecDescent::Rule' ),
12249             'atrule' => bless( {
12250             'impcount' => 1,
12251             'calls' => [
12252             'ATKEYWORD',
12253             'WS',
12254             'any',
12255             '_alternation_1_of_production_1_of_rule_atrule'
12256             ],
12257             'changed' => 0,
12258             'opcount' => 0,
12259             'prods' => [
12260             bless( {
12261             'number' => '0',
12262             'strcount' => 0,
12263             'dircount' => 0,
12264             'uncommit' => undef,
12265             'error' => undef,
12266             'patcount' => 0,
12267             'actcount' => 1,
12268             'items' => [
12269             bless( {
12270             'subrule' => 'ATKEYWORD',
12271             'matchrule' => 0,
12272             'implicit' => undef,
12273             'argcode' => undef,
12274             'lookahead' => 0,
12275             'line' => 13
12276             }, 'Parse::RecDescent::Subrule' ),
12277             bless( {
12278             'subrule' => 'WS',
12279             'expected' => undef,
12280             'min' => 0,
12281             'argcode' => undef,
12282             'max' => 100000000,
12283             'matchrule' => 0,
12284             'repspec' => 's?',
12285             'lookahead' => 0,
12286             'line' => 13
12287             }, 'Parse::RecDescent::Repetition' ),
12288             bless( {
12289             'subrule' => 'any',
12290             'expected' => undef,
12291             'min' => 0,
12292             'argcode' => undef,
12293             'max' => 100000000,
12294             'matchrule' => 0,
12295             'repspec' => 's?',
12296             'lookahead' => 0,
12297             'line' => 13
12298             }, 'Parse::RecDescent::Repetition' ),
12299             bless( {
12300             'subrule' => '_alternation_1_of_production_1_of_rule_atrule',
12301             'matchrule' => 0,
12302             'implicit' => 'block, or \';\'',
12303             'argcode' => undef,
12304             'lookahead' => 0,
12305             'line' => 13
12306             }, 'Parse::RecDescent::Subrule' ),
12307             bless( {
12308             'hashname' => '__ACTION1__',
12309             'lookahead' => 0,
12310             'line' => 13,
12311             'code' => '{print "at-rule\\n"}'
12312             }, 'Parse::RecDescent::Action' )
12313             ],
12314             'line' => undef
12315             }, 'Parse::RecDescent::Production' )
12316             ],
12317             'name' => 'atrule',
12318             'vars' => '',
12319             'line' => 13
12320             }, 'Parse::RecDescent::Rule' ),
12321             '_alternation_1_of_production_1_of_rule_value' => bless( {
12322             'impcount' => 0,
12323             'calls' => [
12324             'any',
12325             'block',
12326             'ATKEYWORD',
12327             'OWS'
12328             ],
12329             'changed' => 0,
12330             'opcount' => 0,
12331             'prods' => [
12332             bless( {
12333             'number' => '0',
12334             'strcount' => 0,
12335             'dircount' => 0,
12336             'uncommit' => undef,
12337             'error' => undef,
12338             'patcount' => 0,
12339             'actcount' => 1,
12340             'items' => [
12341             bless( {
12342             'subrule' => 'any',
12343             'matchrule' => 0,
12344             'implicit' => undef,
12345             'argcode' => undef,
12346             'lookahead' => 0,
12347             'line' => 112
12348             }, 'Parse::RecDescent::Subrule' ),
12349             bless( {
12350             'hashname' => '__ACTION1__',
12351             'lookahead' => 0,
12352             'line' => 112,
12353             'code' => '{$return = $item[1]}'
12354             }, 'Parse::RecDescent::Action' )
12355             ],
12356             'line' => undef
12357             }, 'Parse::RecDescent::Production' ),
12358             bless( {
12359             'number' => '1',
12360             'strcount' => 0,
12361             'dircount' => 0,
12362             'uncommit' => undef,
12363             'error' => undef,
12364             'patcount' => 0,
12365             'actcount' => 1,
12366             'items' => [
12367             bless( {
12368             'subrule' => 'block',
12369             'matchrule' => 0,
12370             'implicit' => undef,
12371             'argcode' => undef,
12372             'lookahead' => 0,
12373             'line' => 113
12374             }, 'Parse::RecDescent::Subrule' ),
12375             bless( {
12376             'hashname' => '__ACTION1__',
12377             'lookahead' => 0,
12378             'line' => 113,
12379             'code' => '{$return = $item[1]}'
12380             }, 'Parse::RecDescent::Action' )
12381             ],
12382             'line' => 113
12383             }, 'Parse::RecDescent::Production' ),
12384             bless( {
12385             'number' => '2',
12386             'strcount' => 0,
12387             'dircount' => 0,
12388             'uncommit' => undef,
12389             'error' => undef,
12390             'patcount' => 0,
12391             'actcount' => 1,
12392             'items' => [
12393             bless( {
12394             'subrule' => 'ATKEYWORD',
12395             'matchrule' => 0,
12396             'implicit' => undef,
12397             'argcode' => undef,
12398             'lookahead' => 0,
12399             'line' => 114
12400             }, 'Parse::RecDescent::Subrule' ),
12401             bless( {
12402             'subrule' => 'OWS',
12403             'matchrule' => 0,
12404             'implicit' => undef,
12405             'argcode' => undef,
12406             'lookahead' => 0,
12407             'line' => 114
12408             }, 'Parse::RecDescent::Subrule' ),
12409             bless( {
12410             'hashname' => '__ACTION1__',
12411             'lookahead' => 0,
12412             'line' => 114,
12413             'code' => '{$return = $item[1].$item[2]}'
12414             }, 'Parse::RecDescent::Action' )
12415             ],
12416             'line' => 114
12417             }, 'Parse::RecDescent::Production' )
12418             ],
12419             'name' => '_alternation_1_of_production_1_of_rule_value',
12420             'vars' => '',
12421             'line' => 111
12422             }, 'Parse::RecDescent::Rule' ),
12423             'statement' => bless( {
12424             'impcount' => 0,
12425             'calls' => [
12426             'ruleset',
12427             'atrule'
12428             ],
12429             'changed' => 0,
12430             'opcount' => 0,
12431             'prods' => [
12432             bless( {
12433             'number' => '0',
12434             'strcount' => 0,
12435             'dircount' => 0,
12436             'uncommit' => undef,
12437             'error' => undef,
12438             'patcount' => 0,
12439             'actcount' => 1,
12440             'items' => [
12441             bless( {
12442             'subrule' => 'ruleset',
12443             'matchrule' => 0,
12444             'implicit' => undef,
12445             'argcode' => undef,
12446             'lookahead' => 0,
12447             'line' => 11
12448             }, 'Parse::RecDescent::Subrule' ),
12449             bless( {
12450             'hashname' => '__ACTION1__',
12451             'lookahead' => 0,
12452             'line' => 11,
12453             'code' => '{4;}'
12454             }, 'Parse::RecDescent::Action' )
12455             ],
12456             'line' => undef
12457             }, 'Parse::RecDescent::Production' ),
12458             bless( {
12459             'number' => '1',
12460             'strcount' => 0,
12461             'dircount' => 0,
12462             'uncommit' => undef,
12463             'error' => undef,
12464             'patcount' => 0,
12465             'actcount' => 1,
12466             'items' => [
12467             bless( {
12468             'subrule' => 'atrule',
12469             'matchrule' => 0,
12470             'implicit' => undef,
12471             'argcode' => undef,
12472             'lookahead' => 0,
12473             'line' => 12
12474             }, 'Parse::RecDescent::Subrule' ),
12475             bless( {
12476             'hashname' => '__ACTION1__',
12477             'lookahead' => 0,
12478             'line' => 12,
12479             'code' => '{5;}'
12480             }, 'Parse::RecDescent::Action' )
12481             ],
12482             'line' => 12
12483             }, 'Parse::RecDescent::Production' )
12484             ],
12485             'name' => 'statement',
12486             'vars' => '',
12487             'line' => 11
12488             }, 'Parse::RecDescent::Rule' ),
12489             'HASH' => bless( {
12490             'impcount' => 0,
12491             'calls' => [
12492             'macro_name'
12493             ],
12494             'changed' => 0,
12495             'opcount' => 0,
12496             'prods' => [
12497             bless( {
12498             'number' => '0',
12499             'strcount' => 1,
12500             'dircount' => 0,
12501             'uncommit' => undef,
12502             'error' => undef,
12503             'patcount' => 0,
12504             'actcount' => 1,
12505             'items' => [
12506             bless( {
12507             'pattern' => '#',
12508             'hashname' => '__STRING1__',
12509             'description' => '\'#\'',
12510             'lookahead' => 0,
12511             'line' => 62
12512             }, 'Parse::RecDescent::Literal' ),
12513             bless( {
12514             'subrule' => 'macro_name',
12515             'matchrule' => 0,
12516             'implicit' => undef,
12517             'argcode' => undef,
12518             'lookahead' => 0,
12519             'line' => 62
12520             }, 'Parse::RecDescent::Subrule' ),
12521             bless( {
12522             'hashname' => '__ACTION1__',
12523             'lookahead' => 0,
12524             'line' => 62,
12525             'code' => '{$return = \'#\'.$item[2]}'
12526             }, 'Parse::RecDescent::Action' )
12527             ],
12528             'line' => undef
12529             }, 'Parse::RecDescent::Production' )
12530             ],
12531             'name' => 'HASH',
12532             'vars' => '',
12533             'line' => 62
12534             }, 'Parse::RecDescent::Rule' ),
12535             'property' => bless( {
12536             'impcount' => 0,
12537             'calls' => [
12538             'IDENT',
12539             'OWS'
12540             ],
12541             'changed' => 0,
12542             'opcount' => 0,
12543             'prods' => [
12544             bless( {
12545             'number' => '0',
12546             'strcount' => 0,
12547             'dircount' => 0,
12548             'uncommit' => undef,
12549             'error' => undef,
12550             'patcount' => 0,
12551             'actcount' => 1,
12552             'items' => [
12553             bless( {
12554             'subrule' => 'IDENT',
12555             'matchrule' => 0,
12556             'implicit' => undef,
12557             'argcode' => undef,
12558             'lookahead' => 0,
12559             'line' => 34
12560             }, 'Parse::RecDescent::Subrule' ),
12561             bless( {
12562             'subrule' => 'OWS',
12563             'matchrule' => 0,
12564             'implicit' => undef,
12565             'argcode' => undef,
12566             'lookahead' => 0,
12567             'line' => 34
12568             }, 'Parse::RecDescent::Subrule' ),
12569             bless( {
12570             'hashname' => '__ACTION1__',
12571             'lookahead' => 0,
12572             'line' => 34,
12573             'code' => '{$return = $item[1]}'
12574             }, 'Parse::RecDescent::Action' )
12575             ],
12576             'line' => undef
12577             }, 'Parse::RecDescent::Production' )
12578             ],
12579             'name' => 'property',
12580             'vars' => '',
12581             'line' => 34
12582             }, 'Parse::RecDescent::Rule' ),
12583             'OWS' => bless( {
12584             'impcount' => 0,
12585             'calls' => [
12586             'WS'
12587             ],
12588             'changed' => 0,
12589             'opcount' => 0,
12590             'prods' => [
12591             bless( {
12592             'number' => '0',
12593             'strcount' => 0,
12594             'dircount' => 0,
12595             'uncommit' => undef,
12596             'error' => undef,
12597             'patcount' => 0,
12598             'actcount' => 1,
12599             'items' => [
12600             bless( {
12601             'subrule' => 'WS',
12602             'expected' => undef,
12603             'min' => 0,
12604             'argcode' => undef,
12605             'max' => 100000000,
12606             'matchrule' => 0,
12607             'repspec' => 's?',
12608             'lookahead' => 0,
12609             'line' => 74
12610             }, 'Parse::RecDescent::Repetition' ),
12611             bless( {
12612             'hashname' => '__ACTION1__',
12613             'lookahead' => 0,
12614             'line' => 74,
12615             'code' => '{$return = \'\'; if (scalar(@{$item[1]}) > 0){$return = \' \';} 1;}'
12616             }, 'Parse::RecDescent::Action' )
12617             ],
12618             'line' => undef
12619             }, 'Parse::RecDescent::Production' )
12620             ],
12621             'name' => 'OWS',
12622             'vars' => '',
12623             'line' => 74
12624             }, 'Parse::RecDescent::Rule' ),
12625             'selector' => bless( {
12626             'impcount' => 0,
12627             'calls' => [
12628             'any'
12629             ],
12630             'changed' => 0,
12631             'opcount' => 0,
12632             'prods' => [
12633             bless( {
12634             'number' => '0',
12635             'strcount' => 0,
12636             'dircount' => 0,
12637             'uncommit' => undef,
12638             'error' => undef,
12639             'patcount' => 0,
12640             'actcount' => 1,
12641             'items' => [
12642             bless( {
12643             'subrule' => 'any',
12644             'expected' => undef,
12645             'min' => 1,
12646             'argcode' => undef,
12647             'max' => 100000000,
12648             'matchrule' => 0,
12649             'repspec' => 's',
12650             'lookahead' => 0,
12651             'line' => 19
12652             }, 'Parse::RecDescent::Repetition' ),
12653             bless( {
12654             'hashname' => '__ACTION1__',
12655             'lookahead' => 0,
12656             'line' => 20,
12657             'code' => '{
12658             $ruleset->add_selector(new CSS::Selector({\'name\' => $_}))
12659             for(map{s/^\\s*(.*?)\\s*$/$1/;$_}split /\\s*,\\s*/, join(\'\',@{$item[1]}));
12660             1;
12661             }'
12662             }, 'Parse::RecDescent::Action' )
12663             ],
12664             'line' => undef
12665             }, 'Parse::RecDescent::Production' )
12666             ],
12667             'name' => 'selector',
12668             'vars' => '',
12669             'line' => 19
12670             }, 'Parse::RecDescent::Rule' ),
12671             'value' => bless( {
12672             'impcount' => 1,
12673             'calls' => [
12674             '_alternation_1_of_production_1_of_rule_value'
12675             ],
12676             'changed' => 0,
12677             'opcount' => 0,
12678             'prods' => [
12679             bless( {
12680             'number' => '0',
12681             'strcount' => 0,
12682             'dircount' => 0,
12683             'uncommit' => undef,
12684             'error' => undef,
12685             'patcount' => 0,
12686             'actcount' => 1,
12687             'items' => [
12688             bless( {
12689             'subrule' => '_alternation_1_of_production_1_of_rule_value',
12690             'expected' => 'any, or block, or ATKEYWORD',
12691             'min' => 1,
12692             'argcode' => undef,
12693             'max' => 100000000,
12694             'matchrule' => 0,
12695             'repspec' => 's',
12696             'lookahead' => 0,
12697             'line' => 39
12698             }, 'Parse::RecDescent::Repetition' ),
12699             bless( {
12700             'hashname' => '__ACTION1__',
12701             'lookahead' => 0,
12702             'line' => 39,
12703             'code' => '{$return = join(\'\',@{$item[1]})}'
12704             }, 'Parse::RecDescent::Action' )
12705             ],
12706             'line' => undef
12707             }, 'Parse::RecDescent::Production' )
12708             ],
12709             'name' => 'value',
12710             'vars' => '',
12711             'line' => 35
12712             }, 'Parse::RecDescent::Rule' ),
12713             '_alternation_1_of_production_1_of_rule_atrule' => bless( {
12714             'impcount' => 0,
12715             'calls' => [
12716             'block',
12717             'WS'
12718             ],
12719             'changed' => 0,
12720             'opcount' => 0,
12721             'prods' => [
12722             bless( {
12723             'number' => '0',
12724             'strcount' => 0,
12725             'dircount' => 0,
12726             'uncommit' => undef,
12727             'error' => undef,
12728             'patcount' => 0,
12729             'actcount' => 0,
12730             'items' => [
12731             bless( {
12732             'subrule' => 'block',
12733             'matchrule' => 0,
12734             'implicit' => undef,
12735             'argcode' => undef,
12736             'lookahead' => 0,
12737             'line' => 115
12738             }, 'Parse::RecDescent::Subrule' )
12739             ],
12740             'line' => undef
12741             }, 'Parse::RecDescent::Production' ),
12742             bless( {
12743             'number' => '1',
12744             'strcount' => 1,
12745             'dircount' => 0,
12746             'uncommit' => undef,
12747             'error' => undef,
12748             'patcount' => 0,
12749             'actcount' => 0,
12750             'items' => [
12751             bless( {
12752             'pattern' => ';',
12753             'hashname' => '__STRING1__',
12754             'description' => '\';\'',
12755             'lookahead' => 0,
12756             'line' => 115
12757             }, 'Parse::RecDescent::Literal' ),
12758             bless( {
12759             'subrule' => 'WS',
12760             'expected' => undef,
12761             'min' => 0,
12762             'argcode' => undef,
12763             'max' => 100000000,
12764             'matchrule' => 0,
12765             'repspec' => 's?',
12766             'lookahead' => 0,
12767             'line' => 115
12768             }, 'Parse::RecDescent::Repetition' )
12769             ],
12770             'line' => 115
12771             }, 'Parse::RecDescent::Production' )
12772             ],
12773             'name' => '_alternation_1_of_production_1_of_rule_atrule',
12774             'vars' => '',
12775             'line' => 115
12776             }, 'Parse::RecDescent::Rule' ),
12777             '_alternation_1_of_production_1_of_rule_ruleset' => bless( {
12778             'impcount' => 0,
12779             'calls' => [
12780             'WS',
12781             'declaration'
12782             ],
12783             'changed' => 0,
12784             'opcount' => 0,
12785             'prods' => [
12786             bless( {
12787             'number' => '0',
12788             'strcount' => 1,
12789             'dircount' => 0,
12790             'uncommit' => undef,
12791             'error' => undef,
12792             'patcount' => 0,
12793             'actcount' => 1,
12794             'items' => [
12795             bless( {
12796             'pattern' => ';',
12797             'hashname' => '__STRING1__',
12798             'description' => '\';\'',
12799             'lookahead' => 0,
12800             'line' => 114
12801             }, 'Parse::RecDescent::Literal' ),
12802             bless( {
12803             'subrule' => 'WS',
12804             'expected' => undef,
12805             'min' => 0,
12806             'argcode' => undef,
12807             'max' => 100000000,
12808             'matchrule' => 0,
12809             'repspec' => 's?',
12810             'lookahead' => 0,
12811             'line' => 114
12812             }, 'Parse::RecDescent::Repetition' ),
12813             bless( {
12814             'subrule' => 'declaration',
12815             'expected' => undef,
12816             'min' => 0,
12817             'argcode' => undef,
12818             'max' => 1,
12819             'matchrule' => 0,
12820             'repspec' => '?',
12821             'lookahead' => 0,
12822             'line' => 114
12823             }, 'Parse::RecDescent::Repetition' ),
12824             bless( {
12825             'hashname' => '__ACTION1__',
12826             'lookahead' => 0,
12827             'line' => 114,
12828             'code' => '{6;}'
12829             }, 'Parse::RecDescent::Action' )
12830             ],
12831             'line' => undef
12832             }, 'Parse::RecDescent::Production' )
12833             ],
12834             'name' => '_alternation_1_of_production_1_of_rule_ruleset',
12835             'vars' => '',
12836             'line' => 113
12837             }, 'Parse::RecDescent::Rule' ),
12838             '_alternation_1_of_production_1_of_rule_block' => bless( {
12839             'impcount' => 0,
12840             'calls' => [
12841             'any',
12842             'block',
12843             'ATKEYWORD',
12844             'WS'
12845             ],
12846             'changed' => 0,
12847             'opcount' => 0,
12848             'prods' => [
12849             bless( {
12850             'number' => '0',
12851             'strcount' => 0,
12852             'dircount' => 0,
12853             'uncommit' => undef,
12854             'error' => undef,
12855             'patcount' => 0,
12856             'actcount' => 0,
12857             'items' => [
12858             bless( {
12859             'subrule' => 'any',
12860             'matchrule' => 0,
12861             'implicit' => undef,
12862             'argcode' => undef,
12863             'lookahead' => 0,
12864             'line' => 115
12865             }, 'Parse::RecDescent::Subrule' )
12866             ],
12867             'line' => undef
12868             }, 'Parse::RecDescent::Production' ),
12869             bless( {
12870             'number' => '1',
12871             'strcount' => 0,
12872             'dircount' => 0,
12873             'uncommit' => undef,
12874             'error' => undef,
12875             'patcount' => 0,
12876             'actcount' => 0,
12877             'items' => [
12878             bless( {
12879             'subrule' => 'block',
12880             'matchrule' => 0,
12881             'implicit' => undef,
12882             'argcode' => undef,
12883             'lookahead' => 0,
12884             'line' => 115
12885             }, 'Parse::RecDescent::Subrule' )
12886             ],
12887             'line' => 115
12888             }, 'Parse::RecDescent::Production' ),
12889             bless( {
12890             'number' => '2',
12891             'strcount' => 0,
12892             'dircount' => 0,
12893             'uncommit' => undef,
12894             'error' => undef,
12895             'patcount' => 0,
12896             'actcount' => 0,
12897             'items' => [
12898             bless( {
12899             'subrule' => 'ATKEYWORD',
12900             'matchrule' => 0,
12901             'implicit' => undef,
12902             'argcode' => undef,
12903             'lookahead' => 0,
12904             'line' => 115
12905             }, 'Parse::RecDescent::Subrule' ),
12906             bless( {
12907             'subrule' => 'WS',
12908             'expected' => undef,
12909             'min' => 0,
12910             'argcode' => undef,
12911             'max' => 100000000,
12912             'matchrule' => 0,
12913             'repspec' => 's?',
12914             'lookahead' => 0,
12915             'line' => 115
12916             }, 'Parse::RecDescent::Repetition' )
12917             ],
12918             'line' => 115
12919             }, 'Parse::RecDescent::Production' ),
12920             bless( {
12921             'number' => '3',
12922             'strcount' => 1,
12923             'dircount' => 0,
12924             'uncommit' => undef,
12925             'error' => undef,
12926             'patcount' => 0,
12927             'actcount' => 0,
12928             'items' => [
12929             bless( {
12930             'pattern' => ';',
12931             'hashname' => '__STRING1__',
12932             'description' => '\';\'',
12933             'lookahead' => 0,
12934             'line' => 115
12935             }, 'Parse::RecDescent::Literal' )
12936             ],
12937             'line' => 115
12938             }, 'Parse::RecDescent::Production' )
12939             ],
12940             'name' => '_alternation_1_of_production_1_of_rule_block',
12941             'vars' => '',
12942             'line' => 115
12943             }, 'Parse::RecDescent::Rule' ),
12944             'WS' => bless( {
12945             'impcount' => 0,
12946             'calls' => [],
12947             'changed' => 0,
12948             'opcount' => 0,
12949             'prods' => [
12950             bless( {
12951             'number' => '0',
12952             'strcount' => 0,
12953             'dircount' => 0,
12954             'uncommit' => undef,
12955             'error' => undef,
12956             'patcount' => 1,
12957             'actcount' => 1,
12958             'items' => [
12959             bless( {
12960             'pattern' => '[ \\t\\r\\n\\f]+',
12961             'hashname' => '__PATTERN1__',
12962             'description' => '/[ \\\\t\\\\r\\\\n\\\\f]+/',
12963             'lookahead' => 0,
12964             'rdelim' => '/',
12965             'line' => 73,
12966             'mod' => '',
12967             'ldelim' => '/'
12968             }, 'Parse::RecDescent::Token' ),
12969             bless( {
12970             'hashname' => '__ACTION1__',
12971             'lookahead' => 0,
12972             'line' => 73,
12973             'code' => '{$return = \' \';}'
12974             }, 'Parse::RecDescent::Action' )
12975             ],
12976             'line' => undef
12977             }, 'Parse::RecDescent::Production' )
12978             ],
12979             'name' => 'WS',
12980             'vars' => '',
12981             'line' => 73
12982             }, 'Parse::RecDescent::Rule' ),
12983             'macro_ident' => bless( {
12984             'impcount' => 0,
12985             'calls' => [
12986             'macro_nmstart',
12987             'macro_nmchar'
12988             ],
12989             'changed' => 0,
12990             'opcount' => 0,
12991             'prods' => [
12992             bless( {
12993             'number' => '0',
12994             'strcount' => 0,
12995             'dircount' => 0,
12996             'uncommit' => undef,
12997             'error' => undef,
12998             'patcount' => 0,
12999             'actcount' => 1,
13000             'items' => [
13001             bless( {
13002             'subrule' => 'macro_nmstart',
13003             'matchrule' => 0,
13004             'implicit' => undef,
13005             'argcode' => undef,
13006             'lookahead' => 0,
13007             'line' => 83
13008             }, 'Parse::RecDescent::Subrule' ),
13009             bless( {
13010             'subrule' => 'macro_nmchar',
13011             'expected' => undef,
13012             'min' => 0,
13013             'argcode' => undef,
13014             'max' => 100000000,
13015             'matchrule' => 0,
13016             'repspec' => 's?',
13017             'lookahead' => 0,
13018             'line' => 83
13019             }, 'Parse::RecDescent::Repetition' ),
13020             bless( {
13021             'hashname' => '__ACTION1__',
13022             'lookahead' => 0,
13023             'line' => 83,
13024             'code' => '{$return = $item[1]; if (scalar(@{$item[2]}) > 0){$return .= join(\'\',@{$item[2]});} 1;}'
13025             }, 'Parse::RecDescent::Action' )
13026             ],
13027             'line' => undef
13028             }, 'Parse::RecDescent::Production' )
13029             ],
13030             'name' => 'macro_ident',
13031             'vars' => '',
13032             'line' => 82
13033             }, 'Parse::RecDescent::Rule' ),
13034             '_alternation_1_of_production_1_of_rule_macro_string2' => bless( {
13035             'impcount' => 0,
13036             'calls' => [
13037             'macro_nl',
13038             'macro_nonascii',
13039             'macro_escape'
13040             ],
13041             'changed' => 0,
13042             'opcount' => 0,
13043             'prods' => [
13044             bless( {
13045             'number' => '0',
13046             'strcount' => 0,
13047             'dircount' => 0,
13048             'uncommit' => undef,
13049             'error' => undef,
13050             'patcount' => 1,
13051             'actcount' => 1,
13052             'items' => [
13053             bless( {
13054             'pattern' => '[\\t !#$%&(-~]',
13055             'hashname' => '__PATTERN1__',
13056             'description' => '/[\\\\t !#$%&(-~]/',
13057             'lookahead' => 0,
13058             'rdelim' => '/',
13059             'line' => 110,
13060             'mod' => '',
13061             'ldelim' => '/'
13062             }, 'Parse::RecDescent::Token' ),
13063             bless( {
13064             'hashname' => '__ACTION1__',
13065             'lookahead' => 0,
13066             'line' => 110,
13067             'code' => '{$return = $item[1]}'
13068             }, 'Parse::RecDescent::Action' )
13069             ],
13070             'line' => undef
13071             }, 'Parse::RecDescent::Production' ),
13072             bless( {
13073             'number' => '1',
13074             'strcount' => 1,
13075             'dircount' => 0,
13076             'uncommit' => undef,
13077             'error' => undef,
13078             'patcount' => 0,
13079             'actcount' => 1,
13080             'items' => [
13081             bless( {
13082             'pattern' => '\\',
13083             'hashname' => '__STRING1__',
13084             'description' => '\'\\\\\'',
13085             'lookahead' => 0,
13086             'line' => 111
13087             }, 'Parse::RecDescent::Literal' ),
13088             bless( {
13089             'subrule' => 'macro_nl',
13090             'matchrule' => 0,
13091             'implicit' => undef,
13092             'argcode' => undef,
13093             'lookahead' => 0,
13094             'line' => 111
13095             }, 'Parse::RecDescent::Subrule' ),
13096             bless( {
13097             'hashname' => '__ACTION1__',
13098             'lookahead' => 0,
13099             'line' => 111,
13100             'code' => '{$return = \'\'}'
13101             }, 'Parse::RecDescent::Action' )
13102             ],
13103             'line' => 111
13104             }, 'Parse::RecDescent::Production' ),
13105             bless( {
13106             'number' => '2',
13107             'strcount' => 1,
13108             'dircount' => 0,
13109             'uncommit' => undef,
13110             'error' => undef,
13111             'patcount' => 0,
13112             'actcount' => 1,
13113             'items' => [
13114             bless( {
13115             'pattern' => '"',
13116             'hashname' => '__STRING1__',
13117             'description' => '\'"\'',
13118             'lookahead' => 0,
13119             'line' => 112
13120             }, 'Parse::RecDescent::Literal' ),
13121             bless( {
13122             'hashname' => '__ACTION1__',
13123             'lookahead' => 0,
13124             'line' => 112,
13125             'code' => '{$return = $item[1]}'
13126             }, 'Parse::RecDescent::Action' )
13127             ],
13128             'line' => 112
13129             }, 'Parse::RecDescent::Production' ),
13130             bless( {
13131             'number' => '3',
13132             'strcount' => 0,
13133             'dircount' => 0,
13134             'uncommit' => undef,
13135             'error' => undef,
13136             'patcount' => 0,
13137             'actcount' => 1,
13138             'items' => [
13139             bless( {
13140             'subrule' => 'macro_nonascii',
13141             'matchrule' => 0,
13142             'implicit' => undef,
13143             'argcode' => undef,
13144             'lookahead' => 0,
13145             'line' => 113
13146             }, 'Parse::RecDescent::Subrule' ),
13147             bless( {
13148             'hashname' => '__ACTION1__',
13149             'lookahead' => 0,
13150             'line' => 113,
13151             'code' => '{$return = $item[1]}'
13152             }, 'Parse::RecDescent::Action' )
13153             ],
13154             'line' => 113
13155             }, 'Parse::RecDescent::Production' ),
13156             bless( {
13157             'number' => '4',
13158             'strcount' => 0,
13159             'dircount' => 0,
13160             'uncommit' => undef,
13161             'error' => undef,
13162             'patcount' => 0,
13163             'actcount' => 1,
13164             'items' => [
13165             bless( {
13166             'subrule' => 'macro_escape',
13167             'matchrule' => 0,
13168             'implicit' => undef,
13169             'argcode' => undef,
13170             'lookahead' => 0,
13171             'line' => 114
13172             }, 'Parse::RecDescent::Subrule' ),
13173             bless( {
13174             'hashname' => '__ACTION1__',
13175             'lookahead' => 0,
13176             'line' => 114,
13177             'code' => '{$return = $item[1]}'
13178             }, 'Parse::RecDescent::Action' )
13179             ],
13180             'line' => 114
13181             }, 'Parse::RecDescent::Production' )
13182             ],
13183             'name' => '_alternation_1_of_production_1_of_rule_macro_string2',
13184             'vars' => '',
13185             'line' => 109
13186             }, 'Parse::RecDescent::Rule' ),
13187             'macro_nmstart' => bless( {
13188             'impcount' => 0,
13189             'calls' => [
13190             'macro_nonascii',
13191             'macro_escape'
13192             ],
13193             'changed' => 0,
13194             'opcount' => 0,
13195             'prods' => [
13196             bless( {
13197             'number' => '0',
13198             'strcount' => 0,
13199             'dircount' => 0,
13200             'uncommit' => undef,
13201             'error' => undef,
13202             'patcount' => 1,
13203             'actcount' => 1,
13204             'items' => [
13205             bless( {
13206             'pattern' => '[a-zA-Z]',
13207             'hashname' => '__PATTERN1__',
13208             'description' => '/[a-zA-Z]/',
13209             'lookahead' => 0,
13210             'rdelim' => '/',
13211             'line' => 85,
13212             'mod' => '',
13213             'ldelim' => '/'
13214             }, 'Parse::RecDescent::Token' ),
13215             bless( {
13216             'hashname' => '__ACTION1__',
13217             'lookahead' => 0,
13218             'line' => 85,
13219             'code' => '{$return = $item[1]}'
13220             }, 'Parse::RecDescent::Action' )
13221             ],
13222             'line' => undef
13223             }, 'Parse::RecDescent::Production' ),
13224             bless( {
13225             'number' => '1',
13226             'strcount' => 0,
13227             'dircount' => 0,
13228             'uncommit' => undef,
13229             'error' => undef,
13230             'patcount' => 0,
13231             'actcount' => 1,
13232             'items' => [
13233             bless( {
13234             'subrule' => 'macro_nonascii',
13235             'matchrule' => 0,
13236             'implicit' => undef,
13237             'argcode' => undef,
13238             'lookahead' => 0,
13239             'line' => 86
13240             }, 'Parse::RecDescent::Subrule' ),
13241             bless( {
13242             'hashname' => '__ACTION1__',
13243             'lookahead' => 0,
13244             'line' => 86,
13245             'code' => '{$return = $item[1]}'
13246             }, 'Parse::RecDescent::Action' )
13247             ],
13248             'line' => 86
13249             }, 'Parse::RecDescent::Production' ),
13250             bless( {
13251             'number' => '2',
13252             'strcount' => 0,
13253             'dircount' => 0,
13254             'uncommit' => undef,
13255             'error' => undef,
13256             'patcount' => 0,
13257             'actcount' => 1,
13258             'items' => [
13259             bless( {
13260             'subrule' => 'macro_escape',
13261             'matchrule' => 0,
13262             'implicit' => undef,
13263             'argcode' => undef,
13264             'lookahead' => 0,
13265             'line' => 87
13266             }, 'Parse::RecDescent::Subrule' ),
13267             bless( {
13268             'hashname' => '__ACTION1__',
13269             'lookahead' => 0,
13270             'line' => 87,
13271             'code' => '{$return = $item[1]}'
13272             }, 'Parse::RecDescent::Action' )
13273             ],
13274             'line' => 87
13275             }, 'Parse::RecDescent::Production' )
13276             ],
13277             'name' => 'macro_nmstart',
13278             'vars' => '',
13279             'line' => 85
13280             }, 'Parse::RecDescent::Rule' ),
13281             'INCLUDES' => bless( {
13282             'impcount' => 0,
13283             'calls' => [],
13284             'changed' => 0,
13285             'opcount' => 0,
13286             'prods' => [
13287             bless( {
13288             'number' => '0',
13289             'strcount' => 1,
13290             'dircount' => 0,
13291             'uncommit' => undef,
13292             'error' => undef,
13293             'patcount' => 0,
13294             'actcount' => 1,
13295             'items' => [
13296             bless( {
13297             'pattern' => '~=',
13298             'hashname' => '__STRING1__',
13299             'description' => '\'~=\'',
13300             'lookahead' => 0,
13301             'line' => 76
13302             }, 'Parse::RecDescent::Literal' ),
13303             bless( {
13304             'hashname' => '__ACTION1__',
13305             'lookahead' => 0,
13306             'line' => 76,
13307             'code' => '{$return = $item[1]}'
13308             }, 'Parse::RecDescent::Action' )
13309             ],
13310             'line' => undef
13311             }, 'Parse::RecDescent::Production' )
13312             ],
13313             'name' => 'INCLUDES',
13314             'vars' => '',
13315             'line' => 76
13316             }, 'Parse::RecDescent::Rule' ),
13317             'macro_string1' => bless( {
13318             'impcount' => 1,
13319             'calls' => [
13320             '_alternation_1_of_production_1_of_rule_macro_string1'
13321             ],
13322             'changed' => 0,
13323             'opcount' => 0,
13324             'prods' => [
13325             bless( {
13326             'number' => '0',
13327             'strcount' => 2,
13328             'dircount' => 0,
13329             'uncommit' => undef,
13330             'error' => undef,
13331             'patcount' => 0,
13332             'actcount' => 1,
13333             'items' => [
13334             bless( {
13335             'pattern' => '"',
13336             'hashname' => '__STRING1__',
13337             'description' => '\'"\'',
13338             'lookahead' => 0,
13339             'line' => 98
13340             }, 'Parse::RecDescent::Literal' ),
13341             bless( {
13342             'subrule' => '_alternation_1_of_production_1_of_rule_macro_string1',
13343             'expected' => '/[\\\\t !#$%&(-~]/, or \'\\\\\', or \'\'\', or macro_nonascii, or macro_escape',
13344             'min' => 0,
13345             'argcode' => undef,
13346             'max' => 100000000,
13347             'matchrule' => 0,
13348             'repspec' => 's?',
13349             'lookahead' => 0,
13350             'line' => 104
13351             }, 'Parse::RecDescent::Repetition' ),
13352             bless( {
13353             'pattern' => '"',
13354             'hashname' => '__STRING2__',
13355             'description' => '\'"\'',
13356             'lookahead' => 0,
13357             'line' => 104
13358             }, 'Parse::RecDescent::Literal' ),
13359             bless( {
13360             'hashname' => '__ACTION1__',
13361             'lookahead' => 0,
13362             'line' => 104,
13363             'code' => '{$return = \'"\'.join(\'\', @{$item[2]}).\'"\'}'
13364             }, 'Parse::RecDescent::Action' )
13365             ],
13366             'line' => undef
13367             }, 'Parse::RecDescent::Production' )
13368             ],
13369             'name' => 'macro_string1',
13370             'vars' => '',
13371             'line' => 98
13372             }, 'Parse::RecDescent::Rule' ),
13373             'macro_string' => bless( {
13374             'impcount' => 0,
13375             'calls' => [
13376             'macro_string1',
13377             'macro_string2'
13378             ],
13379             'changed' => 0,
13380             'opcount' => 0,
13381             'prods' => [
13382             bless( {
13383             'number' => '0',
13384             'strcount' => 0,
13385             'dircount' => 0,
13386             'uncommit' => undef,
13387             'error' => undef,
13388             'patcount' => 0,
13389             'actcount' => 1,
13390             'items' => [
13391             bless( {
13392             'subrule' => 'macro_string1',
13393             'matchrule' => 0,
13394             'implicit' => undef,
13395             'argcode' => undef,
13396             'lookahead' => 0,
13397             'line' => 96
13398             }, 'Parse::RecDescent::Subrule' ),
13399             bless( {
13400             'hashname' => '__ACTION1__',
13401             'lookahead' => 0,
13402             'line' => 96,
13403             'code' => '{$return = $item[1]}'
13404             }, 'Parse::RecDescent::Action' )
13405             ],
13406             'line' => undef
13407             }, 'Parse::RecDescent::Production' ),
13408             bless( {
13409             'number' => '1',
13410             'strcount' => 0,
13411             'dircount' => 0,
13412             'uncommit' => undef,
13413             'error' => undef,
13414             'patcount' => 0,
13415             'actcount' => 1,
13416             'items' => [
13417             bless( {
13418             'subrule' => 'macro_string2',
13419             'matchrule' => 0,
13420             'implicit' => undef,
13421             'argcode' => undef,
13422             'lookahead' => 0,
13423             'line' => 97
13424             }, 'Parse::RecDescent::Subrule' ),
13425             bless( {
13426             'hashname' => '__ACTION1__',
13427             'lookahead' => 0,
13428             'line' => 97,
13429             'code' => '{$return = $item[1]}'
13430             }, 'Parse::RecDescent::Action' )
13431             ],
13432             'line' => 97
13433             }, 'Parse::RecDescent::Production' )
13434             ],
13435             'name' => 'macro_string',
13436             'vars' => '',
13437             'line' => 96
13438             }, 'Parse::RecDescent::Rule' ),
13439             'UNICODERANGE' => bless( {
13440             'impcount' => 0,
13441             'calls' => [],
13442             'changed' => 0,
13443             'opcount' => 0,
13444             'prods' => [
13445             bless( {
13446             'number' => '0',
13447             'strcount' => 0,
13448             'dircount' => 0,
13449             'uncommit' => undef,
13450             'error' => undef,
13451             'patcount' => 1,
13452             'actcount' => 1,
13453             'items' => [
13454             bless( {
13455             'pattern' => 'U\\+[0-9A-F?]{1,6}(-[0-9A-F]{1,6})?',
13456             'hashname' => '__PATTERN1__',
13457             'description' => '/U\\\\+[0-9A-F?]\\{1,6\\}(-[0-9A-F]\\{1,6\\})?/',
13458             'lookahead' => 0,
13459             'rdelim' => '/',
13460             'line' => 72,
13461             'mod' => '',
13462             'ldelim' => '/'
13463             }, 'Parse::RecDescent::Token' ),
13464             bless( {
13465             'hashname' => '__ACTION1__',
13466             'lookahead' => 0,
13467             'line' => 72,
13468             'code' => '{$return = $item[1]}'
13469             }, 'Parse::RecDescent::Action' )
13470             ],
13471             'line' => undef
13472             }, 'Parse::RecDescent::Production' )
13473             ],
13474             'name' => 'UNICODERANGE',
13475             'vars' => '',
13476             'line' => 72
13477             }, 'Parse::RecDescent::Rule' ),
13478             'macro_w' => bless( {
13479             'impcount' => 0,
13480             'calls' => [],
13481             'changed' => 0,
13482             'opcount' => 0,
13483             'prods' => [
13484             bless( {
13485             'number' => '0',
13486             'strcount' => 0,
13487             'dircount' => 0,
13488             'uncommit' => undef,
13489             'error' => undef,
13490             'patcount' => 1,
13491             'actcount' => 1,
13492             'items' => [
13493             bless( {
13494             'pattern' => '[ \\t\\r\\n\\f]*',
13495             'hashname' => '__PATTERN1__',
13496             'description' => '/[ \\\\t\\\\r\\\\n\\\\f]*/',
13497             'lookahead' => 0,
13498             'rdelim' => '/',
13499             'line' => 113,
13500             'mod' => '',
13501             'ldelim' => '/'
13502             }, 'Parse::RecDescent::Token' ),
13503             bless( {
13504             'hashname' => '__ACTION1__',
13505             'lookahead' => 0,
13506             'line' => 113,
13507             'code' => '{$return = $item[1]}'
13508             }, 'Parse::RecDescent::Action' )
13509             ],
13510             'line' => undef
13511             }, 'Parse::RecDescent::Production' )
13512             ],
13513             'name' => 'macro_w',
13514             'vars' => '',
13515             'line' => 113
13516             }, 'Parse::RecDescent::Rule' ),
13517             'STRING' => bless( {
13518             'impcount' => 0,
13519             'calls' => [
13520             'macro_string'
13521             ],
13522             'changed' => 0,
13523             'opcount' => 0,
13524             'prods' => [
13525             bless( {
13526             'number' => '0',
13527             'strcount' => 0,
13528             'dircount' => 0,
13529             'uncommit' => undef,
13530             'error' => undef,
13531             'patcount' => 0,
13532             'actcount' => 1,
13533             'items' => [
13534             bless( {
13535             'subrule' => 'macro_string',
13536             'matchrule' => 0,
13537             'implicit' => undef,
13538             'argcode' => undef,
13539             'lookahead' => 0,
13540             'line' => 61
13541             }, 'Parse::RecDescent::Subrule' ),
13542             bless( {
13543             'hashname' => '__ACTION1__',
13544             'lookahead' => 0,
13545             'line' => 61,
13546             'code' => '{$return = $item[1]}'
13547             }, 'Parse::RecDescent::Action' )
13548             ],
13549             'line' => undef
13550             }, 'Parse::RecDescent::Production' )
13551             ],
13552             'name' => 'STRING',
13553             'vars' => '',
13554             'line' => 61
13555             }, 'Parse::RecDescent::Rule' ),
13556             'DIMENSION' => bless( {
13557             'impcount' => 0,
13558             'calls' => [
13559             'macro_num',
13560             'macro_ident'
13561             ],
13562             'changed' => 0,
13563             'opcount' => 0,
13564             'prods' => [
13565             bless( {
13566             'number' => '0',
13567             'strcount' => 0,
13568             'dircount' => 0,
13569             'uncommit' => undef,
13570             'error' => undef,
13571             'patcount' => 0,
13572             'actcount' => 1,
13573             'items' => [
13574             bless( {
13575             'subrule' => 'macro_num',
13576             'matchrule' => 0,
13577             'implicit' => undef,
13578             'argcode' => undef,
13579             'lookahead' => 0,
13580             'line' => 65
13581             }, 'Parse::RecDescent::Subrule' ),
13582             bless( {
13583             'subrule' => 'macro_ident',
13584             'matchrule' => 0,
13585             'implicit' => undef,
13586             'argcode' => undef,
13587             'lookahead' => 0,
13588             'line' => 65
13589             }, 'Parse::RecDescent::Subrule' ),
13590             bless( {
13591             'hashname' => '__ACTION1__',
13592             'lookahead' => 0,
13593             'line' => 65,
13594             'code' => '{$return = $item[1].$item[2]}'
13595             }, 'Parse::RecDescent::Action' )
13596             ],
13597             'line' => undef
13598             }, 'Parse::RecDescent::Production' )
13599             ],
13600             'name' => 'DIMENSION',
13601             'vars' => '',
13602             'line' => 65
13603             }, 'Parse::RecDescent::Rule' ),
13604             'macro_string2' => bless( {
13605             'impcount' => 1,
13606             'calls' => [
13607             '_alternation_1_of_production_1_of_rule_macro_string2'
13608             ],
13609             'changed' => 0,
13610             'opcount' => 0,
13611             'prods' => [
13612             bless( {
13613             'number' => '0',
13614             'strcount' => 2,
13615             'dircount' => 0,
13616             'uncommit' => undef,
13617             'error' => undef,
13618             'patcount' => 0,
13619             'actcount' => 1,
13620             'items' => [
13621             bless( {
13622             'pattern' => '\'',
13623             'hashname' => '__STRING1__',
13624             'description' => '\'\'\'',
13625             'lookahead' => 0,
13626             'line' => 105
13627             }, 'Parse::RecDescent::InterpLit' ),
13628             bless( {
13629             'subrule' => '_alternation_1_of_production_1_of_rule_macro_string2',
13630             'expected' => '/[\\\\t !#$%&(-~]/, or \'\\\\\', or \'"\', or macro_nonascii, or macro_escape',
13631             'min' => 0,
13632             'argcode' => undef,
13633             'max' => 100000000,
13634             'matchrule' => 0,
13635             'repspec' => 's?',
13636             'lookahead' => 0,
13637             'line' => 111
13638             }, 'Parse::RecDescent::Repetition' ),
13639             bless( {
13640             'pattern' => '\'',
13641             'hashname' => '__STRING2__',
13642             'description' => '\'\'\'',
13643             'lookahead' => 0,
13644             'line' => 111
13645             }, 'Parse::RecDescent::InterpLit' ),
13646             bless( {
13647             'hashname' => '__ACTION1__',
13648             'lookahead' => 0,
13649             'line' => 111,
13650             'code' => '{return "\'".join(\'\', @{$item[2]})."\'"}'
13651             }, 'Parse::RecDescent::Action' )
13652             ],
13653             'line' => undef
13654             }, 'Parse::RecDescent::Production' )
13655             ],
13656             'name' => 'macro_string2',
13657             'vars' => '',
13658             'line' => 105
13659             }, 'Parse::RecDescent::Rule' ),
13660             'macro_num' => bless( {
13661             'impcount' => 0,
13662             'calls' => [],
13663             'changed' => 0,
13664             'opcount' => 0,
13665             'prods' => [
13666             bless( {
13667             'number' => '0',
13668             'strcount' => 0,
13669             'dircount' => 0,
13670             'uncommit' => undef,
13671             'error' => undef,
13672             'patcount' => 1,
13673             'actcount' => 1,
13674             'items' => [
13675             bless( {
13676             'pattern' => '[0-9]+|[0-9]*\\.[0-9]+',
13677             'hashname' => '__PATTERN1__',
13678             'description' => '/[0-9]+|[0-9]*\\\\.[0-9]+/',
13679             'lookahead' => 0,
13680             'rdelim' => '/',
13681             'line' => 95,
13682             'mod' => '',
13683             'ldelim' => '/'
13684             }, 'Parse::RecDescent::Token' ),
13685             bless( {
13686             'hashname' => '__ACTION1__',
13687             'lookahead' => 0,
13688             'line' => 95,
13689             'code' => '{$return = $item[1]}'
13690             }, 'Parse::RecDescent::Action' )
13691             ],
13692             'line' => undef
13693             }, 'Parse::RecDescent::Production' )
13694             ],
13695             'name' => 'macro_num',
13696             'vars' => '',
13697             'line' => 95
13698             }, 'Parse::RecDescent::Rule' ),
13699             'declaration' => bless( {
13700             'impcount' => 0,
13701             'calls' => [
13702             'property',
13703             'WS',
13704             'value'
13705             ],
13706             'changed' => 0,
13707             'opcount' => 0,
13708             'prods' => [
13709             bless( {
13710             'number' => '0',
13711             'strcount' => 1,
13712             'dircount' => 0,
13713             'uncommit' => undef,
13714             'error' => undef,
13715             'patcount' => 0,
13716             'actcount' => 1,
13717             'items' => [
13718             bless( {
13719             'subrule' => 'property',
13720             'matchrule' => 0,
13721             'implicit' => undef,
13722             'argcode' => undef,
13723             'lookahead' => 0,
13724             'line' => 25
13725             }, 'Parse::RecDescent::Subrule' ),
13726             bless( {
13727             'pattern' => ':',
13728             'hashname' => '__STRING1__',
13729             'description' => '\':\'',
13730             'lookahead' => 0,
13731             'line' => 25
13732             }, 'Parse::RecDescent::Literal' ),
13733             bless( {
13734             'subrule' => 'WS',
13735             'expected' => undef,
13736             'min' => 0,
13737             'argcode' => undef,
13738             'max' => 100000000,
13739             'matchrule' => 0,
13740             'repspec' => 's?',
13741             'lookahead' => 0,
13742             'line' => 25
13743             }, 'Parse::RecDescent::Repetition' ),
13744             bless( {
13745             'subrule' => 'value',
13746             'matchrule' => 0,
13747             'implicit' => undef,
13748             'argcode' => undef,
13749             'lookahead' => 0,
13750             'line' => 25
13751             }, 'Parse::RecDescent::Subrule' ),
13752             bless( {
13753             'hashname' => '__ACTION1__',
13754             'lookahead' => 0,
13755             'line' => 26,
13756             'code' => '{
13757             $ruleset->add_property(new CSS::Property({
13758             \'property\' => $item[1],
13759             \'value\' => $item[4],
13760             }));
13761             1;
13762             }'
13763             }, 'Parse::RecDescent::Action' )
13764             ],
13765             'line' => undef
13766             }, 'Parse::RecDescent::Production' ),
13767             bless( {
13768             'number' => '1',
13769             'strcount' => 0,
13770             'dircount' => 1,
13771             'uncommit' => undef,
13772             'error' => undef,
13773             'patcount' => 0,
13774             'actcount' => 0,
13775             'items' => [
13776             bless( {
13777             'hashname' => '__DIRECTIVE1__',
13778             'name' => '<rulevar: local $value>',
13779             'lookahead' => 0,
13780             'line' => 33
13781             }, 'Parse::RecDescent::UncondReject' )
13782             ],
13783             'line' => undef
13784             }, 'Parse::RecDescent::Production' )
13785             ],
13786             'name' => 'declaration',
13787             'vars' => ' local $value;
13788             ',
13789             'line' => 25
13790             }, 'Parse::RecDescent::Rule' ),
13791             'macro_escape' => bless( {
13792             'impcount' => 0,
13793             'calls' => [
13794             'macro_unicode'
13795             ],
13796             'changed' => 0,
13797             'opcount' => 0,
13798             'prods' => [
13799             bless( {
13800             'number' => '0',
13801             'strcount' => 0,
13802             'dircount' => 0,
13803             'uncommit' => undef,
13804             'error' => undef,
13805             'patcount' => 0,
13806             'actcount' => 1,
13807             'items' => [
13808             bless( {
13809             'subrule' => 'macro_unicode',
13810             'matchrule' => 0,
13811             'implicit' => undef,
13812             'argcode' => undef,
13813             'lookahead' => 0,
13814             'line' => 90
13815             }, 'Parse::RecDescent::Subrule' ),
13816             bless( {
13817             'hashname' => '__ACTION1__',
13818             'lookahead' => 0,
13819             'line' => 90,
13820             'code' => '{$return = $item[1]}'
13821             }, 'Parse::RecDescent::Action' )
13822             ],
13823             'line' => undef
13824             }, 'Parse::RecDescent::Production' ),
13825             bless( {
13826             'number' => '1',
13827             'strcount' => 0,
13828             'dircount' => 0,
13829             'uncommit' => undef,
13830             'error' => undef,
13831             'patcount' => 1,
13832             'actcount' => 1,
13833             'items' => [
13834             bless( {
13835             'pattern' => '\\\\[ -~\\200-\\4177777]',
13836             'hashname' => '__PATTERN1__',
13837             'description' => '/\\\\\\\\[ -~\\\\200-\\\\4177777]/',
13838             'lookahead' => 0,
13839             'rdelim' => '/',
13840             'line' => 91,
13841             'mod' => '',
13842             'ldelim' => '/'
13843             }, 'Parse::RecDescent::Token' ),
13844             bless( {
13845             'hashname' => '__ACTION1__',
13846             'lookahead' => 0,
13847             'line' => 91,
13848             'code' => '{$return = $item[1]}'
13849             }, 'Parse::RecDescent::Action' )
13850             ],
13851             'line' => 91
13852             }, 'Parse::RecDescent::Production' )
13853             ],
13854             'name' => 'macro_escape',
13855             'vars' => '',
13856             'line' => 90
13857             }, 'Parse::RecDescent::Rule' ),
13858             'FUNCTION' => bless( {
13859             'impcount' => 0,
13860             'calls' => [
13861             'macro_ident'
13862             ],
13863             'changed' => 0,
13864             'opcount' => 0,
13865             'prods' => [
13866             bless( {
13867             'number' => '0',
13868             'strcount' => 1,
13869             'dircount' => 0,
13870             'uncommit' => undef,
13871             'error' => undef,
13872             'patcount' => 0,
13873             'actcount' => 1,
13874             'items' => [
13875             bless( {
13876             'subrule' => 'macro_ident',
13877             'matchrule' => 0,
13878             'implicit' => undef,
13879             'argcode' => undef,
13880             'lookahead' => 0,
13881             'line' => 75
13882             }, 'Parse::RecDescent::Subrule' ),
13883             bless( {
13884             'pattern' => '(',
13885             'hashname' => '__STRING1__',
13886             'description' => '\'(\'',
13887             'lookahead' => 0,
13888             'line' => 75
13889             }, 'Parse::RecDescent::Literal' ),
13890             bless( {
13891             'hashname' => '__ACTION1__',
13892             'lookahead' => 0,
13893             'line' => 75,
13894             'code' => '{$return = $item[1].\'(\'}'
13895             }, 'Parse::RecDescent::Action' )
13896             ],
13897             'line' => undef
13898             }, 'Parse::RecDescent::Production' )
13899             ],
13900             'name' => 'FUNCTION',
13901             'vars' => '',
13902             'line' => 75
13903             }, 'Parse::RecDescent::Rule' ),
13904             'stylesheet' => bless( {
13905             'impcount' => 0,
13906             'calls' => [
13907             '_alternation_1_of_production_1_of_rule_stylesheet'
13908             ],
13909             'changed' => 0,
13910             'opcount' => 0,
13911             'prods' => [
13912             bless( {
13913             'number' => '0',
13914             'strcount' => 0,
13915             'dircount' => 0,
13916             'uncommit' => undef,
13917             'error' => undef,
13918             'patcount' => 0,
13919             'actcount' => 1,
13920             'items' => [
13921             bless( {
13922             'subrule' => '_alternation_1_of_production_1_of_rule_stylesheet',
13923             'expected' => 'WS, or statement',
13924             'min' => 1,
13925             'argcode' => undef,
13926             'max' => 100000000,
13927             'matchrule' => 0,
13928             'repspec' => 's',
13929             'lookahead' => 0,
13930             'line' => 9
13931             }, 'Parse::RecDescent::Repetition' ),
13932             bless( {
13933             'hashname' => '__ACTION1__',
13934             'lookahead' => 0,
13935             'line' => 9,
13936             'code' => '{$return = $all_rulesets;}'
13937             }, 'Parse::RecDescent::Action' )
13938             ],
13939             'line' => undef
13940             }, 'Parse::RecDescent::Production' ),
13941             bless( {
13942             'number' => '1',
13943             'strcount' => 0,
13944             'dircount' => 1,
13945             'uncommit' => undef,
13946             'error' => undef,
13947             'patcount' => 0,
13948             'actcount' => 0,
13949             'items' => [
13950             bless( {
13951             'hashname' => '__DIRECTIVE1__',
13952             'name' => '<rulevar: local $all_rulesets>',
13953             'lookahead' => 0,
13954             'line' => 10
13955             }, 'Parse::RecDescent::UncondReject' )
13956             ],
13957             'line' => undef
13958             }, 'Parse::RecDescent::Production' )
13959             ],
13960             'name' => 'stylesheet',
13961             'vars' => ' local $all_rulesets;
13962             ',
13963             'line' => 5
13964             }, 'Parse::RecDescent::Rule' ),
13965             'NUMBER' => bless( {
13966             'impcount' => 0,
13967             'calls' => [
13968             'macro_num'
13969             ],
13970             'changed' => 0,
13971             'opcount' => 0,
13972             'prods' => [
13973             bless( {
13974             'number' => '0',
13975             'strcount' => 0,
13976             'dircount' => 0,
13977             'uncommit' => undef,
13978             'error' => undef,
13979             'patcount' => 0,
13980             'actcount' => 1,
13981             'items' => [
13982             bless( {
13983             'subrule' => 'macro_num',
13984             'matchrule' => 0,
13985             'implicit' => undef,
13986             'argcode' => undef,
13987             'lookahead' => 0,
13988             'line' => 63
13989             }, 'Parse::RecDescent::Subrule' ),
13990             bless( {
13991             'hashname' => '__ACTION1__',
13992             'lookahead' => 0,
13993             'line' => 63,
13994             'code' => '{$return = $item[1]}'
13995             }, 'Parse::RecDescent::Action' )
13996             ],
13997             'line' => undef
13998             }, 'Parse::RecDescent::Production' )
13999             ],
14000             'name' => 'NUMBER',
14001             'vars' => '',
14002             'line' => 63
14003             }, 'Parse::RecDescent::Rule' ),
14004             'macro_name' => bless( {
14005             'impcount' => 0,
14006             'calls' => [
14007             'macro_nmchar'
14008             ],
14009             'changed' => 0,
14010             'opcount' => 0,
14011             'prods' => [
14012             bless( {
14013             'number' => '0',
14014             'strcount' => 0,
14015             'dircount' => 0,
14016             'uncommit' => undef,
14017             'error' => undef,
14018             'patcount' => 0,
14019             'actcount' => 1,
14020             'items' => [
14021             bless( {
14022             'subrule' => 'macro_nmchar',
14023             'expected' => undef,
14024             'min' => 1,
14025             'argcode' => undef,
14026             'max' => 100000000,
14027             'matchrule' => 0,
14028             'repspec' => 's',
14029             'lookahead' => 0,
14030             'line' => 84
14031             }, 'Parse::RecDescent::Repetition' ),
14032             bless( {
14033             'hashname' => '__ACTION1__',
14034             'lookahead' => 0,
14035             'line' => 84,
14036             'code' => '{$return = join(\'\',@{$item[1]})}'
14037             }, 'Parse::RecDescent::Action' )
14038             ],
14039             'line' => undef
14040             }, 'Parse::RecDescent::Production' )
14041             ],
14042             'name' => 'macro_name',
14043             'vars' => '',
14044             'line' => 84
14045             }, 'Parse::RecDescent::Rule' ),
14046             '_alternation_1_of_production_1_of_rule_stylesheet' => bless( {
14047             'impcount' => 0,
14048             'calls' => [
14049             'WS',
14050             'statement'
14051             ],
14052             'changed' => 0,
14053             'opcount' => 0,
14054             'prods' => [
14055             bless( {
14056             'number' => '0',
14057             'strcount' => 0,
14058             'dircount' => 0,
14059             'uncommit' => undef,
14060             'error' => undef,
14061             'patcount' => 0,
14062             'actcount' => 1,
14063             'items' => [
14064             bless( {
14065             'subrule' => 'WS',
14066             'matchrule' => 0,
14067             'implicit' => undef,
14068             'argcode' => undef,
14069             'lookahead' => 0,
14070             'line' => 113
14071             }, 'Parse::RecDescent::Subrule' ),
14072             bless( {
14073             'hashname' => '__ACTION1__',
14074             'lookahead' => 0,
14075             'line' => 113,
14076             'code' => '{2;}'
14077             }, 'Parse::RecDescent::Action' )
14078             ],
14079             'line' => undef
14080             }, 'Parse::RecDescent::Production' ),
14081             bless( {
14082             'number' => '1',
14083             'strcount' => 0,
14084             'dircount' => 0,
14085             'uncommit' => undef,
14086             'error' => undef,
14087             'patcount' => 0,
14088             'actcount' => 1,
14089             'items' => [
14090             bless( {
14091             'subrule' => 'statement',
14092             'matchrule' => 0,
14093             'implicit' => undef,
14094             'argcode' => undef,
14095             'lookahead' => 0,
14096             'line' => 114
14097             }, 'Parse::RecDescent::Subrule' ),
14098             bless( {
14099             'hashname' => '__ACTION1__',
14100             'lookahead' => 0,
14101             'line' => 114,
14102             'code' => '{3;}'
14103             }, 'Parse::RecDescent::Action' )
14104             ],
14105             'line' => 114
14106             }, 'Parse::RecDescent::Production' )
14107             ],
14108             'name' => '_alternation_1_of_production_1_of_rule_stylesheet',
14109             'vars' => '',
14110             'line' => 112
14111             }, 'Parse::RecDescent::Rule' ),
14112             'ATKEYWORD' => bless( {
14113             'impcount' => 0,
14114             'calls' => [
14115             'macro_ident'
14116             ],
14117             'changed' => 0,
14118             'opcount' => 0,
14119             'prods' => [
14120             bless( {
14121             'number' => '0',
14122             'strcount' => 1,
14123             'dircount' => 0,
14124             'uncommit' => undef,
14125             'error' => undef,
14126             'patcount' => 0,
14127             'actcount' => 1,
14128             'items' => [
14129             bless( {
14130             'pattern' => '@',
14131             'hashname' => '__STRING1__',
14132             'description' => '\'@\'',
14133             'lookahead' => 0,
14134             'line' => 60
14135             }, 'Parse::RecDescent::Literal' ),
14136             bless( {
14137             'subrule' => 'macro_ident',
14138             'matchrule' => 0,
14139             'implicit' => undef,
14140             'argcode' => undef,
14141             'lookahead' => 0,
14142             'line' => 60
14143             }, 'Parse::RecDescent::Subrule' ),
14144             bless( {
14145             'hashname' => '__ACTION1__',
14146             'lookahead' => 0,
14147             'line' => 60,
14148             'code' => '{$return = \'@\'.$item[2]}'
14149             }, 'Parse::RecDescent::Action' )
14150             ],
14151             'line' => undef
14152             }, 'Parse::RecDescent::Production' )
14153             ],
14154             'name' => 'ATKEYWORD',
14155             'vars' => '',
14156             'line' => 60
14157             }, 'Parse::RecDescent::Rule' ),
14158             'URI' => bless( {
14159             'impcount' => 1,
14160             'calls' => [
14161             'macro_w',
14162             'macro_string',
14163             '_alternation_1_of_production_2_of_rule_URI'
14164             ],
14165             'changed' => 0,
14166             'opcount' => 0,
14167             'prods' => [
14168             bless( {
14169             'number' => '0',
14170             'strcount' => 2,
14171             'dircount' => 0,
14172             'uncommit' => undef,
14173             'error' => undef,
14174             'patcount' => 0,
14175             'actcount' => 1,
14176             'items' => [
14177             bless( {
14178             'pattern' => 'url(',
14179             'hashname' => '__STRING1__',
14180             'description' => '\'url(\'',
14181             'lookahead' => 0,
14182             'line' => 66
14183             }, 'Parse::RecDescent::Literal' ),
14184             bless( {
14185             'subrule' => 'macro_w',
14186             'matchrule' => 0,
14187             'implicit' => undef,
14188             'argcode' => undef,
14189             'lookahead' => 0,
14190             'line' => 66
14191             }, 'Parse::RecDescent::Subrule' ),
14192             bless( {
14193             'subrule' => 'macro_string',
14194             'matchrule' => 0,
14195             'implicit' => undef,
14196             'argcode' => undef,
14197             'lookahead' => 0,
14198             'line' => 66
14199             }, 'Parse::RecDescent::Subrule' ),
14200             bless( {
14201             'subrule' => 'macro_w',
14202             'matchrule' => 0,
14203             'implicit' => undef,
14204             'argcode' => undef,
14205             'lookahead' => 0,
14206             'line' => 66
14207             }, 'Parse::RecDescent::Subrule' ),
14208             bless( {
14209             'pattern' => ')',
14210             'hashname' => '__STRING2__',
14211             'description' => '\')\'',
14212             'lookahead' => 0,
14213             'line' => 66
14214             }, 'Parse::RecDescent::Literal' ),
14215             bless( {
14216             'hashname' => '__ACTION1__',
14217             'lookahead' => 0,
14218             'line' => 66,
14219             'code' => '{$return = "url(".$item[3].")"}'
14220             }, 'Parse::RecDescent::Action' )
14221             ],
14222             'line' => undef
14223             }, 'Parse::RecDescent::Production' ),
14224             bless( {
14225             'number' => '1',
14226             'strcount' => 2,
14227             'dircount' => 0,
14228             'uncommit' => undef,
14229             'error' => undef,
14230             'patcount' => 0,
14231             'actcount' => 1,
14232             'items' => [
14233             bless( {
14234             'pattern' => 'url(',
14235             'hashname' => '__STRING1__',
14236             'description' => '\'url(\'',
14237             'lookahead' => 0,
14238             'line' => 67
14239             }, 'Parse::RecDescent::Literal' ),
14240             bless( {
14241             'subrule' => 'macro_w',
14242             'matchrule' => 0,
14243             'implicit' => undef,
14244             'argcode' => undef,
14245             'lookahead' => 0,
14246             'line' => 67
14247             }, 'Parse::RecDescent::Subrule' ),
14248             bless( {
14249             'subrule' => '_alternation_1_of_production_2_of_rule_URI',
14250             'expected' => '/[!#$%&*-~]/, or macro_nonascii, or macro_escape',
14251             'min' => 0,
14252             'argcode' => undef,
14253             'max' => 100000000,
14254             'matchrule' => 0,
14255             'repspec' => 's?',
14256             'lookahead' => 0,
14257             'line' => 71
14258             }, 'Parse::RecDescent::Repetition' ),
14259             bless( {
14260             'subrule' => 'macro_w',
14261             'matchrule' => 0,
14262             'implicit' => undef,
14263             'argcode' => undef,
14264             'lookahead' => 0,
14265             'line' => 71
14266             }, 'Parse::RecDescent::Subrule' ),
14267             bless( {
14268             'pattern' => ')',
14269             'hashname' => '__STRING2__',
14270             'description' => '\')\'',
14271             'lookahead' => 0,
14272             'line' => 71
14273             }, 'Parse::RecDescent::Literal' ),
14274             bless( {
14275             'hashname' => '__ACTION1__',
14276             'lookahead' => 0,
14277             'line' => 71,
14278             'code' => '{$return = "url(".join(\'\',@{$item[3]}).")"}'
14279             }, 'Parse::RecDescent::Action' )
14280             ],
14281             'line' => 67
14282             }, 'Parse::RecDescent::Production' )
14283             ],
14284             'name' => 'URI',
14285             'vars' => '',
14286             'line' => 66
14287             }, 'Parse::RecDescent::Rule' ),
14288             'any_item' => bless( {
14289             'impcount' => 0,
14290             'calls' => [
14291             'URI',
14292             'IDENT',
14293             'NUMBER',
14294             'PERCENTAGE',
14295             'DIMENSION',
14296             'STRING',
14297             'HASH',
14298             'UNICODERANGE',
14299             'INCLUDES',
14300             'FUNCTION',
14301             'DASHMATCH',
14302             'any',
14303             'DELIM'
14304             ],
14305             'changed' => 0,
14306             'opcount' => 0,
14307             'prods' => [
14308             bless( {
14309             'number' => '0',
14310             'strcount' => 0,
14311             'dircount' => 0,
14312             'uncommit' => undef,
14313             'error' => undef,
14314             'patcount' => 0,
14315             'actcount' => 1,
14316             'items' => [
14317             bless( {
14318             'subrule' => 'URI',
14319             'matchrule' => 0,
14320             'implicit' => undef,
14321             'argcode' => undef,
14322             'lookahead' => 0,
14323             'line' => 41
14324             }, 'Parse::RecDescent::Subrule' ),
14325             bless( {
14326             'hashname' => '__ACTION1__',
14327             'lookahead' => 0,
14328             'line' => 41,
14329             'code' => '{$return = $item[1];}'
14330             }, 'Parse::RecDescent::Action' )
14331             ],
14332             'line' => undef
14333             }, 'Parse::RecDescent::Production' ),
14334             bless( {
14335             'number' => '1',
14336             'strcount' => 0,
14337             'dircount' => 0,
14338             'uncommit' => undef,
14339             'error' => undef,
14340             'patcount' => 0,
14341             'actcount' => 1,
14342             'items' => [
14343             bless( {
14344             'subrule' => 'IDENT',
14345             'matchrule' => 0,
14346             'implicit' => undef,
14347             'argcode' => undef,
14348             'lookahead' => 0,
14349             'line' => 42
14350             }, 'Parse::RecDescent::Subrule' ),
14351             bless( {
14352             'hashname' => '__ACTION1__',
14353             'lookahead' => 0,
14354             'line' => 42,
14355             'code' => '{$return = $item[1];}'
14356             }, 'Parse::RecDescent::Action' )
14357             ],
14358             'line' => 42
14359             }, 'Parse::RecDescent::Production' ),
14360             bless( {
14361             'number' => '2',
14362             'strcount' => 0,
14363             'dircount' => 0,
14364             'uncommit' => undef,
14365             'error' => undef,
14366             'patcount' => 0,
14367             'actcount' => 1,
14368             'items' => [
14369             bless( {
14370             'subrule' => 'NUMBER',
14371             'matchrule' => 0,
14372             'implicit' => undef,
14373             'argcode' => undef,
14374             'lookahead' => 0,
14375             'line' => 43
14376             }, 'Parse::RecDescent::Subrule' ),
14377             bless( {
14378             'hashname' => '__ACTION1__',
14379             'lookahead' => 0,
14380             'line' => 43,
14381             'code' => '{$return = $item[1];}'
14382             }, 'Parse::RecDescent::Action' )
14383             ],
14384             'line' => 43
14385             }, 'Parse::RecDescent::Production' ),
14386             bless( {
14387             'number' => '3',
14388             'strcount' => 0,
14389             'dircount' => 0,
14390             'uncommit' => undef,
14391             'error' => undef,
14392             'patcount' => 0,
14393             'actcount' => 1,
14394             'items' => [
14395             bless( {
14396             'subrule' => 'PERCENTAGE',
14397             'matchrule' => 0,
14398             'implicit' => undef,
14399             'argcode' => undef,
14400             'lookahead' => 0,
14401             'line' => 44
14402             }, 'Parse::RecDescent::Subrule' ),
14403             bless( {
14404             'hashname' => '__ACTION1__',
14405             'lookahead' => 0,
14406             'line' => 44,
14407             'code' => '{$return = $item[1];}'
14408             }, 'Parse::RecDescent::Action' )
14409             ],
14410             'line' => 44
14411             }, 'Parse::RecDescent::Production' ),
14412             bless( {
14413             'number' => '4',
14414             'strcount' => 0,
14415             'dircount' => 0,
14416             'uncommit' => undef,
14417             'error' => undef,
14418             'patcount' => 0,
14419             'actcount' => 1,
14420             'items' => [
14421             bless( {
14422             'subrule' => 'DIMENSION',
14423             'matchrule' => 0,
14424             'implicit' => undef,
14425             'argcode' => undef,
14426             'lookahead' => 0,
14427             'line' => 45
14428             }, 'Parse::RecDescent::Subrule' ),
14429             bless( {
14430             'hashname' => '__ACTION1__',
14431             'lookahead' => 0,
14432             'line' => 45,
14433             'code' => '{$return = $item[1];}'
14434             }, 'Parse::RecDescent::Action' )
14435             ],
14436             'line' => 45
14437             }, 'Parse::RecDescent::Production' ),
14438             bless( {
14439             'number' => '5',
14440             'strcount' => 0,
14441             'dircount' => 0,
14442             'uncommit' => undef,
14443             'error' => undef,
14444             'patcount' => 0,
14445             'actcount' => 1,
14446             'items' => [
14447             bless( {
14448             'subrule' => 'STRING',
14449             'matchrule' => 0,
14450             'implicit' => undef,
14451             'argcode' => undef,
14452             'lookahead' => 0,
14453             'line' => 46
14454             }, 'Parse::RecDescent::Subrule' ),
14455             bless( {
14456             'hashname' => '__ACTION1__',
14457             'lookahead' => 0,
14458             'line' => 46,
14459             'code' => '{$return = $item[1];}'
14460             }, 'Parse::RecDescent::Action' )
14461             ],
14462             'line' => 46
14463             }, 'Parse::RecDescent::Production' ),
14464             bless( {
14465             'number' => '6',
14466             'strcount' => 0,
14467             'dircount' => 0,
14468             'uncommit' => undef,
14469             'error' => undef,
14470             'patcount' => 0,
14471             'actcount' => 1,
14472             'items' => [
14473             bless( {
14474             'subrule' => 'HASH',
14475             'matchrule' => 0,
14476             'implicit' => undef,
14477             'argcode' => undef,
14478             'lookahead' => 0,
14479             'line' => 47
14480             }, 'Parse::RecDescent::Subrule' ),
14481             bless( {
14482             'hashname' => '__ACTION1__',
14483             'lookahead' => 0,
14484             'line' => 47,
14485             'code' => '{$return = $item[1];}'
14486             }, 'Parse::RecDescent::Action' )
14487             ],
14488             'line' => 47
14489             }, 'Parse::RecDescent::Production' ),
14490             bless( {
14491             'number' => '7',
14492             'strcount' => 0,
14493             'dircount' => 0,
14494             'uncommit' => undef,
14495             'error' => undef,
14496             'patcount' => 0,
14497             'actcount' => 1,
14498             'items' => [
14499             bless( {
14500             'subrule' => 'UNICODERANGE',
14501             'matchrule' => 0,
14502             'implicit' => undef,
14503             'argcode' => undef,
14504             'lookahead' => 0,
14505             'line' => 48
14506             }, 'Parse::RecDescent::Subrule' ),
14507             bless( {
14508             'hashname' => '__ACTION1__',
14509             'lookahead' => 0,
14510             'line' => 48,
14511             'code' => '{$return = $item[1];}'
14512             }, 'Parse::RecDescent::Action' )
14513             ],
14514             'line' => 48
14515             }, 'Parse::RecDescent::Production' ),
14516             bless( {
14517             'number' => '8',
14518             'strcount' => 0,
14519             'dircount' => 0,
14520             'uncommit' => undef,
14521             'error' => undef,
14522             'patcount' => 0,
14523             'actcount' => 1,
14524             'items' => [
14525             bless( {
14526             'subrule' => 'INCLUDES',
14527             'matchrule' => 0,
14528             'implicit' => undef,
14529             'argcode' => undef,
14530             'lookahead' => 0,
14531             'line' => 49
14532             }, 'Parse::RecDescent::Subrule' ),
14533             bless( {
14534             'hashname' => '__ACTION1__',
14535             'lookahead' => 0,
14536             'line' => 49,
14537             'code' => '{$return = $item[1];}'
14538             }, 'Parse::RecDescent::Action' )
14539             ],
14540             'line' => 49
14541             }, 'Parse::RecDescent::Production' ),
14542             bless( {
14543             'number' => '9',
14544             'strcount' => 0,
14545             'dircount' => 0,
14546             'uncommit' => undef,
14547             'error' => undef,
14548             'patcount' => 0,
14549             'actcount' => 1,
14550             'items' => [
14551             bless( {
14552             'subrule' => 'FUNCTION',
14553             'matchrule' => 0,
14554             'implicit' => undef,
14555             'argcode' => undef,
14556             'lookahead' => 0,
14557             'line' => 50
14558             }, 'Parse::RecDescent::Subrule' ),
14559             bless( {
14560             'hashname' => '__ACTION1__',
14561             'lookahead' => 0,
14562             'line' => 50,
14563             'code' => '{$return = $item[1];}'
14564             }, 'Parse::RecDescent::Action' )
14565             ],
14566             'line' => 50
14567             }, 'Parse::RecDescent::Production' ),
14568             bless( {
14569             'number' => '10',
14570             'strcount' => 0,
14571             'dircount' => 0,
14572             'uncommit' => undef,
14573             'error' => undef,
14574             'patcount' => 0,
14575             'actcount' => 1,
14576             'items' => [
14577             bless( {
14578             'subrule' => 'DASHMATCH',
14579             'matchrule' => 0,
14580             'implicit' => undef,
14581             'argcode' => undef,
14582             'lookahead' => 0,
14583             'line' => 51
14584             }, 'Parse::RecDescent::Subrule' ),
14585             bless( {
14586             'hashname' => '__ACTION1__',
14587             'lookahead' => 0,
14588             'line' => 51,
14589             'code' => '{$return = $item[1];}'
14590             }, 'Parse::RecDescent::Action' )
14591             ],
14592             'line' => 51
14593             }, 'Parse::RecDescent::Production' ),
14594             bless( {
14595             'number' => '11',
14596             'strcount' => 2,
14597             'dircount' => 0,
14598             'uncommit' => undef,
14599             'error' => undef,
14600             'patcount' => 0,
14601             'actcount' => 1,
14602             'items' => [
14603             bless( {
14604             'pattern' => '(',
14605             'hashname' => '__STRING1__',
14606             'description' => '\'(\'',
14607             'lookahead' => 0,
14608             'line' => 52
14609             }, 'Parse::RecDescent::Literal' ),
14610             bless( {
14611             'subrule' => 'any',
14612             'expected' => undef,
14613             'min' => 0,
14614             'argcode' => undef,
14615             'max' => 100000000,
14616             'matchrule' => 0,
14617             'repspec' => 's?',
14618             'lookahead' => 0,
14619             'line' => 52
14620             }, 'Parse::RecDescent::Repetition' ),
14621             bless( {
14622             'pattern' => ')',
14623             'hashname' => '__STRING2__',
14624             'description' => '\')\'',
14625             'lookahead' => 0,
14626             'line' => 52
14627             }, 'Parse::RecDescent::Literal' ),
14628             bless( {
14629             'hashname' => '__ACTION1__',
14630             'lookahead' => 0,
14631             'line' => 52,
14632             'code' => '{$return = \'(\'.join(\'\',@{$item[2]}).\')\';}'
14633             }, 'Parse::RecDescent::Action' )
14634             ],
14635             'line' => 52
14636             }, 'Parse::RecDescent::Production' ),
14637             bless( {
14638             'number' => '12',
14639             'strcount' => 2,
14640             'dircount' => 0,
14641             'uncommit' => undef,
14642             'error' => undef,
14643             'patcount' => 0,
14644             'actcount' => 1,
14645             'items' => [
14646             bless( {
14647             'pattern' => '[',
14648             'hashname' => '__STRING1__',
14649             'description' => '\'[\'',
14650             'lookahead' => 0,
14651             'line' => 53
14652             }, 'Parse::RecDescent::Literal' ),
14653             bless( {
14654             'subrule' => 'any',
14655             'expected' => undef,
14656             'min' => 0,
14657             'argcode' => undef,
14658             'max' => 100000000,
14659             'matchrule' => 0,
14660             'repspec' => 's?',
14661             'lookahead' => 0,
14662             'line' => 53
14663             }, 'Parse::RecDescent::Repetition' ),
14664             bless( {
14665             'pattern' => ']',
14666             'hashname' => '__STRING2__',
14667             'description' => '\']\'',
14668             'lookahead' => 0,
14669             'line' => 53
14670             }, 'Parse::RecDescent::Literal' ),
14671             bless( {
14672             'hashname' => '__ACTION1__',
14673             'lookahead' => 0,
14674             'line' => 53,
14675             'code' => '{$return = \'[\'.join(\'\',@{$item[2]}).\']\';}'
14676             }, 'Parse::RecDescent::Action' )
14677             ],
14678             'line' => 53
14679             }, 'Parse::RecDescent::Production' ),
14680             bless( {
14681             'number' => '13',
14682             'strcount' => 0,
14683             'dircount' => 0,
14684             'uncommit' => undef,
14685             'error' => undef,
14686             'patcount' => 0,
14687             'actcount' => 1,
14688             'items' => [
14689             bless( {
14690             'subrule' => 'DELIM',
14691             'matchrule' => 0,
14692             'implicit' => undef,
14693             'argcode' => undef,
14694             'lookahead' => 0,
14695             'line' => 54
14696             }, 'Parse::RecDescent::Subrule' ),
14697             bless( {
14698             'hashname' => '__ACTION1__',
14699             'lookahead' => 0,
14700             'line' => 54,
14701             'code' => '{$return = $item[1];}'
14702             }, 'Parse::RecDescent::Action' )
14703             ],
14704             'line' => 54
14705             }, 'Parse::RecDescent::Production' )
14706             ],
14707             'name' => 'any_item',
14708             'vars' => '',
14709             'line' => 41
14710             }, 'Parse::RecDescent::Rule' ),
14711             'any' => bless( {
14712             'impcount' => 0,
14713             'calls' => [
14714             'any_item',
14715             'OWS'
14716             ],
14717             'changed' => 0,
14718             'opcount' => 0,
14719             'prods' => [
14720             bless( {
14721             'number' => '0',
14722             'strcount' => 0,
14723             'dircount' => 0,
14724             'uncommit' => undef,
14725             'error' => undef,
14726             'patcount' => 0,
14727             'actcount' => 1,
14728             'items' => [
14729             bless( {
14730             'subrule' => 'any_item',
14731             'matchrule' => 0,
14732             'implicit' => undef,
14733             'argcode' => undef,
14734             'lookahead' => 0,
14735             'line' => 40
14736             }, 'Parse::RecDescent::Subrule' ),
14737             bless( {
14738             'subrule' => 'OWS',
14739             'matchrule' => 0,
14740             'implicit' => undef,
14741             'argcode' => undef,
14742             'lookahead' => 0,
14743             'line' => 40
14744             }, 'Parse::RecDescent::Subrule' ),
14745             bless( {
14746             'hashname' => '__ACTION1__',
14747             'lookahead' => 0,
14748             'line' => 40,
14749             'code' => '{$return = $item[1].$item[2]}'
14750             }, 'Parse::RecDescent::Action' )
14751             ],
14752             'line' => undef
14753             }, 'Parse::RecDescent::Production' )
14754             ],
14755             'name' => 'any',
14756             'vars' => '',
14757             'line' => 40
14758             }, 'Parse::RecDescent::Rule' ),
14759             'DASHMATCH' => bless( {
14760             'impcount' => 0,
14761             'calls' => [],
14762             'changed' => 0,
14763             'opcount' => 0,
14764             'prods' => [
14765             bless( {
14766             'number' => '0',
14767             'strcount' => 1,
14768             'dircount' => 0,
14769             'uncommit' => undef,
14770             'error' => undef,
14771             'patcount' => 0,
14772             'actcount' => 1,
14773             'items' => [
14774             bless( {
14775             'pattern' => '|=',
14776             'hashname' => '__STRING1__',
14777             'description' => '\'|=\'',
14778             'lookahead' => 0,
14779             'line' => 77
14780             }, 'Parse::RecDescent::Literal' ),
14781             bless( {
14782             'hashname' => '__ACTION1__',
14783             'lookahead' => 0,
14784             'line' => 77,
14785             'code' => '{$return = $item[1]}'
14786             }, 'Parse::RecDescent::Action' )
14787             ],
14788             'line' => undef
14789             }, 'Parse::RecDescent::Production' )
14790             ],
14791             'name' => 'DASHMATCH',
14792             'vars' => '',
14793             'line' => 77
14794             }, 'Parse::RecDescent::Rule' ),
14795             'macro_nmchar' => bless( {
14796             'impcount' => 0,
14797             'calls' => [
14798             'macro_nonascii',
14799             'macro_escape'
14800             ],
14801             'changed' => 0,
14802             'opcount' => 0,
14803             'prods' => [
14804             bless( {
14805             'number' => '0',
14806             'strcount' => 0,
14807             'dircount' => 0,
14808             'uncommit' => undef,
14809             'error' => undef,
14810             'patcount' => 1,
14811             'actcount' => 1,
14812             'items' => [
14813             bless( {
14814             'pattern' => '[a-z0-9-]',
14815             'hashname' => '__PATTERN1__',
14816             'description' => '/[a-z0-9-]/',
14817             'lookahead' => 0,
14818             'rdelim' => '/',
14819             'line' => 92,
14820             'mod' => '',
14821             'ldelim' => '/'
14822             }, 'Parse::RecDescent::Token' ),
14823             bless( {
14824             'hashname' => '__ACTION1__',
14825             'lookahead' => 0,
14826             'line' => 92,
14827             'code' => '{$return = $item[1]}'
14828             }, 'Parse::RecDescent::Action' )
14829             ],
14830             'line' => undef
14831             }, 'Parse::RecDescent::Production' ),
14832             bless( {
14833             'number' => '1',
14834             'strcount' => 0,
14835             'dircount' => 0,
14836             'uncommit' => undef,
14837             'error' => undef,
14838             'patcount' => 0,
14839             'actcount' => 1,
14840             'items' => [
14841             bless( {
14842             'subrule' => 'macro_nonascii',
14843             'matchrule' => 0,
14844             'implicit' => undef,
14845             'argcode' => undef,
14846             'lookahead' => 0,
14847             'line' => 93
14848             }, 'Parse::RecDescent::Subrule' ),
14849             bless( {
14850             'hashname' => '__ACTION1__',
14851             'lookahead' => 0,
14852             'line' => 93,
14853             'code' => '{$return = $item[1]}'
14854             }, 'Parse::RecDescent::Action' )
14855             ],
14856             'line' => 93
14857             }, 'Parse::RecDescent::Production' ),
14858             bless( {
14859             'number' => '2',
14860             'strcount' => 0,
14861             'dircount' => 0,
14862             'uncommit' => undef,
14863             'error' => undef,
14864             'patcount' => 0,
14865             'actcount' => 1,
14866             'items' => [
14867             bless( {
14868             'subrule' => 'macro_escape',
14869             'matchrule' => 0,
14870             'implicit' => undef,
14871             'argcode' => undef,
14872             'lookahead' => 0,
14873             'line' => 94
14874             }, 'Parse::RecDescent::Subrule' ),
14875             bless( {
14876             'hashname' => '__ACTION1__',
14877             'lookahead' => 0,
14878             'line' => 94,
14879             'code' => '{$return = $item[1]}'
14880             }, 'Parse::RecDescent::Action' )
14881             ],
14882             'line' => 94
14883             }, 'Parse::RecDescent::Production' )
14884             ],
14885             'name' => 'macro_nmchar',
14886             'vars' => '',
14887             'line' => 92
14888             }, 'Parse::RecDescent::Rule' ),
14889             'ruleset' => bless( {
14890             'impcount' => 0,
14891             'calls' => [
14892             'selector',
14893             'WS',
14894             'declaration',
14895             '_alternation_1_of_production_1_of_rule_ruleset'
14896             ],
14897             'changed' => 0,
14898             'opcount' => 0,
14899             'prods' => [
14900             bless( {
14901             'number' => '0',
14902             'strcount' => 2,
14903             'dircount' => 0,
14904             'uncommit' => undef,
14905             'error' => undef,
14906             'patcount' => 0,
14907             'actcount' => 1,
14908             'items' => [
14909             bless( {
14910             'subrule' => 'selector',
14911             'expected' => undef,
14912             'min' => 0,
14913             'argcode' => undef,
14914             'max' => 1,
14915             'matchrule' => 0,
14916             'repspec' => '?',
14917             'lookahead' => 0,
14918             'line' => 15
14919             }, 'Parse::RecDescent::Repetition' ),
14920             bless( {
14921             'pattern' => '{',
14922             'hashname' => '__STRING1__',
14923             'description' => '\'\\{\'',
14924             'lookahead' => 0,
14925             'line' => 15
14926             }, 'Parse::RecDescent::Literal' ),
14927             bless( {
14928             'subrule' => 'WS',
14929             'expected' => undef,
14930             'min' => 0,
14931             'argcode' => undef,
14932             'max' => 100000000,
14933             'matchrule' => 0,
14934             'repspec' => 's?',
14935             'lookahead' => 0,
14936             'line' => 15
14937             }, 'Parse::RecDescent::Repetition' ),
14938             bless( {
14939             'subrule' => 'declaration',
14940             'expected' => undef,
14941             'min' => 0,
14942             'argcode' => undef,
14943             'max' => 1,
14944             'matchrule' => 0,
14945             'repspec' => '?',
14946             'lookahead' => 0,
14947             'line' => 15
14948             }, 'Parse::RecDescent::Repetition' ),
14949             bless( {
14950             'subrule' => '_alternation_1_of_production_1_of_rule_ruleset',
14951             'expected' => '\';\'',
14952             'min' => 0,
14953             'argcode' => undef,
14954             'max' => 100000000,
14955             'matchrule' => 0,
14956             'repspec' => 's?',
14957             'lookahead' => 0,
14958             'line' => 17
14959             }, 'Parse::RecDescent::Repetition' ),
14960             bless( {
14961             'pattern' => '}',
14962             'hashname' => '__STRING2__',
14963             'description' => '\'\\}\'',
14964             'lookahead' => 0,
14965             'line' => 17
14966             }, 'Parse::RecDescent::Literal' ),
14967             bless( {
14968             'subrule' => 'WS',
14969             'expected' => undef,
14970             'min' => 0,
14971             'argcode' => undef,
14972             'max' => 100000000,
14973             'matchrule' => 0,
14974             'repspec' => 's?',
14975             'lookahead' => 0,
14976             'line' => 17
14977             }, 'Parse::RecDescent::Repetition' ),
14978             bless( {
14979             'hashname' => '__ACTION1__',
14980             'lookahead' => 0,
14981             'line' => 17,
14982             'code' => '{push @{$all_rulesets}, $ruleset; 1;}'
14983             }, 'Parse::RecDescent::Action' )
14984             ],
14985             'line' => undef
14986             }, 'Parse::RecDescent::Production' ),
14987             bless( {
14988             'number' => '1',
14989             'strcount' => 0,
14990             'dircount' => 1,
14991             'uncommit' => undef,
14992             'error' => undef,
14993             'patcount' => 0,
14994             'actcount' => 0,
14995             'items' => [
14996             bless( {
14997             'hashname' => '__DIRECTIVE1__',
14998             'name' => '<rulevar: local $ruleset = new CSS::Style();>',
14999             'lookahead' => 0,
15000             'line' => 18
15001             }, 'Parse::RecDescent::UncondReject' )
15002             ],
15003             'line' => undef
15004             }, 'Parse::RecDescent::Production' )
15005             ],
15006             'name' => 'ruleset',
15007             'vars' => ' local $ruleset = new CSS::Style();;
15008             ',
15009             'line' => 15
15010             }, 'Parse::RecDescent::Rule' ),
15011             'DELIM' => bless( {
15012             'impcount' => 0,
15013             'calls' => [],
15014             'changed' => 0,
15015             'opcount' => 0,
15016             'prods' => [
15017             bless( {
15018             'number' => '0',
15019             'strcount' => 0,
15020             'dircount' => 0,
15021             'uncommit' => undef,
15022             'error' => undef,
15023             'patcount' => 1,
15024             'actcount' => 1,
15025             'items' => [
15026             bless( {
15027             'pattern' => '[^0-9a-zA-Z\\{\\}\\(\\)\\[\\];]',
15028             'hashname' => '__PATTERN1__',
15029             'description' => '/[^0-9a-zA-Z\\\\\\{\\\\\\}\\\\(\\\\)\\\\[\\\\];]/',
15030             'lookahead' => 0,
15031             'rdelim' => '/',
15032             'line' => 78,
15033             'mod' => '',
15034             'ldelim' => '/'
15035             }, 'Parse::RecDescent::Token' ),
15036             bless( {
15037             'hashname' => '__ACTION1__',
15038             'lookahead' => 0,
15039             'line' => 78,
15040             'code' => '{$return = $item[1]}'
15041             }, 'Parse::RecDescent::Action' )
15042             ],
15043             'line' => undef
15044             }, 'Parse::RecDescent::Production' )
15045             ],
15046             'name' => 'DELIM',
15047             'vars' => '',
15048             'line' => 78
15049             }, 'Parse::RecDescent::Rule' ),
15050             'PERCENTAGE' => bless( {
15051             'impcount' => 0,
15052             'calls' => [
15053             'macro_num'
15054             ],
15055             'changed' => 0,
15056             'opcount' => 0,
15057             'prods' => [
15058             bless( {
15059             'number' => '0',
15060             'strcount' => 1,
15061             'dircount' => 0,
15062             'uncommit' => undef,
15063             'error' => undef,
15064             'patcount' => 0,
15065             'actcount' => 1,
15066             'items' => [
15067             bless( {
15068             'subrule' => 'macro_num',
15069             'matchrule' => 0,
15070             'implicit' => undef,
15071             'argcode' => undef,
15072             'lookahead' => 0,
15073             'line' => 64
15074             }, 'Parse::RecDescent::Subrule' ),
15075             bless( {
15076             'pattern' => '%',
15077             'hashname' => '__STRING1__',
15078             'description' => '\'%\'',
15079             'lookahead' => 0,
15080             'line' => 64
15081             }, 'Parse::RecDescent::Literal' ),
15082             bless( {
15083             'hashname' => '__ACTION1__',
15084             'lookahead' => 0,
15085             'line' => 64,
15086             'code' => '{$return = $item[1].\'&\'}'
15087             }, 'Parse::RecDescent::Action' )
15088             ],
15089             'line' => undef
15090             }, 'Parse::RecDescent::Production' )
15091             ],
15092             'name' => 'PERCENTAGE',
15093             'vars' => '',
15094             'line' => 64
15095             }, 'Parse::RecDescent::Rule' ),
15096             'block' => bless( {
15097             'impcount' => 1,
15098             'calls' => [
15099             'WS',
15100             '_alternation_1_of_production_1_of_rule_block'
15101             ],
15102             'changed' => 0,
15103             'opcount' => 0,
15104             'prods' => [
15105             bless( {
15106             'number' => '0',
15107             'strcount' => 2,
15108             'dircount' => 0,
15109             'uncommit' => undef,
15110             'error' => undef,
15111             'patcount' => 0,
15112             'actcount' => 1,
15113             'items' => [
15114             bless( {
15115             'pattern' => '{',
15116             'hashname' => '__STRING1__',
15117             'description' => '\'\\{\'',
15118             'lookahead' => 0,
15119             'line' => 14
15120             }, 'Parse::RecDescent::Literal' ),
15121             bless( {
15122             'subrule' => 'WS',
15123             'expected' => undef,
15124             'min' => 0,
15125             'argcode' => undef,
15126             'max' => 100000000,
15127             'matchrule' => 0,
15128             'repspec' => 's?',
15129             'lookahead' => 0,
15130             'line' => 14
15131             }, 'Parse::RecDescent::Repetition' ),
15132             bless( {
15133             'subrule' => '_alternation_1_of_production_1_of_rule_block',
15134             'expected' => 'any, or block, or ATKEYWORD, or \';\'',
15135             'min' => 0,
15136             'argcode' => undef,
15137             'max' => 100000000,
15138             'matchrule' => 0,
15139             'repspec' => 's?',
15140             'lookahead' => 0,
15141             'line' => 14
15142             }, 'Parse::RecDescent::Repetition' ),
15143             bless( {
15144             'pattern' => '}',
15145             'hashname' => '__STRING2__',
15146             'description' => '\'\\}\'',
15147             'lookahead' => 0,
15148             'line' => 14
15149             }, 'Parse::RecDescent::Literal' ),
15150             bless( {
15151             'subrule' => 'WS',
15152             'expected' => undef,
15153             'min' => 0,
15154             'argcode' => undef,
15155             'max' => 100000000,
15156             'matchrule' => 0,
15157             'repspec' => 's?',
15158             'lookahead' => 0,
15159             'line' => 14
15160             }, 'Parse::RecDescent::Repetition' ),
15161             bless( {
15162             'hashname' => '__ACTION1__',
15163             'lookahead' => 0,
15164             'line' => 14,
15165             'code' => '{print "block\\n"}'
15166             }, 'Parse::RecDescent::Action' )
15167             ],
15168             'line' => undef
15169             }, 'Parse::RecDescent::Production' )
15170             ],
15171             'name' => 'block',
15172             'vars' => '',
15173             'line' => 14
15174             }, 'Parse::RecDescent::Rule' ),
15175             'macro_nonascii' => bless( {
15176             'impcount' => 0,
15177             'calls' => [],
15178             'changed' => 0,
15179             'opcount' => 0,
15180             'prods' => [
15181             bless( {
15182             'number' => '0',
15183             'strcount' => 0,
15184             'dircount' => 0,
15185             'uncommit' => undef,
15186             'error' => undef,
15187             'patcount' => 1,
15188             'actcount' => 1,
15189             'items' => [
15190             bless( {
15191             'pattern' => '[^\\0-\\177]',
15192             'hashname' => '__PATTERN1__',
15193             'description' => '/[^\\\\0-\\\\177]/',
15194             'lookahead' => 0,
15195             'rdelim' => '/',
15196             'line' => 88,
15197             'mod' => '',
15198             'ldelim' => '/'
15199             }, 'Parse::RecDescent::Token' ),
15200             bless( {
15201             'hashname' => '__ACTION1__',
15202             'lookahead' => 0,
15203             'line' => 88,
15204             'code' => '{$return = $item[1]}'
15205             }, 'Parse::RecDescent::Action' )
15206             ],
15207             'line' => undef
15208             }, 'Parse::RecDescent::Production' )
15209             ],
15210             'name' => 'macro_nonascii',
15211             'vars' => '',
15212             'line' => 88
15213             }, 'Parse::RecDescent::Rule' )
15214             },
15215             '_AUTOTREE' => undef,
15216             '_check' => {
15217             'thisoffset' => '',
15218             'itempos' => '',
15219             'prevoffset' => '',
15220             'prevline' => '',
15221             'prevcolumn' => '',
15222             'thiscolumn' => ''
15223             },
15224             '_AUTOACTION' => bless( {
15225             'lookahead' => 0,
15226             'line' => -1,
15227             'code' => '{ print "token: ".shift @item; print " : @item\\n" }'
15228             }, 'Parse::RecDescent::Action' )
15229             }, 'Parse::RecDescent' );
15230             }