home *** CD-ROM | disk | FTP | other *** search
/ ProfitPress Mega CDROM2 …eeware (MSDOS)(1992)(Eng) / ProfitPress-MegaCDROM2.B6I / MISC / GNU / PL4019AS.ZIP / PERLY.C < prev    next >
Encoding:
C/C++ Source or Header  |  1992-01-24  |  105.4 KB  |  2,685 lines

  1.  
  2. /*  A Bison parser, made from perly.y  */
  3.  
  4. #define    WORD    258
  5. #define    APPEND    259
  6. #define    OPEN    260
  7. #define    SSELECT    261
  8. #define    LOOPEX    262
  9. #define    USING    263
  10. #define    FORMAT    264
  11. #define    DO    265
  12. #define    SHIFT    266
  13. #define    PUSH    267
  14. #define    POP    268
  15. #define    LVALFUN    269
  16. #define    WHILE    270
  17. #define    UNTIL    271
  18. #define    IF    272
  19. #define    UNLESS    273
  20. #define    ELSE    274
  21. #define    ELSIF    275
  22. #define    CONTINUE    276
  23. #define    SPLIT    277
  24. #define    FLIST    278
  25. #define    FOR    279
  26. #define    FILOP    280
  27. #define    FILOP2    281
  28. #define    FILOP3    282
  29. #define    FILOP4    283
  30. #define    FILOP22    284
  31. #define    FILOP25    285
  32. #define    FUNC0    286
  33. #define    FUNC1    287
  34. #define    FUNC2    288
  35. #define    FUNC2x    289
  36. #define    FUNC3    290
  37. #define    FUNC4    291
  38. #define    FUNC5    292
  39. #define    HSHFUN    293
  40. #define    HSHFUN3    294
  41. #define    FLIST2    295
  42. #define    SUB    296
  43. #define    FILETEST    297
  44. #define    LOCAL    298
  45. #define    DELETE    299
  46. #define    RELOP    300
  47. #define    EQOP    301
  48. #define    MULOP    302
  49. #define    ADDOP    303
  50. #define    PACKAGE    304
  51. #define    AMPER    305
  52. #define    FORMLIST    306
  53. #define    REG    307
  54. #define    ARYLEN    308
  55. #define    ARY    309
  56. #define    HSH    310
  57. #define    STAR    311
  58. #define    SUBST    312
  59. #define    PATTERN    313
  60. #define    RSTRING    314
  61. #define    TRANS    315
  62. #define    LISTOP    316
  63. #define    DOTDOT    317
  64. #define    OROR    318
  65. #define    ANDAND    319
  66. #define    UNIOP    320
  67. #define    LS    321
  68. #define    RS    322
  69. #define    MATCH    323
  70. #define    NMATCH    324
  71. #define    UMINUS    325
  72. #define    POW    326
  73. #define    INC    327
  74. #define    DEC    328
  75.  
  76. #line 22 "perly.y"
  77.  
  78. #include "INTERN.h"
  79. #include "perl.h"
  80.  
  81. /*SUPPRESS 530*/
  82. /*SUPPRESS 593*/
  83. /*SUPPRESS 595*/
  84.  
  85. STAB *scrstab;
  86. ARG *arg4;    /* rarely used arguments to make_op() */
  87. ARG *arg5;
  88.  
  89.  
  90. #line 38 "perly.y"
  91. typedef union {
  92.     int    ival;
  93.     char *cval;
  94.     ARG *arg;
  95.     CMD *cmdval;
  96.     struct compcmd compval;
  97.     STAB *stabval;
  98.     FCMD *formval;
  99. } YYSTYPE;
  100.  
  101. #ifndef YYLTYPE
  102. typedef
  103.   struct yyltype
  104.     {
  105.       int timestamp;
  106.       int first_line;
  107.       int first_column;
  108.       int last_line;
  109.       int last_column;
  110.       char *text;
  111.    }
  112.   yyltype;
  113.  
  114. #define YYLTYPE yyltype
  115. #endif
  116.  
  117. #include <stdio.h>
  118.  
  119. #ifndef __STDC__
  120. #define const
  121. #endif
  122.  
  123.  
  124.  
  125. #define    YYFINAL        414
  126. #define    YYFLAG        -32768
  127. #define    YYNTBASE    92
  128.  
  129. #define YYTRANSLATE(x) ((unsigned)(x) <= 328 ? yytranslate[x] : 121)
  130.  
  131. static const char yytranslate[] = {     0,
  132.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  133.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  134.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  135.      2,     2,    79,     2,     2,     2,     2,    73,     2,    85,
  136.      4,     2,    89,    64,    88,     2,     2,     2,     2,     2,
  137.      2,     2,     2,     2,     2,     2,     2,    67,    87,     2,
  138.     65,     2,    66,     2,     2,     2,     2,     2,     2,     2,
  139.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  140.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  141.     90,     2,    91,    72,     2,     2,     2,     2,     2,     2,
  142.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  143.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  144.      2,     2,     3,    71,    86,    80,     2,     2,     2,     2,
  145.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  146.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  147.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  148.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  149.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  150.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  151.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  152.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  153.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  154.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  155.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  156.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  157.      2,     2,     2,     2,     2,     1,     2,     5,     6,     7,
  158.      8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
  159.     18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
  160.     28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
  161.     38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
  162.     48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
  163.     58,    59,    60,    61,    62,    63,    68,    69,    70,    74,
  164.     75,    76,    77,    78,    81,    82,    83,    84
  165. };
  166.  
  167. static const short yyprhs[] = {     0,
  168.      0,     1,     4,     8,    11,    12,    15,    21,    26,    27,
  169.     28,    31,    33,    36,    38,    41,    45,    47,    49,    53,
  170.     57,    61,    65,    71,    77,    81,    85,    92,    99,   104,
  171.    109,   117,   124,   135,   138,   139,   141,   142,   144,   145,
  172.    148,   150,   152,   154,   159,   163,   167,   171,   174,   178,
  173.    180,   183,   187,   192,   197,   202,   207,   212,   217,   222,
  174.    227,   231,   235,   239,   243,   247,   251,   255,   259,   263,
  175.    267,   271,   275,   279,   285,   289,   293,   295,   298,   301,
  176.    304,   307,   310,   313,   316,   319,   322,   325,   327,   332,
  177.    336,   339,   342,   345,   347,   349,   354,   356,   358,   363,
  178.    370,   376,   381,   386,   392,   394,   396,   398,   400,   402,
  179.    408,   414,   419,   424,   427,   433,   439,   444,   449,   452,
  180.    454,   457,   459,   462,   465,   467,   470,   475,   483,   486,
  181.    491,   497,   502,   505,   508,   512,   514,   520,   527,   534,
  182.    542,   552,   559,   562,   567,   570,   575,   577,   579,   586,
  183.    592,   597,   603,   608,   611,   613,   615,   619,   623,   628,
  184.    634,   640,   647,   654,   662,   671,   676,   679,   686,   688,
  185.    690,   692,   695,   698,   702,   706,   710,   712,   714,   716,
  186.    718,   720,   722,   725,   727
  187. };
  188.  
  189. static const short yyrhs[] = {    -1,
  190.     93,    98,     0,    96,    23,    96,     0,    96,    95,     0,
  191.      0,    21,    96,     0,    22,    85,   111,     4,    94,     0,
  192.      3,    97,    98,    86,     0,     0,     0,    98,    99,     0,
  193.    106,     0,   105,   101,     0,   102,     0,   105,    87,     0,
  194.    105,   100,    87,     0,     1,     0,   111,     0,   111,    19,
  195.    111,     0,   111,    20,   111,     0,   111,    17,   111,     0,
  196.    111,    18,   111,     0,    19,    85,   111,     4,    94,     0,
  197.     20,    85,   111,     4,    94,     0,    19,    96,    94,     0,
  198.     20,    96,    94,     0,   105,    17,    85,   104,     4,    94,
  199.      0,   105,    18,    85,   111,     4,    94,     0,   105,    17,
  200.     96,    94,     0,   105,    18,    96,    94,     0,   105,    26,
  201.     54,    85,   111,   119,    94,     0,   105,    26,    85,   111,
  202.    119,    94,     0,   105,    26,    85,   103,    87,   104,    87,
  203.    103,     4,    96,     0,   105,    94,     0,     0,   100,     0,
  204.      0,   111,     0,     0,     5,    67,     0,   107,     0,   108,
  205.      0,   109,     0,    11,     5,    65,    53,     0,    11,    65,
  206.     53,     0,    43,     5,    96,     0,    51,     5,    87,     0,
  207.     64,   111,     0,   111,    64,   113,     0,   113,     0,    64,
  208.    113,     0,   113,    65,   113,     0,   113,    82,    65,   113,
  209.      0,   113,    49,    65,   113,     0,   113,    50,    65,   113,
  210.      0,   113,    75,    65,   113,     0,   113,    76,    65,   113,
  211.      0,   113,    73,    65,   113,     0,   113,    72,    65,   113,
  212.      0,   113,    71,    65,   113,     0,   113,    82,   113,     0,
  213.    113,    49,   113,     0,   113,    50,   113,     0,   113,    75,
  214.    113,     0,   113,    76,   113,     0,   113,    47,   113,     0,
  215.    113,    48,   113,     0,   113,    73,   113,     0,   113,    72,
  216.    113,     0,   113,    71,   113,     0,   113,    68,   113,     0,
  217.    113,    70,   113,     0,   113,    69,   113,     0,   113,    66,
  218.    113,    67,   113,     0,   113,    77,   113,     0,   113,    78,
  219.    113,     0,   114,     0,    88,   114,     0,    89,   114,     0,
  220.     79,   114,     0,    80,   114,     0,   114,    83,     0,   114,
  221.     84,     0,    83,   114,     0,    84,   114,     0,    44,     5,
  222.      0,    44,   113,     0,    44,     0,    45,    85,   111,   119,
  223.      0,    85,   111,   119,     0,    85,     4,     0,    12,   113,
  224.      0,    12,    96,     0,    54,     0,    58,     0,    54,    90,
  225.    111,    91,     0,    57,     0,    56,     0,    54,     3,   111,
  226.     86,     0,    85,   111,   119,    90,   111,    91,     0,    85,
  227.      4,    90,   111,    91,     0,    56,    90,   111,    91,     0,
  228.     56,     3,   111,    86,     0,    46,    54,     3,   111,    86,
  229.      0,    55,     0,    61,     0,    60,     0,    59,     0,    62,
  230.      0,    12,     5,    85,   111,   119,     0,    52,     5,    85,
  231.    111,   119,     0,    12,     5,    85,     4,     0,    52,     5,
  232.     85,     4,     0,    52,     5,     0,    12,    54,    85,   111,
  233.    119,     0,    52,    54,    85,   111,   119,     0,    12,    54,
  234.     85,     4,     0,    52,    54,    85,     4,     0,    52,    54,
  235.      0,     9,     0,     9,     5,     0,    74,     0,    74,    96,
  236.      0,    74,   113,     0,     8,     0,     8,     5,     0,     8,
  237.     85,   116,     4,     0,     8,    85,   113,   112,   112,   112,
  238.      4,     0,     7,     5,     0,     7,    85,     5,     4,     0,
  239.      7,    85,   116,   110,     4,     0,    27,    85,   116,     4,
  240.      0,    27,     5,     0,    27,    54,     0,    27,    85,     4,
  241.      0,    27,     0,    28,    85,   116,   110,     4,     0,    29,
  242.     85,   116,   112,   110,     4,     0,    31,    85,   116,    64,
  243.    116,     4,     0,    30,    85,   116,   112,   112,   110,     4,
  244.      0,    32,    85,   116,    64,   116,   112,   112,   110,     4,
  245.      0,    14,    85,   117,    64,   111,   119,     0,    15,   117,
  246.      0,    15,    85,   117,     4,     0,    13,   117,     0,    13,
  247.     85,   117,     4,     0,    13,     0,    24,     0,    24,    85,
  248.    113,   112,   112,     4,     0,    24,    85,   113,   112,     4,
  249.      0,    24,    85,   113,     4,     0,    42,    85,   113,   110,
  250.      4,     0,    25,    85,   111,   119,     0,    16,   113,     0,
  251.     16,     0,    33,     0,    33,    85,     4,     0,    34,    85,
  252.      4,     0,    34,    85,   111,     4,     0,    35,    85,   113,
  253.    110,     4,     0,    36,    85,   113,   112,     4,     0,    36,
  254.     85,   113,   112,   110,     4,     0,    37,    85,   113,   112,
  255.    110,     4,     0,    38,    85,   113,   112,   112,   110,     4,
  256.      0,    39,    85,   113,   112,   112,   112,   110,     4,     0,
  257.     40,    85,   118,     4,     0,    40,   118,     0,    41,    85,
  258.    118,   112,   110,     4,     0,   120,     0,   115,     0,    63,
  259.      0,    63,   111,     0,    63,     5,     0,    63,     5,   111,
  260.      0,    63,    54,   111,     0,    63,    96,   111,     0,     5,
  261.      0,   113,     0,     5,     0,    56,     0,     5,     0,    57,
  262.      0,    64,     4,     0,     4,     0,     5,     0
  263. };
  264.  
  265. #if YYDEBUG != 0
  266. static const short yyrline[] = { 0,
  267.     94,   101,   107,   109,   113,   115,   117,   122,   130,   134,
  268.    136,   140,   142,   144,   145,   154,   158,   160,   162,   165,
  269.    168,   171,   176,   179,   182,   185,   190,   194,   198,   202,
  270.    206,   245,   272,   279,   283,   285,   288,   290,   293,   295,
  271.    298,   300,   302,   306,   314,   318,   325,   345,   349,   351,
  272.    354,   358,   365,   367,   369,   371,   373,   375,   377,   379,
  273.    383,   385,   394,   396,   398,   400,   402,   404,   406,   408,
  274.    410,   413,   415,   417,   419,   421,   423,   427,   429,   431,
  275.    433,   435,   438,   441,   444,   447,   453,   456,   462,   466,
  276.    468,   470,   473,   475,   477,   479,   482,   486,   490,   495,
  277.    500,   505,   510,   515,   520,   522,   524,   526,   528,   530,
  278.    536,   541,   547,   552,   557,   563,   568,   574,   579,   584,
  279.    586,   589,   591,   593,   595,   597,   603,   605,   608,   613,
  280.    618,   622,   626,   631,   635,   639,   642,   644,   646,   648,
  281.    650,   653,   658,   660,   662,   664,   666,   671,   681,   684,
  282.    687,   691,   696,   701,   704,   708,   710,   712,   714,   716,
  283.    720,   724,   728,   730,   733,   736,   741,   746,   748,   749,
  284.    752,   757,   762,   767,   772,   777,   784,   787,   790,   793,
  285.    797,   800,   804,   806,   815
  286. };
  287.  
  288. static const char * const yytname[] = {   "$",
  289. "error","$illegal.","'{'","')'","WORD","APPEND","OPEN","SSELECT","LOOPEX","USING",
  290. "FORMAT","DO","SHIFT","PUSH","POP","LVALFUN","WHILE","UNTIL","IF","UNLESS",
  291. "ELSE","ELSIF","CONTINUE","SPLIT","FLIST","FOR","FILOP","FILOP2","FILOP3","FILOP4",
  292. "FILOP22","FILOP25","FUNC0","FUNC1","FUNC2","FUNC2x","FUNC3","FUNC4","FUNC5","HSHFUN",
  293. "HSHFUN3","FLIST2","SUB","FILETEST","LOCAL","DELETE","RELOP","EQOP","MULOP","ADDOP",
  294. "PACKAGE","AMPER","FORMLIST","REG","ARYLEN","ARY","HSH","STAR","SUBST","PATTERN",
  295. "RSTRING","TRANS","LISTOP","','","'='","'?'","':'","DOTDOT","OROR","ANDAND",
  296. "'|'","'^'","'&'","UNIOP","LS","RS","MATCH","NMATCH","'!'","'~'",
  297. "UMINUS","POW","INC","DEC","'('","'}'","';'","'-'","'+'","'['",
  298. "']'","prog","@1","compblock","else","block","remember","lineseq","line","sideff",
  299. "cond","loop","nexpr","texpr","label","decl","format","subrout","package","cexpr",
  300. "expr","csexpr","sexpr","term","listop","handle","aryword","hshword","crp","bareword",
  301. ""
  302. };
  303. #endif
  304.  
  305. static const short yyr1[] = {     0,
  306.     93,    92,    94,    94,    95,    95,    95,    96,    97,    98,
  307.     98,    99,    99,    99,    99,    99,   100,   100,   100,   100,
  308.    100,   100,   101,   101,   101,   101,   102,   102,   102,   102,
  309.    102,   102,   102,   102,   103,   103,   104,   104,   105,   105,
  310.    106,   106,   106,   107,   107,   108,   109,   110,   111,   111,
  311.    112,   113,   113,   113,   113,   113,   113,   113,   113,   113,
  312.    113,   113,   113,   113,   113,   113,   113,   113,   113,   113,
  313.    113,   113,   113,   113,   113,   113,   113,   114,   114,   114,
  314.    114,   114,   114,   114,   114,   114,   114,   114,   114,   114,
  315.    114,   114,   114,   114,   114,   114,   114,   114,   114,   114,
  316.    114,   114,   114,   114,   114,   114,   114,   114,   114,   114,
  317.    114,   114,   114,   114,   114,   114,   114,   114,   114,   114,
  318.    114,   114,   114,   114,   114,   114,   114,   114,   114,   114,
  319.    114,   114,   114,   114,   114,   114,   114,   114,   114,   114,
  320.    114,   114,   114,   114,   114,   114,   114,   114,   114,   114,
  321.    114,   114,   114,   114,   114,   114,   114,   114,   114,   114,
  322.    114,   114,   114,   114,   114,   114,   114,   114,   114,   114,
  323.    115,   115,   115,   115,   115,   115,   116,   116,   117,   117,
  324.    118,   118,   119,   119,   120
  325. };
  326.  
  327. static const short yyr2[] = {     0,
  328.      0,     2,     3,     2,     0,     2,     5,     4,     0,     0,
  329.      2,     1,     2,     1,     2,     3,     1,     1,     3,     3,
  330.      3,     3,     5,     5,     3,     3,     6,     6,     4,     4,
  331.      7,     6,    10,     2,     0,     1,     0,     1,     0,     2,
  332.      1,     1,     1,     4,     3,     3,     3,     2,     3,     1,
  333.      2,     3,     4,     4,     4,     4,     4,     4,     4,     4,
  334.      3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
  335.      3,     3,     3,     5,     3,     3,     1,     2,     2,     2,
  336.      2,     2,     2,     2,     2,     2,     2,     1,     4,     3,
  337.      2,     2,     2,     1,     1,     4,     1,     1,     4,     6,
  338.      5,     4,     4,     5,     1,     1,     1,     1,     1,     5,
  339.      5,     4,     4,     2,     5,     5,     4,     4,     2,     1,
  340.      2,     1,     2,     2,     1,     2,     4,     7,     2,     4,
  341.      5,     4,     2,     2,     3,     1,     5,     6,     6,     7,
  342.      9,     6,     2,     4,     2,     4,     1,     1,     6,     5,
  343.      4,     5,     4,     2,     1,     1,     3,     3,     4,     5,
  344.      5,     6,     6,     7,     8,     4,     2,     6,     1,     1,
  345.      1,     2,     2,     3,     3,     3,     1,     1,     1,     1,
  346.      1,     1,     2,     1,     1
  347. };
  348.  
  349. static const short yydefact[] = {     1,
  350.     10,    39,     0,     0,     0,     0,    11,    14,     0,    12,
  351.     41,    42,    43,    40,     0,     0,     0,     0,    17,     9,
  352.    185,     0,   125,   120,     0,   147,     0,     0,   155,     0,
  353.      0,     0,     0,   148,     0,     0,   136,     0,     0,     0,
  354.      0,     0,   156,     0,     0,     0,     0,     0,     0,     0,
  355.      0,     0,    88,     0,     0,     0,    94,   105,    98,    97,
  356.     95,   108,   107,   106,   109,   171,   122,     0,     0,     0,
  357.      0,     0,    15,     0,     0,    34,     5,     0,    13,    18,
  358.     50,    77,   170,   169,     0,    45,    46,    47,    10,   129,
  359.      0,   126,     0,   121,   185,    94,    93,    92,   179,   180,
  360.      0,   145,     0,     0,   143,   154,    37,     0,     0,     0,
  361.      0,     0,     0,     0,     0,     0,     0,     0,   133,   134,
  362.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  363.      0,     0,     0,   181,   182,     0,   167,     0,     0,    86,
  364.     87,     0,     0,   114,   119,     0,     0,     0,     0,   173,
  365.     94,     0,   172,   123,   124,    80,    81,    84,    85,    91,
  366.      0,    78,    79,     0,     0,     0,     4,    16,     0,     0,
  367.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  368.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  369.     82,    83,    44,    39,   185,   178,     0,   185,   178,     0,
  370.      0,     0,     0,     0,     0,     0,    38,    29,     0,    30,
  371.      0,    25,     0,    26,     0,     0,     0,    36,     0,    18,
  372.    135,     0,     0,     0,     0,     0,     0,   157,   158,     0,
  373.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  374.      0,     0,     0,     0,     0,     0,   174,   175,   176,     0,
  375.    184,     0,    90,     6,     0,     3,    21,    22,    19,    20,
  376.     49,    66,    67,     0,    62,     0,    63,    52,     0,    71,
  377.     73,    72,     0,    70,     0,    69,     0,    68,     0,    64,
  378.      0,    65,    75,    76,     0,    61,     8,   130,     0,     0,
  379.      0,     0,   127,   112,     0,   117,     0,   146,     0,   144,
  380.      0,     0,     0,     0,   151,     0,   153,     0,    37,     0,
  381.    132,     0,     0,     0,     0,     0,   159,     0,     0,     0,
  382.      0,     0,   166,     0,     0,    89,     0,   113,     0,   118,
  383.      0,    99,    96,   103,   102,     0,   183,     0,     0,    54,
  384.     55,     0,    60,    59,    58,    56,    57,    53,    48,   131,
  385.     51,     0,   110,   115,     0,    27,    28,    23,    24,   150,
  386.      0,     0,     0,    32,   137,     0,     0,     0,     0,   160,
  387.    161,     0,     0,     0,     0,     0,   152,   104,   111,   116,
  388.    101,     0,     0,    74,     0,   142,   149,    31,     0,   138,
  389.      0,   139,     0,   162,   163,     0,     0,   168,   100,     7,
  390.    128,     0,   140,     0,   164,     0,     0,     0,   165,    33,
  391.    141,     0,     0,     0
  392. };
  393.  
  394. static const short yydefgoto[] = {   412,
  395.      1,    76,   167,    77,    89,     2,     7,   218,    79,     8,
  396.    219,   206,     9,    10,    11,    12,    13,   290,    80,   292,
  397.     81,    82,    83,   197,   102,   137,   253,    84
  398. };
  399.  
  400. static const short yypact[] = {-32768,
  401. -32768,   131,   -19,    13,    64,    66,-32768,-32768,   434,-32768,
  402. -32768,-32768,-32768,-32768,    -5,    72,   112,    42,-32768,-32768,
  403. -32768,    37,    41,   130,   783,    33,    85,    56,  2410,     8,
  404.      9,    20,    26,    96,   104,   -29,    36,   108,   133,   137,
  405.    139,   140,   152,   157,   160,   161,   162,   164,   168,    38,
  406.    172,   174,  2495,   175,    91,   122,     7,-32768,    14,-32768,
  407. -32768,-32768,-32768,-32768,-32768,   870,   957,  2410,  2410,  2410,
  408.   2410,  1043,-32768,  2410,  2410,-32768,   117,   120,-32768,   166,
  409.   2801,   -32,-32768,-32768,   149,-32768,-32768,-32768,-32768,-32768,
  410.   2580,-32768,  2665,-32768,   176,     6,-32768,   304,-32768,-32768,
  411.     61,-32768,    61,    61,-32768,-32768,  2410,   112,  2410,   112,
  412.   2410,   112,  2410,   112,  2410,  2410,   180,   519,-32768,-32768,
  413.   1129,  2665,  2665,  2665,  2665,  2665,   219,  1215,  2410,  2410,
  414.   2410,  2410,  2410,-32768,-32768,    19,-32768,    19,  2410,-32768,
  415.    304,  2410,   235,   181,   184,  2410,  2410,  2410,  2410,  2410,
  416.    695,  2410,   187,-32768,   304,   -32,   -32,     0,     0,   182,
  417.     15,   -32,   -32,   112,   185,   112,-32768,-32768,  2410,  2410,
  418.   2410,  2410,  2410,  2410,  2410,  1730,  1815,  2410,  2410,  2410,
  419.   2410,  2410,  1900,  1985,  2070,  2155,  2240,  2410,  2410,  2325,
  420. -32768,-32768,-32768,    34,    16,  2801,   207,    17,  2693,   269,
  421.   1301,  1387,   270,   211,   273,   276,   187,-32768,    18,-32768,
  422.     22,-32768,    23,-32768,   348,    15,  2410,-32768,   194,    55,
  423. -32768,   278,   207,   227,   227,   230,   237,-32768,-32768,    24,
  424.   2729,  2693,  2693,  2693,  2693,   295,   227,  2729,    15,  2410,
  425.   1473,  1559,    82,   -33,   113,   -24,   187,   187,   187,  2410,
  426. -32768,  1645,   216,-32768,  2410,-32768,   187,   187,   187,   187,
  427.   2801,  2813,  2741,  2410,   158,  2410,   123,  2801,  2765,  2852,
  428.   2888,   266,  2410,   326,  2410,   326,  2410,  2777,  2410,   138,
  429.   2410,   138,   223,   223,  2410,   223,-32768,-32768,  2410,   303,
  430.   2410,   227,-32768,-32768,    15,-32768,    15,-32768,  2410,-32768,
  431.    112,   112,   112,   112,-32768,    49,-32768,    15,  2410,   112,
  432. -32768,   305,   207,   227,  2665,  2665,-32768,   306,    50,   207,
  433.    227,   227,-32768,   207,   307,-32768,   153,-32768,    15,-32768,
  434.     15,-32768,-32768,-32768,-32768,   115,-32768,  2410,    60,  2801,
  435.   2801,  2410,  2801,  2801,  2801,  2801,  2801,  2801,   187,-32768,
  436.   2801,   227,-32768,-32768,    15,-32768,-32768,-32768,-32768,-32768,
  437.    314,   112,   221,-32768,-32768,   316,   207,   317,   227,-32768,
  438. -32768,   318,   320,   207,   227,   322,-32768,-32768,-32768,-32768,
  439. -32768,   128,   112,  2837,   323,-32768,-32768,-32768,   608,-32768,
  440.    324,-32768,   227,-32768,-32768,   325,   207,-32768,-32768,-32768,
  441. -32768,   327,-32768,   207,-32768,   328,   112,   329,-32768,-32768,
  442. -32768,   330,   334,-32768
  443. };
  444.  
  445. static const short yypgoto[] = {-32768,
  446. -32768,  -107,-32768,   -17,-32768,   246,-32768,   331,-32768,-32768,
  447.    -44,    40,-32768,-32768,-32768,-32768,-32768,  -176,    62,    63,
  448.    -23,   215,-32768,   -89,    29,   -73,    28,-32768
  449. };
  450.  
  451.  
  452. #define    YYLAST        2970
  453.  
  454.  
  455. static const short yytable[] = {    87,
  456.    208,    98,   210,   200,   212,   106,   214,    97,   146,   146,
  457.     20,    20,   108,   110,   112,   114,   148,    15,   251,   288,
  458.   -177,   302,    20,   134,   117,   303,   304,   317,    20,   141,
  459.    173,   222,   223,   224,   225,   226,   227,    99,     3,   173,
  460.    119,    90,   134,   155,     4,    92,   312,    14,   152,   154,
  461.    191,   192,   360,   371,   318,   118,   105,   333,   251,    85,
  462.     99,   325,   236,   383,   237,    99,   335,   196,    17,   199,
  463.     18,   169,   170,   171,   172,   135,     5,    16,   252,  -177,
  464.   -177,   173,-32768,-32768,     6,   173,   173,   173,   100,   120,
  465.    202,   215,   107,   109,   135,   147,   147,   196,   196,   196,
  466.    196,   196,   196,   149,   111,   231,   232,   233,   234,   235,
  467.    113,   100,   291,   289,    20,   238,   100,   101,   252,   287,
  468.    121,    91,   136,   173,    86,    93,   144,   153,    88,   203,
  469.     -2,   204,   205,   161,    94,     3,   366,   164,   165,   166,
  470.    104,     4,   372,   373,   143,   173,   254,   376,   256,   261,
  471.    262,   263,   265,   267,   268,   269,   270,   271,   272,   274,
  472.    276,   278,   280,   282,   283,   284,   286,   332,   207,   103,
  473.    209,   176,   211,     5,   213,   145,   173,   216,   173,   220,
  474.    115,     6,   169,   170,   171,   172,   176,   177,   116,   230,
  475.    391,   173,   122,   356,   357,   358,   359,   396,   334,   188,
  476.    189,   193,   364,   239,   190,   381,   168,   243,   244,   245,
  477.    246,   247,   248,   249,   188,   189,   173,   123,   399,   190,
  478.    406,   124,   228,   125,   126,   368,   369,   408,   261,   173,
  479.    257,   258,   259,   260,   188,   189,   127,   240,   378,   190,
  480.    340,   128,   341,   307,   129,   130,   131,   310,   132,   343,
  481.    173,   344,   133,   345,   388,   346,   138,   347,   139,   142,
  482.    201,   348,   295,   297,   217,   241,   326,   351,   242,   255,
  483.    289,   250,   293,   298,   299,   400,   300,   306,   308,   301,
  484.    309,   311,   156,   157,   158,   159,   313,   314,   162,   163,
  485.    291,   196,   196,   315,   319,   320,   321,   322,   323,   324,
  486.    316,   327,   329,   331,   190,   338,   350,   389,   365,   370,
  487.    377,   336,   174,   175,   176,   177,   339,   387,   384,   390,
  488.    392,   394,   353,   395,   354,   398,   401,   403,   405,   413,
  489.    407,   409,   411,   414,   194,   362,   183,   184,   185,    78,
  490.    186,   187,   188,   189,   402,     0,     0,   190,   363,     0,
  491.    349,   305,   176,   177,   352,     0,   379,     0,   380,     0,
  492.    355,     0,     0,     0,     0,     0,     0,     0,   361,     0,
  493.    207,     0,   174,   175,   176,   177,   367,     0,   186,   187,
  494.    188,   189,   386,   374,   375,   190,     0,     0,     0,   410,
  495.      0,     0,     0,     0,   174,   175,   176,   177,   185,   382,
  496.    186,   187,   188,   189,     0,     0,     0,   190,     0,     0,
  497.      0,   291,   178,   179,   385,   180,   181,   182,   183,   184,
  498.    185,     0,   186,   187,   188,   189,     0,     0,     0,   190,
  499.      0,   393,     0,     0,    19,     0,    20,   397,    21,     0,
  500.     22,    23,    24,     0,     0,    25,    26,    27,    28,    29,
  501.     30,    31,    32,    33,     0,   404,     0,    34,    35,    36,
  502.     37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
  503.     47,    48,    49,    50,    51,    52,     0,    53,    54,    55,
  504.      0,     0,     0,     0,     0,    56,     0,    57,    58,    59,
  505.     60,    61,    62,    63,    64,    65,    66,     0,     0,     0,
  506.      0,     0,     0,     0,     0,     0,     0,    67,     0,     0,
  507.      0,     0,    68,    69,     0,     0,    70,    71,    72,    19,
  508.     73,    74,    75,    21,     0,    22,    23,    24,     0,     0,
  509.     25,    26,    27,    28,    29,     0,     0,     0,     0,     0,
  510.      0,     0,    34,    35,     0,    37,    38,    39,    40,    41,
  511.     42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
  512.     52,     0,    53,    54,    55,     0,     0,     0,     0,     0,
  513.     56,     0,    57,    58,    59,    60,    61,    62,    63,    64,
  514.     65,    66,     0,     0,     0,     0,     0,     0,     0,     0,
  515.      0,     0,    67,     0,     0,     0,     0,    68,    69,     0,
  516.      0,    70,    71,    72,     0,   -35,    74,    75,    19,     0,
  517.      0,   -35,    21,     0,    22,    23,    24,     0,     0,    25,
  518.     26,    27,    28,    29,     0,     0,     0,     0,     0,     0,
  519.      0,    34,    35,     0,    37,    38,    39,    40,    41,    42,
  520.     43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
  521.      0,    53,    54,    55,     0,     0,     0,     0,     0,    56,
  522.      0,    57,    58,    59,    60,    61,    62,    63,    64,    65,
  523.     66,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  524.      0,    67,     0,     0,     0,     0,    68,    69,     0,     0,
  525.     70,    71,    72,     0,     0,    74,    75,   146,     0,    21,
  526.      0,    22,    23,    24,     0,     0,    25,    26,    27,    28,
  527.     29,     0,     0,     0,     0,     0,     0,     0,    34,    35,
  528.      0,    37,    38,    39,    40,    41,    42,    43,    44,    45,
  529.     46,    47,    48,    49,    50,    51,    52,     0,    53,    54,
  530.     55,     0,     0,     0,     0,     0,    56,     0,    57,    58,
  531.     59,    60,    61,    62,    63,    64,    65,    66,     0,     0,
  532.      0,     0,     0,     0,     0,     0,     0,     0,    67,     0,
  533.      0,     0,     0,    68,    69,     0,     0,     0,     0,    72,
  534.      0,     0,    74,    75,   147,    20,     0,    95,     0,    22,
  535.     23,    24,     0,     0,    25,    26,    27,    28,    29,     0,
  536.      0,     0,     0,     0,     0,     0,    34,    35,     0,    37,
  537.     38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
  538.     48,    49,    50,    51,    52,     0,    53,    54,    55,     0,
  539.      0,     0,     0,     0,    56,     0,    96,    58,    59,    60,
  540.     61,    62,    63,    64,    65,    66,     0,     0,     0,     0,
  541.      0,     0,     0,     0,     0,     0,    67,     0,     0,     0,
  542.      0,    68,    69,     0,     0,    70,    71,    72,     0,     0,
  543.     74,    75,    20,     0,   150,     0,    22,    23,    24,     0,
  544.      0,    25,    26,    27,    28,    29,     0,     0,     0,     0,
  545.      0,     0,     0,    34,    35,     0,    37,    38,    39,    40,
  546.     41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
  547.     51,    52,     0,    53,    54,    55,     0,     0,     0,     0,
  548.      0,    56,     0,   151,    58,    59,    60,    61,    62,    63,
  549.     64,    65,    66,     0,     0,     0,     0,     0,     0,     0,
  550.      0,     0,     0,    67,     0,     0,     0,     0,    68,    69,
  551.      0,     0,    70,    71,    72,     0,     0,    74,    75,    20,
  552.      0,    21,     0,    22,    23,    24,     0,     0,    25,    26,
  553.     27,    28,    29,     0,     0,     0,     0,     0,     0,     0,
  554.     34,    35,     0,    37,    38,    39,    40,    41,    42,    43,
  555.     44,    45,    46,    47,    48,    49,    50,    51,    52,     0,
  556.     53,    54,    55,     0,     0,     0,     0,     0,    56,     0,
  557.     57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
  558.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  559.     67,     0,     0,     0,     0,    68,    69,     0,     0,    70,
  560.     71,    72,     0,     0,    74,    75,   160,    21,     0,    22,
  561.     23,    24,     0,     0,    25,    26,    27,    28,    29,     0,
  562.      0,     0,     0,     0,     0,     0,    34,    35,     0,    37,
  563.     38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
  564.     48,    49,    50,    51,    52,     0,    53,    54,    55,     0,
  565.      0,     0,     0,     0,    56,     0,    57,    58,    59,    60,
  566.     61,    62,    63,    64,    65,    66,     0,     0,     0,     0,
  567.      0,     0,     0,     0,     0,     0,    67,     0,     0,     0,
  568.      0,    68,    69,     0,     0,    70,    71,    72,     0,     0,
  569.     74,    75,   221,   198,     0,    22,    23,    24,     0,     0,
  570.     25,    26,    27,    28,    29,     0,     0,     0,     0,     0,
  571.      0,     0,    34,    35,     0,    37,    38,    39,    40,    41,
  572.     42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
  573.     52,     0,    53,    54,    55,     0,     0,     0,     0,     0,
  574.     56,     0,    57,    58,    59,    60,    61,    62,    63,    64,
  575.     65,    66,     0,     0,     0,     0,     0,     0,     0,     0,
  576.      0,     0,    67,     0,     0,     0,     0,    68,    69,     0,
  577.      0,    70,    71,    72,     0,     0,    74,    75,   229,    21,
  578.      0,    22,    23,    24,     0,     0,    25,    26,    27,    28,
  579.     29,     0,     0,     0,     0,     0,     0,     0,    34,    35,
  580.      0,    37,    38,    39,    40,    41,    42,    43,    44,    45,
  581.     46,    47,    48,    49,    50,    51,    52,     0,    53,    54,
  582.     55,     0,     0,     0,     0,     0,    56,     0,    57,    58,
  583.     59,    60,    61,    62,    63,    64,    65,    66,     0,     0,
  584.      0,     0,     0,     0,     0,     0,     0,     0,    67,     0,
  585.      0,     0,     0,    68,    69,     0,     0,    70,    71,    72,
  586.      0,     0,    74,    75,   294,    21,     0,    22,    23,    24,
  587.      0,     0,    25,    26,    27,    28,    29,     0,     0,     0,
  588.      0,     0,     0,     0,    34,    35,     0,    37,    38,    39,
  589.     40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
  590.     50,    51,    52,     0,    53,    54,    55,     0,     0,     0,
  591.      0,     0,    56,     0,    57,    58,    59,    60,    61,    62,
  592.     63,    64,    65,    66,     0,     0,     0,     0,     0,     0,
  593.      0,     0,     0,     0,    67,     0,     0,     0,     0,    68,
  594.     69,     0,     0,    70,    71,    72,     0,     0,    74,    75,
  595.    296,    21,     0,    22,    23,    24,     0,     0,    25,    26,
  596.     27,    28,    29,     0,     0,     0,     0,     0,     0,     0,
  597.     34,    35,     0,    37,    38,    39,    40,    41,    42,    43,
  598.     44,    45,    46,    47,    48,    49,    50,    51,    52,     0,
  599.     53,    54,    55,     0,     0,     0,     0,     0,    56,     0,
  600.     57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
  601.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  602.     67,     0,     0,     0,     0,    68,    69,     0,     0,    70,
  603.     71,    72,     0,     0,    74,    75,   328,    21,     0,    22,
  604.     23,    24,     0,     0,    25,    26,    27,    28,    29,     0,
  605.      0,     0,     0,     0,     0,     0,    34,    35,     0,    37,
  606.     38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
  607.     48,    49,    50,    51,    52,     0,    53,    54,    55,     0,
  608.      0,     0,     0,     0,    56,     0,    57,    58,    59,    60,
  609.     61,    62,    63,    64,    65,    66,     0,     0,     0,     0,
  610.      0,     0,     0,     0,     0,     0,    67,     0,     0,     0,
  611.      0,    68,    69,     0,     0,    70,    71,    72,     0,     0,
  612.     74,    75,   330,    21,     0,    22,    23,    24,     0,     0,
  613.     25,    26,    27,    28,    29,     0,     0,     0,     0,     0,
  614.      0,     0,    34,    35,     0,    37,    38,    39,    40,    41,
  615.     42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
  616.     52,     0,    53,    54,    55,     0,     0,     0,     0,     0,
  617.     56,     0,    57,    58,    59,    60,    61,    62,    63,    64,
  618.     65,    66,     0,     0,     0,     0,     0,     0,     0,     0,
  619.      0,     0,    67,     0,     0,     0,     0,    68,    69,     0,
  620.      0,    70,    71,    72,     0,     0,    74,    75,   337,    21,
  621.      0,    22,    23,    24,     0,     0,    25,    26,    27,    28,
  622.     29,     0,     0,     0,     0,     0,     0,     0,    34,    35,
  623.      0,    37,    38,    39,    40,    41,    42,    43,    44,    45,
  624.     46,    47,    48,    49,    50,    51,    52,     0,    53,    54,
  625.     55,     0,     0,     0,     0,     0,    56,     0,    57,    58,
  626.     59,    60,    61,    62,    63,    64,    65,    66,     0,     0,
  627.      0,     0,     0,     0,     0,     0,     0,     0,    67,     0,
  628.      0,     0,     0,    68,    69,     0,     0,    70,    71,    72,
  629.      0,     0,    74,    75,    21,     0,    22,    23,    24,     0,
  630.      0,    25,    26,    27,    28,    29,     0,     0,     0,     0,
  631.      0,     0,     0,    34,    35,     0,    37,    38,    39,    40,
  632.     41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
  633.     51,    52,     0,    53,    54,    55,     0,     0,     0,     0,
  634.      0,    56,     0,    57,    58,    59,    60,    61,    62,    63,
  635.     64,    65,    66,     0,   264,     0,     0,     0,     0,     0,
  636.      0,     0,     0,    67,     0,     0,     0,     0,    68,    69,
  637.      0,     0,    70,    71,    72,     0,     0,    74,    75,    21,
  638.      0,    22,    23,    24,     0,     0,    25,    26,    27,    28,
  639.     29,     0,     0,     0,     0,     0,     0,     0,    34,    35,
  640.      0,    37,    38,    39,    40,    41,    42,    43,    44,    45,
  641.     46,    47,    48,    49,    50,    51,    52,     0,    53,    54,
  642.     55,     0,     0,     0,     0,     0,    56,     0,    57,    58,
  643.     59,    60,    61,    62,    63,    64,    65,    66,     0,   266,
  644.      0,     0,     0,     0,     0,     0,     0,     0,    67,     0,
  645.      0,     0,     0,    68,    69,     0,     0,    70,    71,    72,
  646.      0,     0,    74,    75,    21,     0,    22,    23,    24,     0,
  647.      0,    25,    26,    27,    28,    29,     0,     0,     0,     0,
  648.      0,     0,     0,    34,    35,     0,    37,    38,    39,    40,
  649.     41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
  650.     51,    52,     0,    53,    54,    55,     0,     0,     0,     0,
  651.      0,    56,     0,    57,    58,    59,    60,    61,    62,    63,
  652.     64,    65,    66,     0,   273,     0,     0,     0,     0,     0,
  653.      0,     0,     0,    67,     0,     0,     0,     0,    68,    69,
  654.      0,     0,    70,    71,    72,     0,     0,    74,    75,    21,
  655.      0,    22,    23,    24,     0,     0,    25,    26,    27,    28,
  656.     29,     0,     0,     0,     0,     0,     0,     0,    34,    35,
  657.      0,    37,    38,    39,    40,    41,    42,    43,    44,    45,
  658.     46,    47,    48,    49,    50,    51,    52,     0,    53,    54,
  659.     55,     0,     0,     0,     0,     0,    56,     0,    57,    58,
  660.     59,    60,    61,    62,    63,    64,    65,    66,     0,   275,
  661.      0,     0,     0,     0,     0,     0,     0,     0,    67,     0,
  662.      0,     0,     0,    68,    69,     0,     0,    70,    71,    72,
  663.      0,     0,    74,    75,    21,     0,    22,    23,    24,     0,
  664.      0,    25,    26,    27,    28,    29,     0,     0,     0,     0,
  665.      0,     0,     0,    34,    35,     0,    37,    38,    39,    40,
  666.     41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
  667.     51,    52,     0,    53,    54,    55,     0,     0,     0,     0,
  668.      0,    56,     0,    57,    58,    59,    60,    61,    62,    63,
  669.     64,    65,    66,     0,   277,     0,     0,     0,     0,     0,
  670.      0,     0,     0,    67,     0,     0,     0,     0,    68,    69,
  671.      0,     0,    70,    71,    72,     0,     0,    74,    75,    21,
  672.      0,    22,    23,    24,     0,     0,    25,    26,    27,    28,
  673.     29,     0,     0,     0,     0,     0,     0,     0,    34,    35,
  674.      0,    37,    38,    39,    40,    41,    42,    43,    44,    45,
  675.     46,    47,    48,    49,    50,    51,    52,     0,    53,    54,
  676.     55,     0,     0,     0,     0,     0,    56,     0,    57,    58,
  677.     59,    60,    61,    62,    63,    64,    65,    66,     0,   279,
  678.      0,     0,     0,     0,     0,     0,     0,     0,    67,     0,
  679.      0,     0,     0,    68,    69,     0,     0,    70,    71,    72,
  680.      0,     0,    74,    75,    21,     0,    22,    23,    24,     0,
  681.      0,    25,    26,    27,    28,    29,     0,     0,     0,     0,
  682.      0,     0,     0,    34,    35,     0,    37,    38,    39,    40,
  683.     41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
  684.     51,    52,     0,    53,    54,    55,     0,     0,     0,     0,
  685.      0,    56,     0,    57,    58,    59,    60,    61,    62,    63,
  686.     64,    65,    66,     0,   281,     0,     0,     0,     0,     0,
  687.      0,     0,     0,    67,     0,     0,     0,     0,    68,    69,
  688.      0,     0,    70,    71,    72,     0,     0,    74,    75,    21,
  689.      0,    22,    23,    24,     0,     0,    25,    26,    27,    28,
  690.     29,     0,     0,     0,     0,     0,     0,     0,    34,    35,
  691.      0,    37,    38,    39,    40,    41,    42,    43,    44,    45,
  692.     46,    47,    48,    49,    50,    51,    52,     0,    53,    54,
  693.     55,     0,     0,     0,     0,     0,    56,     0,    57,    58,
  694.     59,    60,    61,    62,    63,    64,    65,    66,     0,   285,
  695.      0,     0,     0,     0,     0,     0,     0,     0,    67,     0,
  696.      0,     0,     0,    68,    69,     0,     0,    70,    71,    72,
  697.      0,     0,    74,    75,    21,     0,    22,    23,    24,     0,
  698.      0,    25,    26,    27,    28,    29,     0,     0,     0,     0,
  699.      0,     0,     0,    34,    35,     0,    37,    38,    39,    40,
  700.     41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
  701.     51,    52,     0,    53,    54,    55,     0,     0,     0,     0,
  702.      0,    56,     0,    57,    58,    59,    60,    61,    62,    63,
  703.     64,    65,    66,     0,     0,     0,     0,     0,     0,     0,
  704.      0,     0,     0,    67,     0,     0,     0,     0,    68,    69,
  705.      0,     0,    70,    71,    72,     0,     0,    74,    75,   140,
  706.      0,    22,    23,    24,     0,     0,    25,    26,    27,    28,
  707.     29,     0,     0,     0,     0,     0,     0,     0,    34,    35,
  708.      0,    37,    38,    39,    40,    41,    42,    43,    44,    45,
  709.     46,    47,    48,    49,    50,    51,    52,     0,    53,    54,
  710.     55,     0,     0,     0,     0,     0,    56,     0,    57,    58,
  711.     59,    60,    61,    62,    63,    64,    65,    66,     0,     0,
  712.      0,     0,     0,     0,     0,     0,     0,     0,    67,     0,
  713.      0,     0,     0,    68,    69,     0,     0,    70,    71,    72,
  714.      0,     0,    74,    75,   195,     0,    22,    23,    24,     0,
  715.      0,    25,    26,    27,    28,    29,     0,     0,     0,     0,
  716.      0,     0,     0,    34,    35,     0,    37,    38,    39,    40,
  717.     41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
  718.     51,    52,     0,    53,    54,    55,     0,     0,     0,     0,
  719.      0,    56,     0,    57,    58,    59,    60,    61,    62,    63,
  720.     64,    65,    66,     0,     0,     0,     0,     0,     0,     0,
  721.      0,     0,     0,    67,     0,     0,     0,     0,    68,    69,
  722.      0,     0,    70,    71,    72,     0,     0,    74,    75,   198,
  723.      0,    22,    23,    24,     0,     0,    25,    26,    27,    28,
  724.     29,     0,     0,     0,     0,     0,     0,     0,    34,    35,
  725.      0,    37,    38,    39,    40,    41,    42,    43,    44,    45,
  726.     46,    47,    48,    49,    50,    51,    52,     0,    53,    54,
  727.     55,     0,     0,     0,     0,     0,    56,     0,    57,    58,
  728.     59,    60,    61,    62,    63,    64,    65,    66,     0,     0,
  729.      0,     0,     0,     0,     0,     0,     0,     0,    67,   174,
  730.    175,   176,   177,    68,    69,     0,     0,    70,    71,    72,
  731.      0,     0,    74,    75,     0,     0,   291,   178,   179,     0,
  732.    180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
  733.    189,     0,     0,     0,   190,   174,   175,   176,   177,     0,
  734.      0,     0,     0,     0,     0,     0,     0,   174,-32768,   176,
  735.    177,     0,   289,   178,   179,     0,   180,   181,   182,   183,
  736.    184,   185,     0,   186,   187,   188,   189,     0,     0,     0,
  737.    190,   174,   175,   176,   177,   186,   187,   188,   189,     0,
  738.      0,     0,   190,   174,   175,   176,   177,     0,     0,   178,
  739.    179,   342,   180,   181,   182,   183,   184,   185,     0,   186,
  740.    187,   188,   189,     0,     0,     0,   190,   174,   175,   176,
  741.    177,   186,   187,   188,   189,     0,     0,     0,   190,-32768,
  742.      0,   176,   177,     0,     0,   178,   179,     0,   180,   181,
  743.    182,   183,   184,   185,     0,   186,   187,   188,   189,     0,
  744.      0,     0,   190,   174,   175,   176,   177,   186,   187,   188,
  745.    189,     0,     0,     0,   190,     0,     0,     0,   174,   175,
  746.    176,   177,   179,     0,   180,   181,   182,   183,   184,   185,
  747.      0,   186,   187,   188,   189,     0,     0,     0,   190,-32768,
  748.    181,   182,   183,   184,   185,     0,   186,   187,   188,   189,
  749.      0,     0,     0,   190,   174,   175,   176,   177,     0,     0,
  750.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  751.      0,     0,     0,     0,     0,     0,     0,   182,   183,   184,
  752.    185,     0,   186,   187,   188,   189,     0,     0,     0,   190
  753. };
  754.  
  755. static const short yycheck[] = {    17,
  756.    108,    25,   110,    93,   112,    29,   114,    25,     3,     3,
  757.      3,     3,    30,    31,    32,    33,     3,     5,     4,     4,
  758.      4,     4,     3,     5,    54,     4,     4,     4,     3,    53,
  759.     64,   121,   122,   123,   124,   125,   126,     5,     5,    64,
  760.      5,     5,     5,    67,    11,     5,   223,    67,    66,    67,
  761.     83,    84,     4,     4,   231,    85,    28,    91,     4,    65,
  762.      5,   238,   136,     4,   138,     5,    91,    91,     5,    93,
  763.      5,    17,    18,    19,    20,    57,    43,    65,    64,    64,
  764.     64,    64,    83,    84,    51,    64,    64,    64,    56,    54,
  765.     85,   115,    85,    85,    57,    90,    90,   121,   122,   123,
  766.    124,   125,   126,    90,    85,   129,   130,   131,   132,   133,
  767.     85,    56,    64,    64,     3,   139,    56,    85,    64,    86,
  768.     85,    85,    85,    64,    53,    85,     5,    66,    87,   101,
  769.      0,   103,   104,    72,     5,     5,   313,    21,    22,    23,
  770.     85,    11,   319,   320,    54,    64,   164,   324,   166,   173,
  771.    174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
  772.    184,   185,   186,   187,   188,   189,   190,    86,   107,    85,
  773.    109,    49,   111,    43,   113,    54,    64,   116,    64,   118,
  774.     85,    51,    17,    18,    19,    20,    49,    50,    85,   128,
  775.    367,    64,    85,   301,   302,   303,   304,   374,    86,    77,
  776.     78,    53,   310,   142,    82,    91,    87,   146,   147,   148,
  777.    149,   150,   151,   152,    77,    78,    64,    85,    91,    82,
  778.    397,    85,     4,    85,    85,   315,   316,   404,   252,    64,
  779.    169,   170,   171,   172,    77,    78,    85,     3,    86,    82,
  780.    264,    85,   266,   216,    85,    85,    85,   220,    85,   273,
  781.     64,   275,    85,   277,   362,   279,    85,   281,    85,    85,
  782.     85,   285,   201,   202,    85,    85,   239,   291,    85,    85,
  783.     64,    90,     4,     4,    64,   383,     4,   215,   217,     4,
  784.     87,     4,    68,    69,    70,    71,   224,   225,    74,    75,
  785.     64,   315,   316,    64,   232,   233,   234,   235,     4,   237,
  786.     64,   240,   241,   242,    82,    90,     4,    87,     4,     4,
  787.      4,   250,    47,    48,    49,    50,   255,     4,   342,     4,
  788.      4,     4,   295,     4,   297,     4,     4,     4,     4,     0,
  789.      4,     4,     4,     0,    89,   308,    71,    72,    73,     9,
  790.     75,    76,    77,    78,   389,    -1,    -1,    82,   309,    -1,
  791.    289,     4,    49,    50,   292,    -1,   329,    -1,   331,    -1,
  792.    299,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   306,    -1,
  793.    309,    -1,    47,    48,    49,    50,   314,    -1,    75,    76,
  794.     77,    78,   355,   321,   322,    82,    -1,    -1,    -1,   407,
  795.     -1,    -1,    -1,    -1,    47,    48,    49,    50,    73,   338,
  796.     75,    76,    77,    78,    -1,    -1,    -1,    82,    -1,    -1,
  797.     -1,    64,    65,    66,   352,    68,    69,    70,    71,    72,
  798.     73,    -1,    75,    76,    77,    78,    -1,    -1,    -1,    82,
  799.     -1,   369,    -1,    -1,     1,    -1,     3,   375,     5,    -1,
  800.      7,     8,     9,    -1,    -1,    12,    13,    14,    15,    16,
  801.     17,    18,    19,    20,    -1,   393,    -1,    24,    25,    26,
  802.     27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
  803.     37,    38,    39,    40,    41,    42,    -1,    44,    45,    46,
  804.     -1,    -1,    -1,    -1,    -1,    52,    -1,    54,    55,    56,
  805.     57,    58,    59,    60,    61,    62,    63,    -1,    -1,    -1,
  806.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    -1,    -1,
  807.     -1,    -1,    79,    80,    -1,    -1,    83,    84,    85,     1,
  808.     87,    88,    89,     5,    -1,     7,     8,     9,    -1,    -1,
  809.     12,    13,    14,    15,    16,    -1,    -1,    -1,    -1,    -1,
  810.     -1,    -1,    24,    25,    -1,    27,    28,    29,    30,    31,
  811.     32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
  812.     42,    -1,    44,    45,    46,    -1,    -1,    -1,    -1,    -1,
  813.     52,    -1,    54,    55,    56,    57,    58,    59,    60,    61,
  814.     62,    63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  815.     -1,    -1,    74,    -1,    -1,    -1,    -1,    79,    80,    -1,
  816.     -1,    83,    84,    85,    -1,    87,    88,    89,     1,    -1,
  817.     -1,     4,     5,    -1,     7,     8,     9,    -1,    -1,    12,
  818.     13,    14,    15,    16,    -1,    -1,    -1,    -1,    -1,    -1,
  819.     -1,    24,    25,    -1,    27,    28,    29,    30,    31,    32,
  820.     33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
  821.     -1,    44,    45,    46,    -1,    -1,    -1,    -1,    -1,    52,
  822.     -1,    54,    55,    56,    57,    58,    59,    60,    61,    62,
  823.     63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  824.     -1,    74,    -1,    -1,    -1,    -1,    79,    80,    -1,    -1,
  825.     83,    84,    85,    -1,    -1,    88,    89,     3,    -1,     5,
  826.     -1,     7,     8,     9,    -1,    -1,    12,    13,    14,    15,
  827.     16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    24,    25,
  828.     -1,    27,    28,    29,    30,    31,    32,    33,    34,    35,
  829.     36,    37,    38,    39,    40,    41,    42,    -1,    44,    45,
  830.     46,    -1,    -1,    -1,    -1,    -1,    52,    -1,    54,    55,
  831.     56,    57,    58,    59,    60,    61,    62,    63,    -1,    -1,
  832.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    -1,
  833.     -1,    -1,    -1,    79,    80,    -1,    -1,    -1,    -1,    85,
  834.     -1,    -1,    88,    89,    90,     3,    -1,     5,    -1,     7,
  835.      8,     9,    -1,    -1,    12,    13,    14,    15,    16,    -1,
  836.     -1,    -1,    -1,    -1,    -1,    -1,    24,    25,    -1,    27,
  837.     28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
  838.     38,    39,    40,    41,    42,    -1,    44,    45,    46,    -1,
  839.     -1,    -1,    -1,    -1,    52,    -1,    54,    55,    56,    57,
  840.     58,    59,    60,    61,    62,    63,    -1,    -1,    -1,    -1,
  841.     -1,    -1,    -1,    -1,    -1,    -1,    74,    -1,    -1,    -1,
  842.     -1,    79,    80,    -1,    -1,    83,    84,    85,    -1,    -1,
  843.     88,    89,     3,    -1,     5,    -1,     7,     8,     9,    -1,
  844.     -1,    12,    13,    14,    15,    16,    -1,    -1,    -1,    -1,
  845.     -1,    -1,    -1,    24,    25,    -1,    27,    28,    29,    30,
  846.     31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
  847.     41,    42,    -1,    44,    45,    46,    -1,    -1,    -1,    -1,
  848.     -1,    52,    -1,    54,    55,    56,    57,    58,    59,    60,
  849.     61,    62,    63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  850.     -1,    -1,    -1,    74,    -1,    -1,    -1,    -1,    79,    80,
  851.     -1,    -1,    83,    84,    85,    -1,    -1,    88,    89,     3,
  852.     -1,     5,    -1,     7,     8,     9,    -1,    -1,    12,    13,
  853.     14,    15,    16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  854.     24,    25,    -1,    27,    28,    29,    30,    31,    32,    33,
  855.     34,    35,    36,    37,    38,    39,    40,    41,    42,    -1,
  856.     44,    45,    46,    -1,    -1,    -1,    -1,    -1,    52,    -1,
  857.     54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
  858.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  859.     74,    -1,    -1,    -1,    -1,    79,    80,    -1,    -1,    83,
  860.     84,    85,    -1,    -1,    88,    89,     4,     5,    -1,     7,
  861.      8,     9,    -1,    -1,    12,    13,    14,    15,    16,    -1,
  862.     -1,    -1,    -1,    -1,    -1,    -1,    24,    25,    -1,    27,
  863.     28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
  864.     38,    39,    40,    41,    42,    -1,    44,    45,    46,    -1,
  865.     -1,    -1,    -1,    -1,    52,    -1,    54,    55,    56,    57,
  866.     58,    59,    60,    61,    62,    63,    -1,    -1,    -1,    -1,
  867.     -1,    -1,    -1,    -1,    -1,    -1,    74,    -1,    -1,    -1,
  868.     -1,    79,    80,    -1,    -1,    83,    84,    85,    -1,    -1,
  869.     88,    89,     4,     5,    -1,     7,     8,     9,    -1,    -1,
  870.     12,    13,    14,    15,    16,    -1,    -1,    -1,    -1,    -1,
  871.     -1,    -1,    24,    25,    -1,    27,    28,    29,    30,    31,
  872.     32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
  873.     42,    -1,    44,    45,    46,    -1,    -1,    -1,    -1,    -1,
  874.     52,    -1,    54,    55,    56,    57,    58,    59,    60,    61,
  875.     62,    63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  876.     -1,    -1,    74,    -1,    -1,    -1,    -1,    79,    80,    -1,
  877.     -1,    83,    84,    85,    -1,    -1,    88,    89,     4,     5,
  878.     -1,     7,     8,     9,    -1,    -1,    12,    13,    14,    15,
  879.     16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    24,    25,
  880.     -1,    27,    28,    29,    30,    31,    32,    33,    34,    35,
  881.     36,    37,    38,    39,    40,    41,    42,    -1,    44,    45,
  882.     46,    -1,    -1,    -1,    -1,    -1,    52,    -1,    54,    55,
  883.     56,    57,    58,    59,    60,    61,    62,    63,    -1,    -1,
  884.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    -1,
  885.     -1,    -1,    -1,    79,    80,    -1,    -1,    83,    84,    85,
  886.     -1,    -1,    88,    89,     4,     5,    -1,     7,     8,     9,
  887.     -1,    -1,    12,    13,    14,    15,    16,    -1,    -1,    -1,
  888.     -1,    -1,    -1,    -1,    24,    25,    -1,    27,    28,    29,
  889.     30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
  890.     40,    41,    42,    -1,    44,    45,    46,    -1,    -1,    -1,
  891.     -1,    -1,    52,    -1,    54,    55,    56,    57,    58,    59,
  892.     60,    61,    62,    63,    -1,    -1,    -1,    -1,    -1,    -1,
  893.     -1,    -1,    -1,    -1,    74,    -1,    -1,    -1,    -1,    79,
  894.     80,    -1,    -1,    83,    84,    85,    -1,    -1,    88,    89,
  895.      4,     5,    -1,     7,     8,     9,    -1,    -1,    12,    13,
  896.     14,    15,    16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  897.     24,    25,    -1,    27,    28,    29,    30,    31,    32,    33,
  898.     34,    35,    36,    37,    38,    39,    40,    41,    42,    -1,
  899.     44,    45,    46,    -1,    -1,    -1,    -1,    -1,    52,    -1,
  900.     54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
  901.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  902.     74,    -1,    -1,    -1,    -1,    79,    80,    -1,    -1,    83,
  903.     84,    85,    -1,    -1,    88,    89,     4,     5,    -1,     7,
  904.      8,     9,    -1,    -1,    12,    13,    14,    15,    16,    -1,
  905.     -1,    -1,    -1,    -1,    -1,    -1,    24,    25,    -1,    27,
  906.     28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
  907.     38,    39,    40,    41,    42,    -1,    44,    45,    46,    -1,
  908.     -1,    -1,    -1,    -1,    52,    -1,    54,    55,    56,    57,
  909.     58,    59,    60,    61,    62,    63,    -1,    -1,    -1,    -1,
  910.     -1,    -1,    -1,    -1,    -1,    -1,    74,    -1,    -1,    -1,
  911.     -1,    79,    80,    -1,    -1,    83,    84,    85,    -1,    -1,
  912.     88,    89,     4,     5,    -1,     7,     8,     9,    -1,    -1,
  913.     12,    13,    14,    15,    16,    -1,    -1,    -1,    -1,    -1,
  914.     -1,    -1,    24,    25,    -1,    27,    28,    29,    30,    31,
  915.     32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
  916.     42,    -1,    44,    45,    46,    -1,    -1,    -1,    -1,    -1,
  917.     52,    -1,    54,    55,    56,    57,    58,    59,    60,    61,
  918.     62,    63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  919.     -1,    -1,    74,    -1,    -1,    -1,    -1,    79,    80,    -1,
  920.     -1,    83,    84,    85,    -1,    -1,    88,    89,     4,     5,
  921.     -1,     7,     8,     9,    -1,    -1,    12,    13,    14,    15,
  922.     16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    24,    25,
  923.     -1,    27,    28,    29,    30,    31,    32,    33,    34,    35,
  924.     36,    37,    38,    39,    40,    41,    42,    -1,    44,    45,
  925.     46,    -1,    -1,    -1,    -1,    -1,    52,    -1,    54,    55,
  926.     56,    57,    58,    59,    60,    61,    62,    63,    -1,    -1,
  927.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    -1,
  928.     -1,    -1,    -1,    79,    80,    -1,    -1,    83,    84,    85,
  929.     -1,    -1,    88,    89,     5,    -1,     7,     8,     9,    -1,
  930.     -1,    12,    13,    14,    15,    16,    -1,    -1,    -1,    -1,
  931.     -1,    -1,    -1,    24,    25,    -1,    27,    28,    29,    30,
  932.     31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
  933.     41,    42,    -1,    44,    45,    46,    -1,    -1,    -1,    -1,
  934.     -1,    52,    -1,    54,    55,    56,    57,    58,    59,    60,
  935.     61,    62,    63,    -1,    65,    -1,    -1,    -1,    -1,    -1,
  936.     -1,    -1,    -1,    74,    -1,    -1,    -1,    -1,    79,    80,
  937.     -1,    -1,    83,    84,    85,    -1,    -1,    88,    89,     5,
  938.     -1,     7,     8,     9,    -1,    -1,    12,    13,    14,    15,
  939.     16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    24,    25,
  940.     -1,    27,    28,    29,    30,    31,    32,    33,    34,    35,
  941.     36,    37,    38,    39,    40,    41,    42,    -1,    44,    45,
  942.     46,    -1,    -1,    -1,    -1,    -1,    52,    -1,    54,    55,
  943.     56,    57,    58,    59,    60,    61,    62,    63,    -1,    65,
  944.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    -1,
  945.     -1,    -1,    -1,    79,    80,    -1,    -1,    83,    84,    85,
  946.     -1,    -1,    88,    89,     5,    -1,     7,     8,     9,    -1,
  947.     -1,    12,    13,    14,    15,    16,    -1,    -1,    -1,    -1,
  948.     -1,    -1,    -1,    24,    25,    -1,    27,    28,    29,    30,
  949.     31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
  950.     41,    42,    -1,    44,    45,    46,    -1,    -1,    -1,    -1,
  951.     -1,    52,    -1,    54,    55,    56,    57,    58,    59,    60,
  952.     61,    62,    63,    -1,    65,    -1,    -1,    -1,    -1,    -1,
  953.     -1,    -1,    -1,    74,    -1,    -1,    -1,    -1,    79,    80,
  954.     -1,    -1,    83,    84,    85,    -1,    -1,    88,    89,     5,
  955.     -1,     7,     8,     9,    -1,    -1,    12,    13,    14,    15,
  956.     16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    24,    25,
  957.     -1,    27,    28,    29,    30,    31,    32,    33,    34,    35,
  958.     36,    37,    38,    39,    40,    41,    42,    -1,    44,    45,
  959.     46,    -1,    -1,    -1,    -1,    -1,    52,    -1,    54,    55,
  960.     56,    57,    58,    59,    60,    61,    62,    63,    -1,    65,
  961.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    -1,
  962.     -1,    -1,    -1,    79,    80,    -1,    -1,    83,    84,    85,
  963.     -1,    -1,    88,    89,     5,    -1,     7,     8,     9,    -1,
  964.     -1,    12,    13,    14,    15,    16,    -1,    -1,    -1,    -1,
  965.     -1,    -1,    -1,    24,    25,    -1,    27,    28,    29,    30,
  966.     31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
  967.     41,    42,    -1,    44,    45,    46,    -1,    -1,    -1,    -1,
  968.     -1,    52,    -1,    54,    55,    56,    57,    58,    59,    60,
  969.     61,    62,    63,    -1,    65,    -1,    -1,    -1,    -1,    -1,
  970.     -1,    -1,    -1,    74,    -1,    -1,    -1,    -1,    79,    80,
  971.     -1,    -1,    83,    84,    85,    -1,    -1,    88,    89,     5,
  972.     -1,     7,     8,     9,    -1,    -1,    12,    13,    14,    15,
  973.     16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    24,    25,
  974.     -1,    27,    28,    29,    30,    31,    32,    33,    34,    35,
  975.     36,    37,    38,    39,    40,    41,    42,    -1,    44,    45,
  976.     46,    -1,    -1,    -1,    -1,    -1,    52,    -1,    54,    55,
  977.     56,    57,    58,    59,    60,    61,    62,    63,    -1,    65,
  978.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    -1,
  979.     -1,    -1,    -1,    79,    80,    -1,    -1,    83,    84,    85,
  980.     -1,    -1,    88,    89,     5,    -1,     7,     8,     9,    -1,
  981.     -1,    12,    13,    14,    15,    16,    -1,    -1,    -1,    -1,
  982.     -1,    -1,    -1,    24,    25,    -1,    27,    28,    29,    30,
  983.     31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
  984.     41,    42,    -1,    44,    45,    46,    -1,    -1,    -1,    -1,
  985.     -1,    52,    -1,    54,    55,    56,    57,    58,    59,    60,
  986.     61,    62,    63,    -1,    65,    -1,    -1,    -1,    -1,    -1,
  987.     -1,    -1,    -1,    74,    -1,    -1,    -1,    -1,    79,    80,
  988.     -1,    -1,    83,    84,    85,    -1,    -1,    88,    89,     5,
  989.     -1,     7,     8,     9,    -1,    -1,    12,    13,    14,    15,
  990.     16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    24,    25,
  991.     -1,    27,    28,    29,    30,    31,    32,    33,    34,    35,
  992.     36,    37,    38,    39,    40,    41,    42,    -1,    44,    45,
  993.     46,    -1,    -1,    -1,    -1,    -1,    52,    -1,    54,    55,
  994.     56,    57,    58,    59,    60,    61,    62,    63,    -1,    65,
  995.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    -1,
  996.     -1,    -1,    -1,    79,    80,    -1,    -1,    83,    84,    85,
  997.     -1,    -1,    88,    89,     5,    -1,     7,     8,     9,    -1,
  998.     -1,    12,    13,    14,    15,    16,    -1,    -1,    -1,    -1,
  999.     -1,    -1,    -1,    24,    25,    -1,    27,    28,    29,    30,
  1000.     31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
  1001.     41,    42,    -1,    44,    45,    46,    -1,    -1,    -1,    -1,
  1002.     -1,    52,    -1,    54,    55,    56,    57,    58,    59,    60,
  1003.     61,    62,    63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  1004.     -1,    -1,    -1,    74,    -1,    -1,    -1,    -1,    79,    80,
  1005.     -1,    -1,    83,    84,    85,    -1,    -1,    88,    89,     5,
  1006.     -1,     7,     8,     9,    -1,    -1,    12,    13,    14,    15,
  1007.     16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    24,    25,
  1008.     -1,    27,    28,    29,    30,    31,    32,    33,    34,    35,
  1009.     36,    37,    38,    39,    40,    41,    42,    -1,    44,    45,
  1010.     46,    -1,    -1,    -1,    -1,    -1,    52,    -1,    54,    55,
  1011.     56,    57,    58,    59,    60,    61,    62,    63,    -1,    -1,
  1012.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    -1,
  1013.     -1,    -1,    -1,    79,    80,    -1,    -1,    83,    84,    85,
  1014.     -1,    -1,    88,    89,     5,    -1,     7,     8,     9,    -1,
  1015.     -1,    12,    13,    14,    15,    16,    -1,    -1,    -1,    -1,
  1016.     -1,    -1,    -1,    24,    25,    -1,    27,    28,    29,    30,
  1017.     31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
  1018.     41,    42,    -1,    44,    45,    46,    -1,    -1,    -1,    -1,
  1019.     -1,    52,    -1,    54,    55,    56,    57,    58,    59,    60,
  1020.     61,    62,    63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  1021.     -1,    -1,    -1,    74,    -1,    -1,    -1,    -1,    79,    80,
  1022.     -1,    -1,    83,    84,    85,    -1,    -1,    88,    89,     5,
  1023.     -1,     7,     8,     9,    -1,    -1,    12,    13,    14,    15,
  1024.     16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    24,    25,
  1025.     -1,    27,    28,    29,    30,    31,    32,    33,    34,    35,
  1026.     36,    37,    38,    39,    40,    41,    42,    -1,    44,    45,
  1027.     46,    -1,    -1,    -1,    -1,    -1,    52,    -1,    54,    55,
  1028.     56,    57,    58,    59,    60,    61,    62,    63,    -1,    -1,
  1029.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    47,
  1030.     48,    49,    50,    79,    80,    -1,    -1,    83,    84,    85,
  1031.     -1,    -1,    88,    89,    -1,    -1,    64,    65,    66,    -1,
  1032.     68,    69,    70,    71,    72,    73,    -1,    75,    76,    77,
  1033.     78,    -1,    -1,    -1,    82,    47,    48,    49,    50,    -1,
  1034.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    47,    48,    49,
  1035.     50,    -1,    64,    65,    66,    -1,    68,    69,    70,    71,
  1036.     72,    73,    -1,    75,    76,    77,    78,    -1,    -1,    -1,
  1037.     82,    47,    48,    49,    50,    75,    76,    77,    78,    -1,
  1038.     -1,    -1,    82,    47,    48,    49,    50,    -1,    -1,    65,
  1039.     66,    67,    68,    69,    70,    71,    72,    73,    -1,    75,
  1040.     76,    77,    78,    -1,    -1,    -1,    82,    47,    48,    49,
  1041.     50,    75,    76,    77,    78,    -1,    -1,    -1,    82,    47,
  1042.     -1,    49,    50,    -1,    -1,    65,    66,    -1,    68,    69,
  1043.     70,    71,    72,    73,    -1,    75,    76,    77,    78,    -1,
  1044.     -1,    -1,    82,    47,    48,    49,    50,    75,    76,    77,
  1045.     78,    -1,    -1,    -1,    82,    -1,    -1,    -1,    47,    48,
  1046.     49,    50,    66,    -1,    68,    69,    70,    71,    72,    73,
  1047.     -1,    75,    76,    77,    78,    -1,    -1,    -1,    82,    68,
  1048.     69,    70,    71,    72,    73,    -1,    75,    76,    77,    78,
  1049.     -1,    -1,    -1,    82,    47,    48,    49,    50,    -1,    -1,
  1050.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  1051.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    71,    72,
  1052.     73,    -1,    75,    76,    77,    78,    -1,    -1,    -1,    82
  1053. };
  1054. /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
  1055. #line 3 "/usr/local/lib/bison.simple"
  1056.  
  1057. /* Skeleton output parser for bison,
  1058.    Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
  1059.  
  1060.    This program is free software; you can redistribute it and/or modify
  1061.    it under the terms of the GNU General Public License as published by
  1062.    the Free Software Foundation; either version 1, or (at your option)
  1063.    any later version.
  1064.  
  1065.    This program is distributed in the hope that it will be useful,
  1066.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  1067.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1068.    GNU General Public License for more details.
  1069.  
  1070.    You should have received a copy of the GNU General Public License
  1071.    along with this program; if not, write to the Free Software
  1072.    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
  1073.  
  1074.  
  1075. #ifndef alloca
  1076. #ifdef __GNUC__
  1077. #define alloca __builtin_alloca
  1078. #else /* Not GNU C.  */
  1079. #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__)
  1080. #include <alloca.h>
  1081. #else /* Not sparc */
  1082. #ifdef MSDOS
  1083. #include <malloc.h>
  1084. #endif /* MSDOS */
  1085. #endif /* Not sparc.  */
  1086. #endif /* Not GNU C.  */
  1087. #endif /* alloca not defined.  */
  1088.  
  1089. /* This is the parser code that is written into each bison parser
  1090.   when the %semantic_parser declaration is not specified in the grammar.
  1091.   It was written by Richard Stallman by simplifying the hairy parser
  1092.   used when %semantic_parser is specified.  */
  1093.  
  1094. /* Note: there must be only one dollar sign in this file.
  1095.    It is replaced by the list of actions, each action
  1096.    as one case of the switch.  */
  1097.  
  1098. #define yyerrok        (yyerrstatus = 0)
  1099. #define yyclearin    (yychar = YYEMPTY)
  1100. #define YYEMPTY        -2
  1101. #define YYEOF        0
  1102. #define YYACCEPT    return(0)
  1103. #define YYABORT     return(1)
  1104. #define YYERROR        goto yyerrlab1
  1105. /* Like YYERROR except do call yyerror.
  1106.    This remains here temporarily to ease the
  1107.    transition to the new meaning of YYERROR, for GCC.
  1108.    Once GCC version 2 has supplanted version 1, this can go.  */
  1109. #define YYFAIL        goto yyerrlab
  1110. #define YYRECOVERING()  (!!yyerrstatus)
  1111. #define YYBACKUP(token, value) \
  1112. do                                \
  1113.   if (yychar == YYEMPTY && yylen == 1)                \
  1114.     { yychar = (token), yylval = (value);            \
  1115.       yychar1 = YYTRANSLATE (yychar);                \
  1116.       YYPOPSTACK;                        \
  1117.       goto yybackup;                        \
  1118.     }                                \
  1119.   else                                \
  1120.     { yyerror ("syntax error: cannot back up"); YYERROR; }    \
  1121. while (0)
  1122.  
  1123. #define YYTERROR    1
  1124. #define YYERRCODE    256
  1125.  
  1126. #ifndef YYPURE
  1127. #define YYLEX        yylex()
  1128. #endif
  1129.  
  1130. #ifdef YYPURE
  1131. #ifdef YYLSP_NEEDED
  1132. #define YYLEX        yylex(&yylval, &yylloc)
  1133. #else
  1134. #define YYLEX        yylex(&yylval)
  1135. #endif
  1136. #endif
  1137.  
  1138. /* If nonreentrant, generate the variables here */
  1139.  
  1140. #ifndef YYPURE
  1141.  
  1142. int    yychar;            /*  the lookahead symbol        */
  1143. YYSTYPE    yylval;            /*  the semantic value of the        */
  1144.                 /*  lookahead symbol            */
  1145.  
  1146. #ifdef YYLSP_NEEDED
  1147. YYLTYPE yylloc;            /*  location data for the lookahead    */
  1148.                 /*  symbol                */
  1149. #endif
  1150.  
  1151. int yynerrs;            /*  number of parse errors so far       */
  1152. #endif  /* not YYPURE */
  1153.  
  1154. #if YYDEBUG != 0
  1155. int yydebug;            /*  nonzero means print parse trace    */
  1156. /* Since this is uninitialized, it does not stop multiple parsers
  1157.    from coexisting.  */
  1158. #endif
  1159.  
  1160. /*  YYINITDEPTH indicates the initial size of the parser's stacks    */
  1161.  
  1162. #ifndef    YYINITDEPTH
  1163. #define YYINITDEPTH 200
  1164. #endif
  1165.  
  1166. /*  YYMAXDEPTH is the maximum size the stacks can grow to
  1167.     (effective only if the built-in stack extension method is used).  */
  1168.  
  1169. #if YYMAXDEPTH == 0
  1170. #undef YYMAXDEPTH
  1171. #endif
  1172.  
  1173. #ifndef YYMAXDEPTH
  1174. #define YYMAXDEPTH 10000
  1175. #endif
  1176.  
  1177. #ifndef __cplusplus
  1178.  
  1179. /* This is the most reliable way to avoid incompatibilities
  1180.    in available built-in functions on various systems.  */
  1181. static void
  1182. __yy_bcopy (from, to, count)
  1183.      char *from;
  1184.      char *to;
  1185.      int count;
  1186. {
  1187.   register char *f = from;
  1188.   register char *t = to;
  1189.   register int i = count;
  1190.  
  1191.   while (i-- > 0)
  1192.     *t++ = *f++;
  1193. }
  1194.  
  1195. #else /* __cplusplus */
  1196.  
  1197. /* This is the most reliable way to avoid incompatibilities
  1198.    in available built-in functions on various systems.  */
  1199. static void
  1200. __yy_bcopy (char *from, char *to, int count)
  1201. {
  1202.   register char *f = from;
  1203.   register char *t = to;
  1204.   register int i = count;
  1205.  
  1206.   while (i-- > 0)
  1207.     *t++ = *f++;
  1208. }
  1209.  
  1210. #endif
  1211.  
  1212. #line 160 "/usr/local/lib/bison.simple"
  1213. int
  1214. yyparse()
  1215. {
  1216.   register int yystate;
  1217.   register int yyn;
  1218.   register short *yyssp;
  1219.   register YYSTYPE *yyvsp;
  1220.   int yyerrstatus;    /*  number of tokens to shift before error messages enabled */
  1221.   int yychar1;        /*  lookahead token as an internal (translated) token number */
  1222.  
  1223.   short    yyssa[YYINITDEPTH];    /*  the state stack            */
  1224.   YYSTYPE yyvsa[YYINITDEPTH];    /*  the semantic value stack        */
  1225.  
  1226.   short *yyss = yyssa;        /*  refer to the stacks thru separate pointers */
  1227.   YYSTYPE *yyvs = yyvsa;    /*  to allow yyoverflow to reallocate them elsewhere */
  1228.  
  1229. #ifdef YYLSP_NEEDED
  1230.   YYLTYPE *yyls = yylsa;
  1231.   YYLTYPE *yylsp;
  1232.   YYLTYPE yylsa[YYINITDEPTH];    /*  the location stack            */
  1233.  
  1234. #define YYPOPSTACK   (yyvsp--, yysp--, yylsp--)
  1235. #else
  1236. #define YYPOPSTACK   (yyvsp--, yysp--)
  1237. #endif
  1238.  
  1239.   int yystacksize = YYINITDEPTH;
  1240.  
  1241. #ifdef YYPURE
  1242.   int yychar;
  1243.   YYSTYPE yylval;
  1244.   int yynerrs;
  1245. #ifdef YYLSP_NEEDED
  1246.   YYLTYPE yylloc;
  1247. #endif
  1248. #endif
  1249.  
  1250.   YYSTYPE yyval;        /*  the variable used to return        */
  1251.                 /*  semantic values from the action    */
  1252.                 /*  routines                */
  1253.  
  1254.   int yylen;
  1255.  
  1256. #if YYDEBUG != 0
  1257.   if (yydebug)
  1258.     fprintf(stderr, "Starting parse\n");
  1259. #endif
  1260.  
  1261.   yystate = 0;
  1262.   yyerrstatus = 0;
  1263.   yynerrs = 0;
  1264.   yychar = YYEMPTY;        /* Cause a token to be read.  */
  1265.  
  1266.   /* Initialize stack pointers.
  1267.      Waste one element of value and location stack
  1268.      so that they stay on the same level as the state stack.  */
  1269.  
  1270.   yyssp = yyss - 1;
  1271.   yyvsp = yyvs;
  1272. #ifdef YYLSP_NEEDED
  1273.   yylsp = yyls;
  1274. #endif
  1275.  
  1276. /* Push a new state, which is found in  yystate  .  */
  1277. /* In all cases, when you get here, the value and location stacks
  1278.    have just been pushed. so pushing a state here evens the stacks.  */
  1279. yynewstate:
  1280.  
  1281.   *++yyssp = yystate;
  1282.  
  1283.   if (yyssp >= yyss + yystacksize - 1)
  1284.     {
  1285.       /* Give user a chance to reallocate the stack */
  1286.       /* Use copies of these so that the &'s don't force the real ones into memory. */
  1287.       YYSTYPE *yyvs1 = yyvs;
  1288.       short *yyss1 = yyss;
  1289. #ifdef YYLSP_NEEDED
  1290.       YYLTYPE *yyls1 = yyls;
  1291. #endif
  1292.  
  1293.       /* Get the current used size of the three stacks, in elements.  */
  1294.       int size = yyssp - yyss + 1;
  1295.  
  1296. #ifdef yyoverflow
  1297.       /* Each stack pointer address is followed by the size of
  1298.      the data in use in that stack, in bytes.  */
  1299.       yyoverflow("parser stack overflow",
  1300.          &yyss1, size * sizeof (*yyssp),
  1301.          &yyvs1, size * sizeof (*yyvsp),
  1302. #ifdef YYLSP_NEEDED
  1303.          &yyls1, size * sizeof (*yylsp),
  1304. #endif
  1305.          &yystacksize);
  1306.  
  1307.       yyss = yyss1; yyvs = yyvs1;
  1308. #ifdef YYLSP_NEEDED
  1309.       yyls = yyls1;
  1310. #endif
  1311. #else /* no yyoverflow */
  1312.       /* Extend the stack our own way.  */
  1313.       if (yystacksize >= YYMAXDEPTH)
  1314.     {
  1315.       yyerror("parser stack overflow");
  1316.       return 2;
  1317.     }
  1318.       yystacksize *= 2;
  1319.       if (yystacksize > YYMAXDEPTH)
  1320.     yystacksize = YYMAXDEPTH;
  1321.       yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
  1322.       __yy_bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
  1323.       yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
  1324.       __yy_bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
  1325. #ifdef YYLSP_NEEDED
  1326.       yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
  1327.       __yy_bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
  1328. #endif
  1329. #endif /* no yyoverflow */
  1330.  
  1331.       yyssp = yyss + size - 1;
  1332.       yyvsp = yyvs + size - 1;
  1333. #ifdef YYLSP_NEEDED
  1334.       yylsp = yyls + size - 1;
  1335. #endif
  1336.  
  1337. #if YYDEBUG != 0
  1338.       if (yydebug)
  1339.     fprintf(stderr, "Stack size increased to %d\n", yystacksize);
  1340. #endif
  1341.  
  1342.       if (yyssp >= yyss + yystacksize - 1)
  1343.     YYABORT;
  1344.     }
  1345.  
  1346. #if YYDEBUG != 0
  1347.   if (yydebug)
  1348.     fprintf(stderr, "Entering state %d\n", yystate);
  1349. #endif
  1350.  
  1351.  yybackup:
  1352.  
  1353. /* Do appropriate processing given the current state.  */
  1354. /* Read a lookahead token if we need one and don't already have one.  */
  1355. /* yyresume: */
  1356.  
  1357.   /* First try to decide what to do without reference to lookahead token.  */
  1358.  
  1359.   yyn = yypact[yystate];
  1360.   if (yyn == YYFLAG)
  1361.     goto yydefault;
  1362.  
  1363.   /* Not known => get a lookahead token if don't already have one.  */
  1364.  
  1365.   /* yychar is either YYEMPTY or YYEOF
  1366.      or a valid token in external form.  */
  1367.  
  1368.   if (yychar == YYEMPTY)
  1369.     {
  1370. #if YYDEBUG != 0
  1371.       if (yydebug)
  1372.     fprintf(stderr, "Reading a token: ");
  1373. #endif
  1374.       yychar = YYLEX;
  1375.     }
  1376.  
  1377.   /* Convert token to internal form (in yychar1) for indexing tables with */
  1378.  
  1379.   if (yychar <= 0)        /* This means end of input. */
  1380.     {
  1381.       yychar1 = 0;
  1382.       yychar = YYEOF;        /* Don't call YYLEX any more */
  1383.  
  1384. #if YYDEBUG != 0
  1385.       if (yydebug)
  1386.     fprintf(stderr, "Now at end of input.\n");
  1387. #endif
  1388.     }
  1389.   else
  1390.     {
  1391.       yychar1 = YYTRANSLATE(yychar);
  1392.  
  1393. #if YYDEBUG != 0
  1394.       if (yydebug)
  1395.     fprintf(stderr, "Next token is %d (%s)\n", yychar, yytname[yychar1]);
  1396. #endif
  1397.     }
  1398.  
  1399.   yyn += yychar1;
  1400.   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
  1401.     goto yydefault;
  1402.  
  1403.   yyn = yytable[yyn];
  1404.  
  1405.   /* yyn is what to do for this token type in this state.
  1406.      Negative => reduce, -yyn is rule number.
  1407.      Positive => shift, yyn is new state.
  1408.        New state is final state => don't bother to shift,
  1409.        just return success.
  1410.      0, or most negative number => error.  */
  1411.  
  1412.   if (yyn < 0)
  1413.     {
  1414.       if (yyn == YYFLAG)
  1415.     goto yyerrlab;
  1416.       yyn = -yyn;
  1417.       goto yyreduce;
  1418.     }
  1419.   else if (yyn == 0)
  1420.     goto yyerrlab;
  1421.  
  1422.   if (yyn == YYFINAL)
  1423.     YYACCEPT;
  1424.  
  1425.   /* Shift the lookahead token.  */
  1426.  
  1427. #if YYDEBUG != 0
  1428.   if (yydebug)
  1429.     fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
  1430. #endif
  1431.  
  1432.   /* Discard the token being shifted unless it is eof.  */
  1433.   if (yychar != YYEOF)
  1434.     yychar = YYEMPTY;
  1435.  
  1436.   *++yyvsp = yylval;
  1437. #ifdef YYLSP_NEEDED
  1438.   *++yylsp = yylloc;
  1439. #endif
  1440.  
  1441.   /* count tokens shifted since error; after three, turn off error status.  */
  1442.   if (yyerrstatus) yyerrstatus--;
  1443.  
  1444.   yystate = yyn;
  1445.   goto yynewstate;
  1446.  
  1447. /* Do the default action for the current state.  */
  1448. yydefault:
  1449.  
  1450.   yyn = yydefact[yystate];
  1451.   if (yyn == 0)
  1452.     goto yyerrlab;
  1453.  
  1454. /* Do a reduction.  yyn is the number of a rule to reduce with.  */
  1455. yyreduce:
  1456.   yylen = yyr2[yyn];
  1457.   yyval = yyvsp[1-yylen]; /* implement default value of the action */
  1458.  
  1459. #if YYDEBUG != 0
  1460.   if (yydebug)
  1461.     {
  1462.       int i;
  1463.  
  1464.       fprintf (stderr, "Reducing via rule %d (line %d), ",
  1465.            yyn, yyrline[yyn]);
  1466.  
  1467.       /* Print the symboles being reduced, and their result.  */
  1468.       for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
  1469.     fprintf (stderr, "%s ", yytname[yyrhs[i]]);
  1470.       fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
  1471.     }
  1472. #endif
  1473.  
  1474.  
  1475.   switch (yyn) {
  1476.  
  1477. case 1:
  1478. #line 95 "perly.y"
  1479. {
  1480. #if defined(YYDEBUG) && defined(DEBUGGING)
  1481.             yydebug = (debug & 1);
  1482. #endif
  1483.         ;
  1484.     break;}
  1485. case 2:
  1486. #line 101 "perly.y"
  1487. { if (in_eval)
  1488.                 eval_root = block_head(yyvsp[0].cmdval);
  1489.                 else
  1490.                 main_root = block_head(yyvsp[0].cmdval); ;
  1491.     break;}
  1492. case 3:
  1493. #line 108 "perly.y"
  1494. { yyval.compval.comp_true = yyvsp[-2].cmdval; yyval.compval.comp_alt = yyvsp[0].cmdval; ;
  1495.     break;}
  1496. case 4:
  1497. #line 110 "perly.y"
  1498. { yyval.compval.comp_true = yyvsp[-1].cmdval; yyval.compval.comp_alt = yyvsp[0].cmdval; ;
  1499.     break;}
  1500. case 5:
  1501. #line 114 "perly.y"
  1502. { yyval.cmdval = Nullcmd; ;
  1503.     break;}
  1504. case 6:
  1505. #line 116 "perly.y"
  1506. { yyval.cmdval = yyvsp[0].cmdval; ;
  1507.     break;}
  1508. case 7:
  1509. #line 118 "perly.y"
  1510. { cmdline = yyvsp[-4].ival;
  1511.                 yyval.cmdval = make_ccmd(C_ELSIF,yyvsp[-2].arg,yyvsp[0].compval); ;
  1512.     break;}
  1513. case 8:
  1514. #line 123 "perly.y"
  1515. { yyval.cmdval = block_head(yyvsp[-1].cmdval);
  1516.               if (cmdline > yyvsp[-3].ival)
  1517.                   cmdline = yyvsp[-3].ival;
  1518.               if (savestack->ary_fill > yyvsp[-2].ival)
  1519.                 restorelist(yyvsp[-2].ival); ;
  1520.     break;}
  1521. case 9:
  1522. #line 131 "perly.y"
  1523. { yyval.ival = savestack->ary_fill; ;
  1524.     break;}
  1525. case 10:
  1526. #line 135 "perly.y"
  1527. { yyval.cmdval = Nullcmd; ;
  1528.     break;}
  1529. case 11:
  1530. #line 137 "perly.y"
  1531. { yyval.cmdval = append_line(yyvsp[-1].cmdval,yyvsp[0].cmdval); ;
  1532.     break;}
  1533. case 12:
  1534. #line 141 "perly.y"
  1535. { yyval.cmdval = Nullcmd; ;
  1536.     break;}
  1537. case 13:
  1538. #line 143 "perly.y"
  1539. { yyval.cmdval = add_label(yyvsp[-1].cval,yyvsp[0].cmdval); ;
  1540.     break;}
  1541. case 15:
  1542. #line 146 "perly.y"
  1543. { if (yyvsp[-1].cval != Nullch) {
  1544.                   yyval.cmdval = add_label(yyvsp[-1].cval, make_acmd(C_EXPR, Nullstab,
  1545.                   Nullarg, Nullarg) );
  1546.                 }
  1547.                 else {
  1548.                   yyval.cmdval = Nullcmd;
  1549.                   cmdline = NOLINE;
  1550.                 } ;
  1551.     break;}
  1552. case 16:
  1553. #line 155 "perly.y"
  1554. { yyval.cmdval = add_label(yyvsp[-2].cval,yyvsp[-1].cmdval); ;
  1555.     break;}
  1556. case 17:
  1557. #line 159 "perly.y"
  1558. { yyval.cmdval = Nullcmd; ;
  1559.     break;}
  1560. case 18:
  1561. #line 161 "perly.y"
  1562. { yyval.cmdval = make_acmd(C_EXPR, Nullstab, yyvsp[0].arg, Nullarg); ;
  1563.     break;}
  1564. case 19:
  1565. #line 163 "perly.y"
  1566. { yyval.cmdval = addcond(
  1567.                    make_acmd(C_EXPR, Nullstab, Nullarg, yyvsp[-2].arg), yyvsp[0].arg); ;
  1568.     break;}
  1569. case 20:
  1570. #line 166 "perly.y"
  1571. { yyval.cmdval = addcond(invert(
  1572.                    make_acmd(C_EXPR, Nullstab, Nullarg, yyvsp[-2].arg)), yyvsp[0].arg); ;
  1573.     break;}
  1574. case 21:
  1575. #line 169 "perly.y"
  1576. { yyval.cmdval = addloop(
  1577.                    make_acmd(C_EXPR, Nullstab, Nullarg, yyvsp[-2].arg), yyvsp[0].arg); ;
  1578.     break;}
  1579. case 22:
  1580. #line 172 "perly.y"
  1581. { yyval.cmdval = addloop(invert(
  1582.                    make_acmd(C_EXPR, Nullstab, Nullarg, yyvsp[-2].arg)), yyvsp[0].arg); ;
  1583.     break;}
  1584. case 23:
  1585. #line 177 "perly.y"
  1586. { cmdline = yyvsp[-4].ival;
  1587.                 yyval.cmdval = make_icmd(C_IF,yyvsp[-2].arg,yyvsp[0].compval); ;
  1588.     break;}
  1589. case 24:
  1590. #line 180 "perly.y"
  1591. { cmdline = yyvsp[-4].ival;
  1592.                 yyval.cmdval = invert(make_icmd(C_IF,yyvsp[-2].arg,yyvsp[0].compval)); ;
  1593.     break;}
  1594. case 25:
  1595. #line 183 "perly.y"
  1596. { cmdline = yyvsp[-2].ival;
  1597.                 yyval.cmdval = make_ccmd(C_IF,cmd_to_arg(yyvsp[-1].cmdval),yyvsp[0].compval); ;
  1598.     break;}
  1599. case 26:
  1600. #line 186 "perly.y"
  1601. { cmdline = yyvsp[-2].ival;
  1602.                 yyval.cmdval = invert(make_ccmd(C_IF,cmd_to_arg(yyvsp[-1].cmdval),yyvsp[0].compval)); ;
  1603.     break;}
  1604. case 27:
  1605. #line 191 "perly.y"
  1606. { cmdline = yyvsp[-4].ival;
  1607.                 yyval.cmdval = wopt(add_label(yyvsp[-5].cval,
  1608.                 make_ccmd(C_WHILE,yyvsp[-2].arg,yyvsp[0].compval) )); ;
  1609.     break;}
  1610. case 28:
  1611. #line 195 "perly.y"
  1612. { cmdline = yyvsp[-4].ival;
  1613.                 yyval.cmdval = wopt(add_label(yyvsp[-5].cval,
  1614.                 invert(make_ccmd(C_WHILE,yyvsp[-2].arg,yyvsp[0].compval)) )); ;
  1615.     break;}
  1616. case 29:
  1617. #line 199 "perly.y"
  1618. { cmdline = yyvsp[-2].ival;
  1619.                 yyval.cmdval = wopt(add_label(yyvsp[-3].cval,
  1620.                 make_ccmd(C_WHILE, cmd_to_arg(yyvsp[-1].cmdval),yyvsp[0].compval) )); ;
  1621.     break;}
  1622. case 30:
  1623. #line 203 "perly.y"
  1624. { cmdline = yyvsp[-2].ival;
  1625.                 yyval.cmdval = wopt(add_label(yyvsp[-3].cval,
  1626.                 invert(make_ccmd(C_WHILE, cmd_to_arg(yyvsp[-1].cmdval),yyvsp[0].compval)) )); ;
  1627.     break;}
  1628. case 31:
  1629. #line 207 "perly.y"
  1630. { cmdline = yyvsp[-5].ival;
  1631.                 /*
  1632.                  * The following gobbledygook catches EXPRs that
  1633.                  * aren't explicit array refs and translates
  1634.                  *        foreach VAR (EXPR) {
  1635.                  * into
  1636.                  *        @ary = EXPR;
  1637.                  *        foreach VAR (@ary) {
  1638.                  * where @ary is a hidden array made by genstab().
  1639.                  * (Note that @ary may become a local array if
  1640.                  * it is determined that it might be called
  1641.                  * recursively.  See cmd_tosave().)
  1642.                  */
  1643.                 if (yyvsp[-2].arg->arg_type != O_ARRAY) {
  1644.                 scrstab = aadd(genstab());
  1645.                 yyval.cmdval = append_line(
  1646.                     make_acmd(C_EXPR, Nullstab,
  1647.                       l(make_op(O_ASSIGN,2,
  1648.                     listish(make_op(O_ARRAY, 1,
  1649.                       stab2arg(A_STAB,scrstab),
  1650.                       Nullarg,Nullarg )),
  1651.                     listish(make_list(yyvsp[-2].arg)),
  1652.                     Nullarg)),
  1653.                       Nullarg),
  1654.                     wopt(over(yyvsp[-4].stabval,add_label(yyvsp[-6].cval,
  1655.                       make_ccmd(C_WHILE,
  1656.                     make_op(O_ARRAY, 1,
  1657.                       stab2arg(A_STAB,scrstab),
  1658.                       Nullarg,Nullarg ),
  1659.                     yyvsp[0].compval)))));
  1660.                 yyval.cmdval->c_line = yyvsp[-5].ival;
  1661.                 yyval.cmdval->c_head->c_line = yyvsp[-5].ival;
  1662.                 }
  1663.                 else {
  1664.                 yyval.cmdval = wopt(over(yyvsp[-4].stabval,add_label(yyvsp[-6].cval,
  1665.                 make_ccmd(C_WHILE,yyvsp[-2].arg,yyvsp[0].compval) )));
  1666.                 }
  1667.             ;
  1668.     break;}
  1669. case 32:
  1670. #line 246 "perly.y"
  1671. { cmdline = yyvsp[-4].ival;
  1672.                 if (yyvsp[-2].arg->arg_type != O_ARRAY) {
  1673.                 scrstab = aadd(genstab());
  1674.                 yyval.cmdval = append_line(
  1675.                     make_acmd(C_EXPR, Nullstab,
  1676.                       l(make_op(O_ASSIGN,2,
  1677.                     listish(make_op(O_ARRAY, 1,
  1678.                       stab2arg(A_STAB,scrstab),
  1679.                       Nullarg,Nullarg )),
  1680.                     listish(make_list(yyvsp[-2].arg)),
  1681.                     Nullarg)),
  1682.                       Nullarg),
  1683.                     wopt(over(defstab,add_label(yyvsp[-5].cval,
  1684.                       make_ccmd(C_WHILE,
  1685.                     make_op(O_ARRAY, 1,
  1686.                       stab2arg(A_STAB,scrstab),
  1687.                       Nullarg,Nullarg ),
  1688.                     yyvsp[0].compval)))));
  1689.                 yyval.cmdval->c_line = yyvsp[-4].ival;
  1690.                 yyval.cmdval->c_head->c_line = yyvsp[-4].ival;
  1691.                 }
  1692.                 else {    /* lisp, anyone? */
  1693.                 yyval.cmdval = wopt(over(defstab,add_label(yyvsp[-5].cval,
  1694.                 make_ccmd(C_WHILE,yyvsp[-2].arg,yyvsp[0].compval) )));
  1695.                 }
  1696.             ;
  1697.     break;}
  1698. case 33:
  1699. #line 274 "perly.y"
  1700. {   yyval.compval.comp_true = yyvsp[0].cmdval;
  1701.                 yyval.compval.comp_alt = yyvsp[-2].cmdval;
  1702.                 cmdline = yyvsp[-8].ival;
  1703.                 yyval.cmdval = append_line(yyvsp[-6].cmdval,wopt(add_label(yyvsp[-9].cval,
  1704.                 make_ccmd(C_WHILE,yyvsp[-4].arg,yyval.compval) ))); ;
  1705.     break;}
  1706. case 34:
  1707. #line 280 "perly.y"
  1708. { yyval.cmdval = add_label(yyvsp[-1].cval,make_ccmd(C_BLOCK,Nullarg,yyvsp[0].compval)); ;
  1709.     break;}
  1710. case 35:
  1711. #line 284 "perly.y"
  1712. { yyval.cmdval = Nullcmd; ;
  1713.     break;}
  1714. case 37:
  1715. #line 289 "perly.y"
  1716. { (void)scanstr("1"); yyval.arg = yylval.arg; ;
  1717.     break;}
  1718. case 39:
  1719. #line 294 "perly.y"
  1720. { yyval.cval = Nullch; ;
  1721.     break;}
  1722. case 41:
  1723. #line 299 "perly.y"
  1724. { yyval.ival = 0; ;
  1725.     break;}
  1726. case 42:
  1727. #line 301 "perly.y"
  1728. { yyval.ival = 0; ;
  1729.     break;}
  1730. case 43:
  1731. #line 303 "perly.y"
  1732. { yyval.ival = 0; ;
  1733.     break;}
  1734. case 44:
  1735. #line 307 "perly.y"
  1736. { if (strEQ(yyvsp[-2].cval,"stdout"))
  1737.                 make_form(stabent("STDOUT",TRUE),yyvsp[0].formval);
  1738.               else if (strEQ(yyvsp[-2].cval,"stderr"))
  1739.                 make_form(stabent("STDERR",TRUE),yyvsp[0].formval);
  1740.               else
  1741.                 make_form(stabent(yyvsp[-2].cval,TRUE),yyvsp[0].formval);
  1742.               Safefree(yyvsp[-2].cval); yyvsp[-2].cval = Nullch; ;
  1743.     break;}
  1744. case 45:
  1745. #line 315 "perly.y"
  1746. { make_form(stabent("STDOUT",TRUE),yyvsp[0].formval); ;
  1747.     break;}
  1748. case 46:
  1749. #line 319 "perly.y"
  1750. { make_sub(yyvsp[-1].cval,yyvsp[0].cmdval);
  1751.               cmdline = NOLINE;
  1752.               if (savestack->ary_fill > yyvsp[-2].ival)
  1753.                 restorelist(yyvsp[-2].ival); ;
  1754.     break;}
  1755. case 47:
  1756. #line 326 "perly.y"
  1757. { char tmpbuf[256];
  1758.               STAB *tmpstab;
  1759.  
  1760.               savehptr(&curstash);
  1761.               saveitem(curstname);
  1762.               str_set(curstname,yyvsp[-1].cval);
  1763.               sprintf(tmpbuf,"'_%s",yyvsp[-1].cval);
  1764.               tmpstab = stabent(tmpbuf,TRUE);
  1765.               if (!stab_xhash(tmpstab))
  1766.                   stab_xhash(tmpstab) = hnew(0);
  1767.               curstash = stab_xhash(tmpstab);
  1768.               if (!curstash->tbl_name)
  1769.                   curstash->tbl_name = savestr(yyvsp[-1].cval);
  1770.               curstash->tbl_coeffsize = 0;
  1771.               Safefree(yyvsp[-1].cval); yyvsp[-1].cval = Nullch;
  1772.               cmdline = NOLINE;
  1773.             ;
  1774.     break;}
  1775. case 48:
  1776. #line 346 "perly.y"
  1777. { yyval.arg = yyvsp[0].arg; ;
  1778.     break;}
  1779. case 49:
  1780. #line 350 "perly.y"
  1781. { yyval.arg = make_op(O_COMMA, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); ;
  1782.     break;}
  1783. case 51:
  1784. #line 355 "perly.y"
  1785. { yyval.arg = yyvsp[0].arg; ;
  1786.     break;}
  1787. case 52:
  1788. #line 359 "perly.y"
  1789. {   yyvsp[-2].arg = listish(yyvsp[-2].arg);
  1790.                 if (yyvsp[-2].arg->arg_type == O_ASSIGN && yyvsp[-2].arg->arg_len == 1)
  1791.                 yyvsp[-2].arg->arg_type = O_ITEM;    /* a local() */
  1792.                 if (yyvsp[-2].arg->arg_type == O_LIST)
  1793.                 yyvsp[0].arg = listish(yyvsp[0].arg);
  1794.                 yyval.arg = l(make_op(O_ASSIGN, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg)); ;
  1795.     break;}
  1796. case 53:
  1797. #line 366 "perly.y"
  1798. { yyval.arg = l(make_op(O_POW, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); ;
  1799.     break;}
  1800. case 54:
  1801. #line 368 "perly.y"
  1802. { yyval.arg = l(make_op(yyvsp[-2].ival, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); ;
  1803.     break;}
  1804. case 55:
  1805. #line 370 "perly.y"
  1806. { yyval.arg = rcatmaybe(l(make_op(yyvsp[-2].ival, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)));;
  1807.     break;}
  1808. case 56:
  1809. #line 372 "perly.y"
  1810. { yyval.arg = l(make_op(O_LEFT_SHIFT, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); ;
  1811.     break;}
  1812. case 57:
  1813. #line 374 "perly.y"
  1814. { yyval.arg = l(make_op(O_RIGHT_SHIFT, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); ;
  1815.     break;}
  1816. case 58:
  1817. #line 376 "perly.y"
  1818. { yyval.arg = l(make_op(O_BIT_AND, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); ;
  1819.     break;}
  1820. case 59:
  1821. #line 378 "perly.y"
  1822. { yyval.arg = l(make_op(O_XOR, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); ;
  1823.     break;}
  1824. case 60:
  1825. #line 380 "perly.y"
  1826. { yyval.arg = l(make_op(O_BIT_OR, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); ;
  1827.     break;}
  1828. case 61:
  1829. #line 384 "perly.y"
  1830. { yyval.arg = make_op(O_POW, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); ;
  1831.     break;}
  1832. case 62:
  1833. #line 386 "perly.y"
  1834. { if (yyvsp[-1].ival == O_REPEAT)
  1835.                   yyvsp[-2].arg = listish(yyvsp[-2].arg);
  1836.                 yyval.arg = make_op(yyvsp[-1].ival, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg);
  1837.                 if (yyvsp[-1].ival == O_REPEAT) {
  1838.                 if (yyval.arg[1].arg_type != A_EXPR ||
  1839.                   yyval.arg[1].arg_ptr.arg_arg->arg_type != O_LIST)
  1840.                     yyval.arg[1].arg_flags &= ~AF_ARYOK;
  1841.                 } ;
  1842.     break;}
  1843. case 63:
  1844. #line 395 "perly.y"
  1845. { yyval.arg = make_op(yyvsp[-1].ival, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); ;
  1846.     break;}
  1847. case 64:
  1848. #line 397 "perly.y"
  1849. { yyval.arg = make_op(O_LEFT_SHIFT, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); ;
  1850.     break;}
  1851. case 65:
  1852. #line 399 "perly.y"
  1853. { yyval.arg = make_op(O_RIGHT_SHIFT, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); ;
  1854.     break;}
  1855. case 66:
  1856. #line 401 "perly.y"
  1857. { yyval.arg = make_op(yyvsp[-1].ival, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); ;
  1858.     break;}
  1859. case 67:
  1860. #line 403 "perly.y"
  1861. { yyval.arg = make_op(yyvsp[-1].ival, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); ;
  1862.     break;}
  1863. case 68:
  1864. #line 405 "perly.y"
  1865. { yyval.arg = make_op(O_BIT_AND, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); ;
  1866.     break;}
  1867. case 69:
  1868. #line 407 "perly.y"
  1869. { yyval.arg = make_op(O_XOR, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); ;
  1870.     break;}
  1871. case 70:
  1872. #line 409 "perly.y"
  1873. { yyval.arg = make_op(O_BIT_OR, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); ;
  1874.     break;}
  1875. case 71:
  1876. #line 411 "perly.y"
  1877. { arg4 = Nullarg;
  1878.               yyval.arg = make_op(O_F_OR_R, 4, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); ;
  1879.     break;}
  1880. case 72:
  1881. #line 414 "perly.y"
  1882. { yyval.arg = make_op(O_AND, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); ;
  1883.     break;}
  1884. case 73:
  1885. #line 416 "perly.y"
  1886. { yyval.arg = make_op(O_OR, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); ;
  1887.     break;}
  1888. case 74:
  1889. #line 418 "perly.y"
  1890. { yyval.arg = make_op(O_COND_EXPR, 3, yyvsp[-4].arg, yyvsp[-2].arg, yyvsp[0].arg); ;
  1891.     break;}
  1892. case 75:
  1893. #line 420 "perly.y"
  1894. { yyval.arg = mod_match(O_MATCH, yyvsp[-2].arg, yyvsp[0].arg); ;
  1895.     break;}
  1896. case 76:
  1897. #line 422 "perly.y"
  1898. { yyval.arg = mod_match(O_NMATCH, yyvsp[-2].arg, yyvsp[0].arg); ;
  1899.     break;}
  1900. case 77:
  1901. #line 424 "perly.y"
  1902. { yyval.arg = yyvsp[0].arg; ;
  1903.     break;}
  1904. case 78:
  1905. #line 428 "perly.y"
  1906. { yyval.arg = make_op(O_NEGATE, 1, yyvsp[0].arg, Nullarg, Nullarg); ;
  1907.     break;}
  1908. case 79:
  1909. #line 430 "perly.y"
  1910. { yyval.arg = yyvsp[0].arg; ;
  1911.     break;}
  1912. case 80:
  1913. #line 432 "perly.y"
  1914. { yyval.arg = make_op(O_NOT, 1, yyvsp[0].arg, Nullarg, Nullarg); ;
  1915.     break;}
  1916. case 81:
  1917. #line 434 "perly.y"
  1918. { yyval.arg = make_op(O_COMPLEMENT, 1, yyvsp[0].arg, Nullarg, Nullarg);;
  1919.     break;}
  1920. case 82:
  1921. #line 436 "perly.y"
  1922. { yyval.arg = addflags(1, AF_POST|AF_UP,
  1923.                 l(make_op(O_ITEM,1,yyvsp[-1].arg,Nullarg,Nullarg))); ;
  1924.     break;}
  1925. case 83:
  1926. #line 439 "perly.y"
  1927. { yyval.arg = addflags(1, AF_POST,
  1928.                 l(make_op(O_ITEM,1,yyvsp[-1].arg,Nullarg,Nullarg))); ;
  1929.     break;}
  1930. case 84:
  1931. #line 442 "perly.y"
  1932. { yyval.arg = addflags(1, AF_PRE|AF_UP,
  1933.                 l(make_op(O_ITEM,1,yyvsp[0].arg,Nullarg,Nullarg))); ;
  1934.     break;}
  1935. case 85:
  1936. #line 445 "perly.y"
  1937. { yyval.arg = addflags(1, AF_PRE,
  1938.                 l(make_op(O_ITEM,1,yyvsp[0].arg,Nullarg,Nullarg))); ;
  1939.     break;}
  1940. case 86:
  1941. #line 448 "perly.y"
  1942. { opargs[yyvsp[-1].ival] = 0;    /* force it special */
  1943.                 yyval.arg = make_op(yyvsp[-1].ival, 1,
  1944.                 stab2arg(A_STAB,stabent(yyvsp[0].cval,TRUE)),
  1945.                 Nullarg, Nullarg);
  1946.             ;
  1947.     break;}
  1948. case 87:
  1949. #line 454 "perly.y"
  1950. { opargs[yyvsp[-1].ival] = 1;
  1951.                 yyval.arg = make_op(yyvsp[-1].ival, 1, yyvsp[0].arg, Nullarg, Nullarg); ;
  1952.     break;}
  1953. case 88:
  1954. #line 457 "perly.y"
  1955. { opargs[yyvsp[0].ival] = (yyvsp[0].ival != O_FTTTY);
  1956.                 yyval.arg = make_op(yyvsp[0].ival, 1,
  1957.                 stab2arg(A_STAB,
  1958.                   yyvsp[0].ival == O_FTTTY?stabent("STDIN",TRUE):defstab),
  1959.                 Nullarg, Nullarg); ;
  1960.     break;}
  1961. case 89:
  1962. #line 463 "perly.y"
  1963. { yyval.arg = l(localize(make_op(O_ASSIGN, 1,
  1964.                 localize(listish(make_list(yyvsp[-1].arg))),
  1965.                 Nullarg,Nullarg))); ;
  1966.     break;}
  1967. case 90:
  1968. #line 467 "perly.y"
  1969. { yyval.arg = make_list(yyvsp[-1].arg); ;
  1970.     break;}
  1971. case 91:
  1972. #line 469 "perly.y"
  1973. { yyval.arg = make_list(Nullarg); ;
  1974.     break;}
  1975. case 92:
  1976. #line 471 "perly.y"
  1977. { yyval.arg = make_op(O_DOFILE,2,yyvsp[0].arg,Nullarg,Nullarg);
  1978.               allstabs = TRUE;;
  1979.     break;}
  1980. case 93:
  1981. #line 474 "perly.y"
  1982. { yyval.arg = cmd_to_arg(yyvsp[0].cmdval); ;
  1983.     break;}
  1984. case 94:
  1985. #line 476 "perly.y"
  1986. { yyval.arg = stab2arg(A_STAB,yyvsp[0].stabval); ;
  1987.     break;}
  1988. case 95:
  1989. #line 478 "perly.y"
  1990. { yyval.arg = stab2arg(A_STAR,yyvsp[0].stabval); ;
  1991.     break;}
  1992. case 96:
  1993. #line 480 "perly.y"
  1994. { yyval.arg = make_op(O_AELEM, 2,
  1995.                 stab2arg(A_STAB,aadd(yyvsp[-3].stabval)), yyvsp[-1].arg, Nullarg); ;
  1996.     break;}
  1997. case 97:
  1998. #line 483 "perly.y"
  1999. { yyval.arg = make_op(O_HASH, 1,
  2000.                 stab2arg(A_STAB,yyvsp[0].stabval),
  2001.                 Nullarg, Nullarg); ;
  2002.     break;}
  2003. case 98:
  2004. #line 487 "perly.y"
  2005. { yyval.arg = make_op(O_ARRAY, 1,
  2006.                 stab2arg(A_STAB,yyvsp[0].stabval),
  2007.                 Nullarg, Nullarg); ;
  2008.     break;}
  2009. case 99:
  2010. #line 491 "perly.y"
  2011. { yyval.arg = make_op(O_HELEM, 2,
  2012.                 stab2arg(A_STAB,hadd(yyvsp[-3].stabval)),
  2013.                 jmaybe(yyvsp[-1].arg),
  2014.                 Nullarg); ;
  2015.     break;}
  2016. case 100:
  2017. #line 496 "perly.y"
  2018. { yyval.arg = make_op(O_LSLICE, 3,
  2019.                 Nullarg,
  2020.                 listish(make_list(yyvsp[-1].arg)),
  2021.                 listish(make_list(yyvsp[-4].arg))); ;
  2022.     break;}
  2023. case 101:
  2024. #line 501 "perly.y"
  2025. { yyval.arg = make_op(O_LSLICE, 3,
  2026.                 Nullarg,
  2027.                 listish(make_list(yyvsp[-1].arg)),
  2028.                 Nullarg); ;
  2029.     break;}
  2030. case 102:
  2031. #line 506 "perly.y"
  2032. { yyval.arg = make_op(O_ASLICE, 2,
  2033.                 stab2arg(A_STAB,aadd(yyvsp[-3].stabval)),
  2034.                 listish(make_list(yyvsp[-1].arg)),
  2035.                 Nullarg); ;
  2036.     break;}
  2037. case 103:
  2038. #line 511 "perly.y"
  2039. { yyval.arg = make_op(O_HSLICE, 2,
  2040.                 stab2arg(A_STAB,hadd(yyvsp[-3].stabval)),
  2041.                 listish(make_list(yyvsp[-1].arg)),
  2042.                 Nullarg); ;
  2043.     break;}
  2044. case 104:
  2045. #line 516 "perly.y"
  2046. { yyval.arg = make_op(O_DELETE, 2,
  2047.                 stab2arg(A_STAB,hadd(yyvsp[-3].stabval)),
  2048.                 jmaybe(yyvsp[-1].arg),
  2049.                 Nullarg); ;
  2050.     break;}
  2051. case 105:
  2052. #line 521 "perly.y"
  2053. { yyval.arg = stab2arg(A_ARYLEN,yyvsp[0].stabval); ;
  2054.     break;}
  2055. case 106:
  2056. #line 523 "perly.y"
  2057. { yyval.arg = yyvsp[0].arg; ;
  2058.     break;}
  2059. case 107:
  2060. #line 525 "perly.y"
  2061. { yyval.arg = yyvsp[0].arg; ;
  2062.     break;}
  2063. case 108:
  2064. #line 527 "perly.y"
  2065. { yyval.arg = yyvsp[0].arg; ;
  2066.     break;}
  2067. case 109:
  2068. #line 529 "perly.y"
  2069. { yyval.arg = yyvsp[0].arg; ;
  2070.     break;}
  2071. case 110:
  2072. #line 531 "perly.y"
  2073. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  2074.                 stab2arg(A_WORD,stabent(yyvsp[-3].cval,MULTI)),
  2075.                 make_list(yyvsp[-1].arg),
  2076.                 Nullarg); Safefree(yyvsp[-3].cval); yyvsp[-3].cval = Nullch;
  2077.                 yyval.arg->arg_flags |= AF_DEPR; ;
  2078.     break;}
  2079. case 111:
  2080. #line 537 "perly.y"
  2081. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  2082.                 stab2arg(A_WORD,stabent(yyvsp[-3].cval,MULTI)),
  2083.                 make_list(yyvsp[-1].arg),
  2084.                 Nullarg); Safefree(yyvsp[-3].cval); yyvsp[-3].cval = Nullch; ;
  2085.     break;}
  2086. case 112:
  2087. #line 542 "perly.y"
  2088. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  2089.                 stab2arg(A_WORD,stabent(yyvsp[-2].cval,MULTI)),
  2090.                 make_list(Nullarg),
  2091.                 Nullarg);
  2092.                 yyval.arg->arg_flags |= AF_DEPR; ;
  2093.     break;}
  2094. case 113:
  2095. #line 548 "perly.y"
  2096. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  2097.                 stab2arg(A_WORD,stabent(yyvsp[-2].cval,MULTI)),
  2098.                 make_list(Nullarg),
  2099.                 Nullarg); ;
  2100.     break;}
  2101. case 114:
  2102. #line 553 "perly.y"
  2103. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  2104.                 stab2arg(A_WORD,stabent(yyvsp[0].cval,MULTI)),
  2105.                 Nullarg,
  2106.                 Nullarg); ;
  2107.     break;}
  2108. case 115:
  2109. #line 558 "perly.y"
  2110. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  2111.                 stab2arg(A_STAB,yyvsp[-3].stabval),
  2112.                 make_list(yyvsp[-1].arg),
  2113.                 Nullarg);
  2114.                 yyval.arg->arg_flags |= AF_DEPR; ;
  2115.     break;}
  2116. case 116:
  2117. #line 564 "perly.y"
  2118. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  2119.                 stab2arg(A_STAB,yyvsp[-3].stabval),
  2120.                 make_list(yyvsp[-1].arg),
  2121.                 Nullarg); ;
  2122.     break;}
  2123. case 117:
  2124. #line 569 "perly.y"
  2125. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  2126.                 stab2arg(A_STAB,yyvsp[-2].stabval),
  2127.                 make_list(Nullarg),
  2128.                 Nullarg);
  2129.                 yyval.arg->arg_flags |= AF_DEPR; ;
  2130.     break;}
  2131. case 118:
  2132. #line 575 "perly.y"
  2133. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  2134.                 stab2arg(A_STAB,yyvsp[-2].stabval),
  2135.                 make_list(Nullarg),
  2136.                 Nullarg); ;
  2137.     break;}
  2138. case 119:
  2139. #line 580 "perly.y"
  2140. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  2141.                 stab2arg(A_STAB,yyvsp[0].stabval),
  2142.                 Nullarg,
  2143.                 Nullarg); ;
  2144.     break;}
  2145. case 120:
  2146. #line 585 "perly.y"
  2147. { yyval.arg = make_op(yyvsp[0].ival,0,Nullarg,Nullarg,Nullarg); ;
  2148.     break;}
  2149. case 121:
  2150. #line 587 "perly.y"
  2151. { yyval.arg = make_op(yyvsp[-1].ival,1,cval_to_arg(yyvsp[0].cval),
  2152.                 Nullarg,Nullarg); ;
  2153.     break;}
  2154. case 122:
  2155. #line 590 "perly.y"
  2156. { yyval.arg = make_op(yyvsp[0].ival,0,Nullarg,Nullarg,Nullarg); ;
  2157.     break;}
  2158. case 123:
  2159. #line 592 "perly.y"
  2160. { yyval.arg = make_op(yyvsp[-1].ival,1,cmd_to_arg(yyvsp[0].cmdval),Nullarg,Nullarg); ;
  2161.     break;}
  2162. case 124:
  2163. #line 594 "perly.y"
  2164. { yyval.arg = make_op(yyvsp[-1].ival,1,yyvsp[0].arg,Nullarg,Nullarg); ;
  2165.     break;}
  2166. case 125:
  2167. #line 596 "perly.y"
  2168. { yyval.arg = make_op(O_SELECT, 0, Nullarg, Nullarg, Nullarg);;
  2169.     break;}
  2170. case 126:
  2171. #line 598 "perly.y"
  2172. { yyval.arg = make_op(O_SELECT, 1,
  2173.                 stab2arg(A_WORD,stabent(yyvsp[0].cval,TRUE)),
  2174.                 Nullarg,
  2175.                 Nullarg);
  2176.                 Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch; ;
  2177.     break;}
  2178. case 127:
  2179. #line 604 "perly.y"
  2180. { yyval.arg = make_op(O_SELECT, 1, yyvsp[-1].arg, Nullarg, Nullarg); ;
  2181.     break;}
  2182. case 128:
  2183. #line 606 "perly.y"
  2184. { arg4 = yyvsp[-1].arg;
  2185.               yyval.arg = make_op(O_SSELECT, 4, yyvsp[-4].arg, yyvsp[-3].arg, yyvsp[-2].arg); ;
  2186.     break;}
  2187. case 129:
  2188. #line 609 "perly.y"
  2189. { yyval.arg = make_op(O_OPEN, 2,
  2190.                 stab2arg(A_WORD,stabent(yyvsp[0].cval,TRUE)),
  2191.                 stab2arg(A_STAB,stabent(yyvsp[0].cval,TRUE)),
  2192.                 Nullarg); ;
  2193.     break;}
  2194. case 130:
  2195. #line 614 "perly.y"
  2196. { yyval.arg = make_op(O_OPEN, 2,
  2197.                 stab2arg(A_WORD,stabent(yyvsp[-1].cval,TRUE)),
  2198.                 stab2arg(A_STAB,stabent(yyvsp[-1].cval,TRUE)),
  2199.                 Nullarg); ;
  2200.     break;}
  2201. case 131:
  2202. #line 619 "perly.y"
  2203. { yyval.arg = make_op(O_OPEN, 2,
  2204.                 yyvsp[-2].arg,
  2205.                 yyvsp[-1].arg, Nullarg); ;
  2206.     break;}
  2207. case 132:
  2208. #line 623 "perly.y"
  2209. { yyval.arg = make_op(yyvsp[-3].ival, 1,
  2210.                 yyvsp[-1].arg,
  2211.                 Nullarg, Nullarg); ;
  2212.     break;}
  2213. case 133:
  2214. #line 627 "perly.y"
  2215. { yyval.arg = make_op(yyvsp[-1].ival, 1,
  2216.                 stab2arg(A_WORD,stabent(yyvsp[0].cval,TRUE)),
  2217.                 Nullarg, Nullarg);
  2218.               Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch; ;
  2219.     break;}
  2220. case 134:
  2221. #line 632 "perly.y"
  2222. { yyval.arg = make_op(yyvsp[-1].ival, 1,
  2223.                 stab2arg(A_STAB,yyvsp[0].stabval),
  2224.                 Nullarg, Nullarg); ;
  2225.     break;}
  2226. case 135:
  2227. #line 636 "perly.y"
  2228. { yyval.arg = make_op(yyvsp[-2].ival, 1,
  2229.                 stab2arg(A_WORD,Nullstab),
  2230.                 Nullarg, Nullarg); ;
  2231.     break;}
  2232. case 136:
  2233. #line 640 "perly.y"
  2234. { yyval.arg = make_op(yyvsp[0].ival, 0,
  2235.                 Nullarg, Nullarg, Nullarg); ;
  2236.     break;}
  2237. case 137:
  2238. #line 643 "perly.y"
  2239. { yyval.arg = make_op(yyvsp[-4].ival, 2, yyvsp[-2].arg, yyvsp[-1].arg, Nullarg); ;
  2240.     break;}
  2241. case 138:
  2242. #line 645 "perly.y"
  2243. { yyval.arg = make_op(yyvsp[-5].ival, 3, yyvsp[-3].arg, yyvsp[-2].arg, make_list(yyvsp[-1].arg)); ;
  2244.     break;}
  2245. case 139:
  2246. #line 647 "perly.y"
  2247. { yyval.arg = make_op(yyvsp[-5].ival, 2, yyvsp[-3].arg, yyvsp[-1].arg, Nullarg); ;
  2248.     break;}
  2249. case 140:
  2250. #line 649 "perly.y"
  2251. { arg4 = yyvsp[-1].arg; yyval.arg = make_op(yyvsp[-6].ival, 4, yyvsp[-4].arg, yyvsp[-3].arg, yyvsp[-2].arg); ;
  2252.     break;}
  2253. case 141:
  2254. #line 651 "perly.y"
  2255. { arg4 = yyvsp[-2].arg; arg5 = yyvsp[-1].arg;
  2256.               yyval.arg = make_op(yyvsp[-8].ival, 5, yyvsp[-6].arg, yyvsp[-4].arg, yyvsp[-3].arg); ;
  2257.     break;}
  2258. case 142:
  2259. #line 654 "perly.y"
  2260. { yyval.arg = make_op(yyvsp[-5].ival, 2,
  2261.                 yyvsp[-3].arg,
  2262.                 make_list(yyvsp[-1].arg),
  2263.                 Nullarg); ;
  2264.     break;}
  2265. case 143:
  2266. #line 659 "perly.y"
  2267. { yyval.arg = make_op(O_POP, 1, yyvsp[0].arg, Nullarg, Nullarg); ;
  2268.     break;}
  2269. case 144:
  2270. #line 661 "perly.y"
  2271. { yyval.arg = make_op(O_POP, 1, yyvsp[-1].arg, Nullarg, Nullarg); ;
  2272.     break;}
  2273. case 145:
  2274. #line 663 "perly.y"
  2275. { yyval.arg = make_op(O_SHIFT, 1, yyvsp[0].arg, Nullarg, Nullarg); ;
  2276.     break;}
  2277. case 146:
  2278. #line 665 "perly.y"
  2279. { yyval.arg = make_op(O_SHIFT, 1, yyvsp[-1].arg, Nullarg, Nullarg); ;
  2280.     break;}
  2281. case 147:
  2282. #line 667 "perly.y"
  2283. { yyval.arg = make_op(O_SHIFT, 1,
  2284.                 stab2arg(A_STAB,
  2285.                   aadd(stabent(subline ? "_" : "ARGV", TRUE))),
  2286.                 Nullarg, Nullarg); ;
  2287.     break;}
  2288. case 148:
  2289. #line 672 "perly.y"
  2290. {   static char p[]="/\\s+/";
  2291.                 char *oldend = bufend;
  2292.                 ARG *oldarg = yylval.arg;
  2293.                 
  2294.                 bufend=p+5;
  2295.                 (void)scanpat(p);
  2296.                 bufend=oldend;
  2297.                 yyval.arg = make_split(defstab,yylval.arg,Nullarg);
  2298.                 yylval.arg = oldarg; ;
  2299.     break;}
  2300. case 149:
  2301. #line 682 "perly.y"
  2302. { yyval.arg = mod_match(O_MATCH, yyvsp[-2].arg,
  2303.               make_split(defstab,yyvsp[-3].arg,yyvsp[-1].arg));;
  2304.     break;}
  2305. case 150:
  2306. #line 685 "perly.y"
  2307. { yyval.arg = mod_match(O_MATCH, yyvsp[-1].arg,
  2308.               make_split(defstab,yyvsp[-2].arg,Nullarg) ); ;
  2309.     break;}
  2310. case 151:
  2311. #line 688 "perly.y"
  2312. { yyval.arg = mod_match(O_MATCH,
  2313.                 stab2arg(A_STAB,defstab),
  2314.                 make_split(defstab,yyvsp[-1].arg,Nullarg) ); ;
  2315.     break;}
  2316. case 152:
  2317. #line 692 "perly.y"
  2318. { yyval.arg = make_op(yyvsp[-4].ival, 2,
  2319.                 yyvsp[-2].arg,
  2320.                 listish(make_list(yyvsp[-1].arg)),
  2321.                 Nullarg); ;
  2322.     break;}
  2323. case 153:
  2324. #line 697 "perly.y"
  2325. { yyval.arg = make_op(yyvsp[-3].ival, 1,
  2326.                 make_list(yyvsp[-1].arg),
  2327.                 Nullarg,
  2328.                 Nullarg); ;
  2329.     break;}
  2330. case 154:
  2331. #line 702 "perly.y"
  2332. { yyval.arg = l(make_op(yyvsp[-1].ival, 1, fixl(yyvsp[-1].ival,yyvsp[0].arg),
  2333.                 Nullarg, Nullarg)); ;
  2334.     break;}
  2335. case 155:
  2336. #line 705 "perly.y"
  2337. { yyval.arg = l(make_op(yyvsp[0].ival, 1,
  2338.                 stab2arg(A_STAB,defstab),
  2339.                 Nullarg, Nullarg)); ;
  2340.     break;}
  2341. case 156:
  2342. #line 709 "perly.y"
  2343. { yyval.arg = make_op(yyvsp[0].ival, 0, Nullarg, Nullarg, Nullarg); ;
  2344.     break;}
  2345. case 157:
  2346. #line 711 "perly.y"
  2347. { yyval.arg = make_op(yyvsp[-2].ival, 0, Nullarg, Nullarg, Nullarg); ;
  2348.     break;}
  2349. case 158:
  2350. #line 713 "perly.y"
  2351. { yyval.arg = make_op(yyvsp[-2].ival, 0, Nullarg, Nullarg, Nullarg); ;
  2352.     break;}
  2353. case 159:
  2354. #line 715 "perly.y"
  2355. { yyval.arg = make_op(yyvsp[-3].ival, 1, yyvsp[-1].arg, Nullarg, Nullarg); ;
  2356.     break;}
  2357. case 160:
  2358. #line 717 "perly.y"
  2359. { yyval.arg = make_op(yyvsp[-4].ival, 2, yyvsp[-2].arg, yyvsp[-1].arg, Nullarg);
  2360.                 if (yyvsp[-4].ival == O_INDEX && yyval.arg[2].arg_type == A_SINGLE)
  2361.                 fbmcompile(yyval.arg[2].arg_ptr.arg_str,0); ;
  2362.     break;}
  2363. case 161:
  2364. #line 721 "perly.y"
  2365. { yyval.arg = make_op(yyvsp[-4].ival, 2, yyvsp[-2].arg, yyvsp[-1].arg, Nullarg);
  2366.                 if (yyvsp[-4].ival == O_INDEX && yyval.arg[2].arg_type == A_SINGLE)
  2367.                 fbmcompile(yyval.arg[2].arg_ptr.arg_str,0); ;
  2368.     break;}
  2369. case 162:
  2370. #line 725 "perly.y"
  2371. { yyval.arg = make_op(yyvsp[-5].ival, 3, yyvsp[-3].arg, yyvsp[-2].arg, yyvsp[-1].arg);
  2372.                 if (yyvsp[-5].ival == O_INDEX && yyval.arg[2].arg_type == A_SINGLE)
  2373.                 fbmcompile(yyval.arg[2].arg_ptr.arg_str,0); ;
  2374.     break;}
  2375. case 163:
  2376. #line 729 "perly.y"
  2377. { yyval.arg = make_op(yyvsp[-5].ival, 3, yyvsp[-3].arg, yyvsp[-2].arg, yyvsp[-1].arg); ;
  2378.     break;}
  2379. case 164:
  2380. #line 731 "perly.y"
  2381. { arg4 = yyvsp[-1].arg;
  2382.               yyval.arg = make_op(yyvsp[-6].ival, 4, yyvsp[-4].arg, yyvsp[-3].arg, yyvsp[-2].arg); ;
  2383.     break;}
  2384. case 165:
  2385. #line 734 "perly.y"
  2386. { arg4 = yyvsp[-2].arg; arg5 = yyvsp[-1].arg;
  2387.               yyval.arg = make_op(yyvsp[-7].ival, 5, yyvsp[-5].arg, yyvsp[-4].arg, yyvsp[-3].arg); ;
  2388.     break;}
  2389. case 166:
  2390. #line 737 "perly.y"
  2391. { yyval.arg = make_op(yyvsp[-3].ival, 1,
  2392.                 yyvsp[-1].arg,
  2393.                 Nullarg,
  2394.                 Nullarg); ;
  2395.     break;}
  2396. case 167:
  2397. #line 742 "perly.y"
  2398. { yyval.arg = make_op(yyvsp[-1].ival, 1,
  2399.                 yyvsp[0].arg,
  2400.                 Nullarg,
  2401.                 Nullarg); ;
  2402.     break;}
  2403. case 168:
  2404. #line 747 "perly.y"
  2405. { yyval.arg = make_op(yyvsp[-5].ival, 3, yyvsp[-3].arg, yyvsp[-2].arg, yyvsp[-1].arg); ;
  2406.     break;}
  2407. case 171:
  2408. #line 753 "perly.y"
  2409. { yyval.arg = make_op(yyvsp[0].ival,2,
  2410.                 stab2arg(A_WORD,Nullstab),
  2411.                 stab2arg(A_STAB,defstab),
  2412.                 Nullarg); ;
  2413.     break;}
  2414. case 172:
  2415. #line 758 "perly.y"
  2416. { yyval.arg = make_op(yyvsp[-1].ival,2,
  2417.                 stab2arg(A_WORD,Nullstab),
  2418.                 maybelistish(yyvsp[-1].ival,make_list(yyvsp[0].arg)),
  2419.                 Nullarg); ;
  2420.     break;}
  2421. case 173:
  2422. #line 763 "perly.y"
  2423. { yyval.arg = make_op(yyvsp[-1].ival,2,
  2424.                 stab2arg(A_WORD,stabent(yyvsp[0].cval,TRUE)),
  2425.                 stab2arg(A_STAB,defstab),
  2426.                 Nullarg); ;
  2427.     break;}
  2428. case 174:
  2429. #line 768 "perly.y"
  2430. { yyval.arg = make_op(yyvsp[-2].ival,2,
  2431.                 stab2arg(A_WORD,stabent(yyvsp[-1].cval,TRUE)),
  2432.                 maybelistish(yyvsp[-2].ival,make_list(yyvsp[0].arg)),
  2433.                 Nullarg); Safefree(yyvsp[-1].cval); yyvsp[-1].cval = Nullch; ;
  2434.     break;}
  2435. case 175:
  2436. #line 773 "perly.y"
  2437. { yyval.arg = make_op(yyvsp[-2].ival,2,
  2438.                 stab2arg(A_STAB,yyvsp[-1].stabval),
  2439.                 maybelistish(yyvsp[-2].ival,make_list(yyvsp[0].arg)),
  2440.                 Nullarg); ;
  2441.     break;}
  2442. case 176:
  2443. #line 778 "perly.y"
  2444. { yyval.arg = make_op(yyvsp[-2].ival,2,
  2445.                 cmd_to_arg(yyvsp[-1].cmdval),
  2446.                 maybelistish(yyvsp[-2].ival,make_list(yyvsp[0].arg)),
  2447.                 Nullarg); ;
  2448.     break;}
  2449. case 177:
  2450. #line 785 "perly.y"
  2451. { yyval.arg = stab2arg(A_WORD,stabent(yyvsp[0].cval,TRUE));
  2452.               Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch;;
  2453.     break;}
  2454. case 179:
  2455. #line 791 "perly.y"
  2456. { yyval.arg = stab2arg(A_WORD,aadd(stabent(yyvsp[0].cval,TRUE)));
  2457.                 Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch; ;
  2458.     break;}
  2459. case 180:
  2460. #line 794 "perly.y"
  2461. { yyval.arg = stab2arg(A_STAB,yyvsp[0].stabval); ;
  2462.     break;}
  2463. case 181:
  2464. #line 798 "perly.y"
  2465. { yyval.arg = stab2arg(A_WORD,hadd(stabent(yyvsp[0].cval,TRUE)));
  2466.                 Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch; ;
  2467.     break;}
  2468. case 182:
  2469. #line 801 "perly.y"
  2470. { yyval.arg = stab2arg(A_STAB,yyvsp[0].stabval); ;
  2471.     break;}
  2472. case 183:
  2473. #line 805 "perly.y"
  2474. { yyval.ival = 1; ;
  2475.     break;}
  2476. case 184:
  2477. #line 807 "perly.y"
  2478. { yyval.ival = 0; ;
  2479.     break;}
  2480. case 185:
  2481. #line 816 "perly.y"
  2482. { char *s;
  2483.                 yyval.arg = op_new(1);
  2484.                 yyval.arg->arg_type = O_ITEM;
  2485.                 yyval.arg[1].arg_type = A_SINGLE;
  2486.                 yyval.arg[1].arg_ptr.arg_str = str_make(yyvsp[0].cval,0);
  2487.                 for (s = yyvsp[0].cval; *s && isLOWER(*s); s++) ;
  2488.                 if (dowarn && !*s)
  2489.                 warn(
  2490.                   "\"%s\" may clash with future reserved word",
  2491.                   yyvsp[0].cval );
  2492.             ;
  2493.     break;}
  2494. }
  2495.    /* the action file gets copied in in place of this dollarsign */
  2496. #line 423 "/usr/local/lib/bison.simple"
  2497.  
  2498.   yyvsp -= yylen;
  2499.   yyssp -= yylen;
  2500. #ifdef YYLSP_NEEDED
  2501.   yylsp -= yylen;
  2502. #endif
  2503.  
  2504. #if YYDEBUG != 0
  2505.   if (yydebug)
  2506.     {
  2507.       short *ssp1 = yyss - 1;
  2508.       fprintf (stderr, "state stack now");
  2509.       while (ssp1 != yyssp)
  2510.     fprintf (stderr, " %d", *++ssp1);
  2511.       fprintf (stderr, "\n");
  2512.     }
  2513. #endif
  2514.  
  2515.   *++yyvsp = yyval;
  2516.  
  2517. #ifdef YYLSP_NEEDED
  2518.   yylsp++;
  2519.   if (yylen == 0)
  2520.     {
  2521.       yylsp->first_line = yylloc.first_line;
  2522.       yylsp->first_column = yylloc.first_column;
  2523.       yylsp->last_line = (yylsp-1)->last_line;
  2524.       yylsp->last_column = (yylsp-1)->last_column;
  2525.       yylsp->text = 0;
  2526.     }
  2527.   else
  2528.     {
  2529.       yylsp->last_line = (yylsp+yylen-1)->last_line;
  2530.       yylsp->last_column = (yylsp+yylen-1)->last_column;
  2531.     }
  2532. #endif
  2533.  
  2534.   /* Now "shift" the result of the reduction.
  2535.      Determine what state that goes to,
  2536.      based on the state we popped back to
  2537.      and the rule number reduced by.  */
  2538.  
  2539.   yyn = yyr1[yyn];
  2540.  
  2541.   yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
  2542.   if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
  2543.     yystate = yytable[yystate];
  2544.   else
  2545.     yystate = yydefgoto[yyn - YYNTBASE];
  2546.  
  2547.   goto yynewstate;
  2548.  
  2549. yyerrlab:   /* here on detecting error */
  2550.  
  2551.   if (! yyerrstatus)
  2552.     /* If not already recovering from an error, report this error.  */
  2553.     {
  2554.       ++yynerrs;
  2555.  
  2556. #ifdef YYERROR_VERBOSE
  2557.       yyn = yypact[yystate];
  2558.  
  2559.       if (yyn > YYFLAG && yyn < YYLAST)
  2560.     {
  2561.       int size = 0;
  2562.       char *msg;
  2563.       int x, count;
  2564.  
  2565.       count = 0;
  2566.       for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
  2567.         if (yycheck[x + yyn] == x)
  2568.           size += strlen(yytname[x]) + 15, count++;
  2569.       msg = (char *) xmalloc(size + 15);
  2570.       strcpy(msg, "parse error");
  2571.  
  2572.       if (count < 5)
  2573.         {
  2574.           count = 0;
  2575.           for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
  2576.         if (yycheck[x + yyn] == x)
  2577.           {
  2578.             strcat(msg, count == 0 ? ", expecting `" : " or `");
  2579.             strcat(msg, yytname[x]);
  2580.             strcat(msg, "'");
  2581.             count++;
  2582.           }
  2583.         }
  2584.       yyerror(msg);
  2585.       free(msg);
  2586.     }
  2587.       else
  2588. #endif /* YYERROR_VERBOSE */
  2589.     yyerror("parse error");
  2590.     }
  2591.  
  2592. yyerrlab1:   /* here on error raised explicitly by an action */
  2593.  
  2594.   if (yyerrstatus == 3)
  2595.     {
  2596.       /* if just tried and failed to reuse lookahead token after an error, discard it.  */
  2597.  
  2598.       /* return failure if at end of input */
  2599.       if (yychar == YYEOF)
  2600.     YYABORT;
  2601.  
  2602. #if YYDEBUG != 0
  2603.       if (yydebug)
  2604.     fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
  2605. #endif
  2606.  
  2607.       yychar = YYEMPTY;
  2608.     }
  2609.  
  2610.   /* Else will try to reuse lookahead token
  2611.      after shifting the error token.  */
  2612.  
  2613.   yyerrstatus = 3;        /* Each real token shifted decrements this */
  2614.  
  2615.   goto yyerrhandle;
  2616.  
  2617. yyerrdefault:  /* current state does not do anything special for the error token. */
  2618.  
  2619. #if 0
  2620.   /* This is wrong; only states that explicitly want error tokens
  2621.      should shift them.  */
  2622.   yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
  2623.   if (yyn) goto yydefault;
  2624. #endif
  2625.  
  2626. yyerrpop:   /* pop the current state because it cannot handle the error token */
  2627.  
  2628.   if (yyssp == yyss) YYABORT;
  2629.   yyvsp--;
  2630.   yystate = *--yyssp;
  2631. #ifdef YYLSP_NEEDED
  2632.   yylsp--;
  2633. #endif
  2634.  
  2635. #if YYDEBUG != 0
  2636.   if (yydebug)
  2637.     {
  2638.       short *ssp1 = yyss - 1;
  2639.       fprintf (stderr, "Error: state stack now");
  2640.       while (ssp1 != yyssp)
  2641.     fprintf (stderr, " %d", *++ssp1);
  2642.       fprintf (stderr, "\n");
  2643.     }
  2644. #endif
  2645.  
  2646. yyerrhandle:
  2647.  
  2648.   yyn = yypact[yystate];
  2649.   if (yyn == YYFLAG)
  2650.     goto yyerrdefault;
  2651.  
  2652.   yyn += YYTERROR;
  2653.   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
  2654.     goto yyerrdefault;
  2655.  
  2656.   yyn = yytable[yyn];
  2657.   if (yyn < 0)
  2658.     {
  2659.       if (yyn == YYFLAG)
  2660.     goto yyerrpop;
  2661.       yyn = -yyn;
  2662.       goto yyreduce;
  2663.     }
  2664.   else if (yyn == 0)
  2665.     goto yyerrpop;
  2666.  
  2667.   if (yyn == YYFINAL)
  2668.     YYACCEPT;
  2669.  
  2670. #if YYDEBUG != 0
  2671.   if (yydebug)
  2672.     fprintf(stderr, "Shifting error token, ");
  2673. #endif
  2674.  
  2675.   *++yyvsp = yylval;
  2676. #ifdef YYLSP_NEEDED
  2677.   *++yylsp = yylloc;
  2678. #endif
  2679.  
  2680.   yystate = yyn;
  2681.   goto yynewstate;
  2682. }
  2683. #line 828 "perly.y"
  2684.  /* PROGRAM */
  2685.