--- /dev/null
+#============================================================= -*-Perl-*-
+#
+# Template::Grammar
+#
+# DESCRIPTION
+# Grammar file for the Template Toolkit language containing token
+# definitions and parser state/rules tables generated by Parse::Yapp.
+#
+# AUTHOR
+# Andy Wardley <abw@wardley.org>
+#
+# COPYRIGHT
+# Copyright (C) 1996-2006 Andy Wardley. All Rights Reserved.
+# Copyright (C) 1998-2000 Canon Research Centre Europe Ltd.
+#
+# This module is free software; you can redistribute it and/or
+# modify it under the same terms as Perl itself.
+#
+# REVISION
+# $Id: Grammar.pm 1243 2009-07-04 15:32:19Z abw $
+#
+# IMPORTANT NOTE
+# This module is constructed from the parser/Grammar.pm.skel file by
+# running the parser/yc script. You only need to do this if # you
+# have modified the grammar in the parser/Parser.yp file and need #
+# to-recompile it. See the README in the 'parser' directory for
+# more information (sub-directory of the Template distribution).
+#
+#========================================================================
+
+package Template::Grammar;
+
+use strict;
+use warnings;
+
+our $VERSION = 2.25;
+
+my (@RESERVED, %CMPOP, $LEXTABLE, $RULES, $STATES);
+my ($factory, $rawstart);
+
+
+#========================================================================
+
+# Reserved words, comparison and binary operators
+#========================================================================
+
+@RESERVED = qw(
+ GET CALL SET DEFAULT INSERT INCLUDE PROCESS WRAPPER BLOCK END
+ USE PLUGIN FILTER MACRO PERL RAWPERL TO STEP AND OR NOT DIV MOD
+ IF UNLESS ELSE ELSIF FOR NEXT WHILE SWITCH CASE META IN
+ TRY THROW CATCH FINAL LAST RETURN STOP CLEAR VIEW DEBUG
+ );
+
+# for historical reasons, != and == are converted to ne and eq to perform
+# stringwise comparison (mainly because it doesn't generate "non-numerical
+# comparison" warnings which != and == can) but the others (e.g. < > <= >=)
+# are not converted to their stringwise equivalents. I added 'gt' et al,
+# briefly for v2.04d and then took them out again in 2.04e.
+
+
+%CMPOP = qw(
+ != ne
+ == eq
+ < <
+ > >
+ >= >=
+ <= <=
+);
+
+# eq eq # add these lines to the above to
+# lt lt # enable the eq, lt and gt operators
+# gt gt
+
+#========================================================================
+# Lexer Token Table
+#========================================================================
+
+# lookup table used by lexer is initialised with special-cases
+$LEXTABLE = {
+ 'FOREACH' => 'FOR',
+ 'BREAK' => 'LAST',
+ '&&' => 'AND',
+ '||' => 'OR',
+ '!' => 'NOT',
+ '|' => 'FILTER',
+ '.' => 'DOT',
+ '_' => 'CAT',
+ '..' => 'TO',
+# ':' => 'MACRO',
+ '=' => 'ASSIGN',
+ '=>' => 'ASSIGN',
+# '->' => 'ARROW',
+ ',' => 'COMMA',
+ '\\' => 'REF',
+ 'and' => 'AND', # explicitly specified so that qw( and or
+ 'or' => 'OR', # not ) can always be used in lower case,
+ 'not' => 'NOT', # regardless of ANYCASE flag
+ 'mod' => 'MOD',
+ 'div' => 'DIV',
+};
+
+# localise the temporary variables needed to complete lexer table
+{
+# my @tokens = qw< ( ) [ ] { } ${ $ / ; : ? >;
+ my @tokens = qw< ( ) [ ] { } ${ $ + / ; : ? >;
+ my @cmpop = keys %CMPOP;
+# my @binop = qw( + - * % ); # '/' above, in @tokens
+ my @binop = qw( - * % ); # '+' and '/' above, in @tokens
+
+ # fill lexer table, slice by slice, with reserved words and operators
+ @$LEXTABLE{ @RESERVED, @cmpop, @binop, @tokens }
+ = ( @RESERVED, ('CMPOP') x @cmpop, ('BINOP') x @binop, @tokens );
+}
+
+
+#========================================================================
+# CLASS METHODS
+#========================================================================
+
+sub new {
+ my $class = shift;
+ bless {
+ LEXTABLE => $LEXTABLE,
+ STATES => $STATES,
+ RULES => $RULES,
+ }, $class;
+}
+
+# update method to set package-scoped $factory lexical
+sub install_factory {
+ my ($self, $new_factory) = @_;
+ $factory = $new_factory;
+}
+
+
+#========================================================================
+# States
+#========================================================================
+
+$STATES = [
+ {#State 0
+ ACTIONS => {
+ 'SET' => 1,
+ 'PERL' => 40,
+ 'NOT' => 38,
+ 'IDENT' => 2,
+ 'CLEAR' => 41,
+ 'UNLESS' => 3,
+ 'IF' => 44,
+ "\$" => 43,
+ 'STOP' => 6,
+ 'CALL' => 45,
+ 'THROW' => 8,
+ 'GET' => 47,
+ "[" => 9,
+ 'TRY' => 10,
+ 'LAST' => 49,
+ 'DEBUG' => 51,
+ 'RAWPERL' => 13,
+ 'META' => 15,
+ 'INCLUDE' => 17,
+ "(" => 53,
+ 'SWITCH' => 54,
+ 'MACRO' => 18,
+ 'WRAPPER' => 55,
+ ";" => -18,
+ 'FOR' => 21,
+ 'LITERAL' => 57,
+ 'NEXT' => 22,
+ "\"" => 60,
+ 'TEXT' => 24,
+ 'PROCESS' => 61,
+ 'RETURN' => 64,
+ 'FILTER' => 25,
+ 'INSERT' => 65,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ 'WHILE' => 67,
+ 'BLOCK' => 28,
+ 'DEFAULT' => 69,
+ "{" => 30,
+ 'USE' => 32,
+ 'VIEW' => 36,
+ "\${" => 37
+ },
+ DEFAULT => -3,
+ GOTOS => {
+ 'item' => 39,
+ 'loop' => 4,
+ 'capture' => 42,
+ 'statement' => 5,
+ 'view' => 7,
+ 'wrapper' => 46,
+ 'atomexpr' => 48,
+ 'chunk' => 11,
+ 'atomdir' => 12,
+ 'anonblock' => 50,
+ 'template' => 52,
+ 'defblockname' => 14,
+ 'ident' => 16,
+ 'assign' => 19,
+ 'macro' => 20,
+ 'lterm' => 56,
+ 'node' => 23,
+ 'term' => 58,
+ 'rawperl' => 59,
+ 'expr' => 62,
+ 'use' => 63,
+ 'defblock' => 66,
+ 'filter' => 29,
+ 'sterm' => 68,
+ 'perl' => 31,
+ 'chunks' => 33,
+ 'setlist' => 70,
+ 'try' => 35,
+ 'switch' => 34,
+ 'directive' => 71,
+ 'block' => 72,
+ 'condition' => 73
+ }
+ },
+ {#State 1
+ ACTIONS => {
+ "\$" => 43,
+ 'LITERAL' => 75,
+ 'IDENT' => 2,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'setlist' => 76,
+ 'item' => 39,
+ 'assign' => 19,
+ 'node' => 23,
+ 'ident' => 74
+ }
+ },
+ {#State 2
+ DEFAULT => -130
+ },
+ {#State 3
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'expr' => 79,
+ 'sterm' => 68,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 4
+ DEFAULT => -23
+ },
+ {#State 5
+ ACTIONS => {
+ ";" => 80
+ }
+ },
+ {#State 6
+ DEFAULT => -37
+ },
+ {#State 7
+ DEFAULT => -14
+ },
+ {#State 8
+ ACTIONS => {
+ "\"" => 89,
+ "\$" => 86,
+ 'LITERAL' => 88,
+ 'FILENAME' => 83,
+ 'IDENT' => 81,
+ 'NUMBER' => 84
+ },
+ GOTOS => {
+ 'filepart' => 87,
+ 'names' => 91,
+ 'nameargs' => 90,
+ 'filename' => 85,
+ 'name' => 82
+ }
+ },
+ {#State 9
+ ACTIONS => {
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "]" => 94,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'sterm' => 96,
+ 'item' => 39,
+ 'range' => 93,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 95,
+ 'lterm' => 56,
+ 'list' => 92
+ }
+ },
+ {#State 10
+ ACTIONS => {
+ ";" => 97
+ }
+ },
+ {#State 11
+ DEFAULT => -5
+ },
+ {#State 12
+ ACTIONS => {
+ ";" => -20
+ },
+ DEFAULT => -27
+ },
+ {#State 13
+ DEFAULT => -78,
+ GOTOS => {
+ '@5-1' => 98
+ }
+ },
+ {#State 14
+ ACTIONS => {
+ 'IDENT' => 99
+ },
+ DEFAULT => -87,
+ GOTOS => {
+ 'blockargs' => 102,
+ 'metadata' => 101,
+ 'meta' => 100
+ }
+ },
+ {#State 15
+ ACTIONS => {
+ 'IDENT' => 99
+ },
+ GOTOS => {
+ 'metadata' => 103,
+ 'meta' => 100
+ }
+ },
+ {#State 16
+ ACTIONS => {
+ 'DOT' => 104,
+ 'ASSIGN' => 105
+ },
+ DEFAULT => -109
+ },
+ {#State 17
+ ACTIONS => {
+ "\"" => 89,
+ "\$" => 86,
+ 'LITERAL' => 88,
+ 'FILENAME' => 83,
+ 'IDENT' => 81,
+ 'NUMBER' => 84
+ },
+ GOTOS => {
+ 'filepart' => 87,
+ 'names' => 91,
+ 'nameargs' => 106,
+ 'filename' => 85,
+ 'name' => 82
+ }
+ },
+ {#State 18
+ ACTIONS => {
+ 'IDENT' => 107
+ }
+ },
+ {#State 19
+ DEFAULT => -149
+ },
+ {#State 20
+ DEFAULT => -12
+ },
+ {#State 21
+ ACTIONS => {
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 108,
+ "\"" => 60,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'sterm' => 68,
+ 'item' => 39,
+ 'loopvar' => 110,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 109,
+ 'lterm' => 56
+ }
+ },
+ {#State 22
+ DEFAULT => -40
+ },
+ {#State 23
+ DEFAULT => -127
+ },
+ {#State 24
+ DEFAULT => -6
+ },
+ {#State 25
+ ACTIONS => {
+ "\"" => 117,
+ "\$" => 114,
+ 'LITERAL' => 116,
+ 'FILENAME' => 83,
+ 'IDENT' => 111,
+ 'NUMBER' => 84,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'names' => 91,
+ 'lvalue' => 112,
+ 'item' => 113,
+ 'name' => 82,
+ 'filepart' => 87,
+ 'filename' => 85,
+ 'nameargs' => 118,
+ 'lnameargs' => 115
+ }
+ },
+ {#State 26
+ DEFAULT => -113
+ },
+ {#State 27
+ ACTIONS => {
+ "\$" => 43,
+ 'IDENT' => 2,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 119
+ }
+ },
+ {#State 28
+ ACTIONS => {
+ 'LITERAL' => 124,
+ 'FILENAME' => 83,
+ 'IDENT' => 120,
+ 'NUMBER' => 84
+ },
+ DEFAULT => -87,
+ GOTOS => {
+ 'blockargs' => 123,
+ 'filepart' => 87,
+ 'filename' => 122,
+ 'blockname' => 121,
+ 'metadata' => 101,
+ 'meta' => 100
+ }
+ },
+ {#State 29
+ DEFAULT => -43
+ },
+ {#State 30
+ ACTIONS => {
+ "\$" => 43,
+ 'LITERAL' => 129,
+ 'IDENT' => 2,
+ "\${" => 37
+ },
+ DEFAULT => -119,
+ GOTOS => {
+ 'params' => 128,
+ 'hash' => 125,
+ 'item' => 126,
+ 'param' => 127
+ }
+ },
+ {#State 31
+ DEFAULT => -25
+ },
+ {#State 32
+ ACTIONS => {
+ "\"" => 117,
+ "\$" => 114,
+ 'LITERAL' => 116,
+ 'FILENAME' => 83,
+ 'IDENT' => 111,
+ 'NUMBER' => 84,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'names' => 91,
+ 'lvalue' => 112,
+ 'item' => 113,
+ 'name' => 82,
+ 'filepart' => 87,
+ 'filename' => 85,
+ 'nameargs' => 118,
+ 'lnameargs' => 130
+ }
+ },
+ {#State 33
+ ACTIONS => {
+ 'SET' => 1,
+ 'PERL' => 40,
+ 'NOT' => 38,
+ 'IDENT' => 2,
+ 'CLEAR' => 41,
+ 'UNLESS' => 3,
+ 'IF' => 44,
+ "\$" => 43,
+ 'STOP' => 6,
+ 'CALL' => 45,
+ 'THROW' => 8,
+ 'GET' => 47,
+ "[" => 9,
+ 'TRY' => 10,
+ 'LAST' => 49,
+ 'DEBUG' => 51,
+ 'RAWPERL' => 13,
+ 'META' => 15,
+ 'INCLUDE' => 17,
+ "(" => 53,
+ 'SWITCH' => 54,
+ 'MACRO' => 18,
+ 'WRAPPER' => 55,
+ ";" => -18,
+ 'FOR' => 21,
+ 'LITERAL' => 57,
+ 'NEXT' => 22,
+ "\"" => 60,
+ 'TEXT' => 24,
+ 'PROCESS' => 61,
+ 'RETURN' => 64,
+ 'FILTER' => 25,
+ 'INSERT' => 65,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ 'WHILE' => 67,
+ 'BLOCK' => 28,
+ 'DEFAULT' => 69,
+ "{" => 30,
+ 'USE' => 32,
+ 'VIEW' => 36,
+ "\${" => 37
+ },
+ DEFAULT => -2,
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 23,
+ 'rawperl' => 59,
+ 'term' => 58,
+ 'loop' => 4,
+ 'use' => 63,
+ 'expr' => 62,
+ 'capture' => 42,
+ 'statement' => 5,
+ 'view' => 7,
+ 'wrapper' => 46,
+ 'atomexpr' => 48,
+ 'chunk' => 131,
+ 'defblock' => 66,
+ 'atomdir' => 12,
+ 'anonblock' => 50,
+ 'sterm' => 68,
+ 'defblockname' => 14,
+ 'filter' => 29,
+ 'ident' => 16,
+ 'perl' => 31,
+ 'setlist' => 70,
+ 'try' => 35,
+ 'switch' => 34,
+ 'assign' => 19,
+ 'directive' => 71,
+ 'macro' => 20,
+ 'condition' => 73,
+ 'lterm' => 56
+ }
+ },
+ {#State 34
+ DEFAULT => -22
+ },
+ {#State 35
+ DEFAULT => -24
+ },
+ {#State 36
+ ACTIONS => {
+ "\"" => 89,
+ "\$" => 86,
+ 'LITERAL' => 88,
+ 'FILENAME' => 83,
+ 'IDENT' => 81,
+ 'NUMBER' => 84
+ },
+ GOTOS => {
+ 'filepart' => 87,
+ 'names' => 91,
+ 'nameargs' => 132,
+ 'filename' => 85,
+ 'name' => 82
+ }
+ },
+ {#State 37
+ ACTIONS => {
+ "\"" => 60,
+ "\$" => 43,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ 'REF' => 27,
+ 'NUMBER' => 26,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'sterm' => 133,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77
+ }
+ },
+ {#State 38
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'expr' => 134,
+ 'sterm' => 68,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 39
+ ACTIONS => {
+ "(" => 135
+ },
+ DEFAULT => -128
+ },
+ {#State 40
+ ACTIONS => {
+ ";" => 136
+ }
+ },
+ {#State 41
+ DEFAULT => -38
+ },
+ {#State 42
+ DEFAULT => -11
+ },
+ {#State 43
+ ACTIONS => {
+ 'IDENT' => 137
+ }
+ },
+ {#State 44
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'expr' => 138,
+ 'sterm' => 68,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 45
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'expr' => 139,
+ 'sterm' => 68,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 46
+ DEFAULT => -42
+ },
+ {#State 47
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'expr' => 140,
+ 'sterm' => 68,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 48
+ ACTIONS => {
+ 'IF' => 144,
+ 'FILTER' => 143,
+ 'FOR' => 142,
+ 'WHILE' => 146,
+ 'WRAPPER' => 145,
+ 'UNLESS' => 141
+ }
+ },
+ {#State 49
+ DEFAULT => -39
+ },
+ {#State 50
+ DEFAULT => -10
+ },
+ {#State 51
+ ACTIONS => {
+ "\"" => 89,
+ "\$" => 86,
+ 'LITERAL' => 88,
+ 'FILENAME' => 83,
+ 'IDENT' => 81,
+ 'NUMBER' => 84
+ },
+ GOTOS => {
+ 'filepart' => 87,
+ 'names' => 91,
+ 'nameargs' => 147,
+ 'filename' => 85,
+ 'name' => 82
+ }
+ },
+ {#State 52
+ ACTIONS => {
+ '' => 148
+ }
+ },
+ {#State 53
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'LITERAL' => 57,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'expr' => 151,
+ 'sterm' => 68,
+ 'item' => 39,
+ 'assign' => 150,
+ 'node' => 23,
+ 'ident' => 149,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 54
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'expr' => 152,
+ 'sterm' => 68,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 55
+ ACTIONS => {
+ "\"" => 89,
+ "\$" => 86,
+ 'LITERAL' => 88,
+ 'FILENAME' => 83,
+ 'IDENT' => 81,
+ 'NUMBER' => 84
+ },
+ GOTOS => {
+ 'filepart' => 87,
+ 'names' => 91,
+ 'nameargs' => 153,
+ 'filename' => 85,
+ 'name' => 82
+ }
+ },
+ {#State 56
+ DEFAULT => -103
+ },
+ {#State 57
+ ACTIONS => {
+ 'ASSIGN' => 154
+ },
+ DEFAULT => -112
+ },
+ {#State 58
+ DEFAULT => -146
+ },
+ {#State 59
+ DEFAULT => -15
+ },
+ {#State 60
+ DEFAULT => -176,
+ GOTOS => {
+ 'quoted' => 155
+ }
+ },
+ {#State 61
+ ACTIONS => {
+ "\"" => 89,
+ "\$" => 86,
+ 'LITERAL' => 88,
+ 'FILENAME' => 83,
+ 'IDENT' => 81,
+ 'NUMBER' => 84
+ },
+ GOTOS => {
+ 'filepart' => 87,
+ 'names' => 91,
+ 'nameargs' => 156,
+ 'filename' => 85,
+ 'name' => 82
+ }
+ },
+ {#State 62
+ ACTIONS => {
+ ";" => -16,
+ "+" => 157,
+ 'CAT' => 163,
+ 'CMPOP' => 164,
+ "?" => 158,
+ 'DIV' => 159,
+ 'MOD' => 165,
+ "/" => 166,
+ 'AND' => 160,
+ 'BINOP' => 161,
+ 'OR' => 162
+ },
+ DEFAULT => -26
+ },
+ {#State 63
+ DEFAULT => -13
+ },
+ {#State 64
+ DEFAULT => -36
+ },
+ {#State 65
+ ACTIONS => {
+ "\"" => 89,
+ "\$" => 86,
+ 'LITERAL' => 88,
+ 'FILENAME' => 83,
+ 'IDENT' => 81,
+ 'NUMBER' => 84
+ },
+ GOTOS => {
+ 'filepart' => 87,
+ 'names' => 91,
+ 'nameargs' => 167,
+ 'filename' => 85,
+ 'name' => 82
+ }
+ },
+ {#State 66
+ DEFAULT => -9
+ },
+ {#State 67
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'expr' => 168,
+ 'sterm' => 68,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 68
+ DEFAULT => -104
+ },
+ {#State 69
+ ACTIONS => {
+ "\$" => 43,
+ 'LITERAL' => 75,
+ 'IDENT' => 2,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'setlist' => 169,
+ 'item' => 39,
+ 'assign' => 19,
+ 'node' => 23,
+ 'ident' => 74
+ }
+ },
+ {#State 70
+ ACTIONS => {
+ "\$" => 43,
+ 'COMMA' => 171,
+ 'LITERAL' => 75,
+ 'IDENT' => 2,
+ "\${" => 37
+ },
+ DEFAULT => -19,
+ GOTOS => {
+ 'item' => 39,
+ 'assign' => 170,
+ 'node' => 23,
+ 'ident' => 74
+ }
+ },
+ {#State 71
+ DEFAULT => -8
+ },
+ {#State 72
+ DEFAULT => -1
+ },
+ {#State 73
+ DEFAULT => -21
+ },
+ {#State 74
+ ACTIONS => {
+ 'ASSIGN' => 172,
+ 'DOT' => 104
+ }
+ },
+ {#State 75
+ ACTIONS => {
+ 'ASSIGN' => 154
+ }
+ },
+ {#State 76
+ ACTIONS => {
+ 'COMMA' => 171,
+ 'LITERAL' => 75,
+ 'IDENT' => 2,
+ "\$" => 43,
+ "\${" => 37
+ },
+ DEFAULT => -30,
+ GOTOS => {
+ 'item' => 39,
+ 'assign' => 170,
+ 'node' => 23,
+ 'ident' => 74
+ }
+ },
+ {#State 77
+ ACTIONS => {
+ 'DOT' => 104
+ },
+ DEFAULT => -109
+ },
+ {#State 78
+ DEFAULT => -112
+ },
+ {#State 79
+ ACTIONS => {
+ 'CMPOP' => 164,
+ "?" => 158,
+ ";" => 173,
+ "+" => 157,
+ 'MOD' => 165,
+ 'DIV' => 159,
+ "/" => 166,
+ 'AND' => 160,
+ 'CAT' => 163,
+ 'BINOP' => 161,
+ 'OR' => 162
+ }
+ },
+ {#State 80
+ DEFAULT => -7
+ },
+ {#State 81
+ DEFAULT => -173
+ },
+ {#State 82
+ DEFAULT => -166
+ },
+ {#State 83
+ DEFAULT => -172
+ },
+ {#State 84
+ DEFAULT => -174
+ },
+ {#State 85
+ ACTIONS => {
+ 'DOT' => 174
+ },
+ DEFAULT => -168
+ },
+ {#State 86
+ ACTIONS => {
+ "\$" => 43,
+ 'IDENT' => 2,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 175
+ }
+ },
+ {#State 87
+ DEFAULT => -171
+ },
+ {#State 88
+ DEFAULT => -169
+ },
+ {#State 89
+ DEFAULT => -176,
+ GOTOS => {
+ 'quoted' => 176
+ }
+ },
+ {#State 90
+ DEFAULT => -35
+ },
+ {#State 91
+ ACTIONS => {
+ "+" => 177,
+ "(" => 178
+ },
+ DEFAULT => -156,
+ GOTOS => {
+ 'args' => 179
+ }
+ },
+ {#State 92
+ ACTIONS => {
+ "{" => 30,
+ 'COMMA' => 182,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "]" => 180,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'sterm' => 68,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 181,
+ 'lterm' => 56
+ }
+ },
+ {#State 93
+ ACTIONS => {
+ "]" => 183
+ }
+ },
+ {#State 94
+ DEFAULT => -107
+ },
+ {#State 95
+ DEFAULT => -116
+ },
+ {#State 96
+ ACTIONS => {
+ 'TO' => 184
+ },
+ DEFAULT => -104
+ },
+ {#State 97
+ ACTIONS => {
+ 'SET' => 1,
+ 'PERL' => 40,
+ 'NOT' => 38,
+ 'IDENT' => 2,
+ 'CLEAR' => 41,
+ 'UNLESS' => 3,
+ 'IF' => 44,
+ "\$" => 43,
+ 'STOP' => 6,
+ 'CALL' => 45,
+ 'THROW' => 8,
+ 'GET' => 47,
+ "[" => 9,
+ 'TRY' => 10,
+ 'LAST' => 49,
+ 'DEBUG' => 51,
+ 'RAWPERL' => 13,
+ 'META' => 15,
+ 'INCLUDE' => 17,
+ "(" => 53,
+ 'SWITCH' => 54,
+ 'MACRO' => 18,
+ 'WRAPPER' => 55,
+ ";" => -18,
+ 'FOR' => 21,
+ 'LITERAL' => 57,
+ 'NEXT' => 22,
+ "\"" => 60,
+ 'TEXT' => 24,
+ 'PROCESS' => 61,
+ 'RETURN' => 64,
+ 'FILTER' => 25,
+ 'INSERT' => 65,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ 'WHILE' => 67,
+ 'BLOCK' => 28,
+ 'DEFAULT' => 69,
+ "{" => 30,
+ 'USE' => 32,
+ 'VIEW' => 36,
+ "\${" => 37
+ },
+ DEFAULT => -3,
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 23,
+ 'rawperl' => 59,
+ 'term' => 58,
+ 'loop' => 4,
+ 'use' => 63,
+ 'expr' => 62,
+ 'capture' => 42,
+ 'statement' => 5,
+ 'view' => 7,
+ 'wrapper' => 46,
+ 'atomexpr' => 48,
+ 'chunk' => 11,
+ 'defblock' => 66,
+ 'atomdir' => 12,
+ 'anonblock' => 50,
+ 'sterm' => 68,
+ 'defblockname' => 14,
+ 'filter' => 29,
+ 'ident' => 16,
+ 'perl' => 31,
+ 'setlist' => 70,
+ 'chunks' => 33,
+ 'try' => 35,
+ 'switch' => 34,
+ 'assign' => 19,
+ 'block' => 185,
+ 'directive' => 71,
+ 'macro' => 20,
+ 'condition' => 73,
+ 'lterm' => 56
+ }
+ },
+ {#State 98
+ ACTIONS => {
+ ";" => 186
+ }
+ },
+ {#State 99
+ ACTIONS => {
+ 'ASSIGN' => 187
+ }
+ },
+ {#State 100
+ DEFAULT => -99
+ },
+ {#State 101
+ ACTIONS => {
+ 'COMMA' => 189,
+ 'IDENT' => 99
+ },
+ DEFAULT => -86,
+ GOTOS => {
+ 'meta' => 188
+ }
+ },
+ {#State 102
+ ACTIONS => {
+ ";" => 190
+ }
+ },
+ {#State 103
+ ACTIONS => {
+ 'COMMA' => 189,
+ 'IDENT' => 99
+ },
+ DEFAULT => -17,
+ GOTOS => {
+ 'meta' => 188
+ }
+ },
+ {#State 104
+ ACTIONS => {
+ "\$" => 43,
+ 'IDENT' => 2,
+ 'NUMBER' => 192,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 191
+ }
+ },
+ {#State 105
+ ACTIONS => {
+ 'SET' => 1,
+ 'PERL' => 40,
+ 'NOT' => 38,
+ 'IDENT' => 2,
+ 'CLEAR' => 41,
+ 'UNLESS' => 3,
+ 'IF' => 44,
+ "\$" => 43,
+ 'STOP' => 6,
+ 'CALL' => 45,
+ 'THROW' => 8,
+ 'GET' => 47,
+ "[" => 9,
+ 'TRY' => 10,
+ 'LAST' => 49,
+ 'DEBUG' => 51,
+ 'INCLUDE' => 17,
+ "(" => 53,
+ 'SWITCH' => 54,
+ 'WRAPPER' => 55,
+ 'FOR' => 21,
+ 'NEXT' => 22,
+ 'LITERAL' => 57,
+ "\"" => 60,
+ 'PROCESS' => 61,
+ 'FILTER' => 25,
+ 'RETURN' => 64,
+ 'INSERT' => 65,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ 'WHILE' => 67,
+ 'BLOCK' => 193,
+ 'DEFAULT' => 69,
+ "{" => 30,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 23,
+ 'term' => 58,
+ 'loop' => 4,
+ 'expr' => 195,
+ 'wrapper' => 46,
+ 'atomexpr' => 48,
+ 'atomdir' => 12,
+ 'mdir' => 194,
+ 'filter' => 29,
+ 'sterm' => 68,
+ 'ident' => 149,
+ 'perl' => 31,
+ 'setlist' => 70,
+ 'try' => 35,
+ 'switch' => 34,
+ 'assign' => 19,
+ 'directive' => 196,
+ 'condition' => 73,
+ 'lterm' => 56
+ }
+ },
+ {#State 106
+ DEFAULT => -33
+ },
+ {#State 107
+ ACTIONS => {
+ 'SET' => 1,
+ 'PERL' => 40,
+ 'NOT' => 38,
+ 'IDENT' => 2,
+ 'CLEAR' => 41,
+ 'UNLESS' => 3,
+ 'IF' => 44,
+ "\$" => 43,
+ 'STOP' => 6,
+ 'CALL' => 45,
+ 'THROW' => 8,
+ 'GET' => 47,
+ "[" => 9,
+ 'TRY' => 10,
+ 'LAST' => 49,
+ 'DEBUG' => 51,
+ 'INCLUDE' => 17,
+ "(" => 198,
+ 'SWITCH' => 54,
+ 'WRAPPER' => 55,
+ 'FOR' => 21,
+ 'NEXT' => 22,
+ 'LITERAL' => 57,
+ "\"" => 60,
+ 'PROCESS' => 61,
+ 'FILTER' => 25,
+ 'RETURN' => 64,
+ 'INSERT' => 65,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ 'WHILE' => 67,
+ 'BLOCK' => 193,
+ 'DEFAULT' => 69,
+ "{" => 30,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 23,
+ 'term' => 58,
+ 'loop' => 4,
+ 'expr' => 199,
+ 'wrapper' => 46,
+ 'atomexpr' => 48,
+ 'atomdir' => 12,
+ 'mdir' => 197,
+ 'filter' => 29,
+ 'sterm' => 68,
+ 'ident' => 149,
+ 'perl' => 31,
+ 'setlist' => 70,
+ 'try' => 35,
+ 'switch' => 34,
+ 'assign' => 19,
+ 'directive' => 196,
+ 'condition' => 73,
+ 'lterm' => 56
+ }
+ },
+ {#State 108
+ ACTIONS => {
+ 'IN' => 201,
+ 'ASSIGN' => 200
+ },
+ DEFAULT => -130
+ },
+ {#State 109
+ DEFAULT => -156,
+ GOTOS => {
+ 'args' => 202
+ }
+ },
+ {#State 110
+ ACTIONS => {
+ ";" => 203
+ }
+ },
+ {#State 111
+ ACTIONS => {
+ 'ASSIGN' => -130
+ },
+ DEFAULT => -173
+ },
+ {#State 112
+ ACTIONS => {
+ 'ASSIGN' => 204
+ }
+ },
+ {#State 113
+ DEFAULT => -159
+ },
+ {#State 114
+ ACTIONS => {
+ "\$" => 43,
+ 'IDENT' => 205,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 175
+ }
+ },
+ {#State 115
+ ACTIONS => {
+ ";" => 206
+ }
+ },
+ {#State 116
+ ACTIONS => {
+ 'ASSIGN' => -161
+ },
+ DEFAULT => -169
+ },
+ {#State 117
+ DEFAULT => -176,
+ GOTOS => {
+ 'quoted' => 207
+ }
+ },
+ {#State 118
+ DEFAULT => -158
+ },
+ {#State 119
+ ACTIONS => {
+ 'DOT' => 104
+ },
+ DEFAULT => -110
+ },
+ {#State 120
+ ACTIONS => {
+ 'ASSIGN' => 187
+ },
+ DEFAULT => -173
+ },
+ {#State 121
+ DEFAULT => -83
+ },
+ {#State 122
+ ACTIONS => {
+ 'DOT' => 174
+ },
+ DEFAULT => -84
+ },
+ {#State 123
+ ACTIONS => {
+ ";" => 208
+ }
+ },
+ {#State 124
+ DEFAULT => -85
+ },
+ {#State 125
+ ACTIONS => {
+ "}" => 209
+ }
+ },
+ {#State 126
+ ACTIONS => {
+ 'ASSIGN' => 210
+ }
+ },
+ {#State 127
+ DEFAULT => -122
+ },
+ {#State 128
+ ACTIONS => {
+ "\$" => 43,
+ 'COMMA' => 212,
+ 'LITERAL' => 129,
+ 'IDENT' => 2,
+ "\${" => 37
+ },
+ DEFAULT => -118,
+ GOTOS => {
+ 'item' => 126,
+ 'param' => 211
+ }
+ },
+ {#State 129
+ ACTIONS => {
+ 'ASSIGN' => 213
+ }
+ },
+ {#State 130
+ DEFAULT => -73
+ },
+ {#State 131
+ DEFAULT => -4
+ },
+ {#State 132
+ ACTIONS => {
+ ";" => 214
+ }
+ },
+ {#State 133
+ ACTIONS => {
+ "}" => 215
+ }
+ },
+ {#State 134
+ ACTIONS => {
+ 'DIV' => 159,
+ 'BINOP' => 161,
+ "+" => 157,
+ 'CAT' => 163,
+ 'CMPOP' => 164,
+ 'MOD' => 165,
+ "/" => 166
+ },
+ DEFAULT => -142
+ },
+ {#State 135
+ DEFAULT => -156,
+ GOTOS => {
+ 'args' => 216
+ }
+ },
+ {#State 136
+ DEFAULT => -76,
+ GOTOS => {
+ '@4-2' => 217
+ }
+ },
+ {#State 137
+ DEFAULT => -132
+ },
+ {#State 138
+ ACTIONS => {
+ 'CMPOP' => 164,
+ "?" => 158,
+ ";" => 218,
+ "+" => 157,
+ 'MOD' => 165,
+ 'DIV' => 159,
+ "/" => 166,
+ 'AND' => 160,
+ 'CAT' => 163,
+ 'BINOP' => 161,
+ 'OR' => 162
+ }
+ },
+ {#State 139
+ ACTIONS => {
+ "+" => 157,
+ 'CAT' => 163,
+ 'CMPOP' => 164,
+ "?" => 158,
+ 'DIV' => 159,
+ 'MOD' => 165,
+ "/" => 166,
+ 'AND' => 160,
+ 'BINOP' => 161,
+ 'OR' => 162
+ },
+ DEFAULT => -29
+ },
+ {#State 140
+ ACTIONS => {
+ "+" => 157,
+ 'CAT' => 163,
+ 'CMPOP' => 164,
+ "?" => 158,
+ 'DIV' => 159,
+ 'MOD' => 165,
+ "/" => 166,
+ 'AND' => 160,
+ 'BINOP' => 161,
+ 'OR' => 162
+ },
+ DEFAULT => -28
+ },
+ {#State 141
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'expr' => 219,
+ 'sterm' => 68,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 142
+ ACTIONS => {
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 108,
+ "\"" => 60,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'sterm' => 68,
+ 'item' => 39,
+ 'loopvar' => 220,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 109,
+ 'lterm' => 56
+ }
+ },
+ {#State 143
+ ACTIONS => {
+ "\"" => 117,
+ "\$" => 114,
+ 'LITERAL' => 116,
+ 'FILENAME' => 83,
+ 'IDENT' => 111,
+ 'NUMBER' => 84,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'names' => 91,
+ 'lvalue' => 112,
+ 'item' => 113,
+ 'name' => 82,
+ 'filepart' => 87,
+ 'filename' => 85,
+ 'nameargs' => 118,
+ 'lnameargs' => 221
+ }
+ },
+ {#State 144
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'expr' => 222,
+ 'sterm' => 68,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 145
+ ACTIONS => {
+ "\"" => 89,
+ "\$" => 86,
+ 'LITERAL' => 88,
+ 'FILENAME' => 83,
+ 'IDENT' => 81,
+ 'NUMBER' => 84
+ },
+ GOTOS => {
+ 'filepart' => 87,
+ 'names' => 91,
+ 'nameargs' => 223,
+ 'filename' => 85,
+ 'name' => 82
+ }
+ },
+ {#State 146
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'expr' => 224,
+ 'sterm' => 68,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 147
+ DEFAULT => -41
+ },
+ {#State 148
+ DEFAULT => 0
+ },
+ {#State 149
+ ACTIONS => {
+ 'DOT' => 104,
+ 'ASSIGN' => 172
+ },
+ DEFAULT => -109
+ },
+ {#State 150
+ ACTIONS => {
+ ")" => 225
+ }
+ },
+ {#State 151
+ ACTIONS => {
+ 'CMPOP' => 164,
+ "?" => 158,
+ "+" => 157,
+ 'MOD' => 165,
+ 'DIV' => 159,
+ "/" => 166,
+ 'AND' => 160,
+ 'CAT' => 163,
+ 'BINOP' => 161,
+ ")" => 226,
+ 'OR' => 162
+ }
+ },
+ {#State 152
+ ACTIONS => {
+ 'CMPOP' => 164,
+ "?" => 158,
+ ";" => 227,
+ "+" => 157,
+ 'MOD' => 165,
+ 'DIV' => 159,
+ "/" => 166,
+ 'AND' => 160,
+ 'CAT' => 163,
+ 'BINOP' => 161,
+ 'OR' => 162
+ }
+ },
+ {#State 153
+ ACTIONS => {
+ ";" => 228
+ }
+ },
+ {#State 154
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'expr' => 229,
+ 'sterm' => 68,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 155
+ ACTIONS => {
+ "\"" => 234,
+ 'TEXT' => 231,
+ ";" => 233,
+ "\$" => 43,
+ 'IDENT' => 2,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 230,
+ 'quotable' => 232
+ }
+ },
+ {#State 156
+ DEFAULT => -34
+ },
+ {#State 157
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'expr' => 235,
+ 'sterm' => 68,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 158
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'expr' => 236,
+ 'sterm' => 68,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 159
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'expr' => 237,
+ 'sterm' => 68,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 160
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'expr' => 238,
+ 'sterm' => 68,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 161
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'expr' => 239,
+ 'sterm' => 68,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 162
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'expr' => 240,
+ 'sterm' => 68,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 163
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'expr' => 241,
+ 'sterm' => 68,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 164
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'expr' => 242,
+ 'sterm' => 68,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 165
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'expr' => 243,
+ 'sterm' => 68,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 166
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'expr' => 244,
+ 'sterm' => 68,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 167
+ DEFAULT => -32
+ },
+ {#State 168
+ ACTIONS => {
+ 'CMPOP' => 164,
+ "?" => 158,
+ ";" => 245,
+ "+" => 157,
+ 'MOD' => 165,
+ 'DIV' => 159,
+ "/" => 166,
+ 'AND' => 160,
+ 'CAT' => 163,
+ 'BINOP' => 161,
+ 'OR' => 162
+ }
+ },
+ {#State 169
+ ACTIONS => {
+ 'COMMA' => 171,
+ 'LITERAL' => 75,
+ 'IDENT' => 2,
+ "\$" => 43,
+ "\${" => 37
+ },
+ DEFAULT => -31,
+ GOTOS => {
+ 'item' => 39,
+ 'assign' => 170,
+ 'node' => 23,
+ 'ident' => 74
+ }
+ },
+ {#State 170
+ DEFAULT => -147
+ },
+ {#State 171
+ DEFAULT => -148
+ },
+ {#State 172
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'expr' => 246,
+ 'sterm' => 68,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 173
+ ACTIONS => {
+ 'SET' => 1,
+ 'PERL' => 40,
+ 'NOT' => 38,
+ 'IDENT' => 2,
+ 'CLEAR' => 41,
+ 'UNLESS' => 3,
+ 'IF' => 44,
+ "\$" => 43,
+ 'STOP' => 6,
+ 'CALL' => 45,
+ 'THROW' => 8,
+ 'GET' => 47,
+ "[" => 9,
+ 'TRY' => 10,
+ 'LAST' => 49,
+ 'DEBUG' => 51,
+ 'RAWPERL' => 13,
+ 'META' => 15,
+ 'INCLUDE' => 17,
+ "(" => 53,
+ 'SWITCH' => 54,
+ 'MACRO' => 18,
+ 'WRAPPER' => 55,
+ ";" => -18,
+ 'FOR' => 21,
+ 'LITERAL' => 57,
+ 'NEXT' => 22,
+ "\"" => 60,
+ 'TEXT' => 24,
+ 'PROCESS' => 61,
+ 'RETURN' => 64,
+ 'FILTER' => 25,
+ 'INSERT' => 65,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ 'WHILE' => 67,
+ 'BLOCK' => 28,
+ 'DEFAULT' => 69,
+ "{" => 30,
+ 'USE' => 32,
+ 'VIEW' => 36,
+ "\${" => 37
+ },
+ DEFAULT => -3,
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 23,
+ 'rawperl' => 59,
+ 'term' => 58,
+ 'loop' => 4,
+ 'use' => 63,
+ 'expr' => 62,
+ 'capture' => 42,
+ 'statement' => 5,
+ 'view' => 7,
+ 'wrapper' => 46,
+ 'atomexpr' => 48,
+ 'chunk' => 11,
+ 'defblock' => 66,
+ 'atomdir' => 12,
+ 'anonblock' => 50,
+ 'sterm' => 68,
+ 'defblockname' => 14,
+ 'filter' => 29,
+ 'ident' => 16,
+ 'perl' => 31,
+ 'setlist' => 70,
+ 'chunks' => 33,
+ 'try' => 35,
+ 'switch' => 34,
+ 'assign' => 19,
+ 'block' => 247,
+ 'directive' => 71,
+ 'macro' => 20,
+ 'condition' => 73,
+ 'lterm' => 56
+ }
+ },
+ {#State 174
+ ACTIONS => {
+ 'FILENAME' => 83,
+ 'IDENT' => 81,
+ 'NUMBER' => 84
+ },
+ GOTOS => {
+ 'filepart' => 248
+ }
+ },
+ {#State 175
+ ACTIONS => {
+ 'DOT' => 104
+ },
+ DEFAULT => -156,
+ GOTOS => {
+ 'args' => 249
+ }
+ },
+ {#State 176
+ ACTIONS => {
+ "\"" => 250,
+ 'TEXT' => 231,
+ ";" => 233,
+ "\$" => 43,
+ 'IDENT' => 2,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 230,
+ 'quotable' => 232
+ }
+ },
+ {#State 177
+ ACTIONS => {
+ "\"" => 89,
+ 'LITERAL' => 88,
+ 'FILENAME' => 83,
+ 'IDENT' => 81,
+ 'NUMBER' => 84
+ },
+ GOTOS => {
+ 'filepart' => 87,
+ 'filename' => 85,
+ 'name' => 251
+ }
+ },
+ {#State 178
+ DEFAULT => -156,
+ GOTOS => {
+ 'args' => 252
+ }
+ },
+ {#State 179
+ ACTIONS => {
+ 'NOT' => 38,
+ 'LITERAL' => 256,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "{" => 30,
+ 'COMMA' => 258,
+ "(" => 53,
+ "\${" => 37
+ },
+ DEFAULT => -163,
+ GOTOS => {
+ 'expr' => 257,
+ 'sterm' => 68,
+ 'item' => 254,
+ 'param' => 255,
+ 'node' => 23,
+ 'ident' => 253,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 180
+ DEFAULT => -105
+ },
+ {#State 181
+ DEFAULT => -114
+ },
+ {#State 182
+ DEFAULT => -115
+ },
+ {#State 183
+ DEFAULT => -106
+ },
+ {#State 184
+ ACTIONS => {
+ "\"" => 60,
+ "\$" => 43,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ 'REF' => 27,
+ 'NUMBER' => 26,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'sterm' => 259,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77
+ }
+ },
+ {#State 185
+ ACTIONS => {
+ 'FINAL' => 260,
+ 'CATCH' => 262
+ },
+ DEFAULT => -72,
+ GOTOS => {
+ 'final' => 261
+ }
+ },
+ {#State 186
+ ACTIONS => {
+ 'TEXT' => 263
+ }
+ },
+ {#State 187
+ ACTIONS => {
+ "\"" => 266,
+ 'LITERAL' => 265,
+ 'NUMBER' => 264
+ }
+ },
+ {#State 188
+ DEFAULT => -97
+ },
+ {#State 189
+ DEFAULT => -98
+ },
+ {#State 190
+ ACTIONS => {
+ 'SET' => 1,
+ 'PERL' => 40,
+ 'NOT' => 38,
+ 'IDENT' => 2,
+ 'CLEAR' => 41,
+ 'UNLESS' => 3,
+ 'IF' => 44,
+ "\$" => 43,
+ 'STOP' => 6,
+ 'CALL' => 45,
+ 'THROW' => 8,
+ 'GET' => 47,
+ "[" => 9,
+ 'TRY' => 10,
+ 'LAST' => 49,
+ 'DEBUG' => 51,
+ 'RAWPERL' => 13,
+ 'META' => 15,
+ 'INCLUDE' => 17,
+ "(" => 53,
+ 'SWITCH' => 54,
+ 'MACRO' => 18,
+ 'WRAPPER' => 55,
+ ";" => -18,
+ 'FOR' => 21,
+ 'LITERAL' => 57,
+ 'NEXT' => 22,
+ "\"" => 60,
+ 'TEXT' => 24,
+ 'PROCESS' => 61,
+ 'RETURN' => 64,
+ 'FILTER' => 25,
+ 'INSERT' => 65,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ 'WHILE' => 67,
+ 'BLOCK' => 28,
+ 'DEFAULT' => 69,
+ "{" => 30,
+ 'USE' => 32,
+ 'VIEW' => 36,
+ "\${" => 37
+ },
+ DEFAULT => -3,
+ GOTOS => {
+ 'item' => 39,
+ 'loop' => 4,
+ 'capture' => 42,
+ 'statement' => 5,
+ 'view' => 7,
+ 'wrapper' => 46,
+ 'atomexpr' => 48,
+ 'chunk' => 11,
+ 'atomdir' => 12,
+ 'anonblock' => 50,
+ 'template' => 267,
+ 'defblockname' => 14,
+ 'ident' => 16,
+ 'assign' => 19,
+ 'macro' => 20,
+ 'lterm' => 56,
+ 'node' => 23,
+ 'term' => 58,
+ 'rawperl' => 59,
+ 'expr' => 62,
+ 'use' => 63,
+ 'defblock' => 66,
+ 'filter' => 29,
+ 'sterm' => 68,
+ 'perl' => 31,
+ 'chunks' => 33,
+ 'setlist' => 70,
+ 'switch' => 34,
+ 'try' => 35,
+ 'directive' => 71,
+ 'block' => 72,
+ 'condition' => 73
+ }
+ },
+ {#State 191
+ DEFAULT => -125
+ },
+ {#State 192
+ DEFAULT => -126
+ },
+ {#State 193
+ ACTIONS => {
+ ";" => 268
+ }
+ },
+ {#State 194
+ DEFAULT => -89
+ },
+ {#State 195
+ ACTIONS => {
+ ";" => -150,
+ "+" => 157,
+ 'LITERAL' => -150,
+ 'IDENT' => -150,
+ 'CAT' => 163,
+ "\$" => -150,
+ 'CMPOP' => 164,
+ "?" => 158,
+ 'DIV' => 159,
+ 'MOD' => 165,
+ 'COMMA' => -150,
+ "/" => 166,
+ 'AND' => 160,
+ 'BINOP' => 161,
+ 'OR' => 162,
+ "\${" => -150
+ },
+ DEFAULT => -26
+ },
+ {#State 196
+ DEFAULT => -92
+ },
+ {#State 197
+ DEFAULT => -91
+ },
+ {#State 198
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'LITERAL' => 57,
+ 'IDENT' => 269,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'expr' => 151,
+ 'sterm' => 68,
+ 'item' => 39,
+ 'assign' => 150,
+ 'margs' => 270,
+ 'node' => 23,
+ 'ident' => 149,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 199
+ ACTIONS => {
+ "+" => 157,
+ 'CAT' => 163,
+ 'CMPOP' => 164,
+ "?" => 158,
+ 'DIV' => 159,
+ 'MOD' => 165,
+ "/" => 166,
+ 'AND' => 160,
+ 'BINOP' => 161,
+ 'OR' => 162
+ },
+ DEFAULT => -26
+ },
+ {#State 200
+ ACTIONS => {
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'sterm' => 68,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 271,
+ 'lterm' => 56
+ }
+ },
+ {#State 201
+ ACTIONS => {
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'sterm' => 68,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 272,
+ 'lterm' => 56
+ }
+ },
+ {#State 202
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'COMMA' => 258,
+ 'LITERAL' => 256,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ DEFAULT => -64,
+ GOTOS => {
+ 'expr' => 257,
+ 'sterm' => 68,
+ 'item' => 254,
+ 'param' => 255,
+ 'node' => 23,
+ 'ident' => 253,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 203
+ DEFAULT => -56,
+ GOTOS => {
+ '@1-3' => 273
+ }
+ },
+ {#State 204
+ ACTIONS => {
+ "\"" => 89,
+ "\$" => 86,
+ 'LITERAL' => 88,
+ 'FILENAME' => 83,
+ 'IDENT' => 81,
+ 'NUMBER' => 84
+ },
+ GOTOS => {
+ 'filepart' => 87,
+ 'names' => 91,
+ 'nameargs' => 274,
+ 'filename' => 85,
+ 'name' => 82
+ }
+ },
+ {#State 205
+ ACTIONS => {
+ 'ASSIGN' => -132
+ },
+ DEFAULT => -130
+ },
+ {#State 206
+ ACTIONS => {
+ 'SET' => 1,
+ 'PERL' => 40,
+ 'NOT' => 38,
+ 'IDENT' => 2,
+ 'CLEAR' => 41,
+ 'UNLESS' => 3,
+ 'IF' => 44,
+ "\$" => 43,
+ 'STOP' => 6,
+ 'CALL' => 45,
+ 'THROW' => 8,
+ 'GET' => 47,
+ "[" => 9,
+ 'TRY' => 10,
+ 'LAST' => 49,
+ 'DEBUG' => 51,
+ 'RAWPERL' => 13,
+ 'META' => 15,
+ 'INCLUDE' => 17,
+ "(" => 53,
+ 'SWITCH' => 54,
+ 'MACRO' => 18,
+ 'WRAPPER' => 55,
+ ";" => -18,
+ 'FOR' => 21,
+ 'LITERAL' => 57,
+ 'NEXT' => 22,
+ "\"" => 60,
+ 'TEXT' => 24,
+ 'PROCESS' => 61,
+ 'RETURN' => 64,
+ 'FILTER' => 25,
+ 'INSERT' => 65,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ 'WHILE' => 67,
+ 'BLOCK' => 28,
+ 'DEFAULT' => 69,
+ "{" => 30,
+ 'USE' => 32,
+ 'VIEW' => 36,
+ "\${" => 37
+ },
+ DEFAULT => -3,
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 23,
+ 'rawperl' => 59,
+ 'term' => 58,
+ 'loop' => 4,
+ 'use' => 63,
+ 'expr' => 62,
+ 'capture' => 42,
+ 'statement' => 5,
+ 'view' => 7,
+ 'wrapper' => 46,
+ 'atomexpr' => 48,
+ 'chunk' => 11,
+ 'defblock' => 66,
+ 'atomdir' => 12,
+ 'anonblock' => 50,
+ 'sterm' => 68,
+ 'defblockname' => 14,
+ 'filter' => 29,
+ 'ident' => 16,
+ 'perl' => 31,
+ 'setlist' => 70,
+ 'chunks' => 33,
+ 'try' => 35,
+ 'switch' => 34,
+ 'assign' => 19,
+ 'block' => 275,
+ 'directive' => 71,
+ 'macro' => 20,
+ 'condition' => 73,
+ 'lterm' => 56
+ }
+ },
+ {#State 207
+ ACTIONS => {
+ "\"" => 276,
+ 'TEXT' => 231,
+ ";" => 233,
+ "\$" => 43,
+ 'IDENT' => 2,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 230,
+ 'quotable' => 232
+ }
+ },
+ {#State 208
+ ACTIONS => {
+ 'SET' => 1,
+ 'PERL' => 40,
+ 'NOT' => 38,
+ 'IDENT' => 2,
+ 'CLEAR' => 41,
+ 'UNLESS' => 3,
+ 'IF' => 44,
+ "\$" => 43,
+ 'STOP' => 6,
+ 'CALL' => 45,
+ 'THROW' => 8,
+ 'GET' => 47,
+ "[" => 9,
+ 'TRY' => 10,
+ 'LAST' => 49,
+ 'DEBUG' => 51,
+ 'RAWPERL' => 13,
+ 'META' => 15,
+ 'INCLUDE' => 17,
+ "(" => 53,
+ 'SWITCH' => 54,
+ 'MACRO' => 18,
+ 'WRAPPER' => 55,
+ ";" => -18,
+ 'FOR' => 21,
+ 'LITERAL' => 57,
+ 'NEXT' => 22,
+ "\"" => 60,
+ 'TEXT' => 24,
+ 'PROCESS' => 61,
+ 'RETURN' => 64,
+ 'FILTER' => 25,
+ 'INSERT' => 65,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ 'WHILE' => 67,
+ 'BLOCK' => 28,
+ 'DEFAULT' => 69,
+ "{" => 30,
+ 'USE' => 32,
+ 'VIEW' => 36,
+ "\${" => 37
+ },
+ DEFAULT => -3,
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 23,
+ 'rawperl' => 59,
+ 'term' => 58,
+ 'loop' => 4,
+ 'use' => 63,
+ 'expr' => 62,
+ 'capture' => 42,
+ 'statement' => 5,
+ 'view' => 7,
+ 'wrapper' => 46,
+ 'atomexpr' => 48,
+ 'chunk' => 11,
+ 'defblock' => 66,
+ 'atomdir' => 12,
+ 'anonblock' => 50,
+ 'sterm' => 68,
+ 'defblockname' => 14,
+ 'filter' => 29,
+ 'ident' => 16,
+ 'perl' => 31,
+ 'setlist' => 70,
+ 'chunks' => 33,
+ 'try' => 35,
+ 'switch' => 34,
+ 'assign' => 19,
+ 'block' => 277,
+ 'directive' => 71,
+ 'macro' => 20,
+ 'condition' => 73,
+ 'lterm' => 56
+ }
+ },
+ {#State 209
+ DEFAULT => -108
+ },
+ {#State 210
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'expr' => 278,
+ 'sterm' => 68,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 211
+ DEFAULT => -120
+ },
+ {#State 212
+ DEFAULT => -121
+ },
+ {#State 213
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'expr' => 279,
+ 'sterm' => 68,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 214
+ DEFAULT => -74,
+ GOTOS => {
+ '@3-3' => 280
+ }
+ },
+ {#State 215
+ DEFAULT => -131
+ },
+ {#State 216
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'COMMA' => 258,
+ 'LITERAL' => 256,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ ")" => 281,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'expr' => 257,
+ 'sterm' => 68,
+ 'item' => 254,
+ 'param' => 255,
+ 'node' => 23,
+ 'ident' => 253,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 217
+ ACTIONS => {
+ 'SET' => 1,
+ 'PERL' => 40,
+ 'NOT' => 38,
+ 'IDENT' => 2,
+ 'CLEAR' => 41,
+ 'UNLESS' => 3,
+ 'IF' => 44,
+ "\$" => 43,
+ 'STOP' => 6,
+ 'CALL' => 45,
+ 'THROW' => 8,
+ 'GET' => 47,
+ "[" => 9,
+ 'TRY' => 10,
+ 'LAST' => 49,
+ 'DEBUG' => 51,
+ 'RAWPERL' => 13,
+ 'META' => 15,
+ 'INCLUDE' => 17,
+ "(" => 53,
+ 'SWITCH' => 54,
+ 'MACRO' => 18,
+ 'WRAPPER' => 55,
+ ";" => -18,
+ 'FOR' => 21,
+ 'LITERAL' => 57,
+ 'NEXT' => 22,
+ "\"" => 60,
+ 'TEXT' => 24,
+ 'PROCESS' => 61,
+ 'RETURN' => 64,
+ 'FILTER' => 25,
+ 'INSERT' => 65,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ 'WHILE' => 67,
+ 'BLOCK' => 28,
+ 'DEFAULT' => 69,
+ "{" => 30,
+ 'USE' => 32,
+ 'VIEW' => 36,
+ "\${" => 37
+ },
+ DEFAULT => -3,
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 23,
+ 'rawperl' => 59,
+ 'term' => 58,
+ 'loop' => 4,
+ 'use' => 63,
+ 'expr' => 62,
+ 'capture' => 42,
+ 'statement' => 5,
+ 'view' => 7,
+ 'wrapper' => 46,
+ 'atomexpr' => 48,
+ 'chunk' => 11,
+ 'defblock' => 66,
+ 'atomdir' => 12,
+ 'anonblock' => 50,
+ 'sterm' => 68,
+ 'defblockname' => 14,
+ 'filter' => 29,
+ 'ident' => 16,
+ 'perl' => 31,
+ 'setlist' => 70,
+ 'chunks' => 33,
+ 'try' => 35,
+ 'switch' => 34,
+ 'assign' => 19,
+ 'block' => 282,
+ 'directive' => 71,
+ 'macro' => 20,
+ 'condition' => 73,
+ 'lterm' => 56
+ }
+ },
+ {#State 218
+ ACTIONS => {
+ 'SET' => 1,
+ 'PERL' => 40,
+ 'NOT' => 38,
+ 'IDENT' => 2,
+ 'CLEAR' => 41,
+ 'UNLESS' => 3,
+ 'IF' => 44,
+ "\$" => 43,
+ 'STOP' => 6,
+ 'CALL' => 45,
+ 'THROW' => 8,
+ 'GET' => 47,
+ "[" => 9,
+ 'TRY' => 10,
+ 'LAST' => 49,
+ 'DEBUG' => 51,
+ 'RAWPERL' => 13,
+ 'META' => 15,
+ 'INCLUDE' => 17,
+ "(" => 53,
+ 'SWITCH' => 54,
+ 'MACRO' => 18,
+ 'WRAPPER' => 55,
+ ";" => -18,
+ 'FOR' => 21,
+ 'LITERAL' => 57,
+ 'NEXT' => 22,
+ "\"" => 60,
+ 'TEXT' => 24,
+ 'PROCESS' => 61,
+ 'RETURN' => 64,
+ 'FILTER' => 25,
+ 'INSERT' => 65,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ 'WHILE' => 67,
+ 'BLOCK' => 28,
+ 'DEFAULT' => 69,
+ "{" => 30,
+ 'USE' => 32,
+ 'VIEW' => 36,
+ "\${" => 37
+ },
+ DEFAULT => -3,
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 23,
+ 'rawperl' => 59,
+ 'term' => 58,
+ 'loop' => 4,
+ 'use' => 63,
+ 'expr' => 62,
+ 'capture' => 42,
+ 'statement' => 5,
+ 'view' => 7,
+ 'wrapper' => 46,
+ 'atomexpr' => 48,
+ 'chunk' => 11,
+ 'defblock' => 66,
+ 'atomdir' => 12,
+ 'anonblock' => 50,
+ 'sterm' => 68,
+ 'defblockname' => 14,
+ 'filter' => 29,
+ 'ident' => 16,
+ 'perl' => 31,
+ 'setlist' => 70,
+ 'chunks' => 33,
+ 'try' => 35,
+ 'switch' => 34,
+ 'assign' => 19,
+ 'block' => 283,
+ 'directive' => 71,
+ 'macro' => 20,
+ 'condition' => 73,
+ 'lterm' => 56
+ }
+ },
+ {#State 219
+ ACTIONS => {
+ 'CMPOP' => 164,
+ "?" => 158,
+ "+" => 157,
+ 'MOD' => 165,
+ 'DIV' => 159,
+ "/" => 166,
+ 'AND' => 160,
+ 'CAT' => 163,
+ 'BINOP' => 161,
+ 'OR' => 162
+ },
+ DEFAULT => -47
+ },
+ {#State 220
+ DEFAULT => -58
+ },
+ {#State 221
+ DEFAULT => -81
+ },
+ {#State 222
+ ACTIONS => {
+ 'CMPOP' => 164,
+ "?" => 158,
+ "+" => 157,
+ 'MOD' => 165,
+ 'DIV' => 159,
+ "/" => 166,
+ 'AND' => 160,
+ 'CAT' => 163,
+ 'BINOP' => 161,
+ 'OR' => 162
+ },
+ DEFAULT => -45
+ },
+ {#State 223
+ DEFAULT => -66
+ },
+ {#State 224
+ ACTIONS => {
+ 'CMPOP' => 164,
+ "?" => 158,
+ "+" => 157,
+ 'MOD' => 165,
+ 'DIV' => 159,
+ "/" => 166,
+ 'AND' => 160,
+ 'CAT' => 163,
+ 'BINOP' => 161,
+ 'OR' => 162
+ },
+ DEFAULT => -61
+ },
+ {#State 225
+ DEFAULT => -144
+ },
+ {#State 226
+ DEFAULT => -145
+ },
+ {#State 227
+ ACTIONS => {
+ 'SET' => 1,
+ 'PERL' => 40,
+ 'NOT' => 38,
+ 'IDENT' => 2,
+ 'CLEAR' => 41,
+ 'UNLESS' => 3,
+ 'IF' => 44,
+ "\$" => 43,
+ 'STOP' => 6,
+ 'CALL' => 45,
+ 'THROW' => 8,
+ 'GET' => 47,
+ "[" => 9,
+ 'TRY' => 10,
+ 'LAST' => 49,
+ 'DEBUG' => 51,
+ 'RAWPERL' => 13,
+ 'META' => 15,
+ 'INCLUDE' => 17,
+ "(" => 53,
+ 'SWITCH' => 54,
+ 'MACRO' => 18,
+ 'WRAPPER' => 55,
+ ";" => -18,
+ 'FOR' => 21,
+ 'LITERAL' => 57,
+ 'NEXT' => 22,
+ "\"" => 60,
+ 'TEXT' => 24,
+ 'PROCESS' => 61,
+ 'RETURN' => 64,
+ 'FILTER' => 25,
+ 'INSERT' => 65,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ 'WHILE' => 67,
+ 'BLOCK' => 28,
+ 'DEFAULT' => 69,
+ "{" => 30,
+ 'USE' => 32,
+ 'VIEW' => 36,
+ "\${" => 37
+ },
+ DEFAULT => -3,
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 23,
+ 'rawperl' => 59,
+ 'term' => 58,
+ 'loop' => 4,
+ 'use' => 63,
+ 'expr' => 62,
+ 'capture' => 42,
+ 'statement' => 5,
+ 'view' => 7,
+ 'wrapper' => 46,
+ 'atomexpr' => 48,
+ 'chunk' => 11,
+ 'defblock' => 66,
+ 'atomdir' => 12,
+ 'anonblock' => 50,
+ 'sterm' => 68,
+ 'defblockname' => 14,
+ 'filter' => 29,
+ 'ident' => 16,
+ 'perl' => 31,
+ 'setlist' => 70,
+ 'chunks' => 33,
+ 'try' => 35,
+ 'switch' => 34,
+ 'assign' => 19,
+ 'block' => 284,
+ 'directive' => 71,
+ 'macro' => 20,
+ 'condition' => 73,
+ 'lterm' => 56
+ }
+ },
+ {#State 228
+ ACTIONS => {
+ 'SET' => 1,
+ 'PERL' => 40,
+ 'NOT' => 38,
+ 'IDENT' => 2,
+ 'CLEAR' => 41,
+ 'UNLESS' => 3,
+ 'IF' => 44,
+ "\$" => 43,
+ 'STOP' => 6,
+ 'CALL' => 45,
+ 'THROW' => 8,
+ 'GET' => 47,
+ "[" => 9,
+ 'TRY' => 10,
+ 'LAST' => 49,
+ 'DEBUG' => 51,
+ 'RAWPERL' => 13,
+ 'META' => 15,
+ 'INCLUDE' => 17,
+ "(" => 53,
+ 'SWITCH' => 54,
+ 'MACRO' => 18,
+ 'WRAPPER' => 55,
+ ";" => -18,
+ 'FOR' => 21,
+ 'LITERAL' => 57,
+ 'NEXT' => 22,
+ "\"" => 60,
+ 'TEXT' => 24,
+ 'PROCESS' => 61,
+ 'RETURN' => 64,
+ 'FILTER' => 25,
+ 'INSERT' => 65,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ 'WHILE' => 67,
+ 'BLOCK' => 28,
+ 'DEFAULT' => 69,
+ "{" => 30,
+ 'USE' => 32,
+ 'VIEW' => 36,
+ "\${" => 37
+ },
+ DEFAULT => -3,
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 23,
+ 'rawperl' => 59,
+ 'term' => 58,
+ 'loop' => 4,
+ 'use' => 63,
+ 'expr' => 62,
+ 'capture' => 42,
+ 'statement' => 5,
+ 'view' => 7,
+ 'wrapper' => 46,
+ 'atomexpr' => 48,
+ 'chunk' => 11,
+ 'defblock' => 66,
+ 'atomdir' => 12,
+ 'anonblock' => 50,
+ 'sterm' => 68,
+ 'defblockname' => 14,
+ 'filter' => 29,
+ 'ident' => 16,
+ 'perl' => 31,
+ 'setlist' => 70,
+ 'chunks' => 33,
+ 'try' => 35,
+ 'switch' => 34,
+ 'assign' => 19,
+ 'block' => 285,
+ 'directive' => 71,
+ 'macro' => 20,
+ 'condition' => 73,
+ 'lterm' => 56
+ }
+ },
+ {#State 229
+ ACTIONS => {
+ "+" => 157,
+ 'CAT' => 163,
+ 'CMPOP' => 164,
+ "?" => 158,
+ 'DIV' => 159,
+ 'MOD' => 165,
+ "/" => 166,
+ 'AND' => 160,
+ 'BINOP' => 161,
+ 'OR' => 162
+ },
+ DEFAULT => -151
+ },
+ {#State 230
+ ACTIONS => {
+ 'DOT' => 104
+ },
+ DEFAULT => -177
+ },
+ {#State 231
+ DEFAULT => -178
+ },
+ {#State 232
+ DEFAULT => -175
+ },
+ {#State 233
+ DEFAULT => -179
+ },
+ {#State 234
+ DEFAULT => -111
+ },
+ {#State 235
+ ACTIONS => {
+ 'DIV' => 159,
+ 'MOD' => 165,
+ "/" => 166
+ },
+ DEFAULT => -135
+ },
+ {#State 236
+ ACTIONS => {
+ ":" => 286,
+ 'CMPOP' => 164,
+ "?" => 158,
+ "+" => 157,
+ 'MOD' => 165,
+ 'DIV' => 159,
+ "/" => 166,
+ 'AND' => 160,
+ 'CAT' => 163,
+ 'BINOP' => 161,
+ 'OR' => 162
+ }
+ },
+ {#State 237
+ ACTIONS => {
+ 'MOD' => 165
+ },
+ DEFAULT => -136
+ },
+ {#State 238
+ ACTIONS => {
+ 'DIV' => 159,
+ 'BINOP' => 161,
+ "+" => 157,
+ 'CAT' => 163,
+ 'CMPOP' => 164,
+ 'MOD' => 165,
+ "/" => 166
+ },
+ DEFAULT => -140
+ },
+ {#State 239
+ ACTIONS => {
+ 'DIV' => 159,
+ "+" => 157,
+ 'MOD' => 165,
+ "/" => 166
+ },
+ DEFAULT => -133
+ },
+ {#State 240
+ ACTIONS => {
+ 'DIV' => 159,
+ 'BINOP' => 161,
+ "+" => 157,
+ 'CAT' => 163,
+ 'CMPOP' => 164,
+ 'MOD' => 165,
+ "/" => 166
+ },
+ DEFAULT => -141
+ },
+ {#State 241
+ ACTIONS => {
+ 'DIV' => 159,
+ 'BINOP' => 161,
+ "+" => 157,
+ 'CMPOP' => 164,
+ 'MOD' => 165,
+ "/" => 166
+ },
+ DEFAULT => -139
+ },
+ {#State 242
+ ACTIONS => {
+ 'DIV' => 159,
+ 'BINOP' => 161,
+ "+" => 157,
+ 'MOD' => 165,
+ "/" => 166
+ },
+ DEFAULT => -138
+ },
+ {#State 243
+ DEFAULT => -137
+ },
+ {#State 244
+ ACTIONS => {
+ 'DIV' => 159,
+ 'MOD' => 165
+ },
+ DEFAULT => -134
+ },
+ {#State 245
+ DEFAULT => -59,
+ GOTOS => {
+ '@2-3' => 287
+ }
+ },
+ {#State 246
+ ACTIONS => {
+ "+" => 157,
+ 'CAT' => 163,
+ 'CMPOP' => 164,
+ "?" => 158,
+ 'DIV' => 159,
+ 'MOD' => 165,
+ "/" => 166,
+ 'AND' => 160,
+ 'BINOP' => 161,
+ 'OR' => 162
+ },
+ DEFAULT => -150
+ },
+ {#State 247
+ ACTIONS => {
+ 'ELSIF' => 290,
+ 'ELSE' => 288
+ },
+ DEFAULT => -50,
+ GOTOS => {
+ 'else' => 289
+ }
+ },
+ {#State 248
+ DEFAULT => -170
+ },
+ {#State 249
+ ACTIONS => {
+ 'NOT' => 38,
+ 'LITERAL' => 256,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "{" => 30,
+ 'COMMA' => 258,
+ "(" => 53,
+ "\${" => 37
+ },
+ DEFAULT => -162,
+ GOTOS => {
+ 'expr' => 257,
+ 'sterm' => 68,
+ 'item' => 254,
+ 'param' => 255,
+ 'node' => 23,
+ 'ident' => 253,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 250
+ DEFAULT => -167
+ },
+ {#State 251
+ DEFAULT => -165
+ },
+ {#State 252
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'COMMA' => 258,
+ 'LITERAL' => 256,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ ")" => 291,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'expr' => 257,
+ 'sterm' => 68,
+ 'item' => 254,
+ 'param' => 255,
+ 'node' => 23,
+ 'ident' => 253,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 253
+ ACTIONS => {
+ 'DOT' => 104,
+ 'ASSIGN' => 292
+ },
+ DEFAULT => -109
+ },
+ {#State 254
+ ACTIONS => {
+ "(" => 135,
+ 'ASSIGN' => 210
+ },
+ DEFAULT => -128
+ },
+ {#State 255
+ DEFAULT => -153
+ },
+ {#State 256
+ ACTIONS => {
+ 'ASSIGN' => 213
+ },
+ DEFAULT => -112
+ },
+ {#State 257
+ ACTIONS => {
+ "+" => 157,
+ 'CAT' => 163,
+ 'CMPOP' => 164,
+ "?" => 158,
+ 'DIV' => 159,
+ 'MOD' => 165,
+ "/" => 166,
+ 'AND' => 160,
+ 'BINOP' => 161,
+ 'OR' => 162
+ },
+ DEFAULT => -152
+ },
+ {#State 258
+ DEFAULT => -155
+ },
+ {#State 259
+ DEFAULT => -117
+ },
+ {#State 260
+ ACTIONS => {
+ ";" => 293
+ }
+ },
+ {#State 261
+ ACTIONS => {
+ 'END' => 294
+ }
+ },
+ {#State 262
+ ACTIONS => {
+ ";" => 296,
+ 'DEFAULT' => 297,
+ 'FILENAME' => 83,
+ 'IDENT' => 81,
+ 'NUMBER' => 84
+ },
+ GOTOS => {
+ 'filepart' => 87,
+ 'filename' => 295
+ }
+ },
+ {#State 263
+ ACTIONS => {
+ 'END' => 298
+ }
+ },
+ {#State 264
+ DEFAULT => -102
+ },
+ {#State 265
+ DEFAULT => -100
+ },
+ {#State 266
+ ACTIONS => {
+ 'TEXT' => 299
+ }
+ },
+ {#State 267
+ ACTIONS => {
+ 'END' => 300
+ }
+ },
+ {#State 268
+ ACTIONS => {
+ 'SET' => 1,
+ 'PERL' => 40,
+ 'NOT' => 38,
+ 'IDENT' => 2,
+ 'CLEAR' => 41,
+ 'UNLESS' => 3,
+ 'IF' => 44,
+ "\$" => 43,
+ 'STOP' => 6,
+ 'CALL' => 45,
+ 'THROW' => 8,
+ 'GET' => 47,
+ "[" => 9,
+ 'TRY' => 10,
+ 'LAST' => 49,
+ 'DEBUG' => 51,
+ 'RAWPERL' => 13,
+ 'META' => 15,
+ 'INCLUDE' => 17,
+ "(" => 53,
+ 'SWITCH' => 54,
+ 'MACRO' => 18,
+ 'WRAPPER' => 55,
+ ";" => -18,
+ 'FOR' => 21,
+ 'LITERAL' => 57,
+ 'NEXT' => 22,
+ "\"" => 60,
+ 'TEXT' => 24,
+ 'PROCESS' => 61,
+ 'RETURN' => 64,
+ 'FILTER' => 25,
+ 'INSERT' => 65,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ 'WHILE' => 67,
+ 'BLOCK' => 28,
+ 'DEFAULT' => 69,
+ "{" => 30,
+ 'USE' => 32,
+ 'VIEW' => 36,
+ "\${" => 37
+ },
+ DEFAULT => -3,
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 23,
+ 'rawperl' => 59,
+ 'term' => 58,
+ 'loop' => 4,
+ 'use' => 63,
+ 'expr' => 62,
+ 'capture' => 42,
+ 'statement' => 5,
+ 'view' => 7,
+ 'wrapper' => 46,
+ 'atomexpr' => 48,
+ 'chunk' => 11,
+ 'defblock' => 66,
+ 'atomdir' => 12,
+ 'anonblock' => 50,
+ 'sterm' => 68,
+ 'defblockname' => 14,
+ 'filter' => 29,
+ 'ident' => 16,
+ 'perl' => 31,
+ 'setlist' => 70,
+ 'chunks' => 33,
+ 'try' => 35,
+ 'switch' => 34,
+ 'assign' => 19,
+ 'block' => 301,
+ 'directive' => 71,
+ 'macro' => 20,
+ 'condition' => 73,
+ 'lterm' => 56
+ }
+ },
+ {#State 269
+ ACTIONS => {
+ 'IDENT' => -96,
+ ")" => -96,
+ 'COMMA' => -96
+ },
+ DEFAULT => -130
+ },
+ {#State 270
+ ACTIONS => {
+ 'COMMA' => 304,
+ 'IDENT' => 302,
+ ")" => 303
+ }
+ },
+ {#State 271
+ DEFAULT => -156,
+ GOTOS => {
+ 'args' => 305
+ }
+ },
+ {#State 272
+ DEFAULT => -156,
+ GOTOS => {
+ 'args' => 306
+ }
+ },
+ {#State 273
+ ACTIONS => {
+ 'SET' => 1,
+ 'PERL' => 40,
+ 'NOT' => 38,
+ 'IDENT' => 2,
+ 'CLEAR' => 41,
+ 'UNLESS' => 3,
+ 'IF' => 44,
+ "\$" => 43,
+ 'STOP' => 6,
+ 'CALL' => 45,
+ 'THROW' => 8,
+ 'GET' => 47,
+ "[" => 9,
+ 'TRY' => 10,
+ 'LAST' => 49,
+ 'DEBUG' => 51,
+ 'RAWPERL' => 13,
+ 'META' => 15,
+ 'INCLUDE' => 17,
+ "(" => 53,
+ 'SWITCH' => 54,
+ 'MACRO' => 18,
+ 'WRAPPER' => 55,
+ ";" => -18,
+ 'FOR' => 21,
+ 'LITERAL' => 57,
+ 'NEXT' => 22,
+ "\"" => 60,
+ 'TEXT' => 24,
+ 'PROCESS' => 61,
+ 'RETURN' => 64,
+ 'FILTER' => 25,
+ 'INSERT' => 65,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ 'WHILE' => 67,
+ 'BLOCK' => 28,
+ 'DEFAULT' => 69,
+ "{" => 30,
+ 'USE' => 32,
+ 'VIEW' => 36,
+ "\${" => 37
+ },
+ DEFAULT => -3,
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 23,
+ 'rawperl' => 59,
+ 'term' => 58,
+ 'loop' => 4,
+ 'use' => 63,
+ 'expr' => 62,
+ 'capture' => 42,
+ 'statement' => 5,
+ 'view' => 7,
+ 'wrapper' => 46,
+ 'atomexpr' => 48,
+ 'chunk' => 11,
+ 'defblock' => 66,
+ 'atomdir' => 12,
+ 'anonblock' => 50,
+ 'sterm' => 68,
+ 'defblockname' => 14,
+ 'filter' => 29,
+ 'ident' => 16,
+ 'perl' => 31,
+ 'setlist' => 70,
+ 'chunks' => 33,
+ 'try' => 35,
+ 'switch' => 34,
+ 'assign' => 19,
+ 'block' => 307,
+ 'directive' => 71,
+ 'macro' => 20,
+ 'condition' => 73,
+ 'lterm' => 56
+ }
+ },
+ {#State 274
+ DEFAULT => -157
+ },
+ {#State 275
+ ACTIONS => {
+ 'END' => 308
+ }
+ },
+ {#State 276
+ ACTIONS => {
+ 'ASSIGN' => -160
+ },
+ DEFAULT => -167
+ },
+ {#State 277
+ ACTIONS => {
+ 'END' => 309
+ }
+ },
+ {#State 278
+ ACTIONS => {
+ 'DIV' => 159,
+ 'AND' => 160,
+ 'BINOP' => 161,
+ 'OR' => 162,
+ "+" => 157,
+ 'CAT' => 163,
+ 'CMPOP' => 164,
+ "?" => 158,
+ 'MOD' => 165,
+ "/" => 166
+ },
+ DEFAULT => -124
+ },
+ {#State 279
+ ACTIONS => {
+ 'DIV' => 159,
+ 'AND' => 160,
+ 'BINOP' => 161,
+ 'OR' => 162,
+ "+" => 157,
+ 'CAT' => 163,
+ 'CMPOP' => 164,
+ "?" => 158,
+ 'MOD' => 165,
+ "/" => 166
+ },
+ DEFAULT => -123
+ },
+ {#State 280
+ ACTIONS => {
+ 'SET' => 1,
+ 'PERL' => 40,
+ 'NOT' => 38,
+ 'IDENT' => 2,
+ 'CLEAR' => 41,
+ 'UNLESS' => 3,
+ 'IF' => 44,
+ "\$" => 43,
+ 'STOP' => 6,
+ 'CALL' => 45,
+ 'THROW' => 8,
+ 'GET' => 47,
+ "[" => 9,
+ 'TRY' => 10,
+ 'LAST' => 49,
+ 'DEBUG' => 51,
+ 'RAWPERL' => 13,
+ 'META' => 15,
+ 'INCLUDE' => 17,
+ "(" => 53,
+ 'SWITCH' => 54,
+ 'MACRO' => 18,
+ 'WRAPPER' => 55,
+ ";" => -18,
+ 'FOR' => 21,
+ 'LITERAL' => 57,
+ 'NEXT' => 22,
+ "\"" => 60,
+ 'TEXT' => 24,
+ 'PROCESS' => 61,
+ 'RETURN' => 64,
+ 'FILTER' => 25,
+ 'INSERT' => 65,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ 'WHILE' => 67,
+ 'BLOCK' => 28,
+ 'DEFAULT' => 69,
+ "{" => 30,
+ 'USE' => 32,
+ 'VIEW' => 36,
+ "\${" => 37
+ },
+ DEFAULT => -3,
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 23,
+ 'rawperl' => 59,
+ 'term' => 58,
+ 'loop' => 4,
+ 'use' => 63,
+ 'expr' => 62,
+ 'capture' => 42,
+ 'statement' => 5,
+ 'view' => 7,
+ 'wrapper' => 46,
+ 'atomexpr' => 48,
+ 'chunk' => 11,
+ 'defblock' => 66,
+ 'atomdir' => 12,
+ 'anonblock' => 50,
+ 'sterm' => 68,
+ 'defblockname' => 14,
+ 'filter' => 29,
+ 'ident' => 16,
+ 'perl' => 31,
+ 'setlist' => 70,
+ 'chunks' => 33,
+ 'try' => 35,
+ 'switch' => 34,
+ 'assign' => 19,
+ 'block' => 310,
+ 'directive' => 71,
+ 'macro' => 20,
+ 'condition' => 73,
+ 'lterm' => 56
+ }
+ },
+ {#State 281
+ DEFAULT => -129
+ },
+ {#State 282
+ ACTIONS => {
+ 'END' => 311
+ }
+ },
+ {#State 283
+ ACTIONS => {
+ 'ELSIF' => 290,
+ 'ELSE' => 288
+ },
+ DEFAULT => -50,
+ GOTOS => {
+ 'else' => 312
+ }
+ },
+ {#State 284
+ ACTIONS => {
+ 'CASE' => 313
+ },
+ DEFAULT => -55,
+ GOTOS => {
+ 'case' => 314
+ }
+ },
+ {#State 285
+ ACTIONS => {
+ 'END' => 315
+ }
+ },
+ {#State 286
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'expr' => 316,
+ 'sterm' => 68,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 287
+ ACTIONS => {
+ 'SET' => 1,
+ 'PERL' => 40,
+ 'NOT' => 38,
+ 'IDENT' => 2,
+ 'CLEAR' => 41,
+ 'UNLESS' => 3,
+ 'IF' => 44,
+ "\$" => 43,
+ 'STOP' => 6,
+ 'CALL' => 45,
+ 'THROW' => 8,
+ 'GET' => 47,
+ "[" => 9,
+ 'TRY' => 10,
+ 'LAST' => 49,
+ 'DEBUG' => 51,
+ 'RAWPERL' => 13,
+ 'META' => 15,
+ 'INCLUDE' => 17,
+ "(" => 53,
+ 'SWITCH' => 54,
+ 'MACRO' => 18,
+ 'WRAPPER' => 55,
+ ";" => -18,
+ 'FOR' => 21,
+ 'LITERAL' => 57,
+ 'NEXT' => 22,
+ "\"" => 60,
+ 'TEXT' => 24,
+ 'PROCESS' => 61,
+ 'RETURN' => 64,
+ 'FILTER' => 25,
+ 'INSERT' => 65,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ 'WHILE' => 67,
+ 'BLOCK' => 28,
+ 'DEFAULT' => 69,
+ "{" => 30,
+ 'USE' => 32,
+ 'VIEW' => 36,
+ "\${" => 37
+ },
+ DEFAULT => -3,
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 23,
+ 'rawperl' => 59,
+ 'term' => 58,
+ 'loop' => 4,
+ 'use' => 63,
+ 'expr' => 62,
+ 'capture' => 42,
+ 'statement' => 5,
+ 'view' => 7,
+ 'wrapper' => 46,
+ 'atomexpr' => 48,
+ 'chunk' => 11,
+ 'defblock' => 66,
+ 'atomdir' => 12,
+ 'anonblock' => 50,
+ 'sterm' => 68,
+ 'defblockname' => 14,
+ 'filter' => 29,
+ 'ident' => 16,
+ 'perl' => 31,
+ 'setlist' => 70,
+ 'chunks' => 33,
+ 'try' => 35,
+ 'switch' => 34,
+ 'assign' => 19,
+ 'block' => 317,
+ 'directive' => 71,
+ 'macro' => 20,
+ 'condition' => 73,
+ 'lterm' => 56
+ }
+ },
+ {#State 288
+ ACTIONS => {
+ ";" => 318
+ }
+ },
+ {#State 289
+ ACTIONS => {
+ 'END' => 319
+ }
+ },
+ {#State 290
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'expr' => 320,
+ 'sterm' => 68,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 291
+ DEFAULT => -164
+ },
+ {#State 292
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'expr' => 321,
+ 'sterm' => 68,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 293
+ ACTIONS => {
+ 'SET' => 1,
+ 'PERL' => 40,
+ 'NOT' => 38,
+ 'IDENT' => 2,
+ 'CLEAR' => 41,
+ 'UNLESS' => 3,
+ 'IF' => 44,
+ "\$" => 43,
+ 'STOP' => 6,
+ 'CALL' => 45,
+ 'THROW' => 8,
+ 'GET' => 47,
+ "[" => 9,
+ 'TRY' => 10,
+ 'LAST' => 49,
+ 'DEBUG' => 51,
+ 'RAWPERL' => 13,
+ 'META' => 15,
+ 'INCLUDE' => 17,
+ "(" => 53,
+ 'SWITCH' => 54,
+ 'MACRO' => 18,
+ 'WRAPPER' => 55,
+ ";" => -18,
+ 'FOR' => 21,
+ 'LITERAL' => 57,
+ 'NEXT' => 22,
+ "\"" => 60,
+ 'TEXT' => 24,
+ 'PROCESS' => 61,
+ 'RETURN' => 64,
+ 'FILTER' => 25,
+ 'INSERT' => 65,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ 'WHILE' => 67,
+ 'BLOCK' => 28,
+ 'DEFAULT' => 69,
+ "{" => 30,
+ 'USE' => 32,
+ 'VIEW' => 36,
+ "\${" => 37
+ },
+ DEFAULT => -3,
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 23,
+ 'rawperl' => 59,
+ 'term' => 58,
+ 'loop' => 4,
+ 'use' => 63,
+ 'expr' => 62,
+ 'capture' => 42,
+ 'statement' => 5,
+ 'view' => 7,
+ 'wrapper' => 46,
+ 'atomexpr' => 48,
+ 'chunk' => 11,
+ 'defblock' => 66,
+ 'atomdir' => 12,
+ 'anonblock' => 50,
+ 'sterm' => 68,
+ 'defblockname' => 14,
+ 'filter' => 29,
+ 'ident' => 16,
+ 'perl' => 31,
+ 'setlist' => 70,
+ 'chunks' => 33,
+ 'try' => 35,
+ 'switch' => 34,
+ 'assign' => 19,
+ 'block' => 322,
+ 'directive' => 71,
+ 'macro' => 20,
+ 'condition' => 73,
+ 'lterm' => 56
+ }
+ },
+ {#State 294
+ DEFAULT => -67
+ },
+ {#State 295
+ ACTIONS => {
+ 'DOT' => 174,
+ ";" => 323
+ }
+ },
+ {#State 296
+ ACTIONS => {
+ 'SET' => 1,
+ 'PERL' => 40,
+ 'NOT' => 38,
+ 'IDENT' => 2,
+ 'CLEAR' => 41,
+ 'UNLESS' => 3,
+ 'IF' => 44,
+ "\$" => 43,
+ 'STOP' => 6,
+ 'CALL' => 45,
+ 'THROW' => 8,
+ 'GET' => 47,
+ "[" => 9,
+ 'TRY' => 10,
+ 'LAST' => 49,
+ 'DEBUG' => 51,
+ 'RAWPERL' => 13,
+ 'META' => 15,
+ 'INCLUDE' => 17,
+ "(" => 53,
+ 'SWITCH' => 54,
+ 'MACRO' => 18,
+ 'WRAPPER' => 55,
+ ";" => -18,
+ 'FOR' => 21,
+ 'LITERAL' => 57,
+ 'NEXT' => 22,
+ "\"" => 60,
+ 'TEXT' => 24,
+ 'PROCESS' => 61,
+ 'RETURN' => 64,
+ 'FILTER' => 25,
+ 'INSERT' => 65,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ 'WHILE' => 67,
+ 'BLOCK' => 28,
+ 'DEFAULT' => 69,
+ "{" => 30,
+ 'USE' => 32,
+ 'VIEW' => 36,
+ "\${" => 37
+ },
+ DEFAULT => -3,
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 23,
+ 'rawperl' => 59,
+ 'term' => 58,
+ 'loop' => 4,
+ 'use' => 63,
+ 'expr' => 62,
+ 'capture' => 42,
+ 'statement' => 5,
+ 'view' => 7,
+ 'wrapper' => 46,
+ 'atomexpr' => 48,
+ 'chunk' => 11,
+ 'defblock' => 66,
+ 'atomdir' => 12,
+ 'anonblock' => 50,
+ 'sterm' => 68,
+ 'defblockname' => 14,
+ 'filter' => 29,
+ 'ident' => 16,
+ 'perl' => 31,
+ 'setlist' => 70,
+ 'chunks' => 33,
+ 'try' => 35,
+ 'switch' => 34,
+ 'assign' => 19,
+ 'block' => 324,
+ 'directive' => 71,
+ 'macro' => 20,
+ 'condition' => 73,
+ 'lterm' => 56
+ }
+ },
+ {#State 297
+ ACTIONS => {
+ ";" => 325
+ }
+ },
+ {#State 298
+ DEFAULT => -79
+ },
+ {#State 299
+ ACTIONS => {
+ "\"" => 326
+ }
+ },
+ {#State 300
+ DEFAULT => -82
+ },
+ {#State 301
+ ACTIONS => {
+ 'END' => 327
+ }
+ },
+ {#State 302
+ DEFAULT => -94
+ },
+ {#State 303
+ ACTIONS => {
+ 'SET' => 1,
+ 'PERL' => 40,
+ 'NOT' => 38,
+ 'IDENT' => 2,
+ 'CLEAR' => 41,
+ 'UNLESS' => 3,
+ 'IF' => 44,
+ "\$" => 43,
+ 'STOP' => 6,
+ 'CALL' => 45,
+ 'THROW' => 8,
+ 'GET' => 47,
+ "[" => 9,
+ 'TRY' => 10,
+ 'LAST' => 49,
+ 'DEBUG' => 51,
+ 'INCLUDE' => 17,
+ "(" => 53,
+ 'SWITCH' => 54,
+ 'WRAPPER' => 55,
+ 'FOR' => 21,
+ 'NEXT' => 22,
+ 'LITERAL' => 57,
+ "\"" => 60,
+ 'PROCESS' => 61,
+ 'FILTER' => 25,
+ 'RETURN' => 64,
+ 'INSERT' => 65,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ 'WHILE' => 67,
+ 'BLOCK' => 193,
+ 'DEFAULT' => 69,
+ "{" => 30,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 23,
+ 'term' => 58,
+ 'loop' => 4,
+ 'expr' => 199,
+ 'wrapper' => 46,
+ 'atomexpr' => 48,
+ 'atomdir' => 12,
+ 'mdir' => 328,
+ 'filter' => 29,
+ 'sterm' => 68,
+ 'ident' => 149,
+ 'perl' => 31,
+ 'setlist' => 70,
+ 'try' => 35,
+ 'switch' => 34,
+ 'assign' => 19,
+ 'directive' => 196,
+ 'condition' => 73,
+ 'lterm' => 56
+ }
+ },
+ {#State 304
+ DEFAULT => -95
+ },
+ {#State 305
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'COMMA' => 258,
+ 'LITERAL' => 256,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ DEFAULT => -62,
+ GOTOS => {
+ 'expr' => 257,
+ 'sterm' => 68,
+ 'item' => 254,
+ 'param' => 255,
+ 'node' => 23,
+ 'ident' => 253,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 306
+ ACTIONS => {
+ 'NOT' => 38,
+ "{" => 30,
+ 'COMMA' => 258,
+ 'LITERAL' => 256,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "(" => 53,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ DEFAULT => -63,
+ GOTOS => {
+ 'expr' => 257,
+ 'sterm' => 68,
+ 'item' => 254,
+ 'param' => 255,
+ 'node' => 23,
+ 'ident' => 253,
+ 'term' => 58,
+ 'lterm' => 56
+ }
+ },
+ {#State 307
+ ACTIONS => {
+ 'END' => 329
+ }
+ },
+ {#State 308
+ DEFAULT => -80
+ },
+ {#State 309
+ DEFAULT => -88
+ },
+ {#State 310
+ ACTIONS => {
+ 'END' => 330
+ }
+ },
+ {#State 311
+ DEFAULT => -77
+ },
+ {#State 312
+ ACTIONS => {
+ 'END' => 331
+ }
+ },
+ {#State 313
+ ACTIONS => {
+ ";" => 332,
+ 'DEFAULT' => 334,
+ "{" => 30,
+ 'LITERAL' => 78,
+ 'IDENT' => 2,
+ "\"" => 60,
+ "\$" => 43,
+ "[" => 9,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ "\${" => 37
+ },
+ GOTOS => {
+ 'sterm' => 68,
+ 'item' => 39,
+ 'node' => 23,
+ 'ident' => 77,
+ 'term' => 333,
+ 'lterm' => 56
+ }
+ },
+ {#State 314
+ ACTIONS => {
+ 'END' => 335
+ }
+ },
+ {#State 315
+ DEFAULT => -65
+ },
+ {#State 316
+ ACTIONS => {
+ 'DIV' => 159,
+ 'AND' => 160,
+ 'BINOP' => 161,
+ 'OR' => 162,
+ "+" => 157,
+ 'CAT' => 163,
+ 'CMPOP' => 164,
+ "?" => 158,
+ 'MOD' => 165,
+ "/" => 166
+ },
+ DEFAULT => -143
+ },
+ {#State 317
+ ACTIONS => {
+ 'END' => 336
+ }
+ },
+ {#State 318
+ ACTIONS => {
+ 'SET' => 1,
+ 'PERL' => 40,
+ 'NOT' => 38,
+ 'IDENT' => 2,
+ 'CLEAR' => 41,
+ 'UNLESS' => 3,
+ 'IF' => 44,
+ "\$" => 43,
+ 'STOP' => 6,
+ 'CALL' => 45,
+ 'THROW' => 8,
+ 'GET' => 47,
+ "[" => 9,
+ 'TRY' => 10,
+ 'LAST' => 49,
+ 'DEBUG' => 51,
+ 'RAWPERL' => 13,
+ 'META' => 15,
+ 'INCLUDE' => 17,
+ "(" => 53,
+ 'SWITCH' => 54,
+ 'MACRO' => 18,
+ 'WRAPPER' => 55,
+ ";" => -18,
+ 'FOR' => 21,
+ 'LITERAL' => 57,
+ 'NEXT' => 22,
+ "\"" => 60,
+ 'TEXT' => 24,
+ 'PROCESS' => 61,
+ 'RETURN' => 64,
+ 'FILTER' => 25,
+ 'INSERT' => 65,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ 'WHILE' => 67,
+ 'BLOCK' => 28,
+ 'DEFAULT' => 69,
+ "{" => 30,
+ 'USE' => 32,
+ 'VIEW' => 36,
+ "\${" => 37
+ },
+ DEFAULT => -3,
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 23,
+ 'rawperl' => 59,
+ 'term' => 58,
+ 'loop' => 4,
+ 'use' => 63,
+ 'expr' => 62,
+ 'capture' => 42,
+ 'statement' => 5,
+ 'view' => 7,
+ 'wrapper' => 46,
+ 'atomexpr' => 48,
+ 'chunk' => 11,
+ 'defblock' => 66,
+ 'atomdir' => 12,
+ 'anonblock' => 50,
+ 'sterm' => 68,
+ 'defblockname' => 14,
+ 'filter' => 29,
+ 'ident' => 16,
+ 'perl' => 31,
+ 'setlist' => 70,
+ 'chunks' => 33,
+ 'try' => 35,
+ 'switch' => 34,
+ 'assign' => 19,
+ 'block' => 337,
+ 'directive' => 71,
+ 'macro' => 20,
+ 'condition' => 73,
+ 'lterm' => 56
+ }
+ },
+ {#State 319
+ DEFAULT => -46
+ },
+ {#State 320
+ ACTIONS => {
+ 'CMPOP' => 164,
+ "?" => 158,
+ ";" => 338,
+ "+" => 157,
+ 'MOD' => 165,
+ 'DIV' => 159,
+ "/" => 166,
+ 'AND' => 160,
+ 'CAT' => 163,
+ 'BINOP' => 161,
+ 'OR' => 162
+ }
+ },
+ {#State 321
+ ACTIONS => {
+ "+" => 157,
+ 'CAT' => 163,
+ 'CMPOP' => 164,
+ "?" => 158,
+ 'DIV' => 159,
+ 'MOD' => 165,
+ "/" => 166,
+ 'AND' => 160,
+ 'BINOP' => 161,
+ 'OR' => 162
+ },
+ DEFAULT => -154
+ },
+ {#State 322
+ DEFAULT => -71
+ },
+ {#State 323
+ ACTIONS => {
+ 'SET' => 1,
+ 'PERL' => 40,
+ 'NOT' => 38,
+ 'IDENT' => 2,
+ 'CLEAR' => 41,
+ 'UNLESS' => 3,
+ 'IF' => 44,
+ "\$" => 43,
+ 'STOP' => 6,
+ 'CALL' => 45,
+ 'THROW' => 8,
+ 'GET' => 47,
+ "[" => 9,
+ 'TRY' => 10,
+ 'LAST' => 49,
+ 'DEBUG' => 51,
+ 'RAWPERL' => 13,
+ 'META' => 15,
+ 'INCLUDE' => 17,
+ "(" => 53,
+ 'SWITCH' => 54,
+ 'MACRO' => 18,
+ 'WRAPPER' => 55,
+ ";" => -18,
+ 'FOR' => 21,
+ 'LITERAL' => 57,
+ 'NEXT' => 22,
+ "\"" => 60,
+ 'TEXT' => 24,
+ 'PROCESS' => 61,
+ 'RETURN' => 64,
+ 'FILTER' => 25,
+ 'INSERT' => 65,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ 'WHILE' => 67,
+ 'BLOCK' => 28,
+ 'DEFAULT' => 69,
+ "{" => 30,
+ 'USE' => 32,
+ 'VIEW' => 36,
+ "\${" => 37
+ },
+ DEFAULT => -3,
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 23,
+ 'rawperl' => 59,
+ 'term' => 58,
+ 'loop' => 4,
+ 'use' => 63,
+ 'expr' => 62,
+ 'capture' => 42,
+ 'statement' => 5,
+ 'view' => 7,
+ 'wrapper' => 46,
+ 'atomexpr' => 48,
+ 'chunk' => 11,
+ 'defblock' => 66,
+ 'atomdir' => 12,
+ 'anonblock' => 50,
+ 'sterm' => 68,
+ 'defblockname' => 14,
+ 'filter' => 29,
+ 'ident' => 16,
+ 'perl' => 31,
+ 'setlist' => 70,
+ 'chunks' => 33,
+ 'try' => 35,
+ 'switch' => 34,
+ 'assign' => 19,
+ 'block' => 339,
+ 'directive' => 71,
+ 'macro' => 20,
+ 'condition' => 73,
+ 'lterm' => 56
+ }
+ },
+ {#State 324
+ ACTIONS => {
+ 'FINAL' => 260,
+ 'CATCH' => 262
+ },
+ DEFAULT => -72,
+ GOTOS => {
+ 'final' => 340
+ }
+ },
+ {#State 325
+ ACTIONS => {
+ 'SET' => 1,
+ 'PERL' => 40,
+ 'NOT' => 38,
+ 'IDENT' => 2,
+ 'CLEAR' => 41,
+ 'UNLESS' => 3,
+ 'IF' => 44,
+ "\$" => 43,
+ 'STOP' => 6,
+ 'CALL' => 45,
+ 'THROW' => 8,
+ 'GET' => 47,
+ "[" => 9,
+ 'TRY' => 10,
+ 'LAST' => 49,
+ 'DEBUG' => 51,
+ 'RAWPERL' => 13,
+ 'META' => 15,
+ 'INCLUDE' => 17,
+ "(" => 53,
+ 'SWITCH' => 54,
+ 'MACRO' => 18,
+ 'WRAPPER' => 55,
+ ";" => -18,
+ 'FOR' => 21,
+ 'LITERAL' => 57,
+ 'NEXT' => 22,
+ "\"" => 60,
+ 'TEXT' => 24,
+ 'PROCESS' => 61,
+ 'RETURN' => 64,
+ 'FILTER' => 25,
+ 'INSERT' => 65,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ 'WHILE' => 67,
+ 'BLOCK' => 28,
+ 'DEFAULT' => 69,
+ "{" => 30,
+ 'USE' => 32,
+ 'VIEW' => 36,
+ "\${" => 37
+ },
+ DEFAULT => -3,
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 23,
+ 'rawperl' => 59,
+ 'term' => 58,
+ 'loop' => 4,
+ 'use' => 63,
+ 'expr' => 62,
+ 'capture' => 42,
+ 'statement' => 5,
+ 'view' => 7,
+ 'wrapper' => 46,
+ 'atomexpr' => 48,
+ 'chunk' => 11,
+ 'defblock' => 66,
+ 'atomdir' => 12,
+ 'anonblock' => 50,
+ 'sterm' => 68,
+ 'defblockname' => 14,
+ 'filter' => 29,
+ 'ident' => 16,
+ 'perl' => 31,
+ 'setlist' => 70,
+ 'chunks' => 33,
+ 'try' => 35,
+ 'switch' => 34,
+ 'assign' => 19,
+ 'block' => 341,
+ 'directive' => 71,
+ 'macro' => 20,
+ 'condition' => 73,
+ 'lterm' => 56
+ }
+ },
+ {#State 326
+ DEFAULT => -101
+ },
+ {#State 327
+ DEFAULT => -93
+ },
+ {#State 328
+ DEFAULT => -90
+ },
+ {#State 329
+ DEFAULT => -57
+ },
+ {#State 330
+ DEFAULT => -75
+ },
+ {#State 331
+ DEFAULT => -44
+ },
+ {#State 332
+ ACTIONS => {
+ 'SET' => 1,
+ 'PERL' => 40,
+ 'NOT' => 38,
+ 'IDENT' => 2,
+ 'CLEAR' => 41,
+ 'UNLESS' => 3,
+ 'IF' => 44,
+ "\$" => 43,
+ 'STOP' => 6,
+ 'CALL' => 45,
+ 'THROW' => 8,
+ 'GET' => 47,
+ "[" => 9,
+ 'TRY' => 10,
+ 'LAST' => 49,
+ 'DEBUG' => 51,
+ 'RAWPERL' => 13,
+ 'META' => 15,
+ 'INCLUDE' => 17,
+ "(" => 53,
+ 'SWITCH' => 54,
+ 'MACRO' => 18,
+ 'WRAPPER' => 55,
+ ";" => -18,
+ 'FOR' => 21,
+ 'LITERAL' => 57,
+ 'NEXT' => 22,
+ "\"" => 60,
+ 'TEXT' => 24,
+ 'PROCESS' => 61,
+ 'RETURN' => 64,
+ 'FILTER' => 25,
+ 'INSERT' => 65,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ 'WHILE' => 67,
+ 'BLOCK' => 28,
+ 'DEFAULT' => 69,
+ "{" => 30,
+ 'USE' => 32,
+ 'VIEW' => 36,
+ "\${" => 37
+ },
+ DEFAULT => -3,
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 23,
+ 'rawperl' => 59,
+ 'term' => 58,
+ 'loop' => 4,
+ 'use' => 63,
+ 'expr' => 62,
+ 'capture' => 42,
+ 'statement' => 5,
+ 'view' => 7,
+ 'wrapper' => 46,
+ 'atomexpr' => 48,
+ 'chunk' => 11,
+ 'defblock' => 66,
+ 'atomdir' => 12,
+ 'anonblock' => 50,
+ 'sterm' => 68,
+ 'defblockname' => 14,
+ 'filter' => 29,
+ 'ident' => 16,
+ 'perl' => 31,
+ 'setlist' => 70,
+ 'chunks' => 33,
+ 'try' => 35,
+ 'switch' => 34,
+ 'assign' => 19,
+ 'block' => 342,
+ 'directive' => 71,
+ 'macro' => 20,
+ 'condition' => 73,
+ 'lterm' => 56
+ }
+ },
+ {#State 333
+ ACTIONS => {
+ ";" => 343
+ }
+ },
+ {#State 334
+ ACTIONS => {
+ ";" => 344
+ }
+ },
+ {#State 335
+ DEFAULT => -51
+ },
+ {#State 336
+ DEFAULT => -60
+ },
+ {#State 337
+ DEFAULT => -49
+ },
+ {#State 338
+ ACTIONS => {
+ 'SET' => 1,
+ 'PERL' => 40,
+ 'NOT' => 38,
+ 'IDENT' => 2,
+ 'CLEAR' => 41,
+ 'UNLESS' => 3,
+ 'IF' => 44,
+ "\$" => 43,
+ 'STOP' => 6,
+ 'CALL' => 45,
+ 'THROW' => 8,
+ 'GET' => 47,
+ "[" => 9,
+ 'TRY' => 10,
+ 'LAST' => 49,
+ 'DEBUG' => 51,
+ 'RAWPERL' => 13,
+ 'META' => 15,
+ 'INCLUDE' => 17,
+ "(" => 53,
+ 'SWITCH' => 54,
+ 'MACRO' => 18,
+ 'WRAPPER' => 55,
+ ";" => -18,
+ 'FOR' => 21,
+ 'LITERAL' => 57,
+ 'NEXT' => 22,
+ "\"" => 60,
+ 'TEXT' => 24,
+ 'PROCESS' => 61,
+ 'RETURN' => 64,
+ 'FILTER' => 25,
+ 'INSERT' => 65,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ 'WHILE' => 67,
+ 'BLOCK' => 28,
+ 'DEFAULT' => 69,
+ "{" => 30,
+ 'USE' => 32,
+ 'VIEW' => 36,
+ "\${" => 37
+ },
+ DEFAULT => -3,
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 23,
+ 'rawperl' => 59,
+ 'term' => 58,
+ 'loop' => 4,
+ 'use' => 63,
+ 'expr' => 62,
+ 'capture' => 42,
+ 'statement' => 5,
+ 'view' => 7,
+ 'wrapper' => 46,
+ 'atomexpr' => 48,
+ 'chunk' => 11,
+ 'defblock' => 66,
+ 'atomdir' => 12,
+ 'anonblock' => 50,
+ 'sterm' => 68,
+ 'defblockname' => 14,
+ 'filter' => 29,
+ 'ident' => 16,
+ 'perl' => 31,
+ 'setlist' => 70,
+ 'chunks' => 33,
+ 'try' => 35,
+ 'switch' => 34,
+ 'assign' => 19,
+ 'block' => 345,
+ 'directive' => 71,
+ 'macro' => 20,
+ 'condition' => 73,
+ 'lterm' => 56
+ }
+ },
+ {#State 339
+ ACTIONS => {
+ 'FINAL' => 260,
+ 'CATCH' => 262
+ },
+ DEFAULT => -72,
+ GOTOS => {
+ 'final' => 346
+ }
+ },
+ {#State 340
+ DEFAULT => -70
+ },
+ {#State 341
+ ACTIONS => {
+ 'FINAL' => 260,
+ 'CATCH' => 262
+ },
+ DEFAULT => -72,
+ GOTOS => {
+ 'final' => 347
+ }
+ },
+ {#State 342
+ DEFAULT => -54
+ },
+ {#State 343
+ ACTIONS => {
+ 'SET' => 1,
+ 'PERL' => 40,
+ 'NOT' => 38,
+ 'IDENT' => 2,
+ 'CLEAR' => 41,
+ 'UNLESS' => 3,
+ 'IF' => 44,
+ "\$" => 43,
+ 'STOP' => 6,
+ 'CALL' => 45,
+ 'THROW' => 8,
+ 'GET' => 47,
+ "[" => 9,
+ 'TRY' => 10,
+ 'LAST' => 49,
+ 'DEBUG' => 51,
+ 'RAWPERL' => 13,
+ 'META' => 15,
+ 'INCLUDE' => 17,
+ "(" => 53,
+ 'SWITCH' => 54,
+ 'MACRO' => 18,
+ 'WRAPPER' => 55,
+ ";" => -18,
+ 'FOR' => 21,
+ 'LITERAL' => 57,
+ 'NEXT' => 22,
+ "\"" => 60,
+ 'TEXT' => 24,
+ 'PROCESS' => 61,
+ 'RETURN' => 64,
+ 'FILTER' => 25,
+ 'INSERT' => 65,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ 'WHILE' => 67,
+ 'BLOCK' => 28,
+ 'DEFAULT' => 69,
+ "{" => 30,
+ 'USE' => 32,
+ 'VIEW' => 36,
+ "\${" => 37
+ },
+ DEFAULT => -3,
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 23,
+ 'rawperl' => 59,
+ 'term' => 58,
+ 'loop' => 4,
+ 'use' => 63,
+ 'expr' => 62,
+ 'capture' => 42,
+ 'statement' => 5,
+ 'view' => 7,
+ 'wrapper' => 46,
+ 'atomexpr' => 48,
+ 'chunk' => 11,
+ 'defblock' => 66,
+ 'atomdir' => 12,
+ 'anonblock' => 50,
+ 'sterm' => 68,
+ 'defblockname' => 14,
+ 'filter' => 29,
+ 'ident' => 16,
+ 'perl' => 31,
+ 'setlist' => 70,
+ 'chunks' => 33,
+ 'try' => 35,
+ 'switch' => 34,
+ 'assign' => 19,
+ 'block' => 348,
+ 'directive' => 71,
+ 'macro' => 20,
+ 'condition' => 73,
+ 'lterm' => 56
+ }
+ },
+ {#State 344
+ ACTIONS => {
+ 'SET' => 1,
+ 'PERL' => 40,
+ 'NOT' => 38,
+ 'IDENT' => 2,
+ 'CLEAR' => 41,
+ 'UNLESS' => 3,
+ 'IF' => 44,
+ "\$" => 43,
+ 'STOP' => 6,
+ 'CALL' => 45,
+ 'THROW' => 8,
+ 'GET' => 47,
+ "[" => 9,
+ 'TRY' => 10,
+ 'LAST' => 49,
+ 'DEBUG' => 51,
+ 'RAWPERL' => 13,
+ 'META' => 15,
+ 'INCLUDE' => 17,
+ "(" => 53,
+ 'SWITCH' => 54,
+ 'MACRO' => 18,
+ 'WRAPPER' => 55,
+ ";" => -18,
+ 'FOR' => 21,
+ 'LITERAL' => 57,
+ 'NEXT' => 22,
+ "\"" => 60,
+ 'TEXT' => 24,
+ 'PROCESS' => 61,
+ 'RETURN' => 64,
+ 'FILTER' => 25,
+ 'INSERT' => 65,
+ 'NUMBER' => 26,
+ 'REF' => 27,
+ 'WHILE' => 67,
+ 'BLOCK' => 28,
+ 'DEFAULT' => 69,
+ "{" => 30,
+ 'USE' => 32,
+ 'VIEW' => 36,
+ "\${" => 37
+ },
+ DEFAULT => -3,
+ GOTOS => {
+ 'item' => 39,
+ 'node' => 23,
+ 'rawperl' => 59,
+ 'term' => 58,
+ 'loop' => 4,
+ 'use' => 63,
+ 'expr' => 62,
+ 'capture' => 42,
+ 'statement' => 5,
+ 'view' => 7,
+ 'wrapper' => 46,
+ 'atomexpr' => 48,
+ 'chunk' => 11,
+ 'defblock' => 66,
+ 'atomdir' => 12,
+ 'anonblock' => 50,
+ 'sterm' => 68,
+ 'defblockname' => 14,
+ 'filter' => 29,
+ 'ident' => 16,
+ 'perl' => 31,
+ 'setlist' => 70,
+ 'chunks' => 33,
+ 'try' => 35,
+ 'switch' => 34,
+ 'assign' => 19,
+ 'block' => 349,
+ 'directive' => 71,
+ 'macro' => 20,
+ 'condition' => 73,
+ 'lterm' => 56
+ }
+ },
+ {#State 345
+ ACTIONS => {
+ 'ELSIF' => 290,
+ 'ELSE' => 288
+ },
+ DEFAULT => -50,
+ GOTOS => {
+ 'else' => 350
+ }
+ },
+ {#State 346
+ DEFAULT => -68
+ },
+ {#State 347
+ DEFAULT => -69
+ },
+ {#State 348
+ ACTIONS => {
+ 'CASE' => 313
+ },
+ DEFAULT => -55,
+ GOTOS => {
+ 'case' => 351
+ }
+ },
+ {#State 349
+ DEFAULT => -53
+ },
+ {#State 350
+ DEFAULT => -48
+ },
+ {#State 351
+ DEFAULT => -52
+ }
+];
+
+
+#========================================================================
+# Rules
+#========================================================================
+
+$RULES = [
+ [#Rule 0
+ '$start', 2, undef
+ ],
+ [#Rule 1
+ 'template', 1,
+sub
+#line 64 "Parser.yp"
+{ $factory->template($_[1]) }
+ ],
+ [#Rule 2
+ 'block', 1,
+sub
+#line 67 "Parser.yp"
+{ $factory->block($_[1]) }
+ ],
+ [#Rule 3
+ 'block', 0,
+sub
+#line 68 "Parser.yp"
+{ $factory->block() }
+ ],
+ [#Rule 4
+ 'chunks', 2,
+sub
+#line 71 "Parser.yp"
+{ push(@{$_[1]}, $_[2])
+ if defined $_[2]; $_[1] }
+ ],
+ [#Rule 5
+ 'chunks', 1,
+sub
+#line 73 "Parser.yp"
+{ defined $_[1] ? [ $_[1] ] : [ ] }
+ ],
+ [#Rule 6
+ 'chunk', 1,
+sub
+#line 76 "Parser.yp"
+{ $factory->textblock($_[1]) }
+ ],
+ [#Rule 7
+ 'chunk', 2,
+sub
+#line 77 "Parser.yp"
+{ return '' unless $_[1];
+ $_[0]->location() . $_[1];
+ }
+ ],
+ [#Rule 8
+ 'statement', 1, undef
+ ],
+ [#Rule 9
+ 'statement', 1, undef
+ ],
+ [#Rule 10
+ 'statement', 1, undef
+ ],
+ [#Rule 11
+ 'statement', 1, undef
+ ],
+ [#Rule 12
+ 'statement', 1, undef
+ ],
+ [#Rule 13
+ 'statement', 1, undef
+ ],
+ [#Rule 14
+ 'statement', 1, undef
+ ],
+ [#Rule 15
+ 'statement', 1, undef
+ ],
+ [#Rule 16
+ 'statement', 1,
+sub
+#line 90 "Parser.yp"
+{ $factory->get($_[1]) }
+ ],
+ [#Rule 17
+ 'statement', 2,
+sub
+#line 91 "Parser.yp"
+{ $_[0]->add_metadata($_[2]); }
+ ],
+ [#Rule 18
+ 'statement', 0, undef
+ ],
+ [#Rule 19
+ 'directive', 1,
+sub
+#line 95 "Parser.yp"
+{ $factory->set($_[1]) }
+ ],
+ [#Rule 20
+ 'directive', 1, undef
+ ],
+ [#Rule 21
+ 'directive', 1, undef
+ ],
+ [#Rule 22
+ 'directive', 1, undef
+ ],
+ [#Rule 23
+ 'directive', 1, undef
+ ],
+ [#Rule 24
+ 'directive', 1, undef
+ ],
+ [#Rule 25
+ 'directive', 1, undef
+ ],
+ [#Rule 26
+ 'atomexpr', 1,
+sub
+#line 109 "Parser.yp"
+{ $factory->get($_[1]) }
+ ],
+ [#Rule 27
+ 'atomexpr', 1, undef
+ ],
+ [#Rule 28
+ 'atomdir', 2,
+sub
+#line 113 "Parser.yp"
+{ $factory->get($_[2]) }
+ ],
+ [#Rule 29
+ 'atomdir', 2,
+sub
+#line 114 "Parser.yp"
+{ $factory->call($_[2]) }
+ ],
+ [#Rule 30
+ 'atomdir', 2,
+sub
+#line 115 "Parser.yp"
+{ $factory->set($_[2]) }
+ ],
+ [#Rule 31
+ 'atomdir', 2,
+sub
+#line 116 "Parser.yp"
+{ $factory->default($_[2]) }
+ ],
+ [#Rule 32
+ 'atomdir', 2,
+sub
+#line 117 "Parser.yp"
+{ $factory->insert($_[2]) }
+ ],
+ [#Rule 33
+ 'atomdir', 2,
+sub
+#line 118 "Parser.yp"
+{ $factory->include($_[2]) }
+ ],
+ [#Rule 34
+ 'atomdir', 2,
+sub
+#line 119 "Parser.yp"
+{ $factory->process($_[2]) }
+ ],
+ [#Rule 35
+ 'atomdir', 2,
+sub
+#line 120 "Parser.yp"
+{ $factory->throw($_[2]) }
+ ],
+ [#Rule 36
+ 'atomdir', 1,
+sub
+#line 121 "Parser.yp"
+{ $factory->return() }
+ ],
+ [#Rule 37
+ 'atomdir', 1,
+sub
+#line 122 "Parser.yp"
+{ $factory->stop() }
+ ],
+ [#Rule 38
+ 'atomdir', 1,
+sub
+#line 123 "Parser.yp"
+{ "\$output = '';"; }
+ ],
+ [#Rule 39
+ 'atomdir', 1,
+sub
+#line 124 "Parser.yp"
+{ $_[0]->block_label('last ', ';') }
+ ],
+ [#Rule 40
+ 'atomdir', 1,
+sub
+#line 125 "Parser.yp"
+{ $_[0]->in_block('FOR')
+ ? $factory->next($_[0]->block_label)
+ : $_[0]->block_label('next ', ';') }
+ ],
+ [#Rule 41
+ 'atomdir', 2,
+sub
+#line 128 "Parser.yp"
+{ if ($_[2]->[0]->[0] =~ /^'(on|off)'$/) {
+ $_[0]->{ DEBUG_DIRS } = ($1 eq 'on');
+ $factory->debug($_[2]);
+ }
+ else {
+ $_[0]->{ DEBUG_DIRS } ? $factory->debug($_[2]) : '';
+ }
+ }
+ ],
+ [#Rule 42
+ 'atomdir', 1, undef
+ ],
+ [#Rule 43
+ 'atomdir', 1, undef
+ ],
+ [#Rule 44
+ 'condition', 6,
+sub
+#line 141 "Parser.yp"
+{ $factory->if(@_[2, 4, 5]) }
+ ],
+ [#Rule 45
+ 'condition', 3,
+sub
+#line 142 "Parser.yp"
+{ $factory->if(@_[3, 1]) }
+ ],
+ [#Rule 46
+ 'condition', 6,
+sub
+#line 144 "Parser.yp"
+{ $factory->if("!($_[2])", @_[4, 5]) }
+ ],
+ [#Rule 47
+ 'condition', 3,
+sub
+#line 145 "Parser.yp"
+{ $factory->if("!($_[3])", $_[1]) }
+ ],
+ [#Rule 48
+ 'else', 5,
+sub
+#line 149 "Parser.yp"
+{ unshift(@{$_[5]}, [ @_[2, 4] ]);
+ $_[5]; }
+ ],
+ [#Rule 49
+ 'else', 3,
+sub
+#line 151 "Parser.yp"
+{ [ $_[3] ] }
+ ],
+ [#Rule 50
+ 'else', 0,
+sub
+#line 152 "Parser.yp"
+{ [ undef ] }
+ ],
+ [#Rule 51
+ 'switch', 6,
+sub
+#line 156 "Parser.yp"
+{ $factory->switch(@_[2, 5]) }
+ ],
+ [#Rule 52
+ 'case', 5,
+sub
+#line 160 "Parser.yp"
+{ unshift(@{$_[5]}, [ @_[2, 4] ]);
+ $_[5]; }
+ ],
+ [#Rule 53
+ 'case', 4,
+sub
+#line 162 "Parser.yp"
+{ [ $_[4] ] }
+ ],
+ [#Rule 54
+ 'case', 3,
+sub
+#line 163 "Parser.yp"
+{ [ $_[3] ] }
+ ],
+ [#Rule 55
+ 'case', 0,
+sub
+#line 164 "Parser.yp"
+{ [ undef ] }
+ ],
+ [#Rule 56
+ '@1-3', 0,
+sub
+#line 167 "Parser.yp"
+{ $_[0]->enter_block('FOR') }
+ ],
+ [#Rule 57
+ 'loop', 6,
+sub
+#line 168 "Parser.yp"
+{ $factory->foreach(@{$_[2]}, $_[5], $_[0]->leave_block) }
+ ],
+ [#Rule 58
+ 'loop', 3,
+sub
+#line 169 "Parser.yp"
+{ $factory->foreach(@{$_[3]}, $_[1]) }
+ ],
+ [#Rule 59
+ '@2-3', 0,
+sub
+#line 170 "Parser.yp"
+{ $_[0]->enter_block('WHILE') }
+ ],
+ [#Rule 60
+ 'loop', 6,
+sub
+#line 171 "Parser.yp"
+{ $factory->while(@_[2, 5], $_[0]->leave_block) }
+ ],
+ [#Rule 61
+ 'loop', 3,
+sub
+#line 172 "Parser.yp"
+{ $factory->while(@_[3, 1]) }
+ ],
+ [#Rule 62
+ 'loopvar', 4,
+sub
+#line 175 "Parser.yp"
+{ [ @_[1, 3, 4] ] }
+ ],
+ [#Rule 63
+ 'loopvar', 4,
+sub
+#line 176 "Parser.yp"
+{ [ @_[1, 3, 4] ] }
+ ],
+ [#Rule 64
+ 'loopvar', 2,
+sub
+#line 177 "Parser.yp"
+{ [ 0, @_[1, 2] ] }
+ ],
+ [#Rule 65
+ 'wrapper', 5,
+sub
+#line 181 "Parser.yp"
+{ $factory->wrapper(@_[2, 4]) }
+ ],
+ [#Rule 66
+ 'wrapper', 3,
+sub
+#line 183 "Parser.yp"
+{ $factory->wrapper(@_[3, 1]) }
+ ],
+ [#Rule 67
+ 'try', 5,
+sub
+#line 187 "Parser.yp"
+{ $factory->try(@_[3, 4]) }
+ ],
+ [#Rule 68
+ 'final', 5,
+sub
+#line 191 "Parser.yp"
+{ unshift(@{$_[5]}, [ @_[2,4] ]);
+ $_[5]; }
+ ],
+ [#Rule 69
+ 'final', 5,
+sub
+#line 194 "Parser.yp"
+{ unshift(@{$_[5]}, [ undef, $_[4] ]);
+ $_[5]; }
+ ],
+ [#Rule 70
+ 'final', 4,
+sub
+#line 197 "Parser.yp"
+{ unshift(@{$_[4]}, [ undef, $_[3] ]);
+ $_[4]; }
+ ],
+ [#Rule 71
+ 'final', 3,
+sub
+#line 199 "Parser.yp"
+{ [ $_[3] ] }
+ ],
+ [#Rule 72
+ 'final', 0,
+sub
+#line 200 "Parser.yp"
+{ [ 0 ] }
+ ],
+ [#Rule 73
+ 'use', 2,
+sub
+#line 203 "Parser.yp"
+{ $factory->use($_[2]) }
+ ],
+ [#Rule 74
+ '@3-3', 0,
+sub
+#line 206 "Parser.yp"
+{ $_[0]->push_defblock(); }
+ ],
+ [#Rule 75
+ 'view', 6,
+sub
+#line 207 "Parser.yp"
+{ $factory->view(@_[2,5],
+ $_[0]->pop_defblock) }
+ ],
+ [#Rule 76
+ '@4-2', 0,
+sub
+#line 211 "Parser.yp"
+{ ${$_[0]->{ INPERL }}++; }
+ ],
+ [#Rule 77
+ 'perl', 5,
+sub
+#line 212 "Parser.yp"
+{ ${$_[0]->{ INPERL }}--;
+ $_[0]->{ EVAL_PERL }
+ ? $factory->perl($_[4])
+ : $factory->no_perl(); }
+ ],
+ [#Rule 78
+ '@5-1', 0,
+sub
+#line 218 "Parser.yp"
+{ ${$_[0]->{ INPERL }}++;
+ $rawstart = ${$_[0]->{'LINE'}}; }
+ ],
+ [#Rule 79
+ 'rawperl', 5,
+sub
+#line 220 "Parser.yp"
+{ ${$_[0]->{ INPERL }}--;
+ $_[0]->{ EVAL_PERL }
+ ? $factory->rawperl($_[4], $rawstart)
+ : $factory->no_perl(); }
+ ],
+ [#Rule 80
+ 'filter', 5,
+sub
+#line 227 "Parser.yp"
+{ $factory->filter(@_[2,4]) }
+ ],
+ [#Rule 81
+ 'filter', 3,
+sub
+#line 229 "Parser.yp"
+{ $factory->filter(@_[3,1]) }
+ ],
+ [#Rule 82
+ 'defblock', 5,
+sub
+#line 234 "Parser.yp"
+{ my $name = join('/', @{ $_[0]->{ DEFBLOCKS } });
+ pop(@{ $_[0]->{ DEFBLOCKS } });
+ $_[0]->define_block($name, $_[4]);
+ undef
+ }
+ ],
+ [#Rule 83
+ 'defblockname', 2,
+sub
+#line 241 "Parser.yp"
+{ push(@{ $_[0]->{ DEFBLOCKS } }, $_[2]);
+ $_[2];
+ }
+ ],
+ [#Rule 84
+ 'blockname', 1, undef
+ ],
+ [#Rule 85
+ 'blockname', 1,
+sub
+#line 247 "Parser.yp"
+{ $_[1] =~ s/^'(.*)'$/$1/; $_[1] }
+ ],
+ [#Rule 86
+ 'blockargs', 1, undef
+ ],
+ [#Rule 87
+ 'blockargs', 0, undef
+ ],
+ [#Rule 88
+ 'anonblock', 5,
+sub
+#line 255 "Parser.yp"
+{ local $" = ', ';
+ print STDERR "experimental block args: [@{ $_[2] }]\n"
+ if $_[2];
+ $factory->anon_block($_[4]) }
+ ],
+ [#Rule 89
+ 'capture', 3,
+sub
+#line 261 "Parser.yp"
+{ $factory->capture(@_[1, 3]) }
+ ],
+ [#Rule 90
+ 'macro', 6,
+sub
+#line 265 "Parser.yp"
+{ $factory->macro(@_[2, 6, 4]) }
+ ],
+ [#Rule 91
+ 'macro', 3,
+sub
+#line 266 "Parser.yp"
+{ $factory->macro(@_[2, 3]) }
+ ],
+ [#Rule 92
+ 'mdir', 1, undef
+ ],
+ [#Rule 93
+ 'mdir', 4,
+sub
+#line 270 "Parser.yp"
+{ $_[3] }
+ ],
+ [#Rule 94
+ 'margs', 2,
+sub
+#line 273 "Parser.yp"
+{ push(@{$_[1]}, $_[2]); $_[1] }
+ ],
+ [#Rule 95
+ 'margs', 2,
+sub
+#line 274 "Parser.yp"
+{ $_[1] }
+ ],
+ [#Rule 96
+ 'margs', 1,
+sub
+#line 275 "Parser.yp"
+{ [ $_[1] ] }
+ ],
+ [#Rule 97
+ 'metadata', 2,
+sub
+#line 278 "Parser.yp"
+{ push(@{$_[1]}, @{$_[2]}); $_[1] }
+ ],
+ [#Rule 98
+ 'metadata', 2, undef
+ ],
+ [#Rule 99
+ 'metadata', 1, undef
+ ],
+ [#Rule 100
+ 'meta', 3,
+sub
+#line 283 "Parser.yp"
+{ for ($_[3]) { s/^'//; s/'$//;
+ s/\\'/'/g };
+ [ @_[1,3] ] }
+ ],
+ [#Rule 101
+ 'meta', 5,
+sub
+#line 286 "Parser.yp"
+{ [ @_[1,4] ] }
+ ],
+ [#Rule 102
+ 'meta', 3,
+sub
+#line 287 "Parser.yp"
+{ [ @_[1,3] ] }
+ ],
+ [#Rule 103
+ 'term', 1, undef
+ ],
+ [#Rule 104
+ 'term', 1, undef
+ ],
+ [#Rule 105
+ 'lterm', 3,
+sub
+#line 299 "Parser.yp"
+{ "[ $_[2] ]" }
+ ],
+ [#Rule 106
+ 'lterm', 3,
+sub
+#line 300 "Parser.yp"
+{ "[ $_[2] ]" }
+ ],
+ [#Rule 107
+ 'lterm', 2,
+sub
+#line 301 "Parser.yp"
+{ "[ ]" }
+ ],
+ [#Rule 108
+ 'lterm', 3,
+sub
+#line 302 "Parser.yp"
+{ "{ $_[2] }" }
+ ],
+ [#Rule 109
+ 'sterm', 1,
+sub
+#line 305 "Parser.yp"
+{ $factory->ident($_[1]) }
+ ],
+ [#Rule 110
+ 'sterm', 2,
+sub
+#line 306 "Parser.yp"
+{ $factory->identref($_[2]) }
+ ],
+ [#Rule 111
+ 'sterm', 3,
+sub
+#line 307 "Parser.yp"
+{ $factory->quoted($_[2]) }
+ ],
+ [#Rule 112
+ 'sterm', 1, undef
+ ],
+ [#Rule 113
+ 'sterm', 1, undef
+ ],
+ [#Rule 114
+ 'list', 2,
+sub
+#line 312 "Parser.yp"
+{ "$_[1], $_[2]" }
+ ],
+ [#Rule 115
+ 'list', 2, undef
+ ],
+ [#Rule 116
+ 'list', 1, undef
+ ],
+ [#Rule 117
+ 'range', 3,
+sub
+#line 317 "Parser.yp"
+{ $_[1] . '..' . $_[3] }
+ ],
+ [#Rule 118
+ 'hash', 1, undef
+ ],
+ [#Rule 119
+ 'hash', 0,
+sub
+#line 322 "Parser.yp"
+{ "" }
+ ],
+ [#Rule 120
+ 'params', 2,
+sub
+#line 325 "Parser.yp"
+{ "$_[1], $_[2]" }
+ ],
+ [#Rule 121
+ 'params', 2, undef
+ ],
+ [#Rule 122
+ 'params', 1, undef
+ ],
+ [#Rule 123
+ 'param', 3,
+sub
+#line 330 "Parser.yp"
+{ "$_[1] => $_[3]" }
+ ],
+ [#Rule 124
+ 'param', 3,
+sub
+#line 331 "Parser.yp"
+{ "$_[1] => $_[3]" }
+ ],
+ [#Rule 125
+ 'ident', 3,
+sub
+#line 334 "Parser.yp"
+{ push(@{$_[1]}, @{$_[3]}); $_[1] }
+ ],
+ [#Rule 126
+ 'ident', 3,
+sub
+#line 335 "Parser.yp"
+{ push(@{$_[1]},
+ map {($_, 0)} split(/\./, $_[3]));
+ $_[1]; }
+ ],
+ [#Rule 127
+ 'ident', 1, undef
+ ],
+ [#Rule 128
+ 'node', 1,
+sub
+#line 341 "Parser.yp"
+{ [ $_[1], 0 ] }
+ ],
+ [#Rule 129
+ 'node', 4,
+sub
+#line 342 "Parser.yp"
+{ [ $_[1], $factory->args($_[3]) ] }
+ ],
+ [#Rule 130
+ 'item', 1,
+sub
+#line 345 "Parser.yp"
+{ "'$_[1]'" }
+ ],
+ [#Rule 131
+ 'item', 3,
+sub
+#line 346 "Parser.yp"
+{ $_[2] }
+ ],
+ [#Rule 132
+ 'item', 2,
+sub
+#line 347 "Parser.yp"
+{ $_[0]->{ V1DOLLAR }
+ ? "'$_[2]'"
+ : $factory->ident(["'$_[2]'", 0]) }
+ ],
+ [#Rule 133
+ 'expr', 3,
+sub
+#line 352 "Parser.yp"
+{ "$_[1] $_[2] $_[3]" }
+ ],
+ [#Rule 134
+ 'expr', 3,
+sub
+#line 353 "Parser.yp"
+{ "$_[1] $_[2] $_[3]" }
+ ],
+ [#Rule 135
+ 'expr', 3,
+sub
+#line 354 "Parser.yp"
+{ "$_[1] $_[2] $_[3]" }
+ ],
+ [#Rule 136
+ 'expr', 3,
+sub
+#line 355 "Parser.yp"
+{ "int($_[1] / $_[3])" }
+ ],
+ [#Rule 137
+ 'expr', 3,
+sub
+#line 356 "Parser.yp"
+{ "$_[1] % $_[3]" }
+ ],
+ [#Rule 138
+ 'expr', 3,
+sub
+#line 357 "Parser.yp"
+{ "$_[1] $CMPOP{ $_[2] } $_[3]" }
+ ],
+ [#Rule 139
+ 'expr', 3,
+sub
+#line 358 "Parser.yp"
+{ "$_[1] . $_[3]" }
+ ],
+ [#Rule 140
+ 'expr', 3,
+sub
+#line 359 "Parser.yp"
+{ "$_[1] && $_[3]" }
+ ],
+ [#Rule 141
+ 'expr', 3,
+sub
+#line 360 "Parser.yp"
+{ "$_[1] || $_[3]" }
+ ],
+ [#Rule 142
+ 'expr', 2,
+sub
+#line 361 "Parser.yp"
+{ "! $_[2]" }
+ ],
+ [#Rule 143
+ 'expr', 5,
+sub
+#line 362 "Parser.yp"
+{ "$_[1] ? $_[3] : $_[5]" }
+ ],
+ [#Rule 144
+ 'expr', 3,
+sub
+#line 363 "Parser.yp"
+{ $factory->assign(@{$_[2]}) }
+ ],
+ [#Rule 145
+ 'expr', 3,
+sub
+#line 364 "Parser.yp"
+{ "($_[2])" }
+ ],
+ [#Rule 146
+ 'expr', 1, undef
+ ],
+ [#Rule 147
+ 'setlist', 2,
+sub
+#line 368 "Parser.yp"
+{ push(@{$_[1]}, @{$_[2]}); $_[1] }
+ ],
+ [#Rule 148
+ 'setlist', 2, undef
+ ],
+ [#Rule 149
+ 'setlist', 1, undef
+ ],
+ [#Rule 150
+ 'assign', 3,
+sub
+#line 374 "Parser.yp"
+{ [ $_[1], $_[3] ] }
+ ],
+ [#Rule 151
+ 'assign', 3,
+sub
+#line 375 "Parser.yp"
+{ [ @_[1,3] ] }
+ ],
+ [#Rule 152
+ 'args', 2,
+sub
+#line 382 "Parser.yp"
+{ push(@{$_[1]}, $_[2]); $_[1] }
+ ],
+ [#Rule 153
+ 'args', 2,
+sub
+#line 383 "Parser.yp"
+{ push(@{$_[1]->[0]}, $_[2]); $_[1] }
+ ],
+ [#Rule 154
+ 'args', 4,
+sub
+#line 384 "Parser.yp"
+{ push(@{$_[1]->[0]}, "'', " .
+ $factory->assign(@_[2,4])); $_[1] }
+ ],
+ [#Rule 155
+ 'args', 2,
+sub
+#line 386 "Parser.yp"
+{ $_[1] }
+ ],
+ [#Rule 156
+ 'args', 0,
+sub
+#line 387 "Parser.yp"
+{ [ [ ] ] }
+ ],
+ [#Rule 157
+ 'lnameargs', 3,
+sub
+#line 397 "Parser.yp"
+{ push(@{$_[3]}, $_[1]); $_[3] }
+ ],
+ [#Rule 158
+ 'lnameargs', 1, undef
+ ],
+ [#Rule 159
+ 'lvalue', 1, undef
+ ],
+ [#Rule 160
+ 'lvalue', 3,
+sub
+#line 402 "Parser.yp"
+{ $factory->quoted($_[2]) }
+ ],
+ [#Rule 161
+ 'lvalue', 1, undef
+ ],
+ [#Rule 162
+ 'nameargs', 3,
+sub
+#line 406 "Parser.yp"
+{ [ [$factory->ident($_[2])], $_[3] ] }
+ ],
+ [#Rule 163
+ 'nameargs', 2,
+sub
+#line 407 "Parser.yp"
+{ [ @_[1,2] ] }
+ ],
+ [#Rule 164
+ 'nameargs', 4,
+sub
+#line 408 "Parser.yp"
+{ [ @_[1,3] ] }
+ ],
+ [#Rule 165
+ 'names', 3,
+sub
+#line 411 "Parser.yp"
+{ push(@{$_[1]}, $_[3]); $_[1] }
+ ],
+ [#Rule 166
+ 'names', 1,
+sub
+#line 412 "Parser.yp"
+{ [ $_[1] ] }
+ ],
+ [#Rule 167
+ 'name', 3,
+sub
+#line 415 "Parser.yp"
+{ $factory->quoted($_[2]) }
+ ],
+ [#Rule 168
+ 'name', 1,
+sub
+#line 416 "Parser.yp"
+{ "'$_[1]'" }
+ ],
+ [#Rule 169
+ 'name', 1, undef
+ ],
+ [#Rule 170
+ 'filename', 3,
+sub
+#line 420 "Parser.yp"
+{ "$_[1].$_[3]" }
+ ],
+ [#Rule 171
+ 'filename', 1, undef
+ ],
+ [#Rule 172
+ 'filepart', 1, undef
+ ],
+ [#Rule 173
+ 'filepart', 1, undef
+ ],
+ [#Rule 174
+ 'filepart', 1, undef
+ ],
+ [#Rule 175
+ 'quoted', 2,
+sub
+#line 434 "Parser.yp"
+{ push(@{$_[1]}, $_[2])
+ if defined $_[2]; $_[1] }
+ ],
+ [#Rule 176
+ 'quoted', 0,
+sub
+#line 436 "Parser.yp"
+{ [ ] }
+ ],
+ [#Rule 177
+ 'quotable', 1,
+sub
+#line 439 "Parser.yp"
+{ $factory->ident($_[1]) }
+ ],
+ [#Rule 178
+ 'quotable', 1,
+sub
+#line 440 "Parser.yp"
+{ $factory->text($_[1]) }
+ ],
+ [#Rule 179
+ 'quotable', 1,
+sub
+#line 441 "Parser.yp"
+{ undef }
+ ]
+];
+
+
+
+1;
+
+__END__
+
+=head1 NAME
+
+Template::Grammar - Parser state/rule tables for the TT grammar
+
+=head1 SYNOPSIS
+
+ # no user serviceable parts inside
+
+=head1 DESCRIPTION
+
+This module defines the state and rule tables that the L<Template::Parser>
+module uses to parse templates. It is generated from a YACC-like grammar
+using the C<Parse::Yapp> module. The F<parser> sub-directory of the
+Template Toolkit source distribution contains the grammar and other
+files required to generate this module.
+
+But you don't need to worry about any of that unless you're planning to
+modify the Template Toolkit language.
+
+=head1 AUTHOR
+
+Andy Wardley E<lt>abw@wardley.orgE<gt>
+
+L<http://wardley.org/>
+
+=head1 COPYRIGHT
+
+Copyright (C) 1996-2007 Andy Wardley. All Rights Reserved.
+
+This module is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+=head1 SEE ALSO
+
+L<Template::Parser>
+
+=cut
+
+# Local Variables:
+# mode: perl
+# perl-indent-level: 4
+# indent-tabs-mode: nil
+# End:
+#
+# vim: expandtab shiftwidth=4:
+
+
+
+
+
+
+
+
+
+