File Coverage

lib/Template/Grammar.pm
Criterion Covered Total %
statement 10 10 100.0
branch n/a
condition n/a
subroutine 4 4 100.0
pod 0 2 0.0
total 14 16 87.5


line stmt bran cond sub pod time code
1             #============================================================= -*-Perl-*-
2             #
3             # Template::Grammar
4             #
5             # DESCRIPTION
6             # Grammar file for the Template Toolkit language containing token
7             # definitions and parser state/rules tables generated by Parse::Yapp.
8             #
9             # AUTHOR
10             # Andy Wardley
11             #
12             # COPYRIGHT
13             # Copyright (C) 1996-2006 Andy Wardley. All Rights Reserved.
14             # Copyright (C) 1998-2000 Canon Research Centre Europe Ltd.
15             #
16             # This module is free software; you can redistribute it and/or
17             # modify it under the same terms as Perl itself.
18             #
19             # REVISION
20             # $Id$
21             #
22             # IMPORTANT NOTE
23             # This module is constructed from the parser/Grammar.pm.skel file by
24             # running the parser/yc script. You only need to do this if # you
25             # have modified the grammar in the parser/Parser.yp file and need #
26             # to-recompile it. See the README in the 'parser' directory for
27             # more information (sub-directory of the Template distribution).
28             #
29             #========================================================================
30              
31             package Template::Grammar;
32              
33 80     80   513 use strict;
  80         172  
  80         3529  
34 80     80   453 use warnings;
  80         169  
  80         1444452  
