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