File Coverage

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