35              
36             our $VERSION = 2.25;
37              
38             my (@RESERVED, %CMPOP, $LEXTABLE, $RULES, $STATES);
39             my ($factory, $rawstart);
40              
41              
42             #========================================================================
43              
44             # Reserved words, comparison and binary operators
45             #========================================================================
46              
47             @RESERVED = qw(
48             GET CALL SET DEFAULT INSERT INCLUDE PROCESS WRAPPER BLOCK END
49             USE PLUGIN FILTER MACRO PERL RAWPERL TO STEP AND OR NOT DIV MOD
50             IF UNLESS ELSE ELSIF FOR NEXT WHILE SWITCH CASE META IN
51             TRY THROW CATCH FINAL LAST RETURN STOP CLEAR VIEW DEBUG
52             );
53              
54             # for historical reasons, != and == are converted to ne and eq to perform
55             # stringwise comparison (mainly because it doesn't generate "non-numerical
56             # comparison" warnings which != and == can) but the others (e.g. < > <= >=)
57             # are not converted to their stringwise equivalents. I added 'gt' et al,
58             # briefly for v2.04d and then took them out again in 2.04e.
59              
60              
61             %CMPOP = qw(
62             != ne
63             == eq
64             < <
65             > >
66             >= >=
67             <= <=
68             );
69              
70             # eq eq # add these lines to the above to
71             # lt lt # enable the eq, lt and gt operators
72             # gt gt
73              
74             #========================================================================
75             # Lexer Token Table
76             #========================================================================
77              
78             # lookup table used by lexer is initialised with special-cases
79             $LEXTABLE = {
80             'FOREACH' => 'FOR',
81             'BREAK' => 'LAST',
82             '&&' => 'AND',
83             '||' => 'OR',
84             '!' => 'NOT',
85             '|' => 'FILTER',
86             '.' => 'DOT',
87             '_' => 'CAT',
88             '..' => 'TO',
89             # ':' => 'MACRO',
90             '=' => 'ASSIGN',
91             '=>' => 'ASSIGN',
92             # '->' => 'ARROW',
93             ',' => 'COMMA',
94             '\\' => 'REF',
95             'and' => 'AND', # explicitly specified so that qw( and or
96             'or' => 'OR', # not ) can always be used in lower case,
97             'not' => 'NOT', # regardless of ANYCASE flag
98             'mod' => 'MOD',
99             'div' => 'DIV',
100             };
101              
102             # localise the temporary variables needed to complete lexer table
103             {
104             # my @tokens = qw< ( ) [ ] { } ${ $ / ; : ? >;
105             my @tokens = qw< ( ) [ ] { } ${ $ + / ; : ? >;
106             my @cmpop = keys %CMPOP;
107             # my @binop = qw( + - * % ); # '/' above, in @tokens
108             my @binop = qw( - * % ); # '+' and '/' above, in @tokens
109              
110             # fill lexer table, slice by slice, with reserved words and operators
111             @$LEXTABLE{ @RESERVED, @cmpop, @binop, @tokens }
112             = ( @RESERVED, ('CMPOP') x @cmpop, ('BINOP') x @binop, @tokens );
113             }
114              
115              
116             #========================================================================
117             # CLASS METHODS
118             #========================================================================
119              
120             sub new {
121 133     133 0 352 my $class = shift;
122 133         1515 bless {
123             LEXTABLE => $LEXTABLE,
124             STATES => $STATES,
125             RULES => $RULES,
126             }, $class;
127             }
128              
129             # update method to set package-scoped $factory lexical
130             sub install_factory {
131 1281     1281 0 3213 my ($self, $new_factory) = @_;
132 1281         3928 $factory = $new_factory;
133             }
134              
135              
136             #========================================================================
137             # States
138             #========================================================================
139              
140             $STATES = [
141             {#State 0
142             ACTIONS => {
143             'SET' => 1,
144             'PERL' => 40,
145             'NOT' => 38,
146             'IDENT' => 2,
147             'CLEAR' => 41,
148             'UNLESS' => 3,
149             'IF' => 44,
150             "\$" => 43,
151             'STOP' => 6,
152             'CALL' => 45,
153             'THROW' => 8,
154             'GET' => 47,
155             "[" => 9,
156             'TRY' => 10,
157             'LAST' => 49,
158             'DEBUG' => 51,
159             'RAWPERL' => 13,
160             'META' => 15,
161             'INCLUDE' => 17,
162             "(" => 53,
163             'SWITCH' => 54,
164             'MACRO' => 18,
165             'WRAPPER' => 55,
166             ";" => -18,
167             'FOR' => 21,
168             'LITERAL' => 57,
169             'NEXT' => 22,
170             "\"" => 60,
171             'TEXT' => 24,
172             'PROCESS' => 61,
173             'RETURN' => 64,
174             'FILTER' => 25,
175             'INSERT' => 65,
176             'NUMBER' => 26,
177             'REF' => 27,
178             'WHILE' => 67,
179             'BLOCK' => 28,
180             'DEFAULT' => 69,
181             "{" => 30,
182             'USE' => 32,
183             'VIEW' => 36,
184             "\${" => 37
185             },
186             DEFAULT => -3,
187             GOTOS => {
188             'item' => 39,
189             'loop' => 4,
190             'capture' => 42,
191             'statement' => 5,
192             'view' => 7,
193             'wrapper' => 46,
194             'atomexpr' => 48,
195             'chunk' => 11,
196             'atomdir' => 12,
197             'anonblock' => 50,
198             'template' => 52,
199             'defblockname' => 14,
200             'ident' => 16,
201             'assign' => 19,
202             'macro' => 20,
203             'lterm' => 56,
204             'node' => 23,
205             'term' => 58,
206             'rawperl' => 59,
207             'expr' => 62,
208             'use' => 63,
209             'defblock' => 66,
210             'filter' => 29,
211             'sterm' => 68,
212             'perl' => 31,
213             'chunks' => 33,
214             'setlist' => 70,
215             'try' => 35,
216             'switch' => 34,
217             'directive' => 71,
218             'block' => 72,
219             'condition' => 73
220             }
221             },
222             {#State 1
223             ACTIONS => {
224             "\$" => 43,
225             'LITERAL' => 75,
226             'IDENT' => 2,
227             "\${" => 37
228             },
229             GOTOS => {
230             'setlist' => 76,
231             'item' => 39,
232             'assign' => 19,
233             'node' => 23,
234             'ident' => 74
235             }
236             },
237             {#State 2
238             DEFAULT => -130
239             },
240             {#State 3
241             ACTIONS => {
242             'NOT' => 38,
243             "{" => 30,
244             'LITERAL' => 78,
245             'IDENT' => 2,
246             "\"" => 60,
247             "(" => 53,
248             "\$" => 43,
249             "[" => 9,
250             'NUMBER' => 26,
251             'REF' => 27,
252             "\${" => 37
253             },
254             GOTOS => {
255             'expr' => 79,
256             'sterm' => 68,
257             'item' => 39,
258             'node' => 23,
259             'ident' => 77,
260             'term' => 58,
261             'lterm' => 56
262             }
263             },
264             {#State 4
265             DEFAULT => -23
266             },
267             {#State 5
268             ACTIONS => {
269             ";" => 80
270             }
271             },
272             {#State 6
273             DEFAULT => -37
274             },
275             {#State 7
276             DEFAULT => -14
277             },
278             {#State 8
279             ACTIONS => {
280             "\"" => 89,
281             "\$" => 86,
282             'LITERAL' => 88,
283             'FILENAME' => 83,
284             'IDENT' => 81,
285             'NUMBER' => 84
286             },
287             GOTOS => {
288             'filepart' => 87,
289             'names' => 91,
290             'nameargs' => 90,
291             'filename' => 85,
292             'name' => 82
293             }
294             },
295             {#State 9
296             ACTIONS => {
297             "{" => 30,
298             'LITERAL' => 78,
299             'IDENT' => 2,
300             "\"" => 60,
301             "\$" => 43,
302             "[" => 9,
303             'NUMBER' => 26,
304             'REF' => 27,
305             "]" => 94,
306             "\${" => 37
307             },
308             GOTOS => {
309             'sterm' => 96,
310             'item' => 39,
311             'range' => 93,
312             'node' => 23,
313             'ident' => 77,
314             'term' => 95,
315             'lterm' => 56,
316             'list' => 92
317             }
318             },
319             {#State 10
320             ACTIONS => {
321             ";" => 97
322             }
323             },
324             {#State 11
325             DEFAULT => -5
326             },
327             {#State 12
328             ACTIONS => {
329             ";" => -20
330             },
331             DEFAULT => -27
332             },
333             {#State 13
334             DEFAULT => -78,
335             GOTOS => {
336             '@5-1' => 98
337             }
338             },
339             {#State 14
340             ACTIONS => {
341             'IDENT' => 99
342             },
343             DEFAULT => -87,
344             GOTOS => {
345             'blockargs' => 102,
346             'metadata' => 101,
347             'meta' => 100
348             }
349             },
350             {#State 15
351             ACTIONS => {
352             'IDENT' => 99
353             },
354             GOTOS => {
355             'metadata' => 103,
356             'meta' => 100
357             }
358             },
359             {#State 16
360             ACTIONS => {
361             'DOT' => 104,
362             'ASSIGN' => 105
363             },
364             DEFAULT => -109
365             },
366             {#State 17
367             ACTIONS => {
368             "\"" => 89,
369             "\$" => 86,
370             'LITERAL' => 88,
371             'FILENAME' => 83,
372             'IDENT' => 81,
373             'NUMBER' => 84
374             },
375             GOTOS => {
376             'filepart' => 87,
377             'names' => 91,
378             'nameargs' => 106,
379             'filename' => 85,
380             'name' => 82
381             }
382             },
383             {#State 18
384             ACTIONS => {
385             'IDENT' => 107
386             }
387             },
388             {#State 19
389             DEFAULT => -149
390             },
391             {#State 20
392             DEFAULT => -12
393             },
394             {#State 21
395             ACTIONS => {
396             "{" => 30,
397             'LITERAL' => 78,
398             'IDENT' => 108,
399             "\"" => 60,
400             "\$" => 43,
401             "[" => 9,
402             'NUMBER' => 26,
403             'REF' => 27,
404             "\${" => 37
405             },
406             GOTOS => {
407             'sterm' => 68,
408             'item' => 39,
409             'loopvar' => 110,
410             'node' => 23,
411             'ident' => 77,
412             'term' => 109,
413             'lterm' => 56
414             }
415             },
416             {#State 22
417             DEFAULT => -40
418             },
419             {#State 23
420             DEFAULT => -127
421             },
422             {#State 24
423             DEFAULT => -6
424             },
425             {#State 25
426             ACTIONS => {
427             "\"" => 117,
428             "\$" => 114,
429             'LITERAL' => 116,
430             'FILENAME' => 83,
431             'IDENT' => 111,
432             'NUMBER' => 84,
433             "\${" => 37
434             },
435             GOTOS => {
436             'names' => 91,
437             'lvalue' => 112,
438             'item' => 113,
439             'name' => 82,
440             'filepart' => 87,
441             'filename' => 85,
442             'nameargs' => 118,
443             'lnameargs' => 115
444             }
445             },
446             {#State 26
447             DEFAULT => -113
448             },
449             {#State 27
450             ACTIONS => {
451             "\$" => 43,
452             'IDENT' => 2,
453             "\${" => 37
454             },
455             GOTOS => {
456             'item' => 39,
457             'node' => 23,
458             'ident' => 119
459             }
460             },
461             {#State 28
462             ACTIONS => {
463             'LITERAL' => 124,
464             'FILENAME' => 83,
465             'IDENT' => 120,
466             'NUMBER' => 84
467             },
468             DEFAULT => -87,
469             GOTOS => {
470             'blockargs' => 123,
471             'filepart' => 87,
472             'filename' => 122,
473             'blockname' => 121,
474             'metadata' => 101,
475             'meta' => 100
476             }
477             },
478             {#State 29
479             DEFAULT => -43
480             },
481             {#State 30
482             ACTIONS => {
483             "\$" => 43,
484             'LITERAL' => 129,
485             'IDENT' => 2,
486             "\${" => 37
487             },
488             DEFAULT => -119,
489             GOTOS => {
490             'params' => 128,
491             'hash' => 125,
492             'item' => 126,
493             'param' => 127
494             }
495             },
496             {#State 31
497             DEFAULT => -25
498             },
499             {#State 32
500             ACTIONS => {
501             "\"" => 117,
502             "\$" => 114,
503             'LITERAL' => 116,
504             'FILENAME' => 83,
505             'IDENT' => 111,
506             'NUMBER' => 84,
507             "\${" => 37
508             },
509             GOTOS => {
510             'names' => 91,
511             'lvalue' => 112,
512             'item' => 113,
513             'name' => 82,
514             'filepart' => 87,
515             'filename' => 85,
516             'nameargs' => 118,
517             'lnameargs' => 130
518             }
519             },
520             {#State 33
521             ACTIONS => {
522             'SET' => 1,
523             'PERL' => 40,
524             'NOT' => 38,
525             'IDENT' => 2,
526             'CLEAR' => 41,
527             'UNLESS' => 3,
528             'IF' => 44,
529             "\$" => 43,
530             'STOP' => 6,
531             'CALL' => 45,
532             'THROW' => 8,
533             'GET' => 47,
534             "[" => 9,
535             'TRY' => 10,
536             'LAST' => 49,
537             'DEBUG' => 51,
538             'RAWPERL' => 13,
539             'META' => 15,
540             'INCLUDE' => 17,
541             "(" => 53,
542             'SWITCH' => 54,
543             'MACRO' => 18,
544             'WRAPPER' => 55,
545             ";" => -18,
546             'FOR' => 21,
547             'LITERAL' => 57,
548             'NEXT' => 22,
549             "\"" => 60,
550             'TEXT' => 24,
551             'PROCESS' => 61,
552             'RETURN' => 64,
553             'FILTER' => 25,
554             'INSERT' => 65,
555             'NUMBER' => 26,
556             'REF' => 27,
557             'WHILE' => 67,
558             'BLOCK' => 28,
559             'DEFAULT' => 69,
560             "{" => 30,
561             'USE' => 32,
562             'VIEW' => 36,
563             "\${" => 37
564             },
565             DEFAULT => -2,
566             GOTOS => {
567             'item' => 39,
568             'node' => 23,
569             'rawperl' => 59,
570             'term' => 58,
571             'loop' => 4,
572             'use' => 63,
573             'expr' => 62,
574             'capture' => 42,
575             'statement' => 5,
576             'view' => 7,
577             'wrapper' => 46,
578             'atomexpr' => 48,
579             'chunk' => 131,
580             'defblock' => 66,
581             'atomdir' => 12,
582             'anonblock' => 50,
583             'sterm' => 68,
584             'defblockname' => 14,
585             'filter' => 29,
586             'ident' => 16,
587             'perl' => 31,
588             'setlist' => 70,
589             'try' => 35,
590             'switch' => 34,
591             'assign' => 19,
592             'directive' => 71,
593             'macro' => 20,
594             'condition' => 73,
595             'lterm' => 56
596             }
597             },
598             {#State 34
599             DEFAULT => -22
600             },
601             {#State 35
602             DEFAULT => -24
603             },
604             {#State 36
605             ACTIONS => {
606             "\"" => 89,
607             "\$" => 86,
608             'LITERAL' => 88,
609             'FILENAME' => 83,
610             'IDENT' => 81,
611             'NUMBER' => 84
612             },
613             GOTOS => {
614             'filepart' => 87,
615             'names' => 91,
616             'nameargs' => 132,
617             'filename' => 85,
618             'name' => 82
619             }
620             },
621             {#State 37
622             ACTIONS => {
623             "\"" => 60,
624             "\$" => 43,
625             'LITERAL' => 78,
626             'IDENT' => 2,
627             'REF' => 27,
628             'NUMBER' => 26,
629             "\${" => 37
630             },
631             GOTOS => {
632             'sterm' => 133,
633             'item' => 39,
634             'node' => 23,
635             'ident' => 77
636             }
637             },
638             {#State 38
639             ACTIONS => {
640             'NOT' => 38,
641             "{" => 30,
642             'LITERAL' => 78,
643             'IDENT' => 2,
644             "\"" => 60,
645             "(" => 53,
646             "\$" => 43,
647             "[" => 9,
648             'NUMBER' => 26,
649             'REF' => 27,
650             "\${" => 37
651             },
652             GOTOS => {
653             'expr' => 134,
654             'sterm' => 68,
655             'item' => 39,
656             'node' => 23,
657             'ident' => 77,
658             'term' => 58,
659             'lterm' => 56
660             }
661             },
662             {#State 39
663             ACTIONS => {
664             "(" => 135
665             },
666             DEFAULT => -128
667             },
668             {#State 40
669             ACTIONS => {
670             ";" => 136
671             }
672             },
673             {#State 41
674             DEFAULT => -38
675             },
676             {#State 42
677             DEFAULT => -11
678             },
679             {#State 43
680             ACTIONS => {
681             'IDENT' => 137
682             }
683             },
684             {#State 44
685             ACTIONS => {
686             'NOT' => 38,
687             "{" => 30,
688             'LITERAL' => 78,
689             'IDENT' => 2,
690             "\"" => 60,
691             "(" => 53,
692             "\$" => 43,
693             "[" => 9,
694             'NUMBER' => 26,
695             'REF' => 27,
696             "\${" => 37
697             },
698             GOTOS => {
699             'expr' => 138,
700             'sterm' => 68,
701             'item' => 39,
702             'node' => 23,
703             'ident' => 77,
704             'term' => 58,
705             'lterm' => 56
706             }
707             },
708             {#State 45
709             ACTIONS => {
710             'NOT' => 38,
711             "{" => 30,
712             'LITERAL' => 78,
713             'IDENT' => 2,
714             "\"" => 60,
715             "(" => 53,
716             "\$" => 43,
717             "[" => 9,
718             'NUMBER' => 26,
719             'REF' => 27,
720             "\${" => 37
721             },
722             GOTOS => {
723             'expr' => 139,
724             'sterm' => 68,
725             'item' => 39,
726             'node' => 23,
727             'ident' => 77,
728             'term' => 58,
729             'lterm' => 56
730             }
731             },
732             {#State 46
733             DEFAULT => -42
734             },
735             {#State 47
736             ACTIONS => {
737             'NOT' => 38,
738             "{" => 30,
739             'LITERAL' => 78,
740             'IDENT' => 2,
741             "\"" => 60,
742             "(" => 53,
743             "\$" => 43,
744             "[" => 9,
745             'NUMBER' => 26,
746             'REF' => 27,
747             "\${" => 37
748             },
749             GOTOS => {
750             'expr' => 140,
751             'sterm' => 68,
752             'item' => 39,
753             'node' => 23,
754             'ident' => 77,
755             'term' => 58,
756             'lterm' => 56
757             }
758             },
759             {#State 48
760             ACTIONS => {
761             'IF' => 144,
762             'FILTER' => 143,
763             'FOR' => 142,
764             'WHILE' => 146,
765             'WRAPPER' => 145,
766             'UNLESS' => 141
767             }
768             },
769             {#State 49
770             DEFAULT => -39
771             },
772             {#State 50
773             DEFAULT => -10
774             },
775             {#State 51
776             ACTIONS => {
777             "\"" => 89,
778             "\$" => 86,
779             'LITERAL' => 88,
780             'FILENAME' => 83,
781             'IDENT' => 81,
782             'NUMBER' => 84
783             },
784             GOTOS => {
785             'filepart' => 87,
786             'names' => 91,
787             'nameargs' => 147,
788             'filename' => 85,
789             'name' => 82
790             }
791             },
792             {#State 52
793             ACTIONS => {
794             '' => 148
795             }
796             },
797             {#State 53
798             ACTIONS => {
799             'NOT' => 38,
800             "{" => 30,
801             'LITERAL' => 57,
802             'IDENT' => 2,
803             "\"" => 60,
804             "(" => 53,
805             "\$" => 43,
806             "[" => 9,
807             'NUMBER' => 26,
808             'REF' => 27,
809             "\${" => 37
810             },
811             GOTOS => {
812             'expr' => 151,
813             'sterm' => 68,
814             'item' => 39,
815             'assign' => 150,
816             'node' => 23,
817             'ident' => 149,
818             'term' => 58,
819             'lterm' => 56
820             }
821             },
822             {#State 54
823             ACTIONS => {
824             'NOT' => 38,
825             "{" => 30,
826             'LITERAL' => 78,
827             'IDENT' => 2,
828             "\"" => 60,
829             "(" => 53,
830             "\$" => 43,
831             "[" => 9,
832             'NUMBER' => 26,
833             'REF' => 27,
834             "\${" => 37
835             },
836             GOTOS => {
837             'expr' => 152,
838             'sterm' => 68,
839             'item' => 39,
840             'node' => 23,
841             'ident' => 77,
842             'term' => 58,
843             'lterm' => 56
844             }
845             },
846             {#State 55
847             ACTIONS => {
848             "\"" => 89,
849             "\$" => 86,
850             'LITERAL' => 88,
851             'FILENAME' => 83,
852             'IDENT' => 81,
853             'NUMBER' => 84
854             },
855             GOTOS => {
856             'filepart' => 87,
857             'names' => 91,
858             'nameargs' => 153,
859             'filename' => 85,
860             'name' => 82
861             }
862             },
863             {#State 56
864             DEFAULT => -103
865             },
866             {#State 57
867             ACTIONS => {
868             'ASSIGN' => 154
869             },
870             DEFAULT => -112
871             },
872             {#State 58
873             DEFAULT => -146
874             },
875             {#State 59
876             DEFAULT => -15
877             },
878             {#State 60
879             DEFAULT => -176,
880             GOTOS => {
881             'quoted' => 155
882             }
883             },
884             {#State 61
885             ACTIONS => {
886             "\"" => 89,
887             "\$" => 86,
888             'LITERAL' => 88,
889             'FILENAME' => 83,
890             'IDENT' => 81,
891             'NUMBER' => 84
892             },
893             GOTOS => {
894             'filepart' => 87,
895             'names' => 91,
896             'nameargs' => 156,
897             'filename' => 85,
898             'name' => 82
899             }
900             },
901             {#State 62
902             ACTIONS => {
903             ";" => -16,
904             "+" => 157,
905             'CAT' => 163,
906             'CMPOP' => 164,
907             "?" => 158,
908             'DIV' => 159,
909             'MOD' => 165,
910             "/" => 166,
911             'AND' => 160,
912             'BINOP' => 161,
913             'OR' => 162
914             },
915             DEFAULT => -26
916             },
917             {#State 63
918             DEFAULT => -13
919             },
920             {#State 64
921             DEFAULT => -36
922             },
923             {#State 65
924             ACTIONS => {
925             "\"" => 89,
926             "\$" => 86,
927             'LITERAL' => 88,
928             'FILENAME' => 83,
929             'IDENT' => 81,
930             'NUMBER' => 84
931             },
932             GOTOS => {
933             'filepart' => 87,
934             'names' => 91,
935             'nameargs' => 167,
936             'filename' => 85,
937             'name' => 82
938             }
939             },
940             {#State 66
941             DEFAULT => -9
942             },
943             {#State 67
944             ACTIONS => {
945             'NOT' => 38,
946             "{" => 30,
947             'LITERAL' => 78,
948             'IDENT' => 2,
949             "\"" => 60,
950             "(" => 53,
951             "\$" => 43,
952             "[" => 9,
953             'NUMBER' => 26,
954             'REF' => 27,
955             "\${" => 37
956             },
957             GOTOS => {
958             'expr' => 168,
959             'sterm' => 68,
960             'item' => 39,
961             'node' => 23,
962             'ident' => 77,
963             'term' => 58,
964             'lterm' => 56
965             }
966             },
967             {#State 68
968             DEFAULT => -104
969             },
970             {#State 69
971             ACTIONS => {
972             "\$" => 43,
973             'LITERAL' => 75,
974             'IDENT' => 2,
975             "\${" => 37
976             },
977             GOTOS => {
978             'setlist' => 169,
979             'item' => 39,
980             'assign' => 19,
981             'node' => 23,
982             'ident' => 74
983             }
984             },
985             {#State 70
986             ACTIONS => {
987             "\$" => 43,
988             'COMMA' => 171,
989             'LITERAL' => 75,
990             'IDENT' => 2,
991             "\${" => 37
992             },
993             DEFAULT => -19,
994             GOTOS => {
995             'item' => 39,
996             'assign' => 170,
997             'node' => 23,
998             'ident' => 74
999             }
1000             },
1001             {#State 71
1002             DEFAULT => -8
1003             },
1004             {#State 72
1005             DEFAULT => -1
1006             },
1007             {#State 73
1008             DEFAULT => -21
1009             },
1010             {#State 74
1011             ACTIONS => {
1012             'ASSIGN' => 172,
1013             'DOT' => 104
1014             }
1015             },
1016             {#State 75
1017             ACTIONS => {
1018             'ASSIGN' => 154
1019             }
1020             },
1021             {#State 76
1022             ACTIONS => {
1023             'COMMA' => 171,
1024             'LITERAL' => 75,
1025             'IDENT' => 2,
1026             "\$" => 43,
1027             "\${" => 37
1028             },
1029             DEFAULT => -30,
1030             GOTOS => {
1031             'item' => 39,
1032             'assign' => 170,
1033             'node' => 23,
1034             'ident' => 74
1035             }
1036             },
1037             {#State 77
1038             ACTIONS => {
1039             'DOT' => 104
1040             },
1041             DEFAULT => -109
1042             },
1043             {#State 78
1044             DEFAULT => -112
1045             },
1046             {#State 79
1047             ACTIONS => {
1048             'CMPOP' => 164,
1049             "?" => 158,
1050             ";" => 173,
1051             "+" => 157,
1052             'MOD' => 165,
1053             'DIV' => 159,
1054             "/" => 166,
1055             'AND' => 160,
1056             'CAT' => 163,
1057             'BINOP' => 161,
1058             'OR' => 162
1059             }
1060             },
1061             {#State 80
1062             DEFAULT => -7
1063             },
1064             {#State 81
1065             DEFAULT => -173
1066             },
1067             {#State 82
1068             DEFAULT => -166
1069             },
1070             {#State 83
1071             DEFAULT => -172
1072             },
1073             {#State 84
1074             DEFAULT => -174
1075             },
1076             {#State 85
1077             ACTIONS => {
1078             'DOT' => 174
1079             },
1080             DEFAULT => -168
1081             },
1082             {#State 86
1083             ACTIONS => {
1084             "\$" => 43,
1085             'IDENT' => 2,
1086             "\${" => 37
1087             },
1088             GOTOS => {
1089             'item' => 39,
1090             'node' => 23,
1091             'ident' => 175
1092             }
1093             },
1094             {#State 87
1095             DEFAULT => -171
1096             },
1097             {#State 88
1098             DEFAULT => -169
1099             },
1100             {#State 89
1101             DEFAULT => -176,
1102             GOTOS => {
1103             'quoted' => 176
1104             }
1105             },
1106             {#State 90
1107             DEFAULT => -35
1108             },
1109             {#State 91
1110             ACTIONS => {
1111             "+" => 177,
1112             "(" => 178
1113             },
1114             DEFAULT => -156,
1115             GOTOS => {
1116             'args' => 179
1117             }
1118             },
1119             {#State 92
1120             ACTIONS => {
1121             "{" => 30,
1122             'COMMA' => 182,
1123             'LITERAL' => 78,
1124             'IDENT' => 2,
1125             "\"" => 60,
1126             "\$" => 43,
1127             "[" => 9,
1128             'NUMBER' => 26,
1129             'REF' => 27,
1130             "]" => 180,
1131             "\${" => 37
1132             },
1133             GOTOS => {
1134             'sterm' => 68,
1135             'item' => 39,
1136             'node' => 23,
1137             'ident' => 77,
1138             'term' => 181,
1139             'lterm' => 56
1140             }
1141             },
1142             {#State 93
1143             ACTIONS => {
1144             "]" => 183
1145             }
1146             },
1147             {#State 94
1148             DEFAULT => -107
1149             },
1150             {#State 95
1151             DEFAULT => -116
1152             },
1153             {#State 96
1154             ACTIONS => {
1155             'TO' => 184
1156             },
1157             DEFAULT => -104
1158             },
1159             {#State 97
1160             ACTIONS => {
1161             'SET' => 1,
1162             'PERL' => 40,
1163             'NOT' => 38,
1164             'IDENT' => 2,
1165             'CLEAR' => 41,
1166             'UNLESS' => 3,
1167             'IF' => 44,
1168             "\$" => 43,
1169             'STOP' => 6,
1170             'CALL' => 45,
1171             'THROW' => 8,
1172             'GET' => 47,
1173             "[" => 9,
1174             'TRY' => 10,
1175             'LAST' => 49,
1176             'DEBUG' => 51,
1177             'RAWPERL' => 13,
1178             'META' => 15,
1179             'INCLUDE' => 17,
1180             "(" => 53,
1181             'SWITCH' => 54,
1182             'MACRO' => 18,
1183             'WRAPPER' => 55,
1184             ";" => -18,
1185             'FOR' => 21,
1186             'LITERAL' => 57,
1187             'NEXT' => 22,
1188             "\"" => 60,
1189             'TEXT' => 24,
1190             'PROCESS' => 61,
1191             'RETURN' => 64,
1192             'FILTER' => 25,
1193             'INSERT' => 65,
1194             'NUMBER' => 26,
1195             'REF' => 27,
1196             'WHILE' => 67,
1197             'BLOCK' => 28,
1198             'DEFAULT' => 69,
1199             "{" => 30,
1200             'USE' => 32,
1201             'VIEW' => 36,
1202             "\${" => 37
1203             },
1204             DEFAULT => -3,
1205             GOTOS => {
1206             'item' => 39,
1207             'node' => 23,
1208             'rawperl' => 59,
1209             'term' => 58,
1210             'loop' => 4,
1211             'use' => 63,
1212             'expr' => 62,
1213             'capture' => 42,
1214             'statement' => 5,
1215             'view' => 7,
1216             'wrapper' => 46,
1217             'atomexpr' => 48,
1218             'chunk' => 11,
1219             'defblock' => 66,
1220             'atomdir' => 12,
1221             'anonblock' => 50,
1222             'sterm' => 68,
1223             'defblockname' => 14,
1224             'filter' => 29,
1225             'ident' => 16,
1226             'perl' => 31,
1227             'setlist' => 70,
1228             'chunks' => 33,
1229             'try' => 35,
1230             'switch' => 34,
1231             'assign' => 19,
1232             'block' => 185,
1233             'directive' => 71,
1234             'macro' => 20,
1235             'condition' => 73,
1236             'lterm' => 56
1237             }
1238             },
1239             {#State 98
1240             ACTIONS => {
1241             ";" => 186
1242             }
1243             },
1244             {#State 99
1245             ACTIONS => {
1246             'ASSIGN' => 187
1247             }
1248             },
1249             {#State 100
1250             DEFAULT => -99
1251             },
1252             {#State 101
1253             ACTIONS => {
1254             'COMMA' => 189,
1255             'IDENT' => 99
1256             },
1257             DEFAULT => -86,
1258             GOTOS => {
1259             'meta' => 188
1260             }
1261             },
1262             {#State 102
1263             ACTIONS => {
1264             ";" => 190
1265             }
1266             },
1267             {#State 103
1268             ACTIONS => {
1269             'COMMA' => 189,
1270             'IDENT' => 99
1271             },
1272             DEFAULT => -17,
1273             GOTOS => {
1274             'meta' => 188
1275             }
1276             },
1277             {#State 104
1278             ACTIONS => {
1279             "\$" => 43,
1280             'IDENT' => 2,
1281             'NUMBER' => 192,
1282             "\${" => 37
1283             },
1284             GOTOS => {
1285             'item' => 39,
1286             'node' => 191
1287             }
1288             },
1289             {#State 105
1290             ACTIONS => {
1291             'SET' => 1,
1292             'PERL' => 40,
1293             'NOT' => 38,
1294             'IDENT' => 2,
1295             'CLEAR' => 41,
1296             'UNLESS' => 3,
1297             'IF' => 44,
1298             "\$" => 43,
1299             'STOP' => 6,
1300             'CALL' => 45,
1301             'THROW' => 8,
1302             'GET' => 47,
1303             "[" => 9,
1304             'TRY' => 10,
1305             'LAST' => 49,
1306             'DEBUG' => 51,
1307             'INCLUDE' => 17,
1308             "(" => 53,
1309             'SWITCH' => 54,
1310             'WRAPPER' => 55,
1311             'FOR' => 21,
1312             'NEXT' => 22,
1313             'LITERAL' => 57,
1314             "\"" => 60,
1315             'PROCESS' => 61,
1316             'FILTER' => 25,
1317             'RETURN' => 64,
1318             'INSERT' => 65,
1319             'NUMBER' => 26,
1320             'REF' => 27,
1321             'WHILE' => 67,
1322             'BLOCK' => 193,
1323             'DEFAULT' => 69,
1324             "{" => 30,
1325             "\${" => 37
1326             },
1327             GOTOS => {
1328             'item' => 39,
1329             'node' => 23,
1330             'term' => 58,
1331             'loop' => 4,
1332             'expr' => 195,
1333             'wrapper' => 46,
1334             'atomexpr' => 48,
1335             'atomdir' => 12,
1336             'mdir' => 194,
1337             'filter' => 29,
1338             'sterm' => 68,
1339             'ident' => 149,
1340             'perl' => 31,
1341             'setlist' => 70,
1342             'try' => 35,
1343             'switch' => 34,
1344             'assign' => 19,
1345             'directive' => 196,
1346             'condition' => 73,
1347             'lterm' => 56
1348             }
1349             },
1350             {#State 106
1351             DEFAULT => -33
1352             },
1353             {#State 107
1354             ACTIONS => {
1355             'SET' => 1,
1356             'PERL' => 40,
1357             'NOT' => 38,
1358             'IDENT' => 2,
1359             'CLEAR' => 41,
1360             'UNLESS' => 3,
1361             'IF' => 44,
1362             "\$" => 43,
1363             'STOP' => 6,
1364             'CALL' => 45,
1365             'THROW' => 8,
1366             'GET' => 47,
1367             "[" => 9,
1368             'TRY' => 10,
1369             'LAST' => 49,
1370             'DEBUG' => 51,
1371             'INCLUDE' => 17,
1372             "(" => 198,
1373             'SWITCH' => 54,
1374             'WRAPPER' => 55,
1375             'FOR' => 21,
1376             'NEXT' => 22,
1377             'LITERAL' => 57,
1378             "\"" => 60,
1379             'PROCESS' => 61,
1380             'FILTER' => 25,
1381             'RETURN' => 64,
1382             'INSERT' => 65,
1383             'NUMBER' => 26,
1384             'REF' => 27,
1385             'WHILE' => 67,
1386             'BLOCK' => 193,
1387             'DEFAULT' => 69,
1388             "{" => 30,
1389             "\${" => 37
1390             },
1391             GOTOS => {
1392             'item' => 39,
1393             'node' => 23,
1394             'term' => 58,
1395             'loop' => 4,
1396             'expr' => 199,
1397             'wrapper' => 46,
1398             'atomexpr' => 48,
1399             'atomdir' => 12,
1400             'mdir' => 197,
1401             'filter' => 29,
1402             'sterm' => 68,
1403             'ident' => 149,
1404             'perl' => 31,
1405             'setlist' => 70,
1406             'try' => 35,
1407             'switch' => 34,
1408             'assign' => 19,
1409             'directive' => 196,
1410             'condition' => 73,
1411             'lterm' => 56
1412             }
1413             },
1414             {#State 108
1415             ACTIONS => {
1416             'IN' => 201,
1417             'ASSIGN' => 200
1418             },
1419             DEFAULT => -130
1420             },
1421             {#State 109
1422             DEFAULT => -156,
1423             GOTOS => {
1424             'args' => 202
1425             }
1426             },
1427             {#State 110
1428             ACTIONS => {
1429             ";" => 203
1430             }
1431             },
1432             {#State 111
1433             ACTIONS => {
1434             'ASSIGN' => -130
1435             },
1436             DEFAULT => -173
1437             },
1438             {#State 112
1439             ACTIONS => {
1440             'ASSIGN' => 204
1441             }
1442             },
1443             {#State 113
1444             DEFAULT => -159
1445             },
1446             {#State 114
1447             ACTIONS => {
1448             "\$" => 43,
1449             'IDENT' => 205,
1450             "\${" => 37
1451             },
1452             GOTOS => {
1453             'item' => 39,
1454             'node' => 23,
1455             'ident' => 175
1456             }
1457             },
1458             {#State 115
1459             ACTIONS => {
1460             ";" => 206
1461             }
1462             },
1463             {#State 116
1464             ACTIONS => {
1465             'ASSIGN' => -161
1466             },
1467             DEFAULT => -169
1468             },
1469             {#State 117
1470             DEFAULT => -176,
1471             GOTOS => {
1472             'quoted' => 207
1473             }
1474             },
1475             {#State 118
1476             DEFAULT => -158
1477             },
1478             {#State 119
1479             ACTIONS => {
1480             'DOT' => 104
1481             },
1482             DEFAULT => -110
1483             },
1484             {#State 120
1485             ACTIONS => {
1486             'ASSIGN' => 187
1487             },
1488             DEFAULT => -173
1489             },
1490             {#State 121
1491             DEFAULT => -83
1492             },
1493             {#State 122
1494             ACTIONS => {
1495             'DOT' => 174
1496             },
1497             DEFAULT => -84
1498             },
1499             {#State 123
1500             ACTIONS => {
1501             ";" => 208
1502             }
1503             },
1504             {#State 124
1505             DEFAULT => -85
1506             },
1507             {#State 125
1508             ACTIONS => {
1509             "}" => 209
1510             }
1511             },
1512             {#State 126
1513             ACTIONS => {
1514             'ASSIGN' => 210
1515             }
1516             },
1517             {#State 127
1518             DEFAULT => -122
1519             },
1520             {#State 128
1521             ACTIONS => {
1522             "\$" => 43,
1523             'COMMA' => 212,
1524             'LITERAL' => 129,
1525             'IDENT' => 2,
1526             "\${" => 37
1527             },
1528             DEFAULT => -118,
1529             GOTOS => {
1530             'item' => 126,
1531             'param' => 211
1532             }
1533             },
1534             {#State 129
1535             ACTIONS => {
1536             'ASSIGN' => 213
1537             }
1538             },
1539             {#State 130
1540             DEFAULT => -73
1541             },
1542             {#State 131
1543             DEFAULT => -4
1544             },
1545             {#State 132
1546             ACTIONS => {
1547             ";" => 214
1548             }
1549             },
1550             {#State 133
1551             ACTIONS => {
1552             "}" => 215
1553             }
1554             },
1555             {#State 134
1556             ACTIONS => {
1557             'DIV' => 159,
1558             'BINOP' => 161,
1559             "+" => 157,
1560             'CAT' => 163,
1561             'CMPOP' => 164,
1562             'MOD' => 165,
1563             "/" => 166
1564             },
1565             DEFAULT => -142
1566             },
1567             {#State 135
1568             DEFAULT => -156,
1569             GOTOS => {
1570             'args' => 216
1571             }
1572             },
1573             {#State 136
1574             DEFAULT => -76,
1575             GOTOS => {
1576             '@4-2' => 217
1577             }
1578             },
1579             {#State 137
1580             DEFAULT => -132
1581             },
1582             {#State 138
1583             ACTIONS => {
1584             'CMPOP' => 164,
1585             "?" => 158,
1586             ";" => 218,
1587             "+" => 157,
1588             'MOD' => 165,
1589             'DIV' => 159,
1590             "/" => 166,
1591             'AND' => 160,
1592             'CAT' => 163,
1593             'BINOP' => 161,
1594             'OR' => 162
1595             }
1596             },
1597             {#State 139
1598             ACTIONS => {
1599             "+" => 157,
1600             'CAT' => 163,
1601             'CMPOP' => 164,
1602             "?" => 158,
1603             'DIV' => 159,
1604             'MOD' => 165,
1605             "/" => 166,
1606             'AND' => 160,
1607             'BINOP' => 161,
1608             'OR' => 162
1609             },
1610             DEFAULT => -29
1611             },
1612             {#State 140
1613             ACTIONS => {
1614             "+" => 157,
1615             'CAT' => 163,
1616             'CMPOP' => 164,
1617             "?" => 158,
1618             'DIV' => 159,
1619             'MOD' => 165,
1620             "/" => 166,
1621             'AND' => 160,
1622             'BINOP' => 161,
1623             'OR' => 162
1624             },
1625             DEFAULT => -28
1626             },
1627             {#State 141
1628             ACTIONS => {
1629             'NOT' => 38,
1630             "{" => 30,
1631             'LITERAL' => 78,
1632             'IDENT' => 2,
1633             "\"" => 60,
1634             "(" => 53,
1635             "\$" => 43,
1636             "[" => 9,
1637             'NUMBER' => 26,
1638             'REF' => 27,
1639             "\${" => 37
1640             },
1641             GOTOS => {
1642             'expr' => 219,
1643             'sterm' => 68,
1644             'item' => 39,
1645             'node' => 23,
1646             'ident' => 77,
1647             'term' => 58,
1648             'lterm' => 56
1649             }
1650             },
1651             {#State 142
1652             ACTIONS => {
1653             "{" => 30,
1654             'LITERAL' => 78,
1655             'IDENT' => 108,
1656             "\"" => 60,
1657             "\$" => 43,
1658             "[" => 9,
1659             'NUMBER' => 26,
1660             'REF' => 27,
1661             "\${" => 37
1662             },
1663             GOTOS => {
1664             'sterm' => 68,
1665             'item' => 39,
1666             'loopvar' => 220,
1667             'node' => 23,
1668             'ident' => 77,
1669             'term' => 109,
1670             'lterm' => 56
1671             }
1672             },
1673             {#State 143
1674             ACTIONS => {
1675             "\"" => 117,
1676             "\$" => 114,
1677             'LITERAL' => 116,
1678             'FILENAME' => 83,
1679             'IDENT' => 111,
1680             'NUMBER' => 84,
1681             "\${" => 37
1682             },
1683             GOTOS => {
1684             'names' => 91,
1685             'lvalue' => 112,
1686             'item' => 113,
1687             'name' => 82,
1688             'filepart' => 87,
1689             'filename' => 85,
1690             'nameargs' => 118,
1691             'lnameargs' => 221
1692             }
1693             },
1694             {#State 144
1695             ACTIONS => {
1696             'NOT' => 38,
1697             "{" => 30,
1698             'LITERAL' => 78,
1699             'IDENT' => 2,
1700             "\"" => 60,
1701             "(" => 53,
1702             "\$" => 43,
1703             "[" => 9,
1704             'NUMBER' => 26,
1705             'REF' => 27,
1706             "\${" => 37
1707             },
1708             GOTOS => {
1709             'expr' => 222,
1710             'sterm' => 68,
1711             'item' => 39,
1712             'node' => 23,
1713             'ident' => 77,
1714             'term' => 58,
1715             'lterm' => 56
1716             }
1717             },
1718             {#State 145
1719             ACTIONS => {
1720             "\"" => 89,
1721             "\$" => 86,
1722             'LITERAL' => 88,
1723             'FILENAME' => 83,
1724             'IDENT' => 81,
1725             'NUMBER' => 84
1726             },
1727             GOTOS => {
1728             'filepart' => 87,
1729             'names' => 91,
1730             'nameargs' => 223,
1731             'filename' => 85,
1732             'name' => 82
1733             }
1734             },
1735             {#State 146
1736             ACTIONS => {
1737             'NOT' => 38,
1738             "{" => 30,
1739             'LITERAL' => 78,
1740             'IDENT' => 2,
1741             "\"" => 60,
1742             "(" => 53,
1743             "\$" => 43,
1744             "[" => 9,
1745             'NUMBER' => 26,
1746             'REF' => 27,
1747             "\${" => 37
1748             },
1749             GOTOS => {
1750             'expr' => 224,
1751             'sterm' => 68,
1752             'item' => 39,
1753             'node' => 23,
1754             'ident' => 77,
1755             'term' => 58,
1756             'lterm' => 56
1757             }
1758             },
1759             {#State 147
1760             DEFAULT => -41
1761             },
1762             {#State 148
1763             DEFAULT => 0
1764             },
1765             {#State 149
1766             ACTIONS => {
1767             'DOT' => 104,
1768             'ASSIGN' => 172
1769             },
1770             DEFAULT => -109
1771             },
1772             {#State 150
1773             ACTIONS => {
1774             ")" => 225
1775             }
1776             },
1777             {#State 151
1778             ACTIONS => {
1779             'CMPOP' => 164,
1780             "?" => 158,
1781             "+" => 157,
1782             'MOD' => 165,
1783             'DIV' => 159,
1784             "/" => 166,
1785             'AND' => 160,
1786             'CAT' => 163,
1787             'BINOP' => 161,
1788             ")" => 226,
1789             'OR' => 162
1790             }
1791             },
1792             {#State 152
1793             ACTIONS => {
1794             'CMPOP' => 164,
1795             "?" => 158,
1796             ";" => 227,
1797             "+" => 157,
1798             'MOD' => 165,
1799             'DIV' => 159,
1800             "/" => 166,
1801             'AND' => 160,
1802             'CAT' => 163,
1803             'BINOP' => 161,
1804             'OR' => 162
1805             }
1806             },
1807             {#State 153
1808             ACTIONS => {
1809             ";" => 228
1810             }
1811             },
1812             {#State 154
1813             ACTIONS => {
1814             'NOT' => 38,
1815             "{" => 30,
1816             'LITERAL' => 78,
1817             'IDENT' => 2,
1818             "\"" => 60,
1819             "(" => 53,
1820             "\$" => 43,
1821             "[" => 9,
1822             'NUMBER' => 26,
1823             'REF' => 27,
1824             "\${" => 37
1825             },
1826             GOTOS => {
1827             'expr' => 229,
1828             'sterm' => 68,
1829             'item' => 39,
1830             'node' => 23,
1831             'ident' => 77,
1832             'term' => 58,
1833             'lterm' => 56
1834             }
1835             },
1836             {#State 155
1837             ACTIONS => {
1838             "\"" => 234,
1839             'TEXT' => 231,
1840             ";" => 233,
1841             "\$" => 43,
1842             'IDENT' => 2,
1843             "\${" => 37
1844             },
1845             GOTOS => {
1846             'item' => 39,
1847             'node' => 23,
1848             'ident' => 230,
1849             'quotable' => 232
1850             }
1851             },
1852             {#State 156
1853             DEFAULT => -34
1854             },
1855             {#State 157
1856             ACTIONS => {
1857             'NOT' => 38,
1858             "{" => 30,
1859             'LITERAL' => 78,
1860             'IDENT' => 2,
1861             "\"" => 60,
1862             "(" => 53,
1863             "\$" => 43,
1864             "[" => 9,
1865             'NUMBER' => 26,
1866             'REF' => 27,
1867             "\${" => 37
1868             },
1869             GOTOS => {
1870             'expr' => 235,
1871             'sterm' => 68,
1872             'item' => 39,
1873             'node' => 23,
1874             'ident' => 77,
1875             'term' => 58,
1876             'lterm' => 56
1877             }
1878             },
1879             {#State 158
1880             ACTIONS => {
1881             'NOT' => 38,
1882             "{" => 30,
1883             'LITERAL' => 78,
1884             'IDENT' => 2,
1885             "\"" => 60,
1886             "(" => 53,
1887             "\$" => 43,
1888             "[" => 9,
1889             'NUMBER' => 26,
1890             'REF' => 27,
1891             "\${" => 37
1892             },
1893             GOTOS => {
1894             'expr' => 236,
1895             'sterm' => 68,
1896             'item' => 39,
1897             'node' => 23,
1898             'ident' => 77,
1899             'term' => 58,
1900             'lterm' => 56
1901             }
1902             },
1903             {#State 159
1904             ACTIONS => {
1905             'NOT' => 38,
1906             "{" => 30,
1907             'LITERAL' => 78,
1908             'IDENT' => 2,
1909             "\"" => 60,
1910             "(" => 53,
1911             "\$" => 43,
1912             "[" => 9,
1913             'NUMBER' => 26,
1914             'REF' => 27,
1915             "\${" => 37
1916             },
1917             GOTOS => {
1918             'expr' => 237,
1919             'sterm' => 68,
1920             'item' => 39,
1921             'node' => 23,
1922             'ident' => 77,
1923             'term' => 58,
1924             'lterm' => 56
1925             }
1926             },
1927             {#State 160
1928             ACTIONS => {
1929             'NOT' => 38,
1930             "{" => 30,
1931             'LITERAL' => 78,
1932             'IDENT' => 2,
1933             "\"" => 60,
1934             "(" => 53,
1935             "\$" => 43,
1936             "[" => 9,
1937             'NUMBER' => 26,
1938             'REF' => 27,
1939             "\${" => 37
1940             },
1941             GOTOS => {
1942             'expr' => 238,
1943             'sterm' => 68,
1944             'item' => 39,
1945             'node' => 23,
1946             'ident' => 77,
1947             'term' => 58,
1948             'lterm' => 56
1949             }
1950             },
1951             {#State 161
1952             ACTIONS => {
1953             'NOT' => 38,
1954             "{" => 30,
1955             'LITERAL' => 78,
1956             'IDENT' => 2,
1957             "\"" => 60,
1958             "(" => 53,
1959             "\$" => 43,
1960             "[" => 9,
1961             'NUMBER' => 26,
1962             'REF' => 27,
1963             "\${" => 37
1964             },
1965             GOTOS => {
1966             'expr' => 239,
1967             'sterm' => 68,
1968             'item' => 39,
1969             'node' => 23,
1970             'ident' => 77,
1971             'term' => 58,
1972             'lterm' => 56
1973             }
1974             },
1975             {#State 162
1976             ACTIONS => {
1977             'NOT' => 38,
1978             "{" => 30,
1979             'LITERAL' => 78,
1980             'IDENT' => 2,
1981             "\"" => 60,
1982             "(" => 53,
1983             "\$" => 43,
1984             "[" => 9,
1985             'NUMBER' => 26,
1986             'REF' => 27,
1987             "\${" => 37
1988             },
1989             GOTOS => {
1990             'expr' => 240,
1991             'sterm' => 68,
1992             'item' => 39,
1993             'node' => 23,
1994             'ident' => 77,
1995             'term' => 58,
1996             'lterm' => 56
1997             }
1998             },
1999             {#State 163
2000             ACTIONS => {
2001             'NOT' => 38,
2002             "{" => 30,
2003             'LITERAL' => 78,
2004             'IDENT' => 2,
2005             "\"" => 60,
2006             "(" => 53,
2007             "\$" => 43,
2008             "[" => 9,
2009             'NUMBER' => 26,
2010             'REF' => 27,
2011             "\${" => 37
2012             },
2013             GOTOS => {
2014             'expr' => 241,
2015             'sterm' => 68,
2016             'item' => 39,
2017             'node' => 23,
2018             'ident' => 77,
2019             'term' => 58,
2020             'lterm' => 56
2021             }
2022             },
2023             {#State 164
2024             ACTIONS => {
2025             'NOT' => 38,
2026             "{" => 30,
2027             'LITERAL' => 78,
2028             'IDENT' => 2,
2029             "\"" => 60,
2030             "(" => 53,
2031             "\$" => 43,
2032             "[" => 9,
2033             'NUMBER' => 26,
2034             'REF' => 27,
2035             "\${" => 37
2036             },
2037             GOTOS => {
2038             'expr' => 242,
2039             'sterm' => 68,
2040             'item' => 39,
2041             'node' => 23,
2042             'ident' => 77,
2043             'term' => 58,
2044             'lterm' => 56
2045             }
2046             },
2047             {#State 165
2048             ACTIONS => {
2049             'NOT' => 38,
2050             "{" => 30,
2051             'LITERAL' => 78,
2052             'IDENT' => 2,
2053             "\"" => 60,
2054             "(" => 53,
2055             "\$" => 43,
2056             "[" => 9,
2057             'NUMBER' => 26,
2058             'REF' => 27,
2059             "\${" => 37
2060             },
2061             GOTOS => {
2062             'expr' => 243,
2063             'sterm' => 68,
2064             'item' => 39,
2065             'node' => 23,
2066             'ident' => 77,
2067             'term' => 58,
2068             'lterm' => 56
2069             }
2070             },
2071             {#State 166
2072             ACTIONS => {
2073             'NOT' => 38,
2074             "{" => 30,
2075             'LITERAL' => 78,
2076             'IDENT' => 2,
2077             "\"" => 60,
2078             "(" => 53,
2079             "\$" => 43,
2080             "[" => 9,
2081             'NUMBER' => 26,
2082             'REF' => 27,
2083             "\${" => 37
2084             },
2085             GOTOS => {
2086             'expr' => 244,
2087             'sterm' => 68,
2088             'item' => 39,
2089             'node' => 23,
2090             'ident' => 77,
2091             'term' => 58,
2092             'lterm' => 56
2093             }
2094             },
2095             {#State 167
2096             DEFAULT => -32
2097             },
2098             {#State 168
2099             ACTIONS => {
2100             'CMPOP' => 164,
2101             "?" => 158,
2102             ";" => 245,
2103             "+" => 157,
2104             'MOD' => 165,
2105             'DIV' => 159,
2106             "/" => 166,
2107             'AND' => 160,
2108             'CAT' => 163,
2109             'BINOP' => 161,
2110             'OR' => 162
2111             }
2112             },
2113             {#State 169
2114             ACTIONS => {
2115             'COMMA' => 171,
2116             'LITERAL' => 75,
2117             'IDENT' => 2,
2118             "\$" => 43,
2119             "\${" => 37
2120             },
2121             DEFAULT => -31,
2122             GOTOS => {
2123             'item' => 39,
2124             'assign' => 170,
2125             'node' => 23,
2126             'ident' => 74
2127             }
2128             },
2129             {#State 170
2130             DEFAULT => -147
2131             },
2132             {#State 171
2133             DEFAULT => -148
2134             },
2135             {#State 172
2136             ACTIONS => {
2137             'NOT' => 38,
2138             "{" => 30,
2139             'LITERAL' => 78,
2140             'IDENT' => 2,
2141             "\"" => 60,
2142             "(" => 53,
2143             "\$" => 43,
2144             "[" => 9,
2145             'NUMBER' => 26,
2146             'REF' => 27,
2147             "\${" => 37
2148             },
2149             GOTOS => {
2150             'expr' => 246,
2151             'sterm' => 68,
2152             'item' => 39,
2153             'node' => 23,
2154             'ident' => 77,
2155             'term' => 58,
2156             'lterm' => 56
2157             }
2158             },
2159             {#State 173
2160             ACTIONS => {
2161             'SET' => 1,
2162             'PERL' => 40,
2163             'NOT' => 38,
2164             'IDENT' => 2,
2165             'CLEAR' => 41,
2166             'UNLESS' => 3,
2167             'IF' => 44,
2168             "\$" => 43,
2169             'STOP' => 6,
2170             'CALL' => 45,
2171             'THROW' => 8,
2172             'GET' => 47,
2173             "[" => 9,
2174             'TRY' => 10,
2175             'LAST' => 49,
2176             'DEBUG' => 51,
2177             'RAWPERL' => 13,
2178             'META' => 15,
2179             'INCLUDE' => 17,
2180             "(" => 53,
2181             'SWITCH' => 54,
2182             'MACRO' => 18,
2183             'WRAPPER' => 55,
2184             ";" => -18,
2185             'FOR' => 21,
2186             'LITERAL' => 57,
2187             'NEXT' => 22,
2188             "\"" => 60,
2189             'TEXT' => 24,
2190             'PROCESS' => 61,
2191             'RETURN' => 64,
2192             'FILTER' => 25,
2193             'INSERT' => 65,
2194             'NUMBER' => 26,
2195             'REF' => 27,
2196             'WHILE' => 67,
2197             'BLOCK' => 28,
2198             'DEFAULT' => 69,
2199             "{" => 30,
2200             'USE' => 32,
2201             'VIEW' => 36,
2202             "\${" => 37
2203             },
2204             DEFAULT => -3,
2205             GOTOS => {
2206             'item' => 39,
2207             'node' => 23,
2208             'rawperl' => 59,
2209             'term' => 58,
2210             'loop' => 4,
2211             'use' => 63,
2212             'expr' => 62,
2213             'capture' => 42,
2214             'statement' => 5,
2215             'view' => 7,
2216             'wrapper' => 46,
2217             'atomexpr' => 48,
2218             'chunk' => 11,
2219             'defblock' => 66,
2220             'atomdir' => 12,
2221             'anonblock' => 50,
2222             'sterm' => 68,
2223             'defblockname' => 14,
2224             'filter' => 29,
2225             'ident' => 16,
2226             'perl' => 31,
2227             'setlist' => 70,
2228             'chunks' => 33,
2229             'try' => 35,
2230             'switch' => 34,
2231             'assign' => 19,
2232             'block' => 247,
2233             'directive' => 71,
2234             'macro' => 20,
2235             'condition' => 73,
2236             'lterm' => 56
2237             }
2238             },
2239             {#State 174
2240             ACTIONS => {
2241             'FILENAME' => 83,
2242             'IDENT' => 81,
2243             'NUMBER' => 84
2244             },
2245             GOTOS => {
2246             'filepart' => 248
2247             }
2248             },
2249             {#State 175
2250             ACTIONS => {
2251             'DOT' => 104
2252             },
2253             DEFAULT => -156,
2254             GOTOS => {
2255             'args' => 249
2256             }
2257             },
2258             {#State 176
2259             ACTIONS => {
2260             "\"" => 250,
2261             'TEXT' => 231,
2262             ";" => 233,
2263             "\$" => 43,
2264             'IDENT' => 2,
2265             "\${" => 37
2266             },
2267             GOTOS => {
2268             'item' => 39,
2269             'node' => 23,
2270             'ident' => 230,
2271             'quotable' => 232
2272             }
2273             },
2274             {#State 177
2275             ACTIONS => {
2276             "\"" => 89,
2277             'LITERAL' => 88,
2278             'FILENAME' => 83,
2279             'IDENT' => 81,
2280             'NUMBER' => 84
2281             },
2282             GOTOS => {
2283             'filepart' => 87,
2284             'filename' => 85,
2285             'name' => 251
2286             }
2287             },
2288             {#State 178
2289             DEFAULT => -156,
2290             GOTOS => {
2291             'args' => 252
2292             }
2293             },
2294             {#State 179
2295             ACTIONS => {
2296             'NOT' => 38,
2297             'LITERAL' => 256,
2298             'IDENT' => 2,
2299             "\"" => 60,
2300             "\$" => 43,
2301             "[" => 9,
2302             'NUMBER' => 26,
2303             'REF' => 27,
2304             "{" => 30,
2305             'COMMA' => 258,
2306             "(" => 53,
2307             "\${" => 37
2308             },
2309             DEFAULT => -163,
2310             GOTOS => {
2311             'expr' => 257,
2312             'sterm' => 68,
2313             'item' => 254,
2314             'param' => 255,
2315             'node' => 23,
2316             'ident' => 253,
2317             'term' => 58,
2318             'lterm' => 56
2319             }
2320             },
2321             {#State 180
2322             DEFAULT => -105
2323             },
2324             {#State 181
2325             DEFAULT => -114
2326             },
2327             {#State 182
2328             DEFAULT => -115
2329             },
2330             {#State 183
2331             DEFAULT => -106
2332             },
2333             {#State 184
2334             ACTIONS => {
2335             "\"" => 60,
2336             "\$" => 43,
2337             'LITERAL' => 78,
2338             'IDENT' => 2,
2339             'REF' => 27,
2340             'NUMBER' => 26,
2341             "\${" => 37
2342             },
2343             GOTOS => {
2344             'sterm' => 259,
2345             'item' => 39,
2346             'node' => 23,
2347             'ident' => 77
2348             }
2349             },
2350             {#State 185
2351             ACTIONS => {
2352             'FINAL' => 260,
2353             'CATCH' => 262
2354             },
2355             DEFAULT => -72,
2356             GOTOS => {
2357             'final' => 261
2358             }
2359             },
2360             {#State 186
2361             ACTIONS => {
2362             'TEXT' => 263
2363             }
2364             },
2365             {#State 187
2366             ACTIONS => {
2367             "\"" => 266,
2368             'LITERAL' => 265,
2369             'NUMBER' => 264
2370             }
2371             },
2372             {#State 188
2373             DEFAULT => -97
2374             },
2375             {#State 189
2376             DEFAULT => -98
2377             },
2378             {#State 190
2379             ACTIONS => {
2380             'SET' => 1,
2381             'PERL' => 40,
2382             'NOT' => 38,
2383             'IDENT' => 2,
2384             'CLEAR' => 41,
2385             'UNLESS' => 3,
2386             'IF' => 44,
2387             "\$" => 43,
2388             'STOP' => 6,
2389             'CALL' => 45,
2390             'THROW' => 8,
2391             'GET' => 47,
2392             "[" => 9,
2393             'TRY' => 10,
2394             'LAST' => 49,
2395             'DEBUG' => 51,
2396             'RAWPERL' => 13,
2397             'META' => 15,
2398             'INCLUDE' => 17,
2399             "(" => 53,
2400             'SWITCH' => 54,
2401             'MACRO' => 18,
2402             'WRAPPER' => 55,
2403             ";" => -18,
2404             'FOR' => 21,
2405             'LITERAL' => 57,
2406             'NEXT' => 22,
2407             "\"" => 60,
2408             'TEXT' => 24,
2409             'PROCESS' => 61,
2410             'RETURN' => 64,
2411             'FILTER' => 25,
2412             'INSERT' => 65,
2413             'NUMBER' => 26,
2414             'REF' => 27,
2415             'WHILE' => 67,
2416             'BLOCK' => 28,
2417             'DEFAULT' => 69,
2418             "{" => 30,
2419             'USE' => 32,
2420             'VIEW' => 36,
2421             "\${" => 37
2422             },
2423             DEFAULT => -3,
2424             GOTOS => {
2425             'item' => 39,
2426             'loop' => 4,
2427             'capture' => 42,
2428             'statement' => 5,
2429             'view' => 7,
2430             'wrapper' => 46,
2431             'atomexpr' => 48,
2432             'chunk' => 11,
2433             'atomdir' => 12,
2434             'anonblock' => 50,
2435             'template' => 267,
2436             'defblockname' => 14,
2437             'ident' => 16,
2438             'assign' => 19,
2439             'macro' => 20,
2440             'lterm' => 56,
2441             'node' => 23,
2442             'term' => 58,
2443             'rawperl' => 59,
2444             'expr' => 62,
2445             'use' => 63,
2446             'defblock' => 66,
2447             'filter' => 29,
2448             'sterm' => 68,
2449             'perl' => 31,
2450             'chunks' => 33,
2451             'setlist' => 70,
2452             'switch' => 34,
2453             'try' => 35,
2454             'directive' => 71,
2455             'block' => 72,
2456             'condition' => 73
2457             }
2458             },
2459             {#State 191
2460             DEFAULT => -125
2461             },
2462             {#State 192
2463             DEFAULT => -126
2464             },
2465             {#State 193
2466             ACTIONS => {
2467             ";" => 268
2468             }
2469             },
2470             {#State 194
2471             DEFAULT => -89
2472             },
2473             {#State 195
2474             ACTIONS => {
2475             ";" => -150,
2476             "+" => 157,
2477             'LITERAL' => -150,
2478             'IDENT' => -150,
2479             'CAT' => 163,
2480             "\$" => -150,
2481             'CMPOP' => 164,
2482             "?" => 158,
2483             'DIV' => 159,
2484             'MOD' => 165,
2485             'COMMA' => -150,
2486             "/" => 166,
2487             'AND' => 160,
2488             'BINOP' => 161,
2489             'OR' => 162,
2490             "\${" => -150
2491             },
2492             DEFAULT => -26
2493             },
2494             {#State 196
2495             DEFAULT => -92
2496             },
2497             {#State 197
2498             DEFAULT => -91
2499             },
2500             {#State 198
2501             ACTIONS => {
2502             'NOT' => 38,
2503             "{" => 30,
2504             'LITERAL' => 57,
2505             'IDENT' => 269,
2506             "\"" => 60,
2507             "(" => 53,
2508             "\$" => 43,
2509             "[" => 9,
2510             'NUMBER' => 26,
2511             'REF' => 27,
2512             "\${" => 37
2513             },
2514             GOTOS => {
2515             'expr' => 151,
2516             'sterm' => 68,
2517             'item' => 39,
2518             'assign' => 150,
2519             'margs' => 270,
2520             'node' => 23,
2521             'ident' => 149,
2522             'term' => 58,
2523             'lterm' => 56
2524             }
2525             },
2526             {#State 199
2527             ACTIONS => {
2528             "+" => 157,
2529             'CAT' => 163,
2530             'CMPOP' => 164,
2531             "?" => 158,
2532             'DIV' => 159,
2533             'MOD' => 165,
2534             "/" => 166,
2535             'AND' => 160,
2536             'BINOP' => 161,
2537             'OR' => 162
2538             },
2539             DEFAULT => -26
2540             },
2541             {#State 200
2542             ACTIONS => {
2543             "{" => 30,
2544             'LITERAL' => 78,
2545             'IDENT' => 2,
2546             "\"" => 60,
2547             "\$" => 43,
2548             "[" => 9,
2549             'NUMBER' => 26,
2550             'REF' => 27,
2551             "\${" => 37
2552             },
2553             GOTOS => {
2554             'sterm' => 68,
2555             'item' => 39,
2556             'node' => 23,
2557             'ident' => 77,
2558             'term' => 271,
2559             'lterm' => 56
2560             }
2561             },
2562             {#State 201
2563             ACTIONS => {
2564             "{" => 30,
2565             'LITERAL' => 78,
2566             'IDENT' => 2,
2567             "\"" => 60,
2568             "\$" => 43,
2569             "[" => 9,
2570             'NUMBER' => 26,
2571             'REF' => 27,
2572             "\${" => 37
2573             },
2574             GOTOS => {
2575             'sterm' => 68,
2576             'item' => 39,
2577             'node' => 23,
2578             'ident' => 77,
2579             'term' => 272,
2580             'lterm' => 56
2581             }
2582             },
2583             {#State 202
2584             ACTIONS => {
2585             'NOT' => 38,
2586             "{" => 30,
2587             'COMMA' => 258,
2588             'LITERAL' => 256,
2589             'IDENT' => 2,
2590             "\"" => 60,
2591             "(" => 53,
2592             "\$" => 43,
2593             "[" => 9,
2594             'NUMBER' => 26,
2595             'REF' => 27,
2596             "\${" => 37
2597             },
2598             DEFAULT => -64,
2599             GOTOS => {
2600             'expr' => 257,
2601             'sterm' => 68,
2602             'item' => 254,
2603             'param' => 255,
2604             'node' => 23,
2605             'ident' => 253,
2606             'term' => 58,
2607             'lterm' => 56
2608             }
2609             },
2610             {#State 203
2611             DEFAULT => -56,
2612             GOTOS => {
2613             '@1-3' => 273
2614             }
2615             },
2616             {#State 204
2617             ACTIONS => {
2618             "\"" => 89,
2619             "\$" => 86,
2620             'LITERAL' => 88,
2621             'FILENAME' => 83,
2622             'IDENT' => 81,
2623             'NUMBER' => 84
2624             },
2625             GOTOS => {
2626             'filepart' => 87,
2627             'names' => 91,
2628             'nameargs' => 274,
2629             'filename' => 85,
2630             'name' => 82
2631             }
2632             },
2633             {#State 205
2634             ACTIONS => {
2635             'ASSIGN' => -132
2636             },
2637             DEFAULT => -130
2638             },
2639             {#State 206
2640             ACTIONS => {
2641             'SET' => 1,
2642             'PERL' => 40,
2643             'NOT' => 38,
2644             'IDENT' => 2,
2645             'CLEAR' => 41,
2646             'UNLESS' => 3,
2647             'IF' => 44,
2648             "\$" => 43,
2649             'STOP' => 6,
2650             'CALL' => 45,
2651             'THROW' => 8,
2652             'GET' => 47,
2653             "[" => 9,
2654             'TRY' => 10,
2655             'LAST' => 49,
2656             'DEBUG' => 51,
2657             'RAWPERL' => 13,
2658             'META' => 15,
2659             'INCLUDE' => 17,
2660             "(" => 53,
2661             'SWITCH' => 54,
2662             'MACRO' => 18,
2663             'WRAPPER' => 55,
2664             ";" => -18,
2665             'FOR' => 21,
2666             'LITERAL' => 57,
2667             'NEXT' => 22,
2668             "\"" => 60,
2669             'TEXT' => 24,
2670             'PROCESS' => 61,
2671             'RETURN' => 64,
2672             'FILTER' => 25,
2673             'INSERT' => 65,
2674             'NUMBER' => 26,
2675             'REF' => 27,
2676             'WHILE' => 67,
2677             'BLOCK' => 28,
2678             'DEFAULT' => 69,
2679             "{" => 30,
2680             'USE' => 32,
2681             'VIEW' => 36,
2682             "\${" => 37
2683             },
2684             DEFAULT => -3,
2685             GOTOS => {
2686             'item' => 39,
2687             'node' => 23,
2688             'rawperl' => 59,
2689             'term' => 58,
2690             'loop' => 4,
2691             'use' => 63,
2692             'expr' => 62,
2693             'capture' => 42,
2694             'statement' => 5,
2695             'view' => 7,
2696             'wrapper' => 46,
2697             'atomexpr' => 48,
2698             'chunk' => 11,
2699             'defblock' => 66,
2700             'atomdir' => 12,
2701             'anonblock' => 50,
2702             'sterm' => 68,
2703             'defblockname' => 14,
2704             'filter' => 29,
2705             'ident' => 16,
2706             'perl' => 31,
2707             'setlist' => 70,
2708             'chunks' => 33,
2709             'try' => 35,
2710             'switch' => 34,
2711             'assign' => 19,
2712             'block' => 275,
2713             'directive' => 71,
2714             'macro' => 20,
2715             'condition' => 73,
2716             'lterm' => 56
2717             }
2718             },
2719             {#State 207
2720             ACTIONS => {
2721             "\"" => 276,
2722             'TEXT' => 231,
2723             ";" => 233,
2724             "\$" => 43,
2725             'IDENT' => 2,
2726             "\${" => 37
2727             },
2728             GOTOS => {
2729             'item' => 39,
2730             'node' => 23,
2731             'ident' => 230,
2732             'quotable' => 232
2733             }
2734             },
2735             {#State 208
2736             ACTIONS => {
2737             'SET' => 1,
2738             'PERL' => 40,
2739             'NOT' => 38,
2740             'IDENT' => 2,
2741             'CLEAR' => 41,
2742             'UNLESS' => 3,
2743             'IF' => 44,
2744             "\$" => 43,
2745             'STOP' => 6,
2746             'CALL' => 45,
2747             'THROW' => 8,
2748             'GET' => 47,
2749             "[" => 9,
2750             'TRY' => 10,
2751             'LAST' => 49,
2752             'DEBUG' => 51,
2753             'RAWPERL' => 13,
2754             'META' => 15,
2755             'INCLUDE' => 17,
2756             "(" => 53,
2757             'SWITCH' => 54,
2758             'MACRO' => 18,
2759             'WRAPPER' => 55,
2760             ";" => -18,
2761             'FOR' => 21,
2762             'LITERAL' => 57,
2763             'NEXT' => 22,
2764             "\"" => 60,
2765             'TEXT' => 24,
2766             'PROCESS' => 61,
2767             'RETURN' => 64,
2768             'FILTER' => 25,
2769             'INSERT' => 65,
2770             'NUMBER' => 26,
2771             'REF' => 27,
2772             'WHILE' => 67,
2773             'BLOCK' => 28,
2774             'DEFAULT' => 69,
2775             "{" => 30,
2776             'USE' => 32,
2777             'VIEW' => 36,
2778             "\${" => 37
2779             },
2780             DEFAULT => -3,
2781             GOTOS => {
2782             'item' => 39,
2783             'node' => 23,
2784             'rawperl' => 59,
2785             'term' => 58,
2786             'loop' => 4,
2787             'use' => 63,
2788             'expr' => 62,
2789             'capture' => 42,
2790             'statement' => 5,
2791             'view' => 7,
2792             'wrapper' => 46,
2793             'atomexpr' => 48,
2794             'chunk' => 11,
2795             'defblock' => 66,
2796             'atomdir' => 12,
2797             'anonblock' => 50,
2798             'sterm' => 68,
2799             'defblockname' => 14,
2800             'filter' => 29,
2801             'ident' => 16,
2802             'perl' => 31,
2803             'setlist' => 70,
2804             'chunks' => 33,
2805             'try' => 35,
2806             'switch' => 34,
2807             'assign' => 19,
2808             'block' => 277,
2809             'directive' => 71,
2810             'macro' => 20,
2811             'condition' => 73,
2812             'lterm' => 56
2813             }
2814             },
2815             {#State 209
2816             DEFAULT => -108
2817             },
2818             {#State 210
2819             ACTIONS => {
2820             'NOT' => 38,
2821             "{" => 30,
2822             'LITERAL' => 78,
2823             'IDENT' => 2,
2824             "\"" => 60,
2825             "(" => 53,
2826             "\$" => 43,
2827             "[" => 9,
2828             'NUMBER' => 26,
2829             'REF' => 27,
2830             "\${" => 37
2831             },
2832             GOTOS => {
2833             'expr' => 278,
2834             'sterm' => 68,
2835             'item' => 39,
2836             'node' => 23,
2837             'ident' => 77,
2838             'term' => 58,
2839             'lterm' => 56
2840             }
2841             },
2842             {#State 211
2843             DEFAULT => -120
2844             },
2845             {#State 212
2846             DEFAULT => -121
2847             },
2848             {#State 213
2849             ACTIONS => {
2850             'NOT' => 38,
2851             "{" => 30,
2852             'LITERAL' => 78,
2853             'IDENT' => 2,
2854             "\"" => 60,
2855             "(" => 53,
2856             "\$" => 43,
2857             "[" => 9,
2858             'NUMBER' => 26,
2859             'REF' => 27,
2860             "\${" => 37
2861             },
2862             GOTOS => {
2863             'expr' => 279,
2864             'sterm' => 68,
2865             'item' => 39,
2866             'node' => 23,
2867             'ident' => 77,
2868             'term' => 58,
2869             'lterm' => 56
2870             }
2871             },
2872             {#State 214
2873             DEFAULT => -74,
2874             GOTOS => {
2875             '@3-3' => 280
2876             }
2877             },
2878             {#State 215
2879             DEFAULT => -131
2880             },
2881             {#State 216
2882             ACTIONS => {
2883             'NOT' => 38,
2884             "{" => 30,
2885             'COMMA' => 258,
2886             'LITERAL' => 256,
2887             'IDENT' => 2,
2888             "\"" => 60,
2889             "(" => 53,
2890             "\$" => 43,
2891             "[" => 9,
2892             'NUMBER' => 26,
2893             'REF' => 27,
2894             ")" => 281,
2895             "\${" => 37
2896             },
2897             GOTOS => {
2898             'expr' => 257,
2899             'sterm' => 68,
2900             'item' => 254,
2901             'param' => 255,
2902             'node' => 23,
2903             'ident' => 253,
2904             'term' => 58,
2905             'lterm' => 56
2906             }
2907             },
2908             {#State 217
2909             ACTIONS => {
2910             'SET' => 1,
2911             'PERL' => 40,
2912             'NOT' => 38,
2913             'IDENT' => 2,
2914             'CLEAR' => 41,
2915             'UNLESS' => 3,
2916             'IF' => 44,
2917             "\$" => 43,
2918             'STOP' => 6,
2919             'CALL' => 45,
2920             'THROW' => 8,
2921             'GET' => 47,
2922             "[" => 9,
2923             'TRY' => 10,
2924             'LAST' => 49,
2925             'DEBUG' => 51,
2926             'RAWPERL' => 13,
2927             'META' => 15,
2928             'INCLUDE' => 17,
2929             "(" => 53,
2930             'SWITCH' => 54,
2931             'MACRO' => 18,
2932             'WRAPPER' => 55,
2933             ";" => -18,
2934             'FOR' => 21,
2935             'LITERAL' => 57,
2936             'NEXT' => 22,
2937             "\"" => 60,
2938             'TEXT' => 24,
2939             'PROCESS' => 61,
2940             'RETURN' => 64,
2941             'FILTER' => 25,
2942             'INSERT' => 65,
2943             'NUMBER' => 26,
2944             'REF' => 27,
2945             'WHILE' => 67,
2946             'BLOCK' => 28,
2947             'DEFAULT' => 69,
2948             "{" => 30,
2949             'USE' => 32,
2950             'VIEW' => 36,
2951             "\${" => 37
2952             },
2953             DEFAULT => -3,
2954             GOTOS => {
2955             'item' => 39,
2956             'node' => 23,
2957             'rawperl' => 59,
2958             'term' => 58,
2959             'loop' => 4,
2960             'use' => 63,
2961             'expr' => 62,
2962             'capture' => 42,
2963             'statement' => 5,
2964             'view' => 7,
2965             'wrapper' => 46,
2966             'atomexpr' => 48,
2967             'chunk' => 11,
2968             'defblock' => 66,
2969             'atomdir' => 12,
2970             'anonblock' => 50,
2971             'sterm' => 68,
2972             'defblockname' => 14,
2973             'filter' => 29,
2974             'ident' => 16,
2975             'perl' => 31,
2976             'setlist' => 70,
2977             'chunks' => 33,
2978             'try' => 35,
2979             'switch' => 34,
2980             'assign' => 19,
2981             'block' => 282,
2982             'directive' => 71,
2983             'macro' => 20,
2984             'condition' => 73,
2985             'lterm' => 56
2986             }
2987             },
2988             {#State 218
2989             ACTIONS => {
2990             'SET' => 1,
2991             'PERL' => 40,
2992             'NOT' => 38,
2993             'IDENT' => 2,
2994             'CLEAR' => 41,
2995             'UNLESS' => 3,
2996             'IF' => 44,
2997             "\$" => 43,
2998             'STOP' => 6,
2999             'CALL' => 45,
3000             'THROW' => 8,
3001             'GET' => 47,
3002             "[" => 9,
3003             'TRY' => 10,
3004             'LAST' => 49,
3005             'DEBUG' => 51,
3006             'RAWPERL' => 13,
3007             'META' => 15,
3008             'INCLUDE' => 17,
3009             "(" => 53,
3010             'SWITCH' => 54,
3011             'MACRO' => 18,
3012             'WRAPPER' => 55,
3013             ";" => -18,
3014             'FOR' => 21,
3015             'LITERAL' => 57,
3016             'NEXT' => 22,
3017             "\"" => 60,
3018             'TEXT' => 24,
3019             'PROCESS' => 61,
3020             'RETURN' => 64,
3021             'FILTER' => 25,
3022             'INSERT' => 65,
3023             'NUMBER' => 26,
3024             'REF' => 27,
3025             'WHILE' => 67,
3026             'BLOCK' => 28,
3027             'DEFAULT' => 69,
3028             "{" => 30,
3029             'USE' => 32,
3030             'VIEW' => 36,
3031             "\${" => 37
3032             },
3033             DEFAULT => -3,
3034             GOTOS => {
3035             'item' => 39,
3036             'node' => 23,
3037             'rawperl' => 59,
3038             'term' => 58,
3039             'loop' => 4,
3040             'use' => 63,
3041             'expr' => 62,
3042             'capture' => 42,
3043             'statement' => 5,
3044             'view' => 7,
3045             'wrapper' => 46,
3046             'atomexpr' => 48,
3047             'chunk' => 11,
3048             'defblock' => 66,
3049             'atomdir' => 12,
3050             'anonblock' => 50,
3051             'sterm' => 68,
3052             'defblockname' => 14,
3053             'filter' => 29,
3054             'ident' => 16,
3055             'perl' => 31,
3056             'setlist' => 70,
3057             'chunks' => 33,
3058             'try' => 35,
3059             'switch' => 34,
3060             'assign' => 19,
3061             'block' => 283,
3062             'directive' => 71,
3063             'macro' => 20,
3064             'condition' => 73,
3065             'lterm' => 56
3066             }
3067             },
3068             {#State 219
3069             ACTIONS => {
3070             'CMPOP' => 164,
3071             "?" => 158,
3072             "+" => 157,
3073             'MOD' => 165,
3074             'DIV' => 159,
3075             "/" => 166,
3076             'AND' => 160,
3077             'CAT' => 163,
3078             'BINOP' => 161,
3079             'OR' => 162
3080             },
3081             DEFAULT => -47
3082             },
3083             {#State 220
3084             DEFAULT => -58
3085             },
3086             {#State 221
3087             DEFAULT => -81
3088             },
3089             {#State 222
3090             ACTIONS => {
3091             'CMPOP' => 164,
3092             "?" => 158,
3093             "+" => 157,
3094             'MOD' => 165,
3095             'DIV' => 159,
3096             "/" => 166,
3097             'AND' => 160,
3098             'CAT' => 163,
3099             'BINOP' => 161,
3100             'OR' => 162
3101             },
3102             DEFAULT => -45
3103             },
3104             {#State 223
3105             DEFAULT => -66
3106             },
3107             {#State 224
3108             ACTIONS => {
3109             'CMPOP' => 164,
3110             "?" => 158,
3111             "+" => 157,
3112             'MOD' => 165,
3113             'DIV' => 159,
3114             "/" => 166,
3115             'AND' => 160,
3116             'CAT' => 163,
3117             'BINOP' => 161,
3118             'OR' => 162
3119             },
3120             DEFAULT => -61
3121             },
3122             {#State 225
3123             DEFAULT => -144
3124             },
3125             {#State 226
3126             DEFAULT => -145
3127             },
3128             {#State 227
3129             ACTIONS => {
3130             'SET' => 1,
3131             'PERL' => 40,
3132             'NOT' => 38,
3133             'IDENT' => 2,
3134             'CLEAR' => 41,
3135             'UNLESS' => 3,
3136             'IF' => 44,
3137             "\$" => 43,
3138             'STOP' => 6,
3139             'CALL' => 45,
3140             'THROW' => 8,
3141             'GET' => 47,
3142             "[" => 9,
3143             'TRY' => 10,
3144             'LAST' => 49,
3145             'DEBUG' => 51,
3146             'RAWPERL' => 13,
3147             'META' => 15,
3148             'INCLUDE' => 17,
3149             "(" => 53,
3150             'SWITCH' => 54,
3151             'MACRO' => 18,
3152             'WRAPPER' => 55,
3153             ";" => -18,
3154             'FOR' => 21,
3155             'LITERAL' => 57,
3156             'NEXT' => 22,
3157             "\"" => 60,
3158             'TEXT' => 24,
3159             'PROCESS' => 61,
3160             'RETURN' => 64,
3161             'FILTER' => 25,
3162             'INSERT' => 65,
3163             'NUMBER' => 26,
3164             'REF' => 27,
3165             'WHILE' => 67,
3166             'BLOCK' => 28,
3167             'DEFAULT' => 69,
3168             "{" => 30,
3169             'USE' => 32,
3170             'VIEW' => 36,
3171             "\${" => 37
3172             },
3173             DEFAULT => -3,
3174             GOTOS => {
3175             'item' => 39,
3176             'node' => 23,
3177             'rawperl' => 59,
3178             'term' => 58,
3179             'loop' => 4,
3180             'use' => 63,
3181             'expr' => 62,
3182             'capture' => 42,
3183             'statement' => 5,
3184             'view' => 7,
3185             'wrapper' => 46,
3186             'atomexpr' => 48,
3187             'chunk' => 11,
3188             'defblock' => 66,
3189             'atomdir' => 12,
3190             'anonblock' => 50,
3191             'sterm' => 68,
3192             'defblockname' => 14,
3193             'filter' => 29,
3194             'ident' => 16,
3195             'perl' => 31,
3196             'setlist' => 70,
3197             'chunks' => 33,
3198             'try' => 35,
3199             'switch' => 34,
3200             'assign' => 19,
3201             'block' => 284,
3202             'directive' => 71,
3203             'macro' => 20,
3204             'condition' => 73,
3205             'lterm' => 56
3206             }
3207             },
3208             {#State 228
3209             ACTIONS => {
3210             'SET' => 1,
3211             'PERL' => 40,
3212             'NOT' => 38,
3213             'IDENT' => 2,
3214             'CLEAR' => 41,
3215             'UNLESS' => 3,
3216             'IF' => 44,
3217             "\$" => 43,
3218             'STOP' => 6,
3219             'CALL' => 45,
3220             'THROW' => 8,
3221             'GET' => 47,
3222             "[" => 9,
3223             'TRY' => 10,
3224             'LAST' => 49,
3225             'DEBUG' => 51,
3226             'RAWPERL' => 13,
3227             'META' => 15,
3228             'INCLUDE' => 17,
3229             "(" => 53,
3230             'SWITCH' => 54,
3231             'MACRO' => 18,
3232             'WRAPPER' => 55,
3233             ";" => -18,
3234             'FOR' => 21,
3235             'LITERAL' => 57,
3236             'NEXT' => 22,
3237             "\"" => 60,
3238             'TEXT' => 24,
3239             'PROCESS' => 61,
3240             'RETURN' => 64,
3241             'FILTER' => 25,
3242             'INSERT' => 65,
3243             'NUMBER' => 26,
3244             'REF' => 27,
3245             'WHILE' => 67,
3246             'BLOCK' => 28,
3247             'DEFAULT' => 69,
3248             "{" => 30,
3249             'USE' => 32,
3250             'VIEW' => 36,
3251             "\${" => 37
3252             },
3253             DEFAULT => -3,
3254             GOTOS => {
3255             'item' => 39,
3256             'node' => 23,
3257             'rawperl' => 59,
3258             'term' => 58,
3259             'loop' => 4,
3260             'use' => 63,
3261             'expr' => 62,
3262             'capture' => 42,
3263             'statement' => 5,
3264             'view' => 7,
3265             'wrapper' => 46,
3266             'atomexpr' => 48,
3267             'chunk' => 11,
3268             'defblock' => 66,
3269             'atomdir' => 12,
3270             'anonblock' => 50,
3271             'sterm' => 68,
3272             'defblockname' => 14,
3273             'filter' => 29,
3274             'ident' => 16,
3275             'perl' => 31,
3276             'setlist' => 70,
3277             'chunks' => 33,
3278             'try' => 35,
3279             'switch' => 34,
3280             'assign' => 19,
3281             'block' => 285,
3282             'directive' => 71,
3283             'macro' => 20,
3284             'condition' => 73,
3285             'lterm' => 56
3286             }
3287             },
3288             {#State 229
3289             ACTIONS => {
3290             "+" => 157,
3291             'CAT' => 163,
3292             'CMPOP' => 164,
3293             "?" => 158,
3294             'DIV' => 159,
3295             'MOD' => 165,
3296             "/" => 166,
3297             'AND' => 160,
3298             'BINOP' => 161,
3299             'OR' => 162
3300             },
3301             DEFAULT => -151
3302             },
3303             {#State 230
3304             ACTIONS => {
3305             'DOT' => 104
3306             },
3307             DEFAULT => -177
3308             },
3309             {#State 231
3310             DEFAULT => -178
3311             },
3312             {#State 232
3313             DEFAULT => -175
3314             },
3315             {#State 233
3316             DEFAULT => -179
3317             },
3318             {#State 234
3319             DEFAULT => -111
3320             },
3321             {#State 235
3322             ACTIONS => {
3323             'DIV' => 159,
3324             'MOD' => 165,
3325             "/" => 166
3326             },
3327             DEFAULT => -135
3328             },
3329             {#State 236
3330             ACTIONS => {
3331             ":" => 286,
3332             'CMPOP' => 164,
3333             "?" => 158,
3334             "+" => 157,
3335             'MOD' => 165,
3336             'DIV' => 159,
3337             "/" => 166,
3338             'AND' => 160,
3339             'CAT' => 163,
3340             'BINOP' => 161,
3341             'OR' => 162
3342             }
3343             },
3344             {#State 237
3345             ACTIONS => {
3346             'MOD' => 165
3347             },
3348             DEFAULT => -136
3349             },
3350             {#State 238
3351             ACTIONS => {
3352             'DIV' => 159,
3353             'BINOP' => 161,
3354             "+" => 157,
3355             'CAT' => 163,
3356             'CMPOP' => 164,
3357             'MOD' => 165,
3358             "/" => 166
3359             },
3360             DEFAULT => -140
3361             },
3362             {#State 239
3363             ACTIONS => {
3364             'DIV' => 159,
3365             "+" => 157,
3366             'MOD' => 165,
3367             "/" => 166
3368             },
3369             DEFAULT => -133
3370             },
3371             {#State 240
3372             ACTIONS => {
3373             'DIV' => 159,
3374             'BINOP' => 161,
3375             "+" => 157,
3376             'CAT' => 163,
3377             'CMPOP' => 164,
3378             'MOD' => 165,
3379             "/" => 166
3380             },
3381             DEFAULT => -141
3382             },
3383             {#State 241
3384             ACTIONS => {
3385             'DIV' => 159,
3386             'BINOP' => 161,
3387             "+" => 157,
3388             'CMPOP' => 164,
3389             'MOD' => 165,
3390             "/" => 166
3391             },
3392             DEFAULT => -139
3393             },
3394             {#State 242
3395             ACTIONS => {
3396             'DIV' => 159,
3397             'BINOP' => 161,
3398             "+" => 157,
3399             'MOD' => 165,
3400             "/" => 166
3401             },
3402             DEFAULT => -138
3403             },
3404             {#State 243
3405             DEFAULT => -137
3406             },
3407             {#State 244
3408             ACTIONS => {
3409             'DIV' => 159,
3410             'MOD' => 165
3411             },
3412             DEFAULT => -134
3413             },
3414             {#State 245
3415             DEFAULT => -59,
3416             GOTOS => {
3417             '@2-3' => 287
3418             }
3419             },
3420             {#State 246
3421             ACTIONS => {
3422             "+" => 157,
3423             'CAT' => 163,
3424             'CMPOP' => 164,
3425             "?" => 158,
3426             'DIV' => 159,
3427             'MOD' => 165,
3428             "/" => 166,
3429             'AND' => 160,
3430             'BINOP' => 161,
3431             'OR' => 162
3432             },
3433             DEFAULT => -150
3434             },
3435             {#State 247
3436             ACTIONS => {
3437             'ELSIF' => 290,
3438             'ELSE' => 288
3439             },
3440             DEFAULT => -50,
3441             GOTOS => {
3442             'else' => 289
3443             }
3444             },
3445             {#State 248
3446             DEFAULT => -170
3447             },
3448             {#State 249
3449             ACTIONS => {
3450             'NOT' => 38,
3451             'LITERAL' => 256,
3452             'IDENT' => 2,
3453             "\"" => 60,
3454             "\$" => 43,
3455             "[" => 9,
3456             'NUMBER' => 26,
3457             'REF' => 27,
3458             "{" => 30,
3459             'COMMA' => 258,
3460             "(" => 53,
3461             "\${" => 37
3462             },
3463             DEFAULT => -162,
3464             GOTOS => {
3465             'expr' => 257,
3466             'sterm' => 68,
3467             'item' => 254,
3468             'param' => 255,
3469             'node' => 23,
3470             'ident' => 253,
3471             'term' => 58,
3472             'lterm' => 56
3473             }
3474             },
3475             {#State 250
3476             DEFAULT => -167
3477             },
3478             {#State 251
3479             DEFAULT => -165
3480             },
3481             {#State 252
3482             ACTIONS => {
3483             'NOT' => 38,
3484             "{" => 30,
3485             'COMMA' => 258,
3486             'LITERAL' => 256,
3487             'IDENT' => 2,
3488             "\"" => 60,
3489             "(" => 53,
3490             "\$" => 43,
3491             "[" => 9,
3492             'NUMBER' => 26,
3493             'REF' => 27,
3494             ")" => 291,
3495             "\${" => 37
3496             },
3497             GOTOS => {
3498             'expr' => 257,
3499             'sterm' => 68,
3500             'item' => 254,
3501             'param' => 255,
3502             'node' => 23,
3503             'ident' => 253,
3504             'term' => 58,
3505             'lterm' => 56
3506             }
3507             },
3508             {#State 253
3509             ACTIONS => {
3510             'DOT' => 104,
3511             'ASSIGN' => 292
3512             },
3513             DEFAULT => -109
3514             },
3515             {#State 254
3516             ACTIONS => {
3517             "(" => 135,
3518             'ASSIGN' => 210
3519             },
3520             DEFAULT => -128
3521             },
3522             {#State 255
3523             DEFAULT => -153
3524             },
3525             {#State 256
3526             ACTIONS => {
3527             'ASSIGN' => 213
3528             },
3529             DEFAULT => -112
3530             },
3531             {#State 257
3532             ACTIONS => {
3533             "+" => 157,
3534             'CAT' => 163,
3535             'CMPOP' => 164,
3536             "?" => 158,
3537             'DIV' => 159,
3538             'MOD' => 165,
3539             "/" => 166,
3540             'AND' => 160,
3541             'BINOP' => 161,
3542             'OR' => 162
3543             },
3544             DEFAULT => -152
3545             },
3546             {#State 258
3547             DEFAULT => -155
3548             },
3549             {#State 259
3550             DEFAULT => -117
3551             },
3552             {#State 260
3553             ACTIONS => {
3554             ";" => 293
3555             }
3556             },
3557             {#State 261
3558             ACTIONS => {
3559             'END' => 294
3560             }
3561             },
3562             {#State 262
3563             ACTIONS => {
3564             ";" => 296,
3565             'DEFAULT' => 297,
3566             'FILENAME' => 83,
3567             'IDENT' => 81,
3568             'NUMBER' => 84
3569             },
3570             GOTOS => {
3571             'filepart' => 87,
3572             'filename' => 295
3573             }
3574             },
3575             {#State 263
3576             ACTIONS => {
3577             'END' => 298
3578             }
3579             },
3580             {#State 264
3581             DEFAULT => -102
3582             },
3583             {#State 265
3584             DEFAULT => -100
3585             },
3586             {#State 266
3587             ACTIONS => {
3588             'TEXT' => 299
3589             }
3590             },
3591             {#State 267
3592             ACTIONS => {
3593             'END' => 300
3594             }
3595             },
3596             {#State 268
3597             ACTIONS => {
3598             'SET' => 1,
3599             'PERL' => 40,
3600             'NOT' => 38,
3601             'IDENT' => 2,
3602             'CLEAR' => 41,
3603             'UNLESS' => 3,
3604             'IF' => 44,
3605             "\$" => 43,
3606             'STOP' => 6,
3607             'CALL' => 45,
3608             'THROW' => 8,
3609             'GET' => 47,
3610             "[" => 9,
3611             'TRY' => 10,
3612             'LAST' => 49,
3613             'DEBUG' => 51,
3614             'RAWPERL' => 13,
3615             'META' => 15,
3616             'INCLUDE' => 17,
3617             "(" => 53,
3618             'SWITCH' => 54,
3619             'MACRO' => 18,
3620             'WRAPPER' => 55,
3621             ";" => -18,
3622             'FOR' => 21,
3623             'LITERAL' => 57,
3624             'NEXT' => 22,
3625             "\"" => 60,
3626             'TEXT' => 24,
3627             'PROCESS' => 61,
3628             'RETURN' => 64,
3629             'FILTER' => 25,
3630             'INSERT' => 65,
3631             'NUMBER' => 26,
3632             'REF' => 27,
3633             'WHILE' => 67,
3634             'BLOCK' => 28,
3635             'DEFAULT' => 69,
3636             "{" => 30,
3637             'USE' => 32,
3638             'VIEW' => 36,
3639             "\${" => 37
3640             },
3641             DEFAULT => -3,
3642             GOTOS => {
3643             'item' => 39,
3644             'node' => 23,
3645             'rawperl' => 59,
3646             'term' => 58,
3647             'loop' => 4,
3648             'use' => 63,
3649             'expr' => 62,
3650             'capture' => 42,
3651             'statement' => 5,
3652             'view' => 7,
3653             'wrapper' => 46,
3654             'atomexpr' => 48,
3655             'chunk' => 11,
3656             'defblock' => 66,
3657             'atomdir' => 12,
3658             'anonblock' => 50,
3659             'sterm' => 68,
3660             'defblockname' => 14,
3661             'filter' => 29,
3662             'ident' => 16,
3663             'perl' => 31,
3664             'setlist' => 70,
3665             'chunks' => 33,
3666             'try' => 35,
3667             'switch' => 34,
3668             'assign' => 19,
3669             'block' => 301,
3670             'directive' => 71,
3671             'macro' => 20,
3672             'condition' => 73,
3673             'lterm' => 56
3674             }
3675             },
3676             {#State 269
3677             ACTIONS => {
3678             'IDENT' => -96,
3679             ")" => -96,
3680             'COMMA' => -96
3681             },
3682             DEFAULT => -130
3683             },
3684             {#State 270
3685             ACTIONS => {
3686             'COMMA' => 304,
3687             'IDENT' => 302,
3688             ")" => 303
3689             }
3690             },
3691             {#State 271
3692             DEFAULT => -156,
3693             GOTOS => {
3694             'args' => 305
3695             }
3696             },
3697             {#State 272
3698             DEFAULT => -156,
3699             GOTOS => {
3700             'args' => 306
3701             }
3702             },
3703             {#State 273
3704             ACTIONS => {
3705             'SET' => 1,
3706             'PERL' => 40,
3707             'NOT' => 38,
3708             'IDENT' => 2,
3709             'CLEAR' => 41,
3710             'UNLESS' => 3,
3711             'IF' => 44,
3712             "\$" => 43,
3713             'STOP' => 6,
3714             'CALL' => 45,
3715             'THROW' => 8,
3716             'GET' => 47,
3717             "[" => 9,
3718             'TRY' => 10,
3719             'LAST' => 49,
3720             'DEBUG' => 51,
3721             'RAWPERL' => 13,
3722             'META' => 15,
3723             'INCLUDE' => 17,
3724             "(" => 53,
3725             'SWITCH' => 54,
3726             'MACRO' => 18,
3727             'WRAPPER' => 55,
3728             ";" => -18,
3729             'FOR' => 21,
3730             'LITERAL' => 57,
3731             'NEXT' => 22,
3732             "\"" => 60,
3733             'TEXT' => 24,
3734             'PROCESS' => 61,
3735             'RETURN' => 64,
3736             'FILTER' => 25,
3737             'INSERT' => 65,
3738             'NUMBER' => 26,
3739             'REF' => 27,
3740             'WHILE' => 67,
3741             'BLOCK' => 28,
3742             'DEFAULT' => 69,
3743             "{" => 30,
3744             'USE' => 32,
3745             'VIEW' => 36,
3746             "\${" => 37
3747             },
3748             DEFAULT => -3,
3749             GOTOS => {
3750             'item' => 39,
3751             'node' => 23,
3752             'rawperl' => 59,
3753             'term' => 58,
3754             'loop' => 4,
3755             'use' => 63,
3756             'expr' => 62,
3757             'capture' => 42,
3758             'statement' => 5,
3759             'view' => 7,
3760             'wrapper' => 46,
3761             'atomexpr' => 48,
3762             'chunk' => 11,
3763             'defblock' => 66,
3764             'atomdir' => 12,
3765             'anonblock' => 50,
3766             'sterm' => 68,
3767             'defblockname' => 14,
3768             'filter' => 29,
3769             'ident' => 16,
3770             'perl' => 31,
3771             'setlist' => 70,
3772             'chunks' => 33,
3773             'try' => 35,
3774             'switch' => 34,
3775             'assign' => 19,
3776             'block' => 307,
3777             'directive' => 71,
3778             'macro' => 20,
3779             'condition' => 73,
3780             'lterm' => 56
3781             }
3782             },
3783             {#State 274
3784             DEFAULT => -157
3785             },
3786             {#State 275
3787             ACTIONS => {
3788             'END' => 308
3789             }
3790             },
3791             {#State 276
3792             ACTIONS => {
3793             'ASSIGN' => -160
3794             },
3795             DEFAULT => -167
3796             },
3797             {#State 277
3798             ACTIONS => {
3799             'END' => 309
3800             }
3801             },
3802             {#State 278
3803             ACTIONS => {
3804             'DIV' => 159,
3805             'AND' => 160,
3806             'BINOP' => 161,
3807             'OR' => 162,
3808             "+" => 157,
3809             'CAT' => 163,
3810             'CMPOP' => 164,
3811             "?" => 158,
3812             'MOD' => 165,
3813             "/" => 166
3814             },
3815             DEFAULT => -124
3816             },
3817             {#State 279
3818             ACTIONS => {
3819             'DIV' => 159,
3820             'AND' => 160,
3821             'BINOP' => 161,
3822             'OR' => 162,
3823             "+" => 157,
3824             'CAT' => 163,
3825             'CMPOP' => 164,
3826             "?" => 158,
3827             'MOD' => 165,
3828             "/" => 166
3829             },
3830             DEFAULT => -123
3831             },
3832             {#State 280
3833             ACTIONS => {
3834             'SET' => 1,
3835             'PERL' => 40,
3836             'NOT' => 38,
3837             'IDENT' => 2,
3838             'CLEAR' => 41,
3839             'UNLESS' => 3,
3840             'IF' => 44,
3841             "\$" => 43,
3842             'STOP' => 6,
3843             'CALL' => 45,
3844             'THROW' => 8,
3845             'GET' => 47,
3846             "[" => 9,
3847             'TRY' => 10,
3848             'LAST' => 49,
3849             'DEBUG' => 51,
3850             'RAWPERL' => 13,
3851             'META' => 15,
3852             'INCLUDE' => 17,
3853             "(" => 53,
3854             'SWITCH' => 54,
3855             'MACRO' => 18,
3856             'WRAPPER' => 55,
3857             ";" => -18,
3858             'FOR' => 21,
3859             'LITERAL' => 57,
3860             'NEXT' => 22,
3861             "\"" => 60,
3862             'TEXT' => 24,
3863             'PROCESS' => 61,
3864             'RETURN' => 64,
3865             'FILTER' => 25,
3866             'INSERT' => 65,
3867             'NUMBER' => 26,
3868             'REF' => 27,
3869             'WHILE' => 67,
3870             'BLOCK' => 28,
3871             'DEFAULT' => 69,
3872             "{" => 30,
3873             'USE' => 32,
3874             'VIEW' => 36,
3875             "\${" => 37
3876             },
3877             DEFAULT => -3,
3878             GOTOS => {
3879             'item' => 39,
3880             'node' => 23,
3881             'rawperl' => 59,
3882             'term' => 58,
3883             'loop' => 4,
3884             'use' => 63,
3885             'expr' => 62,
3886             'capture' => 42,
3887             'statement' => 5,
3888             'view' => 7,
3889             'wrapper' => 46,
3890             'atomexpr' => 48,
3891             'chunk' => 11,
3892             'defblock' => 66,
3893             'atomdir' => 12,
3894             'anonblock' => 50,
3895             'sterm' => 68,
3896             'defblockname' => 14,
3897             'filter' => 29,
3898             'ident' => 16,
3899             'perl' => 31,
3900             'setlist' => 70,
3901             'chunks' => 33,
3902             'try' => 35,
3903             'switch' => 34,
3904             'assign' => 19,
3905             'block' => 310,
3906             'directive' => 71,
3907             'macro' => 20,
3908             'condition' => 73,
3909             'lterm' => 56
3910             }
3911             },
3912             {#State 281
3913             DEFAULT => -129
3914             },
3915             {#State 282
3916             ACTIONS => {
3917             'END' => 311
3918             }
3919             },
3920             {#State 283
3921             ACTIONS => {
3922             'ELSIF' => 290,
3923             'ELSE' => 288
3924             },
3925             DEFAULT => -50,
3926             GOTOS => {
3927             'else' => 312
3928             }
3929             },
3930             {#State 284
3931             ACTIONS => {
3932             'CASE' => 313
3933             },
3934             DEFAULT => -55,
3935             GOTOS => {
3936             'case' => 314
3937             }
3938             },
3939             {#State 285
3940             ACTIONS => {
3941             'END' => 315
3942             }
3943             },
3944             {#State 286
3945             ACTIONS => {
3946             'NOT' => 38,
3947             "{" => 30,
3948             'LITERAL' => 78,
3949             'IDENT' => 2,
3950             "\"" => 60,
3951             "(" => 53,
3952             "\$" => 43,
3953             "[" => 9,
3954             'NUMBER' => 26,
3955             'REF' => 27,
3956             "\${" => 37
3957             },
3958             GOTOS => {
3959             'expr' => 316,
3960             'sterm' => 68,
3961             'item' => 39,
3962             'node' => 23,
3963             'ident' => 77,
3964             'term' => 58,
3965             'lterm' => 56
3966             }
3967             },
3968             {#State 287
3969             ACTIONS => {
3970             'SET' => 1,
3971             'PERL' => 40,
3972             'NOT' => 38,
3973             'IDENT' => 2,
3974             'CLEAR' => 41,
3975             'UNLESS' => 3,
3976             'IF' => 44,
3977             "\$" => 43,
3978             'STOP' => 6,
3979             'CALL' => 45,
3980             'THROW' => 8,
3981             'GET' => 47,
3982             "[" => 9,
3983             'TRY' => 10,
3984             'LAST' => 49,
3985             'DEBUG' => 51,
3986             'RAWPERL' => 13,
3987             'META' => 15,
3988             'INCLUDE' => 17,
3989             "(" => 53,
3990             'SWITCH' => 54,
3991             'MACRO' => 18,
3992             'WRAPPER' => 55,
3993             ";" => -18,
3994             'FOR' => 21,
3995             'LITERAL' => 57,
3996             'NEXT' => 22,
3997             "\"" => 60,
3998             'TEXT' => 24,
3999             'PROCESS' => 61,
4000             'RETURN' => 64,
4001             'FILTER' => 25,
4002             'INSERT' => 65,
4003             'NUMBER' => 26,
4004             'REF' => 27,
4005             'WHILE' => 67,
4006             'BLOCK' => 28,
4007             'DEFAULT' => 69,
4008             "{" => 30,
4009             'USE' => 32,
4010             'VIEW' => 36,
4011             "\${" => 37
4012             },
4013             DEFAULT => -3,
4014             GOTOS => {
4015             'item' => 39,
4016             'node' => 23,
4017             'rawperl' => 59,
4018             'term' => 58,
4019             'loop' => 4,
4020             'use' => 63,
4021             'expr' => 62,
4022             'capture' => 42,
4023             'statement' => 5,
4024             'view' => 7,
4025             'wrapper' => 46,
4026             'atomexpr' => 48,
4027             'chunk' => 11,
4028             'defblock' => 66,
4029             'atomdir' => 12,
4030             'anonblock' => 50,
4031             'sterm' => 68,
4032             'defblockname' => 14,
4033             'filter' => 29,
4034             'ident' => 16,
4035             'perl' => 31,
4036             'setlist' => 70,
4037             'chunks' => 33,
4038             'try' => 35,
4039             'switch' => 34,
4040             'assign' => 19,
4041             'block' => 317,
4042             'directive' => 71,
4043             'macro' => 20,
4044             'condition' => 73,
4045             'lterm' => 56
4046             }
4047             },
4048             {#State 288
4049             ACTIONS => {
4050             ";" => 318
4051             }
4052             },
4053             {#State 289
4054             ACTIONS => {
4055             'END' => 319
4056             }
4057             },
4058             {#State 290
4059             ACTIONS => {
4060             'NOT' => 38,
4061             "{" => 30,
4062             'LITERAL' => 78,
4063             'IDENT' => 2,
4064             "\"" => 60,
4065             "(" => 53,
4066             "\$" => 43,
4067             "[" => 9,
4068             'NUMBER' => 26,
4069             'REF' => 27,
4070             "\${" => 37
4071             },
4072             GOTOS => {
4073             'expr' => 320,
4074             'sterm' => 68,
4075             'item' => 39,
4076             'node' => 23,
4077             'ident' => 77,
4078             'term' => 58,
4079             'lterm' => 56
4080             }
4081             },
4082             {#State 291
4083             DEFAULT => -164
4084             },
4085             {#State 292
4086             ACTIONS => {
4087             'NOT' => 38,
4088             "{" => 30,
4089             'LITERAL' => 78,
4090             'IDENT' => 2,
4091             "\"" => 60,
4092             "(" => 53,
4093             "\$" => 43,
4094             "[" => 9,
4095             'NUMBER' => 26,
4096             'REF' => 27,
4097             "\${" => 37
4098             },
4099             GOTOS => {
4100             'expr' => 321,
4101             'sterm' => 68,
4102             'item' => 39,
4103             'node' => 23,
4104             'ident' => 77,
4105             'term' => 58,
4106             'lterm' => 56
4107             }
4108             },
4109             {#State 293
4110             ACTIONS => {
4111             'SET' => 1,
4112             'PERL' => 40,
4113             'NOT' => 38,
4114             'IDENT' => 2,
4115             'CLEAR' => 41,
4116             'UNLESS' => 3,
4117             'IF' => 44,
4118             "\$" => 43,
4119             'STOP' => 6,
4120             'CALL' => 45,
4121             'THROW' => 8,
4122             'GET' => 47,
4123             "[" => 9,
4124             'TRY' => 10,
4125             'LAST' => 49,
4126             'DEBUG' => 51,
4127             'RAWPERL' => 13,
4128             'META' => 15,
4129             'INCLUDE' => 17,
4130             "(" => 53,
4131             'SWITCH' => 54,
4132             'MACRO' => 18,
4133             'WRAPPER' => 55,
4134             ";" => -18,
4135             'FOR' => 21,
4136             'LITERAL' => 57,
4137             'NEXT' => 22,
4138             "\"" => 60,
4139             'TEXT' => 24,
4140             'PROCESS' => 61,
4141             'RETURN' => 64,
4142             'FILTER' => 25,
4143             'INSERT' => 65,
4144             'NUMBER' => 26,
4145             'REF' => 27,
4146             'WHILE' => 67,
4147             'BLOCK' => 28,
4148             'DEFAULT' => 69,
4149             "{" => 30,
4150             'USE' => 32,
4151             'VIEW' => 36,
4152             "\${" => 37
4153             },
4154             DEFAULT => -3,
4155             GOTOS => {
4156             'item' => 39,
4157             'node' => 23,
4158             'rawperl' => 59,
4159             'term' => 58,
4160             'loop' => 4,
4161             'use' => 63,
4162             'expr' => 62,
4163             'capture' => 42,
4164             'statement' => 5,
4165             'view' => 7,
4166             'wrapper' => 46,
4167             'atomexpr' => 48,
4168             'chunk' => 11,
4169             'defblock' => 66,
4170             'atomdir' => 12,
4171             'anonblock' => 50,
4172             'sterm' => 68,
4173             'defblockname' => 14,
4174             'filter' => 29,
4175             'ident' => 16,
4176             'perl' => 31,
4177             'setlist' => 70,
4178             'chunks' => 33,
4179             'try' => 35,
4180             'switch' => 34,
4181             'assign' => 19,
4182             'block' => 322,
4183             'directive' => 71,
4184             'macro' => 20,
4185             'condition' => 73,
4186             'lterm' => 56
4187             }
4188             },
4189             {#State 294
4190             DEFAULT => -67
4191             },
4192             {#State 295
4193             ACTIONS => {
4194             'DOT' => 174,
4195             ";" => 323
4196             }
4197             },
4198             {#State 296
4199             ACTIONS => {
4200             'SET' => 1,
4201             'PERL' => 40,
4202             'NOT' => 38,
4203             'IDENT' => 2,
4204             'CLEAR' => 41,
4205             'UNLESS' => 3,
4206             'IF' => 44,
4207             "\$" => 43,
4208             'STOP' => 6,
4209             'CALL' => 45,
4210             'THROW' => 8,
4211             'GET' => 47,
4212             "[" => 9,
4213             'TRY' => 10,
4214             'LAST' => 49,
4215             'DEBUG' => 51,
4216             'RAWPERL' => 13,
4217             'META' => 15,
4218             'INCLUDE' => 17,
4219             "(" => 53,
4220             'SWITCH' => 54,
4221             'MACRO' => 18,
4222             'WRAPPER' => 55,
4223             ";" => -18,
4224             'FOR' => 21,
4225             'LITERAL' => 57,
4226             'NEXT' => 22,
4227             "\"" => 60,
4228             'TEXT' => 24,
4229             'PROCESS' => 61,
4230             'RETURN' => 64,
4231             'FILTER' => 25,
4232             'INSERT' => 65,
4233             'NUMBER' => 26,
4234             'REF' => 27,
4235             'WHILE' => 67,
4236             'BLOCK' => 28,
4237             'DEFAULT' => 69,
4238             "{" => 30,
4239             'USE' => 32,
4240             'VIEW' => 36,
4241             "\${" => 37
4242             },
4243             DEFAULT => -3,
4244             GOTOS => {
4245             'item' => 39,
4246             'node' => 23,
4247             'rawperl' => 59,
4248             'term' => 58,
4249             'loop' => 4,
4250             'use' => 63,
4251             'expr' => 62,
4252             'capture' => 42,
4253             'statement' => 5,
4254             'view' => 7,
4255             'wrapper' => 46,
4256             'atomexpr' => 48,
4257             'chunk' => 11,
4258             'defblock' => 66,
4259             'atomdir' => 12,
4260             'anonblock' => 50,
4261             'sterm' => 68,
4262             'defblockname' => 14,
4263             'filter' => 29,
4264             'ident' => 16,
4265             'perl' => 31,
4266             'setlist' => 70,
4267             'chunks' => 33,
4268             'try' => 35,
4269             'switch' => 34,
4270             'assign' => 19,
4271             'block' => 324,
4272             'directive' => 71,
4273             'macro' => 20,
4274             'condition' => 73,
4275             'lterm' => 56
4276             }
4277             },
4278             {#State 297
4279             ACTIONS => {
4280             ";" => 325
4281             }
4282             },
4283             {#State 298
4284             DEFAULT => -79
4285             },
4286             {#State 299
4287             ACTIONS => {
4288             "\"" => 326
4289             }
4290             },
4291             {#State 300
4292             DEFAULT => -82
4293             },
4294             {#State 301
4295             ACTIONS => {
4296             'END' => 327
4297             }
4298             },
4299             {#State 302
4300             DEFAULT => -94
4301             },
4302             {#State 303
4303             ACTIONS => {
4304             'SET' => 1,
4305             'PERL' => 40,
4306             'NOT' => 38,
4307             'IDENT' => 2,
4308             'CLEAR' => 41,
4309             'UNLESS' => 3,
4310             'IF' => 44,
4311             "\$" => 43,
4312             'STOP' => 6,
4313             'CALL' => 45,
4314             'THROW' => 8,
4315             'GET' => 47,
4316             "[" => 9,
4317             'TRY' => 10,
4318             'LAST' => 49,
4319             'DEBUG' => 51,
4320             'INCLUDE' => 17,
4321             "(" => 53,
4322             'SWITCH' => 54,
4323             'WRAPPER' => 55,
4324             'FOR' => 21,
4325             'NEXT' => 22,
4326             'LITERAL' => 57,
4327             "\"" => 60,
4328             'PROCESS' => 61,
4329             'FILTER' => 25,
4330             'RETURN' => 64,
4331             'INSERT' => 65,
4332             'NUMBER' => 26,
4333             'REF' => 27,
4334             'WHILE' => 67,
4335             'BLOCK' => 193,
4336             'DEFAULT' => 69,
4337             "{" => 30,
4338             "\${" => 37
4339             },
4340             GOTOS => {
4341             'item' => 39,
4342             'node' => 23,
4343             'term' => 58,
4344             'loop' => 4,
4345             'expr' => 199,
4346             'wrapper' => 46,
4347             'atomexpr' => 48,
4348             'atomdir' => 12,
4349             'mdir' => 328,
4350             'filter' => 29,
4351             'sterm' => 68,
4352             'ident' => 149,
4353             'perl' => 31,
4354             'setlist' => 70,
4355             'try' => 35,
4356             'switch' => 34,
4357             'assign' => 19,
4358             'directive' => 196,
4359             'condition' => 73,
4360             'lterm' => 56
4361             }
4362             },
4363             {#State 304
4364             DEFAULT => -95
4365             },
4366             {#State 305
4367             ACTIONS => {
4368             'NOT' => 38,
4369             "{" => 30,
4370             'COMMA' => 258,
4371             'LITERAL' => 256,
4372             'IDENT' => 2,
4373             "\"" => 60,
4374             "(" => 53,
4375             "\$" => 43,
4376             "[" => 9,
4377             'NUMBER' => 26,
4378             'REF' => 27,
4379             "\${" => 37
4380             },
4381             DEFAULT => -62,
4382             GOTOS => {
4383             'expr' => 257,
4384             'sterm' => 68,
4385             'item' => 254,
4386             'param' => 255,
4387             'node' => 23,
4388             'ident' => 253,
4389             'term' => 58,
4390             'lterm' => 56
4391             }
4392             },
4393             {#State 306
4394             ACTIONS => {
4395             'NOT' => 38,
4396             "{" => 30,
4397             'COMMA' => 258,
4398             'LITERAL' => 256,
4399             'IDENT' => 2,
4400             "\"" => 60,
4401             "(" => 53,
4402             "\$" => 43,
4403             "[" => 9,
4404             'NUMBER' => 26,
4405             'REF' => 27,
4406             "\${" => 37
4407             },
4408             DEFAULT => -63,
4409             GOTOS => {
4410             'expr' => 257,
4411             'sterm' => 68,
4412             'item' => 254,
4413             'param' => 255,
4414             'node' => 23,
4415             'ident' => 253,
4416             'term' => 58,
4417             'lterm' => 56
4418             }
4419             },
4420             {#State 307
4421             ACTIONS => {
4422             'END' => 329
4423             }
4424             },
4425             {#State 308
4426             DEFAULT => -80
4427             },
4428             {#State 309
4429             DEFAULT => -88
4430             },
4431             {#State 310
4432             ACTIONS => {
4433             'END' => 330
4434             }
4435             },
4436             {#State 311
4437             DEFAULT => -77
4438             },
4439             {#State 312
4440             ACTIONS => {
4441             'END' => 331
4442             }
4443             },
4444             {#State 313
4445             ACTIONS => {
4446             ";" => 332,
4447             'DEFAULT' => 334,
4448             "{" => 30,
4449             'LITERAL' => 78,
4450             'IDENT' => 2,
4451             "\"" => 60,
4452             "\$" => 43,
4453             "[" => 9,
4454             'NUMBER' => 26,
4455             'REF' => 27,
4456             "\${" => 37
4457             },
4458             GOTOS => {
4459             'sterm' => 68,
4460             'item' => 39,
4461             'node' => 23,
4462             'ident' => 77,
4463             'term' => 333,
4464             'lterm' => 56
4465             }
4466             },
4467             {#State 314
4468             ACTIONS => {
4469             'END' => 335
4470             }
4471             },
4472             {#State 315
4473             DEFAULT => -65
4474             },
4475             {#State 316
4476             ACTIONS => {
4477             'DIV' => 159,
4478             'AND' => 160,
4479             'BINOP' => 161,
4480             'OR' => 162,
4481             "+" => 157,
4482             'CAT' => 163,
4483             'CMPOP' => 164,
4484             "?" => 158,
4485             'MOD' => 165,
4486             "/" => 166
4487             },
4488             DEFAULT => -143
4489             },
4490             {#State 317
4491             ACTIONS => {
4492             'END' => 336
4493             }
4494             },
4495             {#State 318
4496             ACTIONS => {
4497             'SET' => 1,
4498             'PERL' => 40,
4499             'NOT' => 38,
4500             'IDENT' => 2,
4501             'CLEAR' => 41,
4502             'UNLESS' => 3,
4503             'IF' => 44,
4504             "\$" => 43,
4505             'STOP' => 6,
4506             'CALL' => 45,
4507             'THROW' => 8,
4508             'GET' => 47,
4509             "[" => 9,
4510             'TRY' => 10,
4511             'LAST' => 49,
4512             'DEBUG' => 51,
4513             'RAWPERL' => 13,
4514             'META' => 15,
4515             'INCLUDE' => 17,
4516             "(" => 53,
4517             'SWITCH' => 54,
4518             'MACRO' => 18,
4519             'WRAPPER' => 55,
4520             ";" => -18,
4521             'FOR' => 21,
4522             'LITERAL' => 57,
4523             'NEXT' => 22,
4524             "\"" => 60,
4525             'TEXT' => 24,
4526             'PROCESS' => 61,
4527             'RETURN' => 64,
4528             'FILTER' => 25,
4529             'INSERT' => 65,
4530             'NUMBER' => 26,
4531             'REF' => 27,
4532             'WHILE' => 67,
4533             'BLOCK' => 28,
4534             'DEFAULT' => 69,
4535             "{" => 30,
4536             'USE' => 32,
4537             'VIEW' => 36,
4538             "\${" => 37
4539             },
4540             DEFAULT => -3,
4541             GOTOS => {
4542             'item' => 39,
4543             'node' => 23,
4544             'rawperl' => 59,
4545             'term' => 58,
4546             'loop' => 4,
4547             'use' => 63,
4548             'expr' => 62,
4549             'capture' => 42,
4550             'statement' => 5,
4551             'view' => 7,
4552             'wrapper' => 46,
4553             'atomexpr' => 48,
4554             'chunk' => 11,
4555             'defblock' => 66,
4556             'atomdir' => 12,
4557             'anonblock' => 50,
4558             'sterm' => 68,
4559             'defblockname' => 14,
4560             'filter' => 29,
4561             'ident' => 16,
4562             'perl' => 31,
4563             'setlist' => 70,
4564             'chunks' => 33,
4565             'try' => 35,
4566             'switch' => 34,
4567             'assign' => 19,
4568             'block' => 337,
4569             'directive' => 71,
4570             'macro' => 20,
4571             'condition' => 73,
4572             'lterm' => 56
4573             }
4574             },
4575             {#State 319
4576             DEFAULT => -46
4577             },
4578             {#State 320
4579             ACTIONS => {
4580             'CMPOP' => 164,
4581             "?" => 158,
4582             ";" => 338,
4583             "+" => 157,
4584             'MOD' => 165,
4585             'DIV' => 159,
4586             "/" => 166,
4587             'AND' => 160,
4588             'CAT' => 163,
4589             'BINOP' => 161,
4590             'OR' => 162
4591             }
4592             },
4593             {#State 321
4594             ACTIONS => {
4595             "+" => 157,
4596             'CAT' => 163,
4597             'CMPOP' => 164,
4598             "?" => 158,
4599             'DIV' => 159,
4600             'MOD' => 165,
4601             "/" => 166,
4602             'AND' => 160,
4603             'BINOP' => 161,
4604             'OR' => 162
4605             },
4606             DEFAULT => -154
4607             },
4608             {#State 322
4609             DEFAULT => -71
4610             },
4611             {#State 323
4612             ACTIONS => {
4613             'SET' => 1,
4614             'PERL' => 40,
4615             'NOT' => 38,
4616             'IDENT' => 2,
4617             'CLEAR' => 41,
4618             'UNLESS' => 3,
4619             'IF' => 44,
4620             "\$" => 43,
4621             'STOP' => 6,
4622             'CALL' => 45,
4623             'THROW' => 8,
4624             'GET' => 47,
4625             "[" => 9,
4626             'TRY' => 10,
4627             'LAST' => 49,
4628             'DEBUG' => 51,
4629             'RAWPERL' => 13,
4630             'META' => 15,
4631             'INCLUDE' => 17,
4632             "(" => 53,
4633             'SWITCH' => 54,
4634             'MACRO' => 18,
4635             'WRAPPER' => 55,
4636             ";" => -18,
4637             'FOR' => 21,
4638             'LITERAL' => 57,
4639             'NEXT' => 22,
4640             "\"" => 60,
4641             'TEXT' => 24,
4642             'PROCESS' => 61,
4643             'RETURN' => 64,
4644             'FILTER' => 25,
4645             'INSERT' => 65,
4646             'NUMBER' => 26,
4647             'REF' => 27,
4648             'WHILE' => 67,
4649             'BLOCK' => 28,
4650             'DEFAULT' => 69,
4651             "{" => 30,
4652             'USE' => 32,
4653             'VIEW' => 36,
4654             "\${" => 37
4655             },
4656             DEFAULT => -3,
4657             GOTOS => {
4658             'item' => 39,
4659             'node' => 23,
4660             'rawperl' => 59,
4661             'term' => 58,
4662             'loop' => 4,
4663             'use' => 63,
4664             'expr' => 62,
4665             'capture' => 42,
4666             'statement' => 5,
4667             'view' => 7,
4668             'wrapper' => 46,
4669             'atomexpr' => 48,
4670             'chunk' => 11,
4671             'defblock' => 66,
4672             'atomdir' => 12,
4673             'anonblock' => 50,
4674             'sterm' => 68,
4675             'defblockname' => 14,
4676             'filter' => 29,
4677             'ident' => 16,
4678             'perl' => 31,
4679             'setlist' => 70,
4680             'chunks' => 33,
4681             'try' => 35,
4682             'switch' => 34,
4683             'assign' => 19,
4684             'block' => 339,
4685             'directive' => 71,
4686             'macro' => 20,
4687             'condition' => 73,
4688             'lterm' => 56
4689             }
4690             },
4691             {#State 324
4692             ACTIONS => {
4693             'FINAL' => 260,
4694             'CATCH' => 262
4695             },
4696             DEFAULT => -72,
4697             GOTOS => {
4698             'final' => 340
4699             }
4700             },
4701             {#State 325
4702             ACTIONS => {
4703             'SET' => 1,
4704             'PERL' => 40,
4705             'NOT' => 38,
4706             'IDENT' => 2,
4707             'CLEAR' => 41,
4708             'UNLESS' => 3,
4709             'IF' => 44,
4710             "\$" => 43,
4711             'STOP' => 6,
4712             'CALL' => 45,
4713             'THROW' => 8,
4714             'GET' => 47,
4715             "[" => 9,
4716             'TRY' => 10,
4717             'LAST' => 49,
4718             'DEBUG' => 51,
4719             'RAWPERL' => 13,
4720             'META' => 15,
4721             'INCLUDE' => 17,
4722             "(" => 53,
4723             'SWITCH' => 54,
4724             'MACRO' => 18,
4725             'WRAPPER' => 55,
4726             ";" => -18,
4727             'FOR' => 21,
4728             'LITERAL' => 57,
4729             'NEXT' => 22,
4730             "\"" => 60,
4731             'TEXT' => 24,
4732             'PROCESS' => 61,
4733             'RETURN' => 64,
4734             'FILTER' => 25,
4735             'INSERT' => 65,
4736             'NUMBER' => 26,
4737             'REF' => 27,
4738             'WHILE' => 67,
4739             'BLOCK' => 28,
4740             'DEFAULT' => 69,
4741             "{" => 30,
4742             'USE' => 32,
4743             'VIEW' => 36,
4744             "\${" => 37
4745             },
4746             DEFAULT => -3,
4747             GOTOS => {
4748             'item' => 39,
4749             'node' => 23,
4750             'rawperl' => 59,
4751             'term' => 58,
4752             'loop' => 4,
4753             'use' => 63,
4754             'expr' => 62,
4755             'capture' => 42,
4756             'statement' => 5,
4757             'view' => 7,
4758             'wrapper' => 46,
4759             'atomexpr' => 48,
4760             'chunk' => 11,
4761             'defblock' => 66,
4762             'atomdir' => 12,
4763             'anonblock' => 50,
4764             'sterm' => 68,
4765             'defblockname' => 14,
4766             'filter' => 29,
4767             'ident' => 16,
4768             'perl' => 31,
4769             'setlist' => 70,
4770             'chunks' => 33,
4771             'try' => 35,
4772             'switch' => 34,
4773             'assign' => 19,
4774             'block' => 341,
4775             'directive' => 71,
4776             'macro' => 20,
4777             'condition' => 73,
4778             'lterm' => 56
4779             }
4780             },
4781             {#State 326
4782             DEFAULT => -101
4783             },
4784             {#State 327
4785             DEFAULT => -93
4786             },
4787             {#State 328
4788             DEFAULT => -90
4789             },
4790             {#State 329
4791             DEFAULT => -57
4792             },
4793             {#State 330
4794             DEFAULT => -75
4795             },
4796             {#State 331
4797             DEFAULT => -44
4798             },
4799             {#State 332
4800             ACTIONS => {
4801             'SET' => 1,
4802             'PERL' => 40,
4803             'NOT' => 38,
4804             'IDENT' => 2,
4805             'CLEAR' => 41,
4806             'UNLESS' => 3,
4807             'IF' => 44,
4808             "\$" => 43,
4809             'STOP' => 6,
4810             'CALL' => 45,
4811             'THROW' => 8,
4812             'GET' => 47,
4813             "[" => 9,
4814             'TRY' => 10,
4815             'LAST' => 49,
4816             'DEBUG' => 51,
4817             'RAWPERL' => 13,
4818             'META' => 15,
4819             'INCLUDE' => 17,
4820             "(" => 53,
4821             'SWITCH' => 54,
4822             'MACRO' => 18,
4823             'WRAPPER' => 55,
4824             ";" => -18,
4825             'FOR' => 21,
4826             'LITERAL' => 57,
4827             'NEXT' => 22,
4828             "\"" => 60,
4829             'TEXT' => 24,
4830             'PROCESS' => 61,
4831             'RETURN' => 64,
4832             'FILTER' => 25,
4833             'INSERT' => 65,
4834             'NUMBER' => 26,
4835             'REF' => 27,
4836             'WHILE' => 67,
4837             'BLOCK' => 28,
4838             'DEFAULT' => 69,
4839             "{" => 30,
4840             'USE' => 32,
4841             'VIEW' => 36,
4842             "\${" => 37
4843             },
4844             DEFAULT => -3,
4845             GOTOS => {
4846             'item' => 39,
4847             'node' => 23,
4848             'rawperl' => 59,
4849             'term' => 58,
4850             'loop' => 4,
4851             'use' => 63,
4852             'expr' => 62,
4853             'capture' => 42,
4854             'statement' => 5,
4855             'view' => 7,
4856             'wrapper' => 46,
4857             'atomexpr' => 48,
4858             'chunk' => 11,
4859             'defblock' => 66,
4860             'atomdir' => 12,
4861             'anonblock' => 50,
4862             'sterm' => 68,
4863             'defblockname' => 14,
4864             'filter' => 29,
4865             'ident' => 16,
4866             'perl' => 31,
4867             'setlist' => 70,
4868             'chunks' => 33,
4869             'try' => 35,
4870             'switch' => 34,
4871             'assign' => 19,
4872             'block' => 342,
4873             'directive' => 71,
4874             'macro' => 20,
4875             'condition' => 73,
4876             'lterm' => 56
4877             }
4878             },
4879             {#State 333
4880             ACTIONS => {
4881             ";" => 343
4882             }
4883             },
4884             {#State 334
4885             ACTIONS => {
4886             ";" => 344
4887             }
4888             },
4889             {#State 335
4890             DEFAULT => -51
4891             },
4892             {#State 336
4893             DEFAULT => -60
4894             },
4895             {#State 337
4896             DEFAULT => -49
4897             },
4898             {#State 338
4899             ACTIONS => {
4900             'SET' => 1,
4901             'PERL' => 40,
4902             'NOT' => 38,
4903             'IDENT' => 2,
4904             'CLEAR' => 41,
4905             'UNLESS' => 3,
4906             'IF' => 44,
4907             "\$" => 43,
4908             'STOP' => 6,
4909             'CALL' => 45,
4910             'THROW' => 8,
4911             'GET' => 47,
4912             "[" => 9,
4913             'TRY' => 10,
4914             'LAST' => 49,
4915             'DEBUG' => 51,
4916             'RAWPERL' => 13,
4917             'META' => 15,
4918             'INCLUDE' => 17,
4919             "(" => 53,
4920             'SWITCH' => 54,
4921             'MACRO' => 18,
4922             'WRAPPER' => 55,
4923             ";" => -18,
4924             'FOR' => 21,
4925             'LITERAL' => 57,
4926             'NEXT' => 22,
4927             "\"" => 60,
4928             'TEXT' => 24,
4929             'PROCESS' => 61,
4930             'RETURN' => 64,
4931             'FILTER' => 25,
4932             'INSERT' => 65,
4933             'NUMBER' => 26,
4934             'REF' => 27,
4935             'WHILE' => 67,
4936             'BLOCK' => 28,
4937             'DEFAULT' => 69,
4938             "{" => 30,
4939             'USE' => 32,
4940             'VIEW' => 36,
4941             "\${" => 37
4942             },
4943             DEFAULT => -3,
4944             GOTOS => {
4945             'item' => 39,
4946             'node' => 23,
4947             'rawperl' => 59,
4948             'term' => 58,
4949             'loop' => 4,
4950             'use' => 63,
4951             'expr' => 62,
4952             'capture' => 42,
4953             'statement' => 5,
4954             'view' => 7,
4955             'wrapper' => 46,
4956             'atomexpr' => 48,
4957             'chunk' => 11,
4958             'defblock' => 66,
4959             'atomdir' => 12,
4960             'anonblock' => 50,
4961             'sterm' => 68,
4962             'defblockname' => 14,
4963             'filter' => 29,
4964             'ident' => 16,
4965             'perl' => 31,
4966             'setlist' => 70,
4967             'chunks' => 33,
4968             'try' => 35,
4969             'switch' => 34,
4970             'assign' => 19,
4971             'block' => 345,
4972             'directive' => 71,
4973             'macro' => 20,
4974             'condition' => 73,
4975             'lterm' => 56
4976             }
4977             },
4978             {#State 339
4979             ACTIONS => {
4980             'FINAL' => 260,
4981             'CATCH' => 262
4982             },
4983             DEFAULT => -72,
4984             GOTOS => {
4985             'final' => 346
4986             }
4987             },
4988             {#State 340
4989             DEFAULT => -70
4990             },
4991             {#State 341
4992             ACTIONS => {
4993             'FINAL' => 260,
4994             'CATCH' => 262
4995             },
4996             DEFAULT => -72,
4997             GOTOS => {
4998             'final' => 347
4999             }
5000             },
5001             {#State 342
5002             DEFAULT => -54
5003             },
5004             {#State 343
5005             ACTIONS => {
5006             'SET' => 1,
5007             'PERL' => 40,
5008             'NOT' => 38,
5009             'IDENT' => 2,
5010             'CLEAR' => 41,
5011             'UNLESS' => 3,
5012             'IF' => 44,
5013             "\$" => 43,
5014             'STOP' => 6,
5015             'CALL' => 45,
5016             'THROW' => 8,
5017             'GET' => 47,
5018             "[" => 9,
5019             'TRY' => 10,
5020             'LAST' => 49,
5021             'DEBUG' => 51,
5022             'RAWPERL' => 13,
5023             'META' => 15,
5024             'INCLUDE' => 17,
5025             "(" => 53,
5026             'SWITCH' => 54,
5027             'MACRO' => 18,
5028             'WRAPPER' => 55,
5029             ";" => -18,
5030             'FOR' => 21,
5031             'LITERAL' => 57,
5032             'NEXT' => 22,
5033             "\"" => 60,
5034             'TEXT' => 24,
5035             'PROCESS' => 61,
5036             'RETURN' => 64,
5037             'FILTER' => 25,
5038             'INSERT' => 65,
5039             'NUMBER' => 26,
5040             'REF' => 27,
5041             'WHILE' => 67,
5042             'BLOCK' => 28,
5043             'DEFAULT' => 69,
5044             "{" => 30,
5045             'USE' => 32,
5046             'VIEW' => 36,
5047             "\${" => 37
5048             },
5049             DEFAULT => -3,
5050             GOTOS => {
5051             'item' => 39,
5052             'node' => 23,
5053             'rawperl' => 59,
5054             'term' => 58,
5055             'loop' => 4,
5056             'use' => 63,
5057             'expr' => 62,
5058             'capture' => 42,
5059             'statement' => 5,
5060             'view' => 7,
5061             'wrapper' => 46,
5062             'atomexpr' => 48,
5063             'chunk' => 11,
5064             'defblock' => 66,
5065             'atomdir' => 12,
5066             'anonblock' => 50,
5067             'sterm' => 68,
5068             'defblockname' => 14,
5069             'filter' => 29,
5070             'ident' => 16,
5071             'perl' => 31,
5072             'setlist' => 70,
5073             'chunks' => 33,
5074             'try' => 35,
5075             'switch' => 34,
5076             'assign' => 19,
5077             'block' => 348,
5078             'directive' => 71,
5079             'macro' => 20,
5080             'condition' => 73,
5081             'lterm' => 56
5082             }
5083             },
5084             {#State 344
5085             ACTIONS => {
5086             'SET' => 1,
5087             'PERL' => 40,
5088             'NOT' => 38,
5089             'IDENT' => 2,
5090             'CLEAR' => 41,
5091             'UNLESS' => 3,
5092             'IF' => 44,
5093             "\$" => 43,
5094             'STOP' => 6,
5095             'CALL' => 45,
5096             'THROW' => 8,
5097             'GET' => 47,
5098             "[" => 9,
5099             'TRY' => 10,
5100             'LAST' => 49,
5101             'DEBUG' => 51,
5102             'RAWPERL' => 13,
5103             'META' => 15,
5104             'INCLUDE' => 17,
5105             "(" => 53,
5106             'SWITCH' => 54,
5107             'MACRO' => 18,
5108             'WRAPPER' => 55,
5109             ";" => -18,
5110             'FOR' => 21,
5111             'LITERAL' => 57,
5112             'NEXT' => 22,
5113             "\"" => 60,
5114             'TEXT' => 24,
5115             'PROCESS' => 61,
5116             'RETURN' => 64,
5117             'FILTER' => 25,
5118             'INSERT' => 65,
5119             'NUMBER' => 26,
5120             'REF' => 27,
5121             'WHILE' => 67,
5122             'BLOCK' => 28,
5123             'DEFAULT' => 69,
5124             "{" => 30,
5125             'USE' => 32,
5126             'VIEW' => 36,
5127             "\${" => 37
5128             },
5129             DEFAULT => -3,
5130             GOTOS => {
5131             'item' => 39,
5132             'node' => 23,
5133             'rawperl' => 59,
5134             'term' => 58,
5135             'loop' => 4,
5136             'use' => 63,
5137             'expr' => 62,
5138             'capture' => 42,
5139             'statement' => 5,
5140             'view' => 7,
5141             'wrapper' => 46,
5142             'atomexpr' => 48,
5143             'chunk' => 11,
5144             'defblock' => 66,
5145             'atomdir' => 12,
5146             'anonblock' => 50,
5147             'sterm' => 68,
5148             'defblockname' => 14,
5149             'filter' => 29,
5150             'ident' => 16,
5151             'perl' => 31,
5152             'setlist' => 70,
5153             'chunks' => 33,
5154             'try' => 35,
5155             'switch' => 34,
5156             'assign' => 19,
5157             'block' => 349,
5158             'directive' => 71,
5159             'macro' => 20,
5160             'condition' => 73,
5161             'lterm' => 56
5162             }
5163             },
5164             {#State 345
5165             ACTIONS => {
5166             'ELSIF' => 290,
5167             'ELSE' => 288
5168             },
5169             DEFAULT => -50,
5170             GOTOS => {
5171             'else' => 350
5172             }
5173             },
5174             {#State 346
5175             DEFAULT => -68
5176             },
5177             {#State 347
5178             DEFAULT => -69
5179             },
5180             {#State 348
5181             ACTIONS => {
5182             'CASE' => 313
5183             },
5184             DEFAULT => -55,
5185             GOTOS => {
5186             'case' => 351
5187             }
5188             },
5189             {#State 349
5190             DEFAULT => -53
5191             },
5192             {#State 350
5193             DEFAULT => -48
5194             },
5195             {#State 351
5196             DEFAULT => -52
5197             }
5198             ];
5199              
5200              
5201             #========================================================================
5202             # Rules
5203             #========================================================================
5204              
5205             $RULES = [
5206             [#Rule 0
5207             '$start', 2, undef
5208             ],
5209             [#Rule 1
5210             'template', 1,
5211             sub
5212             #line 64 "Parser.yp"
5213             { $factory->template($_[1]) }
5214             ],
5215             [#Rule 2
5216             'block', 1,
5217             sub
5218             #line 67 "Parser.yp"
5219             { $factory->block($_[1]) }
5220             ],
5221             [#Rule 3
5222             'block', 0,
5223             sub
5224             #line 68 "Parser.yp"
5225             { $factory->block() }
5226             ],
5227             [#Rule 4
5228             'chunks', 2,
5229             sub
5230             #line 71 "Parser.yp"
5231             { push(@{$_[1]}, $_[2])
5232             if defined $_[2]; $_[1] }
5233             ],
5234             [#Rule 5
5235             'chunks', 1,
5236             sub
5237             #line 73 "Parser.yp"
5238             { defined $_[1] ? [ $_[1] ] : [ ] }
5239             ],
5240             [#Rule 6
5241             'chunk', 1,
5242             sub
5243             #line 76 "Parser.yp"
5244             { $factory->textblock($_[1]) }
5245             ],
5246             [#Rule 7
5247             'chunk', 2,
5248             sub
5249             #line 77 "Parser.yp"
5250             { return '' unless $_[1];
5251             $_[0]->location() . $_[1];
5252             }
5253             ],
5254             [#Rule 8
5255             'statement', 1, undef
5256             ],
5257             [#Rule 9
5258             'statement', 1, undef
5259             ],
5260             [#Rule 10
5261             'statement', 1, undef
5262             ],
5263             [#Rule 11
5264             'statement', 1, undef
5265             ],
5266             [#Rule 12
5267             'statement', 1, undef
5268             ],
5269             [#Rule 13
5270             'statement', 1, undef
5271             ],
5272             [#Rule 14
5273             'statement', 1, undef
5274             ],
5275             [#Rule 15
5276             'statement', 1, undef
5277             ],
5278             [#Rule 16
5279             'statement', 1,
5280             sub
5281             #line 90 "Parser.yp"
5282             { $factory->get($_[1]) }
5283             ],
5284             [#Rule 17
5285             'statement', 2,
5286             sub
5287             #line 91 "Parser.yp"
5288             { $_[0]->add_metadata($_[2]); }
5289             ],
5290             [#Rule 18
5291             'statement', 0, undef
5292             ],
5293             [#Rule 19
5294             'directive', 1,
5295             sub
5296             #line 95 "Parser.yp"
5297             { $factory->set($_[1]) }
5298             ],
5299             [#Rule 20
5300             'directive', 1, undef
5301             ],
5302             [#Rule 21
5303             'directive', 1, undef
5304             ],
5305             [#Rule 22
5306             'directive', 1, undef
5307             ],
5308             [#Rule 23
5309             'directive', 1, undef
5310             ],
5311             [#Rule 24
5312             'directive', 1, undef
5313             ],
5314             [#Rule 25
5315             'directive', 1, undef
5316             ],
5317             [#Rule 26
5318             'atomexpr', 1,
5319             sub
5320             #line 109 "Parser.yp"
5321             { $factory->get($_[1]) }
5322             ],
5323             [#Rule 27
5324             'atomexpr', 1, undef
5325             ],
5326             [#Rule 28
5327             'atomdir', 2,
5328             sub
5329             #line 113 "Parser.yp"
5330             { $factory->get($_[2]) }
5331             ],
5332             [#Rule 29
5333             'atomdir', 2,
5334             sub
5335             #line 114 "Parser.yp"
5336             { $factory->call($_[2]) }
5337             ],
5338             [#Rule 30
5339             'atomdir', 2,
5340             sub
5341             #line 115 "Parser.yp"
5342             { $factory->set($_[2]) }
5343             ],
5344             [#Rule 31
5345             'atomdir', 2,
5346             sub
5347             #line 116 "Parser.yp"
5348             { $factory->default($_[2]) }
5349             ],
5350             [#Rule 32
5351             'atomdir', 2,
5352             sub
5353             #line 117 "Parser.yp"
5354             { $factory->insert($_[2]) }
5355             ],
5356             [#Rule 33
5357             'atomdir', 2,
5358             sub
5359             #line 118 "Parser.yp"
5360             { $factory->include($_[2]) }
5361             ],
5362             [#Rule 34
5363             'atomdir', 2,
5364             sub
5365             #line 119 "Parser.yp"
5366             { $factory->process($_[2]) }
5367             ],
5368             [#Rule 35
5369             'atomdir', 2,
5370             sub
5371             #line 120 "Parser.yp"
5372             { $factory->throw($_[2]) }
5373             ],
5374             [#Rule 36
5375             'atomdir', 1,
5376             sub
5377             #line 121 "Parser.yp"
5378             { $factory->return() }
5379             ],
5380             [#Rule 37
5381             'atomdir', 1,
5382             sub
5383             #line 122 "Parser.yp"
5384             { $factory->stop() }
5385             ],
5386             [#Rule 38
5387             'atomdir', 1,
5388             sub
5389             #line 123 "Parser.yp"
5390             { "\$output = '';"; }
5391             ],
5392             [#Rule 39
5393             'atomdir', 1,
5394             sub
5395             #line 124 "Parser.yp"
5396             { $_[0]->block_label('last ', ';') }
5397             ],
5398             [#Rule 40
5399             'atomdir', 1,
5400             sub
5401             #line 125 "Parser.yp"
5402             { $_[0]->in_block('FOR')
5403             ? $factory->next($_[0]->block_label)
5404             : $_[0]->block_label('next ', ';') }
5405             ],
5406             [#Rule 41
5407             'atomdir', 2,
5408             sub
5409             #line 128 "Parser.yp"
5410             { if ($_[2]->[0]->[0] =~ /^'(on|off)'$/) {
5411             $_[0]->{ DEBUG_DIRS } = ($1 eq 'on');
5412             $factory->debug($_[2]);
5413             }
5414             else {
5415             $_[0]->{ DEBUG_DIRS } ? $factory->debug($_[2]) : '';
5416             }
5417             }
5418             ],
5419             [#Rule 42
5420             'atomdir', 1, undef
5421             ],
5422             [#Rule 43
5423             'atomdir', 1, undef
5424             ],
5425             [#Rule 44
5426             'condition', 6,
5427             sub
5428             #line 141 "Parser.yp"
5429             { $factory->if(@_[2, 4, 5]) }
5430             ],
5431             [#Rule 45
5432             'condition', 3,
5433             sub
5434             #line 142 "Parser.yp"
5435             { $factory->if(@_[3, 1]) }
5436             ],
5437             [#Rule 46
5438             'condition', 6,
5439             sub
5440             #line 144 "Parser.yp"
5441             { $factory->if("!($_[2])", @_[4, 5]) }
5442             ],
5443             [#Rule 47
5444             'condition', 3,
5445             sub
5446             #line 145 "Parser.yp"
5447             { $factory->if("!($_[3])", $_[1]) }
5448             ],
5449             [#Rule 48
5450             'else', 5,
5451             sub
5452             #line 149 "Parser.yp"
5453             { unshift(@{$_[5]}, [ @_[2, 4] ]);
5454             $_[5]; }
5455             ],
5456             [#Rule 49
5457             'else', 3,
5458             sub
5459             #line 151 "Parser.yp"
5460             { [ $_[3] ] }
5461             ],
5462             [#Rule 50
5463             'else', 0,
5464             sub
5465             #line 152 "Parser.yp"
5466             { [ undef ] }
5467             ],
5468             [#Rule 51
5469             'switch', 6,
5470             sub
5471             #line 156 "Parser.yp"
5472             { $factory->switch(@_[2, 5]) }
5473             ],
5474             [#Rule 52
5475             'case', 5,
5476             sub
5477             #line 160 "Parser.yp"
5478             { unshift(@{$_[5]}, [ @_[2, 4] ]);
5479             $_[5]; }
5480             ],
5481             [#Rule 53
5482             'case', 4,
5483             sub
5484             #line 162 "Parser.yp"
5485             { [ $_[4] ] }
5486             ],
5487             [#Rule 54
5488             'case', 3,
5489             sub
5490             #line 163 "Parser.yp"
5491             { [ $_[3] ] }
5492             ],
5493             [#Rule 55
5494             'case', 0,
5495             sub
5496             #line 164 "Parser.yp"
5497             { [ undef ] }
5498             ],
5499             [#Rule 56
5500             '@1-3', 0,
5501             sub
5502             #line 167 "Parser.yp"
5503             { $_[0]->enter_block('FOR') }
5504             ],
5505             [#Rule 57
5506             'loop', 6,
5507             sub
5508             #line 168 "Parser.yp"
5509             { $factory->foreach(@{$_[2]}, $_[5], $_[0]->leave_block) }
5510             ],
5511             [#Rule 58
5512             'loop', 3,
5513             sub
5514             #line 169 "Parser.yp"
5515             { $factory->foreach(@{$_[3]}, $_[1]) }
5516             ],
5517             [#Rule 59
5518             '@2-3', 0,
5519             sub
5520             #line 170 "Parser.yp"
5521             { $_[0]->enter_block('WHILE') }
5522             ],
5523             [#Rule 60
5524             'loop', 6,
5525             sub
5526             #line 171 "Parser.yp"
5527             { $factory->while(@_[2, 5], $_[0]->leave_block) }
5528             ],
5529             [#Rule 61
5530             'loop', 3,
5531             sub
5532             #line 172 "Parser.yp"
5533             { $factory->while(@_[3, 1]) }
5534             ],
5535             [#Rule 62
5536             'loopvar', 4,
5537             sub
5538             #line 175 "Parser.yp"
5539             { [ @_[1, 3, 4] ] }
5540             ],
5541             [#Rule 63
5542             'loopvar', 4,
5543             sub
5544             #line 176 "Parser.yp"
5545             { [ @_[1, 3, 4] ] }
5546             ],
5547             [#Rule 64
5548             'loopvar', 2,
5549             sub
5550             #line 177 "Parser.yp"
5551             { [ 0, @_[1, 2] ] }
5552             ],
5553             [#Rule 65
5554             'wrapper', 5,
5555             sub
5556             #line 181 "Parser.yp"
5557             { $factory->wrapper(@_[2, 4]) }
5558             ],
5559             [#Rule 66
5560             'wrapper', 3,
5561             sub
5562             #line 183 "Parser.yp"
5563             { $factory->wrapper(@_[3, 1]) }
5564             ],
5565             [#Rule 67
5566             'try', 5,
5567             sub
5568             #line 187 "Parser.yp"
5569             { $factory->try(@_[3, 4]) }
5570             ],
5571             [#Rule 68
5572             'final', 5,
5573             sub
5574             #line 191 "Parser.yp"
5575             { unshift(@{$_[5]}, [ @_[2,4] ]);
5576             $_[5]; }
5577             ],
5578             [#Rule 69
5579             'final', 5,
5580             sub
5581             #line 194 "Parser.yp"
5582             { unshift(@{$_[5]}, [ undef, $_[4] ]);
5583             $_[5]; }
5584             ],
5585             [#Rule 70
5586             'final', 4,
5587             sub
5588             #line 197 "Parser.yp"
5589             { unshift(@{$_[4]}, [ undef, $_[3] ]);
5590             $_[4]; }
5591             ],
5592             [#Rule 71
5593             'final', 3,
5594             sub
5595             #line 199 "Parser.yp"
5596             { [ $_[3] ] }
5597             ],
5598             [#Rule 72
5599             'final', 0,
5600             sub
5601             #line 200 "Parser.yp"
5602             { [ 0 ] }
5603             ],
5604             [#Rule 73
5605             'use', 2,
5606             sub
5607             #line 203 "Parser.yp"
5608             { $factory->use($_[2]) }
5609             ],
5610             [#Rule 74
5611             '@3-3', 0,
5612             sub
5613             #line 206 "Parser.yp"
5614             { $_[0]->push_defblock(); }
5615             ],
5616             [#Rule 75
5617             'view', 6,
5618             sub
5619             #line 207 "Parser.yp"
5620             { $factory->view(@_[2,5],
5621             $_[0]->pop_defblock) }
5622             ],
5623             [#Rule 76
5624             '@4-2', 0,
5625             sub
5626             #line 211 "Parser.yp"
5627             { ${$_[0]->{ INPERL }}++; }
5628             ],
5629             [#Rule 77
5630             'perl', 5,
5631             sub
5632             #line 212 "Parser.yp"
5633             { ${$_[0]->{ INPERL }}--;
5634             $_[0]->{ EVAL_PERL }
5635             ? $factory->perl($_[4])
5636             : $factory->no_perl(); }
5637             ],
5638             [#Rule 78
5639             '@5-1', 0,
5640             sub
5641             #line 218 "Parser.yp"
5642             { ${$_[0]->{ INPERL }}++;
5643             $rawstart = ${$_[0]->{'LINE'}}; }
5644             ],
5645             [#Rule 79
5646             'rawperl', 5,
5647             sub
5648             #line 220 "Parser.yp"
5649             { ${$_[0]->{ INPERL }}--;
5650             $_[0]->{ EVAL_PERL }
5651             ? $factory->rawperl($_[4], $rawstart)
5652             : $factory->no_perl(); }
5653             ],
5654             [#Rule 80
5655             'filter', 5,
5656             sub
5657             #line 227 "Parser.yp"
5658             { $factory->filter(@_[2,4]) }
5659             ],
5660             [#Rule 81
5661             'filter', 3,
5662             sub
5663             #line 229 "Parser.yp"
5664             { $factory->filter(@_[3,1]) }
5665             ],
5666             [#Rule 82
5667             'defblock', 5,
5668             sub
5669             #line 234 "Parser.yp"
5670             { my $name = join('/', @{ $_[0]->{ DEFBLOCKS } });
5671             pop(@{ $_[0]->{ DEFBLOCKS } });
5672             $_[0]->define_block($name, $_[4]);
5673             undef
5674             }
5675             ],
5676             [#Rule 83
5677             'defblockname', 2,
5678             sub
5679             #line 241 "Parser.yp"
5680             { push(@{ $_[0]->{ DEFBLOCKS } }, $_[2]);
5681             $_[2];
5682             }
5683             ],
5684             [#Rule 84
5685             'blockname', 1, undef
5686             ],
5687             [#Rule 85
5688             'blockname', 1,
5689             sub
5690             #line 247 "Parser.yp"
5691             { $_[1] =~ s/^'(.*)'$/$1/; $_[1] }
5692             ],
5693             [#Rule 86
5694             'blockargs', 1, undef
5695             ],
5696             [#Rule 87
5697             'blockargs', 0, undef
5698             ],
5699             [#Rule 88
5700             'anonblock', 5,
5701             sub
5702             #line 255 "Parser.yp"
5703             { local $" = ', ';
5704             print STDERR "experimental block args: [@{ $_[2] }]\n"
5705             if $_[2];
5706             $factory->anon_block($_[4]) }
5707             ],
5708             [#Rule 89
5709             'capture', 3,
5710             sub
5711             #line 261 "Parser.yp"
5712             { $factory->capture(@_[1, 3]) }
5713             ],
5714             [#Rule 90
5715             'macro', 6,
5716             sub
5717             #line 265 "Parser.yp"
5718             { $factory->macro(@_[2, 6, 4]) }
5719             ],
5720             [#Rule 91
5721             'macro', 3,
5722             sub
5723             #line 266 "Parser.yp"
5724             { $factory->macro(@_[2, 3]) }
5725             ],
5726             [#Rule 92
5727             'mdir', 1, undef
5728             ],
5729             [#Rule 93
5730             'mdir', 4,
5731             sub
5732             #line 270 "Parser.yp"
5733             { $_[3] }
5734             ],
5735             [#Rule 94
5736             'margs', 2,
5737             sub
5738             #line 273 "Parser.yp"
5739             { push(@{$_[1]}, $_[2]); $_[1] }
5740             ],
5741             [#Rule 95
5742             'margs', 2,
5743             sub
5744             #line 274 "Parser.yp"
5745             { $_[1] }
5746             ],
5747             [#Rule 96
5748             'margs', 1,
5749             sub
5750             #line 275 "Parser.yp"
5751             { [ $_[1] ] }
5752             ],
5753             [#Rule 97
5754             'metadata', 2,
5755             sub
5756             #line 278 "Parser.yp"
5757             { push(@{$_[1]}, @{$_[2]}); $_[1] }
5758             ],
5759             [#Rule 98
5760             'metadata', 2, undef
5761             ],
5762             [#Rule 99
5763             'metadata', 1, undef
5764             ],
5765             [#Rule 100
5766             'meta', 3,
5767             sub
5768             #line 283 "Parser.yp"
5769             { for ($_[3]) { s/^'//; s/'$//;
5770             s/\\'/'/g };
5771             [ @_[1,3] ] }
5772             ],
5773             [#Rule 101
5774             'meta', 5,
5775             sub
5776             #line 286 "Parser.yp"
5777             { [ @_[1,4] ] }
5778             ],
5779             [#Rule 102
5780             'meta', 3,
5781             sub
5782             #line 287 "Parser.yp"
5783             { [ @_[1,3] ] }
5784             ],
5785             [#Rule 103
5786             'term', 1, undef
5787             ],
5788             [#Rule 104
5789             'term', 1, undef
5790             ],
5791             [#Rule 105
5792             'lterm', 3,
5793             sub
5794             #line 299 "Parser.yp"
5795             { "[ $_[2] ]" }
5796             ],
5797             [#Rule 106
5798             'lterm', 3,
5799             sub
5800             #line 300 "Parser.yp"
5801             { "[ $_[2] ]" }
5802             ],
5803             [#Rule 107
5804             'lterm', 2,
5805             sub
5806             #line 301 "Parser.yp"
5807             { "[ ]" }
5808             ],
5809             [#Rule 108
5810             'lterm', 3,
5811             sub
5812             #line 302 "Parser.yp"
5813             { "{ $_[2] }" }
5814             ],
5815             [#Rule 109
5816             'sterm', 1,
5817             sub
5818             #line 305 "Parser.yp"
5819             { $factory->ident($_[1]) }
5820             ],
5821             [#Rule 110
5822             'sterm', 2,
5823             sub
5824             #line 306 "Parser.yp"
5825             { $factory->identref($_[2]) }
5826             ],
5827             [#Rule 111
5828             'sterm', 3,
5829             sub
5830             #line 307 "Parser.yp"
5831             { $factory->quoted($_[2]) }
5832             ],
5833             [#Rule 112
5834             'sterm', 1, undef
5835             ],
5836             [#Rule 113
5837             'sterm', 1, undef
5838             ],
5839             [#Rule 114
5840             'list', 2,
5841             sub
5842             #line 312 "Parser.yp"
5843             { "$_[1], $_[2]" }
5844             ],
5845             [#Rule 115
5846             'list', 2, undef
5847             ],
5848             [#Rule 116
5849             'list', 1, undef
5850             ],
5851             [#Rule 117
5852             'range', 3,
5853             sub
5854             #line 317 "Parser.yp"
5855             { $_[1] . '..' . $_[3] }
5856             ],
5857             [#Rule 118
5858             'hash', 1, undef
5859             ],
5860             [#Rule 119
5861             'hash', 0,
5862             sub
5863             #line 322 "Parser.yp"
5864             { "" }
5865             ],
5866             [#Rule 120
5867             'params', 2,
5868             sub
5869             #line 325 "Parser.yp"
5870             { "$_[1], $_[2]" }
5871             ],
5872             [#Rule 121
5873             'params', 2, undef
5874             ],
5875             [#Rule 122
5876             'params', 1, undef
5877             ],
5878             [#Rule 123
5879             'param', 3,
5880             sub
5881             #line 330 "Parser.yp"
5882             { "$_[1] => $_[3]" }
5883             ],
5884             [#Rule 124
5885             'param', 3,
5886             sub
5887             #line 331 "Parser.yp"
5888             { "$_[1] => $_[3]" }
5889             ],
5890             [#Rule 125
5891             'ident', 3,
5892             sub
5893             #line 334 "Parser.yp"
5894             { push(@{$_[1]}, @{$_[3]}); $_[1] }
5895             ],
5896             [#Rule 126
5897             'ident', 3,
5898             sub
5899             #line 335 "Parser.yp"
5900             { push(@{$_[1]},
5901             map {($_, 0)} split(/\./, $_[3]));
5902             $_[1]; }
5903             ],
5904             [#Rule 127
5905             'ident', 1, undef
5906             ],
5907             [#Rule 128
5908             'node', 1,
5909             sub
5910             #line 341 "Parser.yp"
5911             { [ $_[1], 0 ] }
5912             ],
5913             [#Rule 129
5914             'node', 4,
5915             sub
5916             #line 342 "Parser.yp"
5917             { [ $_[1], $factory->args($_[3]) ] }
5918             ],
5919             [#Rule 130
5920             'item', 1,
5921             sub
5922             #line 345 "Parser.yp"
5923             { "'$_[1]'" }
5924             ],
5925             [#Rule 131
5926             'item', 3,
5927             sub
5928             #line 346 "Parser.yp"
5929             { $_[2] }
5930             ],
5931             [#Rule 132
5932             'item', 2,
5933             sub
5934             #line 347 "Parser.yp"
5935             { $_[0]->{ V1DOLLAR }
5936             ? "'$_[2]'"
5937             : $factory->ident(["'$_[2]'", 0]) }
5938             ],
5939             [#Rule 133
5940             'expr', 3,
5941             sub
5942             #line 352 "Parser.yp"
5943             { "$_[1] $_[2] $_[3]" }
5944             ],
5945             [#Rule 134
5946             'expr', 3,
5947             sub
5948             #line 353 "Parser.yp"
5949             { "$_[1] $_[2] $_[3]" }
5950             ],
5951             [#Rule 135
5952             'expr', 3,
5953             sub
5954             #line 354 "Parser.yp"
5955             { "$_[1] $_[2] $_[3]" }
5956             ],
5957             [#Rule 136
5958             'expr', 3,
5959             sub
5960             #line 355 "Parser.yp"
5961             { "int($_[1] / $_[3])" }
5962             ],
5963             [#Rule 137
5964             'expr', 3,
5965             sub
5966             #line 356 "Parser.yp"
5967             { "$_[1] % $_[3]" }
5968             ],
5969             [#Rule 138
5970             'expr', 3,
5971             sub
5972             #line 357 "Parser.yp"
5973             { "$_[1] $CMPOP{ $_[2] } $_[3]" }
5974             ],
5975             [#Rule 139
5976             'expr', 3,
5977             sub
5978             #line 358 "Parser.yp"
5979             { "$_[1] . $_[3]" }
5980             ],
5981             [#Rule 140
5982             'expr', 3,
5983             sub
5984             #line 359 "Parser.yp"
5985             { "$_[1] && $_[3]" }
5986             ],
5987             [#Rule 141
5988             'expr', 3,
5989             sub
5990             #line 360 "Parser.yp"
5991             { "$_[1] || $_[3]" }
5992             ],
5993             [#Rule 142
5994             'expr', 2,
5995             sub
5996             #line 361 "Parser.yp"
5997             { "! $_[2]" }
5998             ],
5999             [#Rule 143
6000             'expr', 5,
6001             sub
6002             #line 362 "Parser.yp"
6003             { "$_[1] ? $_[3] : $_[5]" }
6004             ],
6005             [#Rule 144
6006             'expr', 3,
6007             sub
6008             #line 363 "Parser.yp"
6009             { $factory->assign(@{$_[2]}) }
6010             ],
6011             [#Rule 145
6012             'expr', 3,
6013             sub
6014             #line 364 "Parser.yp"
6015             { "($_[2])" }
6016             ],
6017             [#Rule 146
6018             'expr', 1, undef
6019             ],
6020             [#Rule 147
6021             'setlist', 2,
6022             sub
6023             #line 368 "Parser.yp"
6024             { push(@{$_[1]}, @{$_[2]}); $_[1] }
6025             ],
6026             [#Rule 148
6027             'setlist', 2, undef
6028             ],
6029             [#Rule 149
6030             'setlist', 1, undef
6031             ],
6032             [#Rule 150
6033             'assign', 3,
6034             sub
6035             #line 374 "Parser.yp"
6036             { [ $_[1], $_[3] ] }
6037             ],
6038             [#Rule 151
6039             'assign', 3,
6040             sub
6041             #line 375 "Parser.yp"
6042             { [ @_[1,3] ] }
6043             ],
6044             [#Rule 152
6045             'args', 2,
6046             sub
6047             #line 382 "Parser.yp"
6048             { push(@{$_[1]}, $_[2]); $_[1] }
6049             ],
6050             [#Rule 153
6051             'args', 2,
6052             sub
6053             #line 383 "Parser.yp"
6054             { push(@{$_[1]->[0]}, $_[2]); $_[1] }
6055             ],
6056             [#Rule 154
6057             'args', 4,
6058             sub
6059             #line 384 "Parser.yp"
6060             { push(@{$_[1]->[0]}, "'', " .
6061             $factory->assign(@_[2,4])); $_[1] }
6062             ],
6063             [#Rule 155
6064             'args', 2,
6065             sub
6066             #line 386 "Parser.yp"
6067             { $_[1] }
6068             ],
6069             [#Rule 156
6070             'args', 0,
6071             sub
6072             #line 387 "Parser.yp"
6073             { [ [ ] ] }
6074             ],
6075             [#Rule 157
6076             'lnameargs', 3,
6077             sub
6078             #line 397 "Parser.yp"
6079             { push(@{$_[3]}, $_[1]); $_[3] }
6080             ],
6081             [#Rule 158
6082             'lnameargs', 1, undef
6083             ],
6084             [#Rule 159
6085             'lvalue', 1, undef
6086             ],
6087             [#Rule 160
6088             'lvalue', 3,
6089             sub
6090             #line 402 "Parser.yp"
6091             { $factory->quoted($_[2]) }
6092             ],
6093             [#Rule 161
6094             'lvalue', 1, undef
6095             ],
6096             [#Rule 162
6097             'nameargs', 3,
6098             sub
6099             #line 406 "Parser.yp"
6100             { [ [$factory->ident($_[2])], $_[3] ] }
6101             ],
6102             [#Rule 163
6103             'nameargs', 2,
6104             sub
6105             #line 407 "Parser.yp"
6106             { [ @_[1,2] ] }
6107             ],
6108             [#Rule 164
6109             'nameargs', 4,
6110             sub
6111             #line 408 "Parser.yp"
6112             { [ @_[1,3] ] }
6113             ],
6114             [#Rule 165
6115             'names', 3,
6116             sub
6117             #line 411 "Parser.yp"
6118             { push(@{$_[1]}, $_[3]); $_[1] }
6119             ],
6120             [#Rule 166
6121             'names', 1,
6122             sub
6123             #line 412 "Parser.yp"
6124             { [ $_[1] ] }
6125             ],
6126             [#Rule 167
6127             'name', 3,
6128             sub
6129             #line 415 "Parser.yp"
6130             { $factory->quoted($_[2]) }
6131             ],
6132             [#Rule 168
6133             'name', 1,
6134             sub
6135             #line 416 "Parser.yp"
6136             { "'$_[1]'" }
6137             ],
6138             [#Rule 169
6139             'name', 1, undef
6140             ],
6141             [#Rule 170
6142             'filename', 3,
6143             sub
6144             #line 420 "Parser.yp"
6145             { "$_[1].$_[3]" }
6146             ],
6147             [#Rule 171
6148             'filename', 1, undef
6149             ],
6150             [#Rule 172
6151             'filepart', 1, undef
6152             ],
6153             [#Rule 173
6154             'filepart', 1, undef
6155             ],
6156             [#Rule 174
6157             'filepart', 1, undef
6158             ],
6159             [#Rule 175
6160             'quoted', 2,
6161             sub
6162             #line 434 "Parser.yp"
6163             { push(@{$_[1]}, $_[2])
6164             if defined $_[2]; $_[1] }
6165             ],
6166             [#Rule 176
6167             'quoted', 0,
6168             sub
6169             #line 436 "Parser.yp"
6170             { [ ] }
6171             ],
6172             [#Rule 177
6173             'quotable', 1,
6174             sub
6175             #line 439 "Parser.yp"
6176             { $factory->ident($_[1]) }
6177             ],
6178             [#Rule 178
6179             'quotable', 1,
6180             sub
6181             #line 440 "Parser.yp"
6182             { $factory->text($_[1]) }
6183             ],
6184             [#Rule 179
6185             'quotable', 1,
6186             sub
6187             #line 441 "Parser.yp"
6188             { undef }
6189             ]
6190             ];
6191              
6192              
6193              
6194             1;
6195              
6196             __END__