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