home *** CD-ROM | disk | FTP | other *** search
/ ftp.muug.mb.ca / 2014.06.ftp.muug.mb.ca.tar / ftp.muug.mb.ca / pub / src / perl / perly.c < prev    next >
C/C++ Source or Header  |  1992-08-19  |  59KB  |  1,670 lines

  1.  
  2. # line 23 "perly.y"
  3. #include "INTERN.h"
  4. #include "perl.h"
  5.  
  6. /*SUPPRESS 530*/
  7. /*SUPPRESS 593*/
  8. /*SUPPRESS 595*/
  9.  
  10. STAB *scrstab;
  11. ARG *arg4;    /* rarely used arguments to make_op() */
  12. ARG *arg5;
  13.  
  14.  
  15. # line 38 "perly.y"
  16. typedef union  {
  17.     int    ival;
  18.     char *cval;
  19.     ARG *arg;
  20.     CMD *cmdval;
  21.     struct compcmd compval;
  22.     STAB *stabval;
  23.     FCMD *formval;
  24. } YYSTYPE;
  25. # define WORD 257
  26. # define APPEND 258
  27. # define OPEN 259
  28. # define SSELECT 260
  29. # define LOOPEX 261
  30. # define USING 262
  31. # define FORMAT 263
  32. # define DO 264
  33. # define SHIFT 265
  34. # define PUSH 266
  35. # define POP 267
  36. # define LVALFUN 268
  37. # define WHILE 269
  38. # define UNTIL 270
  39. # define IF 271
  40. # define UNLESS 272
  41. # define ELSE 273
  42. # define ELSIF 274
  43. # define CONTINUE 275
  44. # define SPLIT 276
  45. # define FLIST 277
  46. # define FOR 278
  47. # define FILOP 279
  48. # define FILOP2 280
  49. # define FILOP3 281
  50. # define FILOP4 282
  51. # define FILOP22 283
  52. # define FILOP25 284
  53. # define FUNC0 285
  54. # define FUNC1 286
  55. # define FUNC2 287
  56. # define FUNC2x 288
  57. # define FUNC3 289
  58. # define FUNC4 290
  59. # define FUNC5 291
  60. # define HSHFUN 292
  61. # define HSHFUN3 293
  62. # define FLIST2 294
  63. # define SUB 295
  64. # define FILETEST 296
  65. # define LOCAL 297
  66. # define DELETE 298
  67. # define RELOP 299
  68. # define EQOP 300
  69. # define MULOP 301
  70. # define ADDOP 302
  71. # define PACKAGE 303
  72. # define AMPER 304
  73. # define FORMLIST 305
  74. # define REG 306
  75. # define ARYLEN 307
  76. # define ARY 308
  77. # define HSH 309
  78. # define STAR 310
  79. # define SUBST 311
  80. # define PATTERN 312
  81. # define RSTRING 313
  82. # define TRANS 314
  83. # define LISTOP 315
  84. # define DOTDOT 316
  85. # define OROR 317
  86. # define ANDAND 318
  87. # define UNIOP 319
  88. # define LS 320
  89. # define RS 321
  90. # define MATCH 322
  91. # define NMATCH 323
  92. # define UMINUS 324
  93. # define POW 325
  94. # define INC 326
  95. # define DEC 327
  96. #define yyclearin yychar = -1
  97. #define yyerrok yyerrflag = 0
  98. extern int yychar;
  99. extern short yyerrflag;
  100. #ifndef YYMAXDEPTH
  101. #define YYMAXDEPTH 150
  102. #endif
  103. YYSTYPE yylval, yyval;
  104. # define YYERRCODE 256
  105.  
  106. # line 828 "perly.y"
  107.  /* PROGRAM */
  108. short yyexca[] ={
  109. -1, 1,
  110.     0, -1,
  111.     -2, 0,
  112. -1, 3,
  113.     0, 2,
  114.     -2, 39,
  115. -1, 130,
  116.     326, 0,
  117.     327, 0,
  118.     -2, 84,
  119. -1, 131,
  120.     326, 0,
  121.     327, 0,
  122.     -2, 85,
  123. -1, 232,
  124.     299, 0,
  125.     -2, 66,
  126. -1, 233,
  127.     300, 0,
  128.     -2, 67,
  129. -1, 234,
  130.     316, 0,
  131.     -2, 71,
  132. -1, 257,
  133.     41, 177,
  134.     44, 177,
  135.     -2, 185,
  136. -1, 258,
  137.     44, 177,
  138.     -2, 185,
  139.     };
  140. # define YYNPROD 186
  141. # define YYLAST 3267
  142. short yyact[]={
  143.  
  144.   26, 327,  27, 201, 107, 324, 305, 243, 124, 125,
  145.  145,  21, 115, 116, 108, 109,  92, 146, 154,  88,
  146.   90, 183, 155,  94,  96, 115, 181, 108, 109, 112,
  147.  287, 166, 255, 110, 111, 121, 122, 108, 107, 133,
  148.  138, 169, 137, 108, 109, 191, 110, 111, 121, 122,
  149.  194, 107, 152, 149, 165, 150, 108, 109, 121, 122,
  150.   83, 107, 110, 111, 121, 122, 147, 107, 121, 122,
  151.  173, 107, 148, 184, 104, 105, 102, 121, 122,  85,
  152.  107, 189, 167,  84, 164, 192, 101, 101,  11, 101,
  153.    3,  28, 247, 252,  12, 244, 143, 101, 242, 141,
  154.  196, 101, 198, 212, 211, 213, 204, 101, 206, 215,
  155.  217, 219, 221, 223, 225, 227, 229, 231, 232, 233,
  156.  234, 235, 236, 237, 238, 239,  13,  95, 144, 101,
  157.   93, 142,  89, 182,  14,  87, 190, 101,  11, 308,
  158.  245, 387, 292, 141,  12, 193, 389,  86, 168,  81,
  159.  360, 244, 328, 325, 242, 256, 316, 260, 260, 101,
  160.  335, 260, 260, 260, 260, 260, 380, 363, 317, 328,
  161.  315, 334, 332, 271, 272, 142,  13, 412, 410, 277,
  162.  278, 279, 280, 281,  14, 408, 314, 259, 261, 406,
  163.   32, 263, 264, 265, 266, 267, 377,  38, 254, 325,
  164.   31, 357,  30, 342, 101, 404, 101, 403, 291, 294,
  165.   28, 401, 101,  28, 240,  28,  16, 293,  28, 296,
  166.  101, 297, 398, 298, 397, 299, 396, 300, 392, 301,
  167.  391, 302, 379, 303, 289, 153, 378, 101, 370, 156,
  168.  368, 348, 337, 183, 336, 211, 329, 326, 268, 306,
  169.  269, 323, 288, 274, 270, 253,  82, 246, 166, 214,
  170.  199, 185, 180, 179, 178, 330,  32, 177, 176, 151,
  171.  331, 166, 333,  38, 340, 175,  31, 338,  30, 343,
  172.   28, 341,  91,  33, 344, 345, 346, 347, 157, 349,
  173.  115, 116, 108, 109, 174, 184, 172, 171, 352, 170,
  174.  350, 351, 112, 353,  10, 355, 356, 358, 163, 167,
  175.  162, 110, 111, 121, 122, 282, 107, 161, 361, 283,
  176.  362, 160, 167,  99, 100,  97,  98, 364, 367, 365,
  177.  366, 159, 158, 371, 134, 260,   9, 260, 202, 373,
  178.    2,   6,  77, 354, 376,  17, 381, 382,  78, 103,
  179.   15, 385, 383, 384,  99, 100,  97,  98, 113,  33,
  180.    7,  29,   4, 123, 386, 372,  32, 374,   8, 388,
  181.    5,   1, 390,  38, 322, 393,  31,   0,  30,   0,
  182.  394,   0,   0, 395,   0, 399,   0,   0, 114,   0,
  183.  400, 402, 126, 127, 128, 129, 130, 131,   0,   0,
  184.  405,   0, 407,   0,   0,   0,   0, 409,   0, 411,
  185.    0,   0,   0,  24,  79,   0,  54,  53,  51,   0,
  186.    0,  39,  63,  61,  62,  67,  18,  19,  22,  23,
  187.    0,   0,   0,  64,  66,  20,  55,  56,  57,  59,
  188.   58,  60,  68,  69,  70,  71,  72,  73,  74,  75,
  189.   76,  65,   0,  36,  37,  44,   0,   0,   0,  33,
  190.    0,  50,   0,  40,  45,  43,  42,  41,  48,  47,
  191.   46,  49,  80,   0,   0,   0,  52,   0,   0,   0,
  192.    0,   0,   0,  34,  35,   0,   0,   0,   0,  24,
  193.   79,   0,  54,  53,  51,  32,   0,  39,  63,  61,
  194.   62,  67,  38, 320,   0,  31,   0,  30,   0,  64,
  195.   66,   0,  55,  56,  57,  59,  58,  60,  68,  69,
  196.   70,  71,  72,  73,  74,  75,  76,  65,   0,  36,
  197.   37,  44,   0,   0,   0,   0,   0,  50,   0,  40,
  198.   45,  43,  42,  41,  48,  47,  46,  49,  80,   0,
  199.    0,   0,  52,   0,   0,   0,   0,   0,   0,  34,
  200.   35,   0,   0, 115, 116, 108, 109,   0,  32,   0,
  201.    0,   0,   0,   0,   0,  38, 313,   0,  31,   0,
  202.   30, 119, 118,   0, 110, 111, 121, 122,  33, 107,
  203.   79,   0,  54,  53,  51,   0,   0,  39,  63,  61,
  204.   62,  67,   0,   0,   0,   0,   0,   0,   0,  64,
  205.   66,   0,  55,  56,  57,  59,  58,  60,  68,  69,
  206.   70,  71,  72,  73,  74,  75,  76,  65,   0,  36,
  207.   37,  44,   0,   0,   0,   0,   0,  50,   0,  40,
  208.   45,  43,  42,  41,  48,  47,  46,  49,  80,   0,
  209.    0,   0,  52,   0,   0,   0,   0,   0,   0,  34,
  210.   35,  33,   0,   0,  32,   0,   0,   0,   0,   0,
  211.    0,  38, 311,   0,  31,   0,  30,   0,   0,   0,
  212.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  213.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  214.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  215.    0, 112,   0,   0, 339,   0,   0, 325,   0,  79,
  216.    0,  54,  53,  51, 112,   0,  39,  63,  61,  62,
  217.   67,   0,   0,   0, 106,   0, 120,   0,  64,  66,
  218.    0,  55,  56,  57,  59,  58,  60,  68,  69,  70,
  219.   71,  72,  73,  74,  75,  76,  65,  33,  36,  37,
  220.   44,   0,   0,   0,   0,   0,  50, 113,  40,  45,
  221.   43,  42,  41,  48,  47,  46,  49,  80,   0, 112,
  222.  113,  52,   0,   0,   0,   0,   0,   0,  34,  35,
  223.    0,   0,  79,   0,  54,  53,  51, 114,   0,  39,
  224.   63,  61,  62,  67, 120,   0,   0,   0,   0,   0,
  225.  114,  64,  66,   0,  55,  56,  57,  59,  58,  60,
  226.   68,  69,  70,  71,  72,  73,  74,  75,  76,  65,
  227.    0,  36,  37,  44,   0, 113,   0,   0,   0,  50,
  228.    0,  40,  45,  43,  42,  41,  48,  47,  46,  49,
  229.   80,   0,   0,   0,  52,   0,  32,   0,   0,   0,
  230.    0,  34,  35,  38, 307, 114,  31,   0,  30,   0,
  231.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  232.    0,   0,   0,   0,   0,   0,   0,   0,  79,   0,
  233.   54,  53,  51,   0,   0,  39,  63,  61,  62,  67,
  234.    0,   0,   0,   0,   0,   0,   0,  64,  66,   0,
  235.   55,  56,  57,  59,  58,  60,  68,  69,  70,  71,
  236.   72,  73,  74,  75,  76,  65,   0,  36,  37,  44,
  237.    0,   0,   0,   0,   0,  50,   0,  40,  45,  43,
  238.   42,  41,  48,  47,  46,  49,  80,   0,   0,  33,
  239.   52,   0,  32,   0,   0,   0,   0,  34,  35,  38,
  240.  275,   0,  31,   0,  30,   0,   0,   0,   0,   0,
  241.    0,   0, 115, 116, 108, 109,   0,   0,   0,   0,
  242.    0,   0,   0,   0,   0, 115, 116, 108, 109, 117,
  243.  119, 118,   0, 110, 111, 121, 122,   0, 107,   0,
  244.    0,   0,   0,   0, 118,   0, 110, 111, 121, 122,
  245.    0, 107,   0,   0,   0,   0,   0,   0,   0,   0,
  246.    0,   0,   0,   0,   0,  32,   0,   0,   0,   0,
  247.    0,   0,  38, 262,   0,  31,   0,  30,   0,   0,
  248.  115, 116, 108, 109,   0,  33,   0,   0,   0,   0,
  249.    0,   0,   0,   0,   0,   0,   0, 117, 119, 118,
  250.    0, 110, 111, 121, 122,   0, 107,   0,   0, 112,
  251.    0,   0,   0,   0,   0, 325,   0,   0,   0,   0,
  252.   79,   0,  54,  53,  51,   0,   0,  39,  63,  61,
  253.   62,  67, 106,   0, 120,   0,   0,   0,   0,  64,
  254.   66,   0,  55,  56,  57,  59,  58,  60,  68,  69,
  255.   70,  71,  72,  73,  74,  75,  76,  65,  33,  36,
  256.   37,  44,   0,   0,   0, 113,   0,  50,   0,  40,
  257.   45,  43,  42,  41,  48,  47,  46,  49,  80,   0,
  258.    0,   0,  52,   0,  32,   0,   0,   0,   0,  34,
  259.   35,  38,   0,   0,  31, 114,  30,   0,   0,   0,
  260.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  261.    0,   0, 230,   0,   0,   0,  79,   0,  54,  53,
  262.   51,   0,   0,  39,  63,  61,  62,  67,   0,   0,
  263.    0,   0,   0,   0,   0,  64,  66,   0,  55,  56,
  264.   57,  59,  58,  60,  68,  69,  70,  71,  72,  73,
  265.   74,  75,  76,  65,   0,  36,  37,  44,   0,   0,
  266.    0,   0,   0,  50,   0,  40,  45,  43,  42,  41,
  267.   48,  47,  46,  49,  80,   0, 112,  33,  52,   0,
  268.    0,   0,   0,   0,   0,  34,  35,   0,   0, 257,
  269.    0,  54,  53,  51,   0,   0,  39,  63,  61,  62,
  270.   67,   0,   0,   0,   0,   0,   0,   0,  64,  66,
  271.    0,  55,  56,  57,  59,  58,  60,  68,  69,  70,
  272.   71,  72,  73,  74,  75,  76,  65,   0,  36,  37,
  273.   44,   0, 113,   0,   0,   0,  50,   0,  40,  45,
  274.   43,  42,  41,  48,  47,  46,  49,  80,   0,   0,
  275.    0,  52,   0,  32,   0,   0,   0,   0,  34,  35,
  276.   38,   0, 114,  31,   0,  30,   0,   0,   0,   0,
  277.  115, 116, 108, 109,   0,   0,   0,   0,   0,   0,
  278.    0, 228,   0,   0,   0,   0,   0, 117, 119, 118,
  279.    0, 110, 111, 121, 122,   0, 107, 112,   0,   0,
  280.    0,   0,   0, 328,   0,   0,   0,   0,  79,   0,
  281.   54,  53,  51,   0,   0,  39,  63,  61,  62,  67,
  282.  106,   0, 120,   0,   0,   0,   0,  64,  66,   0,
  283.   55,  56,  57,  59,  58,  60,  68,  69,  70,  71,
  284.   72,  73,  74,  75,  76,  65,  33,  36,  37,  44,
  285.    0,   0,   0, 113,   0,  50,   0,  40,  45,  43,
  286.   42,  41,  48,  47,  46,  49,  80,   0,   0,  32,
  287.   52,   0,   0,   0,   0,   0,  38,  34,  35,  31,
  288.    0,  30,   0, 114,   0,   0,   0,   0,   0,   0,
  289.    0,   0,   0,   0,   0,   0,   0, 226,   0,   0,
  290.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  291.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  292.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  293.    0,   0,   0,   0,   0,   0,   0, 115, 116, 108,
  294.  109,   0,   0,  32,   0,   0,   0,   0,   0,   0,
  295.   38,   0,   0,  31,   0,  30,   0,   0, 110, 111,
  296.  121, 122,  33, 107,   0,   0,   0,   0,   0,   0,
  297.    0, 224,   0,   0,   0,   0,   0,  79,   0,  54,
  298.   53,  51,   0,   0,  39,  63,  61,  62,  67,   0,
  299.    0,   0,   0,   0,   0,   0,  64,  66,   0,  55,
  300.   56,  57,  59,  58,  60,  68,  69,  70,  71,  72,
  301.   73,  74,  75,  76,  65,   0,  36,  37,  44,   0,
  302.    0,   0,   0,   0,  50,   0,  40,  45,  43,  42,
  303.   41,  48,  47,  46,  49,  80,  33,   0,  32,  52,
  304.    0,   0,   0,   0,   0,  38,  34,  35,  31,   0,
  305.   30,   0,   0,   0,   0,   0,   0,   0, 115, 116,
  306.  108, 109,   0,   0,   0,   0, 222,   0,   0,   0,
  307.    0,   0,   0,   0,   0, 117, 119, 118,   0, 110,
  308.  111, 121, 122,   0, 107,   0,   0,   0,   0,   0,
  309.    0,   0,   0,  79,   0,  54,  53,  51,   0,   0,
  310.   39,  63,  61,  62,  67,   0,   0,   0,   0,   0,
  311.    0,   0,  64,  66,   0,  55,  56,  57,  59,  58,
  312.   60,  68,  69,  70,  71,  72,  73,  74,  75,  76,
  313.   65,  33,  36,  37,  44,   0,   0,   0,   0,   0,
  314.   50,   0,  40,  45,  43,  42,  41,  48,  47,  46,
  315.   49,  80,   0,   0,  32,  52,   0,   0,   0,   0,
  316.    0,  38,  34,  35,  31,   0,  30,  79,   0,  54,
  317.   53,  51,   0,   0,  39,  63,  61,  62,  67,   0,
  318.    0,   0, 220,   0,   0,   0,  64,  66,   0,  55,
  319.   56,  57,  59,  58,  60,  68,  69,  70,  71,  72,
  320.   73,  74,  75,  76,  65,   0,  36,  37,  44,   0,
  321.    0,   0,   0,   0,  50,   0,  40,  45,  43,  42,
  322.   41,  48,  47,  46,  49,  80,   0,   0,  32,  52,
  323.    0,   0,   0,   0,   0,  38,  34,  35,  31,   0,
  324.   30,   0,   0,   0,   0,   0,   0,  33,   0,   0,
  325.    0,   0,   0,   0,   0,   0, 218,   0,   0,   0,
  326.    0,   0,  79,   0,  54,  53,  51,   0,   0,  39,
  327.   63,  61,  62,  67,   0,   0,   0,   0,   0,   0,
  328.    0,  64,  66,   0,  55,  56,  57,  59,  58,  60,
  329.   68,  69,  70,  71,  72,  73,  74,  75,  76,  65,
  330.    0,  36,  37,  44,   0,   0,   0,   0,   0,  50,
  331.    0,  40,  45,  43,  42,  41,  48,  47,  46,  49,
  332.   80,  33,   0,  32,  52,   0,   0,   0,   0,   0,
  333.   38,  34,  35,  31,   0,  30,   0,   0,   0,   0,
  334.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  335.    0, 216,   0,   0,   0,   0,   0,   0,   0,   0,
  336.    0,   0,   0,   0,   0,   0,   0, 112,   0,   0,
  337.    0,   0,   0,   0,   0,   0,   0,   0,  79,   0,
  338.   54,  53,  51,   0,   0,  39,  63,  61,  62,  67,
  339.  106,   0, 120,   0,   0,   0,   0,  64,  66,   0,
  340.   55,  56,  57,  59,  58,  60,  68,  69,  70,  71,
  341.   72,  73,  74,  75,  76,  65,  33,  36,  37,  44,
  342.    0,   0,   0, 113,   0,  50,   0,  40,  45,  43,
  343.   42,  41,  48,  47,  46,  49,  80,   0,   0,  32,
  344.   52,   0,   0,   0,   0,   0,  38,  34,  35,  31,
  345.    0,  30,  79, 114,  54,  53,  51,   0,   0,  39,
  346.   63,  61,  62,  67,   0,   0,   0,   0,   0,   0,
  347.    0,  64,  66,   0,  55,  56,  57,  59,  58,  60,
  348.   68,  69,  70,  71,  72,  73,  74,  75,  76,  65,
  349.    0,  36,  37,  44,   0,   0,   0,   0,   0,  50,
  350.    0,  40,  45,  43,  42,  41,  48,  47,  46,  49,
  351.   80,   0,   0,   0,  52,   0,   0,   0,  32,   0,
  352.    0,  34,  35,   0,   0,  38,   0,   0,  31,  28,
  353.   30,   0,  33,   0,   0,   0,   0,   0,   0,   0,
  354.    0,   0,   0,   0,   0,   0,   0,  79,   0,  54,
  355.   53,  51,   0,   0,  39,  63,  61,  62,  67,   0,
  356.    0,   0,   0,   0,   0,   0,  64,  66,   0,  55,
  357.   56,  57,  59,  58,  60,  68,  69,  70,  71,  72,
  358.   73,  74,  75,  76,  65,   0,  36,  37,  44,   0,
  359.    0,   0,   0,   0,  50,   0,  40,  45,  43,  42,
  360.   41,  48,  47,  46,  49,  80,   0,   0,  28,  52,
  361.    0,  33,   0,   0,   0,  32,  34,  35,   0,   0,
  362.    0,   0,  38,   0,   0,  31,   0,  30, 115, 116,
  363.  108, 109,   0,   0,   0,   0,   0,   0,   0,   0,
  364.    0,   0,   0,   0,   0, 117, 119, 118,   0, 110,
  365.  111, 121, 122,   0, 107, 112,   0,   0,   0,   0,
  366.    0,   0,   0, 187,   0,  54,  53,  51,   0,   0,
  367.   39,  63,  61,  62,  67, 304,   0,   0, 106,   0,
  368.  120,   0,  64,  66,   0,  55,  56,  57,  59,  58,
  369.   60,  68,  69,  70,  71,  72,  73,  74,  75,  76,
  370.   65,   0,  36,  37,  44,  28,   0,   0,  33,   0,
  371.   50, 113, 188,  45,  43,  42,  41,  48,  47,  46,
  372.   49,  80,   0,   0,   0,  52,   0,  32,   0,   0,
  373.    0,   0,  34,  35,  38, 136,   0,  31,   0,  30,
  374.    0, 114,  79,   0,  54,  53,  51,   0,   0,  39,
  375.   63,  61,  62,  67,   0,   0,   0,   0,   0,   0,
  376.    0,  64,  66,   0,  55,  56,  57,  59,  58,  60,
  377.   68,  69,  70,  71,  72,  73,  74,  75,  76,  65,
  378.    0,  36,  37,  44,   0,   0,   0,   0,   0,  50,
  379.    0,  40,  45,  43,  42,  41,  48,  47,  46,  49,
  380.   80,   0,   0,   0,  52,   0,  32,   0,   0,   0,
  381.    0,  34,  35,  38,   0,   0,  31,   0,  30,   0,
  382.   33,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  383.    0,   0,   0,   0,   0,   0,   0,   0,   0, 139,
  384.    0,  54,  53,  51,   0,   0,  39,  63,  61,  62,
  385.   67,   0,   0,   0,   0,   0,   0,   0,  64,  66,
  386.    0,  55,  56,  57,  59,  58,  60,  68,  69,  70,
  387.   71,  72,  73,  74,  75,  76,  65,   0,  36,  37,
  388.   44,   0,   0,   0,   0,   0,  50,   0, 140,  45,
  389.   43,  42,  41,  48,  47,  46,  49,  80,   0,  33,
  390.   32,  52,   0,   0,   0,   0,   0,  38,  34,  35,
  391.   31,   0,  30,   0,   0,   0, 115, 116, 108, 109,
  392.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  393.    0,   0,   0, 117, 119, 118,   0, 110, 111, 121,
  394.  122,   0, 107,   0,   0,   0,   0,   0,   0,   0,
  395.    0,  79,   0,  54,  53,  51,   0,   0,  39,  63,
  396.   61,  62,  67,   0,   0,   0,   0,   0,   0,   0,
  397.   64,  66,   0,  55,  56,  57,  59,  58,  60,  68,
  398.   69,  70,  71,  72,  73,  74,  75,  76,  65,   0,
  399.   36,  37,  44,  33,   0,   0,   0,   0,  50,   0,
  400.   40,  45,  43,  42,  41,  48,  47,  46,  49,  80,
  401.    0,   0,  32,  52,   0,   0,   0,   0,   0,  38,
  402.   34,  35,  31,   0,  30,   0,   0,   0,   0,   0,
  403.   79,   0,  54,  53,  51,   0,   0,  39,  63,  61,
  404.   62,  67,   0,   0,   0,   0,   0,   0,   0,  64,
  405.   66,   0,  55,  56,  57,  59,  58,  60,  68,  69,
  406.   70,  71,  72,  73,  74,  75,  76,  65,   0,  36,
  407.   37,  44,   0,   0,   0,   0,   0,  50,   0,  40,
  408.   45,  43,  42,  41,  48,  47,  46,  49,  80,   0,
  409.    0,  32,  52,   0,   0,   0,   0,   0,  38,  34,
  410.   35,  31,   0,  30,   0,  33,   0,   0,   0,   0,
  411.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  412.    0,   0,   0,   0, 257,   0,  54,  53,  51,   0,
  413.    0,  39,  63,  61,  62,  67,   0,   0,   0,   0,
  414.    0,   0,   0,  64,  66,   0,  55,  56,  57,  59,
  415.   58,  60,  68,  69,  70,  71,  72,  73,  74,  75,
  416.   76,  65,   0,  36,  37,  44,   0,   0,   0,   0,
  417.    0,  50,   0,  40,  45,  43,  42,  41,  48,  47,
  418.   46,  49,  80,   0,  33,   0,  52,   0,   0,   0,
  419.    0,   0,   0,  34,  35,   0,   0,   0,   0,   0,
  420.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  421.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  422.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  423.    0,   0,   0,   0,   0,   0, 258,   0,  54,  53,
  424.   51,   0,   0,  39,  63,  61,  62,  67,   0,   0,
  425.    0,   0,   0,   0,   0,  64,  66,   0,  55,  56,
  426.   57,  59,  58,  60,  68,  69,  70,  71,  72,  73,
  427.   74,  75,  76,  65,   0,  36,  37,  44,   0,   0,
  428.    0,   0,   0,  50,   0,  40,  45,  43,  42,  41,
  429.   48,  47,  46,  49,  80,   0,   0,   0,  52,   0,
  430.    0,   0,   0,   0,   0,  34,  35,   0,   0,   0,
  431.    0,   0,   0,   0,  25, 132,   0,  54,  53,  51,
  432.    0,   0,  39,  63,  61,  62,  67,   0,   0,   0,
  433.    0,   0,   0,   0,  64,  66,   0,  55,  56,  57,
  434.   59,  58,  60,  68,  69,  70,  71,  72,  73,  74,
  435.   75,  76,  65, 135,  36,  37,  44,   0,   0,   0,
  436.    0,   0,  50,   0,  40,  45,  43,  42,  41,  48,
  437.   47,  46,  49,  80,   0,   0,   0,  52,   0,   0,
  438.    0,   0,   0,   0,  34,  35,   0,   0,   0,   0,
  439.    0,   0,   0,   0,   0, 186,   0,   0,   0,   0,
  440.    0,   0, 195,   0, 197,   0,   0, 200, 203,   0,
  441.  205,   0, 207, 208, 209, 210,   0,   0,   0,   0,
  442.   32,   0,   0,   0,   0,   0,   0,  38,   0,   0,
  443.   31,   0,  30,   0,   0,   0,   0,   0,   0,   0,
  444.    0,   0,   0,   0,   0,   0,   0,   0,   0, 241,
  445.    0,   0,   0,   0,   0,   0, 248, 249, 250, 251,
  446.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  447.    0,   0,   0,   0,   0,   0,   0,   0, 141,   0,
  448.    0,   0,   0,   0,   0,   0,   0, 273,   0,   0,
  449.  276,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  450.    0,   0, 284, 285, 286,   0,   0,   0,   0,   0,
  451.  142,   0,   0,  33, 290,   0,   0,   0,   0,   0,
  452.    0,   0,   0,   0,   0,   0,   0,   0,   0, 295,
  453.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  454.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  455.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  456.  309, 310, 312,   0,   0,   0,   0, 318, 319, 321,
  457.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  458.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  459.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  460.    0,   0,   0,   0,   0,   0,   0, 195,   0,   0,
  461.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  462.    0,   0,   0, 359,   0,   0,   0,   0,   0,   0,
  463.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  464.    0,   0,   0, 369,  79,   0,  54,  53,  51,   0,
  465.  375,  39,  63,  61,  62,  67,   0,   0,   0,   0,
  466.    0,   0,   0,  64,  66,   0,  55,  56,  57,  59,
  467.   58,  60,  68,  69,  70,  71,  72,  73,  74,  75,
  468.   76,  65,   0,  36,  37,  44,   0,   0,   0,   0,
  469.    0,  50,   0,  40,  45,  43,  42,  41,  48,  47,
  470.   46,  49,  80,   0,   0,   0,  52 };
  471. short yypact[]={
  472.  
  473. -1000,-1000,-1000,-169,-1000,-1000, 157,-1000,-1000,-1000,
  474. -1000,  91,  -1,-174,-178,-1000,-1000,  88,  95,  92,
  475.  -24,-1000,  90,  87,-1000,  85,-199,1889,-1000,-318,
  476. 2333,2333,2333,2333,2333,2333,2618, 294,2254,2142,
  477.    8,-1000,-1000,   5,-296,-1000,-1000,-1000,-1000,-1000,
  478. -240,-185,2045,  12, -22, -18, 292, 291, 281, 277,
  479.  270, 268,  14,   1, 259, 257, 256,2333, 254, 235,
  480.  228, 227, 224, 223, 222, -14, 221,-1000,-1000,-1000,
  481. 1966,-1000,  75,-260, -32,  86,-1000,2333, -32,2333,
  482.  -32, 220, 233,2333, -32,2333, -32,2333,2333,2333,
  483. 2333,2333, -32,-1000, -32, 219,2333,1850,1755,1681,
  484. 1565,1470,1396,1280,1111,2333,2333,2333,2333,2333,
  485. 2333,2333,2333,-1000,-1000,-1000,-318,-318,-318,-318,
  486. -1000,-1000,-1000,-258,2333, 110,  49,-258,-1000, 217,
  487.   52,2333,2333,2333,2333, -30, 215, 158,-1000,-1000,
  488. -258,-1000,2427,-1000,2539, 992,-1000,-1000,2427,2427,
  489. 2427,2427,2427,-226,-1000,-226,-1000,-1000,-1000,-226,
  490. 2333,2333,2333,-1000, 212, 919,2333,2333,2333,2333,
  491. 2333,-236,-1000,-1000,-1000,-236, 115,2333,2947,2333,
  492. -275,-1000,-1000,-1000, 211, 115,-1000, 193,-1000,2333,
  493.   54,  83,-1000, 176,-1000, 168,-1000, 115, 115, 115,
  494.  115,1889,-1000,-1000,2333,1889,2333,-321,2333,-254,
  495. 2333,-264,2333,-245,2333,-245,2333,-287,2333,  -9,
  496. 2333,  -9,-258,-274, 264,1198, 686,2177,-321,-321,
  497. -119, 110, 823,  48,-1000,2333, 631, 535,  93,  45,
  498.   63,  43,2333, 462, 333, 210,1031,-1000, 206, 108,
  499. 1889, 205,-1000, 108, 109, 128, 109, 127, 116, 203,
  500.  201, 673,1319, 110,-1000,-1000, 162,1319,1031,1031,
  501. 1031,1031, 200, 109, 115, 115, 115,-1000, -32, -32,
  502.  110, -32,2333, -32, -32, 160,1889,1889,1889,1889,
  503. 1889,1889,1889,1889,2333,-1000,-1000,-1000,2333,  57,
  504.  110,-1000, 110,-1000,-1000,-1000,-1000,-1000,  42, 110,
  505. -1000, 110,-1000,-1000, 109,2333,-1000, 199,2333,-1000,
  506.  197, 108,2427, 109,2427,2333,-1000,-1000, 155,-1000,
  507.  195,-1000,-1000, 191, 125, 108, 109, 109,-1000, 108,
  508. -1000,-1000, -32,-1000,  82,-1000,-1000, -32, 741,  53,
  509. -1000,-1000,-1000,-1000,-1000,-1000, 109,1889,-1000, 115,
  510. -1000, 189, 187, 108, 109, 110, 185,-1000,-1000,-1000,
  511. -1000, 183, 181, 108, 109, 170,-1000, 233,-1000,-1000,
  512.  166,-1000,-1000, 164, 109,-1000,-1000,-1000,-1000, 148,
  513.  108,-1000, 144,-1000,-1000, 108,-1000, 137, -32, 136,
  514. -1000,-1000,-1000 };
  515. short yypgo[]={
  516.  
  517.    0, 371, 370, 368, 363,   7,   0,  90, 362, 360,
  518.  350, 338,   3, 349,2874,   2,   1,   5, 361,  32,
  519.   84, 133,  50, 348, 342, 341,  11, 340, 336, 304 };
  520. short yyr1[]={
  521.  
  522.    0,  27,   1,  26,  26,  13,  13,  13,   6,   4,
  523.    7,   7,   8,   8,   8,   8,   8,  11,  11,  11,
  524.   11,  11,  11,  10,  10,  10,  10,   9,   9,   9,
  525.    9,   9,   9,   9,   9,  12,  12,  22,  22,  25,
  526.   25,   2,   2,   2,   3,   3,  28,  29,  16,  14,
  527.   14,  17,  15,  15,  15,  15,  15,  15,  15,  15,
  528.   15,  15,  15,  15,  15,  15,  15,  15,  15,  15,
  529.   15,  15,  15,  15,  15,  15,  15,  15,  18,  18,
  530.   18,  18,  18,  18,  18,  18,  18,  18,  18,  18,
  531.   18,  18,  18,  18,  18,  18,  18,  18,  18,  18,
  532.   18,  18,  18,  18,  18,  18,  18,  18,  18,  18,
  533.   18,  18,  18,  18,  18,  18,  18,  18,  18,  18,
  534.   18,  18,  18,  18,  18,  18,  18,  18,  18,  18,
  535.   18,  18,  18,  18,  18,  18,  18,  18,  18,  18,
  536.   18,  18,  18,  18,  18,  18,  18,  18,  18,  18,
  537.   18,  18,  18,  18,  18,  18,  18,  18,  18,  18,
  538.   18,  18,  18,  18,  18,  18,  18,  18,  18,  18,
  539.   18,  23,  23,  23,  23,  23,  23,  19,  19,  20,
  540.   20,  21,  21,   5,   5,  24 };
  541. short yyr2[]={
  542.  
  543.    0,   0,   2,   3,   2,   0,   2,   5,   4,   0,
  544.    0,   2,   1,   2,   1,   2,   3,   1,   1,   3,
  545.    3,   3,   3,   5,   5,   3,   3,   6,   6,   4,
  546.    4,   7,   6,  10,   2,   0,   1,   0,   1,   0,
  547.    2,   1,   1,   1,   4,   3,   3,   3,   2,   3,
  548.    1,   2,   3,   4,   4,   4,   4,   4,   4,   4,
  549.    4,   3,   3,   3,   3,   3,   3,   3,   3,   3,
  550.    3,   3,   3,   3,   5,   3,   3,   1,   2,   2,
  551.    2,   2,   2,   2,   2,   2,   2,   2,   1,   4,
  552.    3,   2,   2,   2,   1,   1,   4,   1,   1,   4,
  553.    6,   5,   4,   4,   5,   1,   1,   1,   1,   1,
  554.    5,   5,   4,   4,   2,   5,   5,   4,   4,   2,
  555.    1,   2,   1,   2,   2,   1,   2,   4,   7,   2,
  556.    4,   5,   4,   2,   2,   3,   1,   5,   6,   6,
  557.    7,   9,   6,   2,   4,   2,   4,   1,   1,   6,
  558.    5,   4,   5,   4,   2,   1,   1,   3,   3,   4,
  559.    5,   5,   6,   6,   7,   8,   4,   2,   6,   1,
  560.    1,   1,   2,   2,   3,   3,   3,   1,   1,   1,
  561.    1,   1,   1,   2,   1,   1 };
  562. short yychk[]={
  563.  
  564. -1000,  -1, -27,  -7,  -8,  -2, -25,  -9,  -3, -28,
  565.  -29, 257, 263, 295, 303, -10,  59, -11, 269, 270,
  566.  278, -26, 271, 272, 256, -14,  -6, -15, 123, -18,
  567.   45,  43,  33, 126, 326, 327, 296, 297,  40, 264,
  568.  306, 310, 309, 308, 298, 307, 313, 312, 311, 314,
  569.  304, 261, 319, 260, 259, 279, 280, 281, 283, 282,
  570.  284, 266, 267, 265, 276, 294, 277, 268, 285, 286,
  571.  287, 288, 289, 290, 291, 292, 293, -24, -23, 257,
  572.  315,  58, 257,  61, 257, 257,  59,  40,  -6,  40,
  573.   -6, 306,  40,  40,  -6,  40,  -6, 271, 272, 269,
  574.  270,  44, 275, -13, 273, 274,  61, 325, 301, 302,
  575.  320, 321,  38,  94, 124, 299, 300, 316, 318, 317,
  576.   63, 322, 323,  -4, 326, 327, -18, -18, -18, -18,
  577.  -18, -18, 257, -15,  40, -14,  41, -15,  -6, 257,
  578.  306,  91, 123,  91, 123, 306, 257, 306, 257,  -6,
  579.  -15, 257,  40, 257,  40,  40, 257, 306,  40,  40,
  580.   40,  40,  40,  40, -20,  40, 257, 308, -20,  40,
  581.   40,  40,  40, -15,  40,  40,  40,  40,  40,  40,
  582.   40,  40, -21, 257, 309,  40, -14, 257, 306,  -6,
  583.   61, 305,  -6,  59, -22, -14, -26, -14, -26,  40,
  584.  -14, -12, -11, -14, -26, -14, -26, -14, -14, -14,
  585.  -14, -15,  -6,  -6,  40, -15,  61, -15,  61, -15,
  586.   61, -15,  61, -15,  61, -15,  61, -15,  61, -15,
  587.   61, -15, -15, -15, -15, -15, -15, -15, -15, -15,
  588.   -7, -14,  44,  -5,  41,  91,  40,  40, -14, -14,
  589.  -14, -14, 123,  40,  40, -19, -15, 257, 257, -19,
  590.  -15, -19,  41, -19, -19, -19, -19, -19, -20, -20,
  591.  -20, -15, -15, -14,  41,  41, -14, -15, -15, -15,
  592.  -15, -15, -21, -21, -14, -14, -14, 305,  41,  41,
  593.  -14,  -5,  59,  41,  41, -14, -15, -15, -15, -15,
  594.  -15, -15, -15, -15,  58, 125,  -5,  41,  91, -14,
  595.  -14,  41, -14,  41,  93, 125,  93, 125, -14, -14,
  596.   41, -14,  41,  41, -17,  44,  41, -16,  44,  41,
  597.  -16, -17,  44, -17,  44,  44,  41,  41, -17,  41,
  598.  -16,  -5,  41, -16, -17, -17, -17, -17,  41, -17,
  599.  -26, -26,  -5, -26, -22, -26, -26,  41, -15, -14,
  600.   93,  -5,  -5, 125,  -5,  -5, -17, -15,  41, -14,
  601.   41, -16, -19, -17, -19, -14, -17,  41,  41,  41,
  602.   41, -16, -16, -17, -17, -16, -26,  59, -26,  93,
  603.  -17,  41,  41, -16, -17,  -5,  41,  41,  41, -16,
  604.  -17,  41, -12,  41,  41, -17,  41, -16,  41, -16,
  605.   41,  -6,  41 };
  606. short yydef[]={
  607.  
  608.    1,  -2,  10,  -2,  11,  12,   0,  14,  41,  42,
  609.   43,   0,   0,   0,   0,  13,  15,   0,   0,   0,
  610.    0,  34,   0,   0,  17,  18,   5,  50,   9,  77,
  611.    0,   0,   0,   0,   0,   0,  88,   0,   0,   0,
  612.   94,  95,  97,  98,   0, 105, 106, 107, 108, 109,
  613.    0, 120, 122, 125,   0, 136,   0,   0,   0,   0,
  614.    0,   0,   0, 147, 148,   0,   0, 155, 156,   0,
  615.    0,   0,   0,   0,   0,   0,   0, 169, 170, 185,
  616.  171,  40,   0,   0,   0,   0,  16,  37,   0,   0,
  617.    0,   0,  35,   0,   0,   0,   0,   0,   0,   0,
  618.    0,   0,   0,   4,   0,   0,   0,   0,   0,   0,
  619.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  620.    0,   0,   0,  10,  82,  83,  78,  79,  80,  81,
  621.   -2,  -2,  86,  87,   0,   0,  91,  92,  93, 185,
  622.   94,   0,   0,   0,   0,   0, 114, 119, 121, 123,
  623.  124, 126,   0, 129,   0,   0, 133, 134,   0,   0,
  624.    0,   0,   0,   0, 143,   0, 179, 180, 145,   0,
  625.    0,   0,   0, 154,   0,   0,   0,   0,   0,   0,
  626.    0,   0, 167, 181, 182,   0, 172, 173,  94,   0,
  627.    0,  45,  46,  47,   0,  38,  29,   0,  30,   0,
  628.   18,   0,  36,   0,  25,   0,  26,  19,  20,  21,
  629.   22,  49,   3,   6,   0,  52,   0,  61,   0,  62,
  630.    0,  63,   0,  64,   0,  65,   0,  68,   0,  69,
  631.    0,  70,  -2,  -2,  -2,  72,  73,   0,  75,  76,
  632.   39,   0,   0,  90, 184,   0,   0,   0,   0,   0,
  633.    0,   0,   0,   0,   0,   0, 178,  -2,  -2,   0,
  634.  178,   0, 135,   0,   0,   0,   0,   0,   0,   0,
  635.    0,   0,   0,   0, 157, 158,   0,   0,   0,   0,
  636.    0,   0,   0,   0, 174, 175, 176,  44,   0,   0,
  637.    0,   0,  37,   0,   0,   0,  53,  54,  55,  56,
  638.   57,  58,  59,  60,   0,   8,  89, 183,   0,   0,
  639.    0, 112,   0, 117,  96,  99, 102, 103,   0,   0,
  640.  113,   0, 118, 127,   0,   0, 130,   0,   0, 132,
  641.    0,   0,   0,   0,   0,   0, 144, 146,   0, 151,
  642.    0, 153, 159,   0,   0,   0,   0,   0, 166,   0,
  643.   27,  28,   0,  32,   0,  23,  24,   0,  74,   0,
  644.  101, 110, 115, 104, 111, 116,   0,  51, 131,  48,
  645.  137,   0,   0,   0,   0,   0,   0, 150, 152, 160,
  646.  161,   0,   0,   0,   0,   0,  31,  35,   7, 100,
  647.    0, 138, 139,   0,   0, 142, 149, 162, 163,   0,
  648.    0, 168,   0, 128, 140,   0, 164,   0,   0,   0,
  649.  165,  33, 141 };
  650. #ifndef lint
  651. static    char yaccpar_sccsid[] = "@(#)yaccpar 1.5 86/08/27 SMI"; /* from UCB 4.1 83/02/11 */
  652. #endif
  653.  
  654. #
  655. # define YYFLAG -1000
  656. # define YYERROR goto yyerrlab
  657. # define YYACCEPT return(0)
  658. # define YYABORT return(1)
  659.  
  660. /*    parser for yacc output    */
  661.  
  662. #ifdef YYDEBUG
  663. int yydebug = 0; /* 1 for debugging */
  664. #endif
  665. int yymaxdepth = YYMAXDEPTH;
  666. YYSTYPE *yyv; /* where the values are stored */
  667. short *yys;
  668. short *maxyyps;
  669. int yychar = -1; /* current input token number */
  670. int yynerrs = 0;  /* number of errors */
  671. short yyerrflag = 0;  /* error recovery flag */
  672.  
  673. yyparse() {
  674.  
  675.     short yyj, yym;
  676.     register YYSTYPE *yypvt;
  677.     register short yystate, *yyps, yyn;
  678.     register YYSTYPE *yypv;
  679.     register short *yyxi;
  680.  
  681.     yystate = 0;
  682.     yychar = -1;
  683.     yynerrs = 0;
  684.     yyerrflag = 0;
  685.     if (!yyv) {
  686.         yyv = (YYSTYPE*) malloc(yymaxdepth * sizeof(YYSTYPE));
  687.         yys = (short*) malloc(yymaxdepth * sizeof(short));
  688.         if ( !yyv || !yys ) {
  689.         yyerror( "out of memory" );
  690.         return(1);
  691.         }
  692.         maxyyps = &yys[yymaxdepth];
  693.     }
  694.     yyps = &yys[-1];
  695.     yypv = &yyv[-1];
  696.  
  697.  yystack:    /* put a state and value onto the stack */
  698.  
  699. #ifdef YYDEBUG
  700.     if( yydebug  ) printf( "state %d, char 0%o\n", yystate, yychar );
  701. #endif
  702.         if( ++yyps >= maxyyps ) {
  703.             int tv = yypv - yyv;
  704.             int ts = yyps - yys;
  705.  
  706.             yymaxdepth *= 2;
  707.             yyv = (YYSTYPE*)realloc((char*)yyv,
  708.               yymaxdepth*sizeof(YYSTYPE));
  709.             yys = (short*)realloc((char*)yys,
  710.               yymaxdepth*sizeof(short));
  711.             if ( !yyv || !yys ) {
  712.             yyerror( "yacc stack overflow" );
  713.             return(1);
  714.             }
  715.             yyps = yys + ts;
  716.             yypv = yyv + tv;
  717.             maxyyps = &yys[yymaxdepth];
  718.         }
  719.         *yyps = yystate;
  720.         ++yypv;
  721.         *yypv = yyval;
  722.  
  723.  yynewstate:
  724.  
  725.     yyn = yypact[yystate];
  726.  
  727.     if( yyn<= YYFLAG ) goto yydefault; /* simple state */
  728.  
  729.     if( yychar<0 ) if( (yychar=yylex())<0 ) yychar=0;
  730.     if( (yyn += yychar)<0 || yyn >= YYLAST ) goto yydefault;
  731.  
  732.     if( yychk[ yyn=yyact[ yyn ] ] == yychar ){ /* valid shift */
  733.         yychar = -1;
  734.         yyval = yylval;
  735.         yystate = yyn;
  736.         if( yyerrflag > 0 ) --yyerrflag;
  737.         goto yystack;
  738.         }
  739.  
  740.  yydefault:
  741.     /* default state action */
  742.  
  743.     if( (yyn=yydef[yystate]) == -2 ) {
  744.         if( yychar<0 ) if( (yychar=yylex())<0 ) yychar = 0;
  745.         /* look through exception table */
  746.  
  747.         for( yyxi=yyexca; (*yyxi!= (-1)) || (yyxi[1]!=yystate) ; yyxi += 2 ) ; /* VOID */
  748.  
  749.         while( *(yyxi+=2) >= 0 ){
  750.             if( *yyxi == yychar ) break;
  751.             }
  752.         if( (yyn = yyxi[1]) < 0 ) return(0);   /* accept */
  753.         }
  754.  
  755.     if( yyn == 0 ){ /* error */
  756.         /* error ... attempt to resume parsing */
  757.  
  758.         switch( yyerrflag ){
  759.  
  760.         case 0:   /* brand new error */
  761.  
  762.             yyerror( "syntax error" );
  763.         yyerrlab:
  764.             ++yynerrs;
  765.  
  766.         case 1:
  767.         case 2: /* incompletely recovered error ... try again */
  768.  
  769.             yyerrflag = 3;
  770.  
  771.             /* find a state where "error" is a legal shift action */
  772.  
  773.             while ( yyps >= yys ) {
  774.                yyn = yypact[*yyps] + YYERRCODE;
  775.                if( yyn>= 0 && yyn < YYLAST && yychk[yyact[yyn]] == YYERRCODE ){
  776.                   yystate = yyact[yyn];  /* simulate a shift of "error" */
  777.                   goto yystack;
  778.                   }
  779.                yyn = yypact[*yyps];
  780.  
  781.                /* the current yyps has no shift onn "error", pop stack */
  782.  
  783. #ifdef YYDEBUG
  784.                if( yydebug ) printf( "error recovery pops state %d, uncovers %d\n", *yyps, yyps[-1] );
  785. #endif
  786.                --yyps;
  787.                --yypv;
  788.                }
  789.  
  790.             /* there is no state on the stack with an error shift ... abort */
  791.  
  792.     yyabort:
  793.             return(1);
  794.  
  795.  
  796.         case 3:  /* no shift yet; clobber input char */
  797.  
  798. #ifdef YYDEBUG
  799.             if( yydebug ) printf( "error recovery discards char %d\n", yychar );
  800. #endif
  801.  
  802.             if( yychar == 0 ) goto yyabort; /* don't discard EOF, quit */
  803.             yychar = -1;
  804.             goto yynewstate;   /* try again in the same state */
  805.  
  806.             }
  807.  
  808.         }
  809.  
  810.     /* reduction by production yyn */
  811.  
  812. #ifdef YYDEBUG
  813.         if( yydebug ) printf("reduce %d\n",yyn);
  814. #endif
  815.         yyps -= yyr2[yyn];
  816.         yypvt = yypv;
  817.         yypv -= yyr2[yyn];
  818.         yyval = yypv[1];
  819.         yym=yyn;
  820.             /* consult goto table to find next state */
  821.         yyn = yyr1[yyn];
  822.         yyj = yypgo[yyn] + *yyps + 1;
  823.         if( yyj>=YYLAST || yychk[ yystate = yyact[yyj] ] != -yyn ) yystate = yyact[yypgo[yyn]];
  824.         switch(yym){
  825.             
  826. case 1:
  827. # line 95 "perly.y"
  828. {
  829. #if defined(YYDEBUG) && defined(DEBUGGING)
  830.             yydebug = (debug & 1);
  831. #endif
  832.         } break;
  833. case 2:
  834. # line 101 "perly.y"
  835. { if (in_eval)
  836.                 eval_root = block_head(yypvt[-0].cmdval);
  837.                 else
  838.                 main_root = block_head(yypvt[-0].cmdval); } break;
  839. case 3:
  840. # line 108 "perly.y"
  841. { yyval.compval.comp_true = yypvt[-2].cmdval; yyval.compval.comp_alt = yypvt[-0].cmdval; } break;
  842. case 4:
  843. # line 110 "perly.y"
  844. { yyval.compval.comp_true = yypvt[-1].cmdval; yyval.compval.comp_alt = yypvt[-0].cmdval; } break;
  845. case 5:
  846. # line 114 "perly.y"
  847. { yyval.cmdval = Nullcmd; } break;
  848. case 6:
  849. # line 116 "perly.y"
  850. { yyval.cmdval = yypvt[-0].cmdval; } break;
  851. case 7:
  852. # line 118 "perly.y"
  853. { cmdline = yypvt[-4].ival;
  854.                 yyval.cmdval = make_ccmd(C_ELSIF,yypvt[-2].arg,yypvt[-0].compval); } break;
  855. case 8:
  856. # line 123 "perly.y"
  857. { yyval.cmdval = block_head(yypvt[-1].cmdval);
  858.               if (cmdline > yypvt[-3].ival)
  859.                   cmdline = yypvt[-3].ival;
  860.               if (savestack->ary_fill > yypvt[-2].ival)
  861.                 restorelist(yypvt[-2].ival); } break;
  862. case 9:
  863. # line 131 "perly.y"
  864. { yyval.ival = savestack->ary_fill; } break;
  865. case 10:
  866. # line 135 "perly.y"
  867. { yyval.cmdval = Nullcmd; } break;
  868. case 11:
  869. # line 137 "perly.y"
  870. { yyval.cmdval = append_line(yypvt[-1].cmdval,yypvt[-0].cmdval); } break;
  871. case 12:
  872. # line 141 "perly.y"
  873. { yyval.cmdval = Nullcmd; } break;
  874. case 13:
  875. # line 143 "perly.y"
  876. { yyval.cmdval = add_label(yypvt[-1].cval,yypvt[-0].cmdval); } break;
  877. case 15:
  878. # line 146 "perly.y"
  879. { if (yypvt[-1].cval != Nullch) {
  880.                   yyval.cmdval = add_label(yypvt[-1].cval, make_acmd(C_EXPR, Nullstab,
  881.                   Nullarg, Nullarg) );
  882.                 }
  883.                 else {
  884.                   yyval.cmdval = Nullcmd;
  885.                   cmdline = NOLINE;
  886.                 } } break;
  887. case 16:
  888. # line 155 "perly.y"
  889. { yyval.cmdval = add_label(yypvt[-2].cval,yypvt[-1].cmdval); } break;
  890. case 17:
  891. # line 159 "perly.y"
  892. { yyval.cmdval = Nullcmd; } break;
  893. case 18:
  894. # line 161 "perly.y"
  895. { yyval.cmdval = make_acmd(C_EXPR, Nullstab, yypvt[-0].arg, Nullarg); } break;
  896. case 19:
  897. # line 163 "perly.y"
  898. { yyval.cmdval = addcond(
  899.                    make_acmd(C_EXPR, Nullstab, Nullarg, yypvt[-2].arg), yypvt[-0].arg); } break;
  900. case 20:
  901. # line 166 "perly.y"
  902. { yyval.cmdval = addcond(invert(
  903.                    make_acmd(C_EXPR, Nullstab, Nullarg, yypvt[-2].arg)), yypvt[-0].arg); } break;
  904. case 21:
  905. # line 169 "perly.y"
  906. { yyval.cmdval = addloop(
  907.                    make_acmd(C_EXPR, Nullstab, Nullarg, yypvt[-2].arg), yypvt[-0].arg); } break;
  908. case 22:
  909. # line 172 "perly.y"
  910. { yyval.cmdval = addloop(invert(
  911.                    make_acmd(C_EXPR, Nullstab, Nullarg, yypvt[-2].arg)), yypvt[-0].arg); } break;
  912. case 23:
  913. # line 177 "perly.y"
  914. { cmdline = yypvt[-4].ival;
  915.                 yyval.cmdval = make_icmd(C_IF,yypvt[-2].arg,yypvt[-0].compval); } break;
  916. case 24:
  917. # line 180 "perly.y"
  918. { cmdline = yypvt[-4].ival;
  919.                 yyval.cmdval = invert(make_icmd(C_IF,yypvt[-2].arg,yypvt[-0].compval)); } break;
  920. case 25:
  921. # line 183 "perly.y"
  922. { cmdline = yypvt[-2].ival;
  923.                 yyval.cmdval = make_ccmd(C_IF,cmd_to_arg(yypvt[-1].cmdval),yypvt[-0].compval); } break;
  924. case 26:
  925. # line 186 "perly.y"
  926. { cmdline = yypvt[-2].ival;
  927.                 yyval.cmdval = invert(make_ccmd(C_IF,cmd_to_arg(yypvt[-1].cmdval),yypvt[-0].compval)); } break;
  928. case 27:
  929. # line 191 "perly.y"
  930. { cmdline = yypvt[-4].ival;
  931.                 yyval.cmdval = wopt(add_label(yypvt[-5].cval,
  932.                 make_ccmd(C_WHILE,yypvt[-2].arg,yypvt[-0].compval) )); } break;
  933. case 28:
  934. # line 195 "perly.y"
  935. { cmdline = yypvt[-4].ival;
  936.                 yyval.cmdval = wopt(add_label(yypvt[-5].cval,
  937.                 invert(make_ccmd(C_WHILE,yypvt[-2].arg,yypvt[-0].compval)) )); } break;
  938. case 29:
  939. # line 199 "perly.y"
  940. { cmdline = yypvt[-2].ival;
  941.                 yyval.cmdval = wopt(add_label(yypvt[-3].cval,
  942.                 make_ccmd(C_WHILE, cmd_to_arg(yypvt[-1].cmdval),yypvt[-0].compval) )); } break;
  943. case 30:
  944. # line 203 "perly.y"
  945. { cmdline = yypvt[-2].ival;
  946.                 yyval.cmdval = wopt(add_label(yypvt[-3].cval,
  947.                 invert(make_ccmd(C_WHILE, cmd_to_arg(yypvt[-1].cmdval),yypvt[-0].compval)) )); } break;
  948. case 31:
  949. # line 207 "perly.y"
  950. { cmdline = yypvt[-5].ival;
  951.                 /*
  952.                  * The following gobbledygook catches EXPRs that
  953.                  * aren't explicit array refs and translates
  954.                  *        foreach VAR (EXPR) {
  955.                  * into
  956.                  *        @ary = EXPR;
  957.                  *        foreach VAR (@ary) {
  958.                  * where @ary is a hidden array made by genstab().
  959.                  * (Note that @ary may become a local array if
  960.                  * it is determined that it might be called
  961.                  * recursively.  See cmd_tosave().)
  962.                  */
  963.                 if (yypvt[-2].arg->arg_type != O_ARRAY) {
  964.                 scrstab = aadd(genstab());
  965.                 yyval.cmdval = append_line(
  966.                     make_acmd(C_EXPR, Nullstab,
  967.                       l(make_op(O_ASSIGN,2,
  968.                     listish(make_op(O_ARRAY, 1,
  969.                       stab2arg(A_STAB,scrstab),
  970.                       Nullarg,Nullarg )),
  971.                     listish(make_list(yypvt[-2].arg)),
  972.                     Nullarg)),
  973.                       Nullarg),
  974.                     wopt(over(yypvt[-4].stabval,add_label(yypvt[-6].cval,
  975.                       make_ccmd(C_WHILE,
  976.                     make_op(O_ARRAY, 1,
  977.                       stab2arg(A_STAB,scrstab),
  978.                       Nullarg,Nullarg ),
  979.                     yypvt[-0].compval)))));
  980.                 yyval.cmdval->c_line = yypvt[-5].ival;
  981.                 yyval.cmdval->c_head->c_line = yypvt[-5].ival;
  982.                 }
  983.                 else {
  984.                 yyval.cmdval = wopt(over(yypvt[-4].stabval,add_label(yypvt[-6].cval,
  985.                 make_ccmd(C_WHILE,yypvt[-2].arg,yypvt[-0].compval) )));
  986.                 }
  987.             } break;
  988. case 32:
  989. # line 246 "perly.y"
  990. { cmdline = yypvt[-4].ival;
  991.                 if (yypvt[-2].arg->arg_type != O_ARRAY) {
  992.                 scrstab = aadd(genstab());
  993.                 yyval.cmdval = append_line(
  994.                     make_acmd(C_EXPR, Nullstab,
  995.                       l(make_op(O_ASSIGN,2,
  996.                     listish(make_op(O_ARRAY, 1,
  997.                       stab2arg(A_STAB,scrstab),
  998.                       Nullarg,Nullarg )),
  999.                     listish(make_list(yypvt[-2].arg)),
  1000.                     Nullarg)),
  1001.                       Nullarg),
  1002.                     wopt(over(defstab,add_label(yypvt[-5].cval,
  1003.                       make_ccmd(C_WHILE,
  1004.                     make_op(O_ARRAY, 1,
  1005.                       stab2arg(A_STAB,scrstab),
  1006.                       Nullarg,Nullarg ),
  1007.                     yypvt[-0].compval)))));
  1008.                 yyval.cmdval->c_line = yypvt[-4].ival;
  1009.                 yyval.cmdval->c_head->c_line = yypvt[-4].ival;
  1010.                 }
  1011.                 else {    /* lisp, anyone? */
  1012.                 yyval.cmdval = wopt(over(defstab,add_label(yypvt[-5].cval,
  1013.                 make_ccmd(C_WHILE,yypvt[-2].arg,yypvt[-0].compval) )));
  1014.                 }
  1015.             } break;
  1016. case 33:
  1017. # line 274 "perly.y"
  1018. {   yyval.compval.comp_true = yypvt[-0].cmdval;
  1019.                 yyval.compval.comp_alt = yypvt[-2].cmdval;
  1020.                 cmdline = yypvt[-8].ival;
  1021.                 yyval.cmdval = append_line(yypvt[-6].cmdval,wopt(add_label(yypvt[-9].cval,
  1022.                 make_ccmd(C_WHILE,yypvt[-4].arg,yyval.compval) ))); } break;
  1023. case 34:
  1024. # line 280 "perly.y"
  1025. { yyval.cmdval = add_label(yypvt[-1].cval,make_ccmd(C_BLOCK,Nullarg,yypvt[-0].compval)); } break;
  1026. case 35:
  1027. # line 284 "perly.y"
  1028. { yyval.cmdval = Nullcmd; } break;
  1029. case 37:
  1030. # line 289 "perly.y"
  1031. { (void)scanstr("1"); yyval.arg = yylval.arg; } break;
  1032. case 39:
  1033. # line 294 "perly.y"
  1034. { yyval.cval = Nullch; } break;
  1035. case 41:
  1036. # line 299 "perly.y"
  1037. { yyval.ival = 0; } break;
  1038. case 42:
  1039. # line 301 "perly.y"
  1040. { yyval.ival = 0; } break;
  1041. case 43:
  1042. # line 303 "perly.y"
  1043. { yyval.ival = 0; } break;
  1044. case 44:
  1045. # line 307 "perly.y"
  1046. { if (strEQ(yypvt[-2].cval,"stdout"))
  1047.                 make_form(stabent("STDOUT",TRUE),yypvt[-0].formval);
  1048.               else if (strEQ(yypvt[-2].cval,"stderr"))
  1049.                 make_form(stabent("STDERR",TRUE),yypvt[-0].formval);
  1050.               else
  1051.                 make_form(stabent(yypvt[-2].cval,TRUE),yypvt[-0].formval);
  1052.               Safefree(yypvt[-2].cval); yypvt[-2].cval = Nullch; } break;
  1053. case 45:
  1054. # line 315 "perly.y"
  1055. { make_form(stabent("STDOUT",TRUE),yypvt[-0].formval); } break;
  1056. case 46:
  1057. # line 319 "perly.y"
  1058. { make_sub(yypvt[-1].cval,yypvt[-0].cmdval);
  1059.               cmdline = NOLINE;
  1060.               if (savestack->ary_fill > yypvt[-2].ival)
  1061.                 restorelist(yypvt[-2].ival); } break;
  1062. case 47:
  1063. # line 326 "perly.y"
  1064. { char tmpbuf[256];
  1065.               STAB *tmpstab;
  1066.  
  1067.               savehptr(&curstash);
  1068.               saveitem(curstname);
  1069.               str_set(curstname,yypvt[-1].cval);
  1070.               sprintf(tmpbuf,"'_%s",yypvt[-1].cval);
  1071.               tmpstab = stabent(tmpbuf,TRUE);
  1072.               if (!stab_xhash(tmpstab))
  1073.                   stab_xhash(tmpstab) = hnew(0);
  1074.               curstash = stab_xhash(tmpstab);
  1075.               if (!curstash->tbl_name)
  1076.                   curstash->tbl_name = savestr(yypvt[-1].cval);
  1077.               curstash->tbl_coeffsize = 0;
  1078.               Safefree(yypvt[-1].cval); yypvt[-1].cval = Nullch;
  1079.               cmdline = NOLINE;
  1080.             } break;
  1081. case 48:
  1082. # line 346 "perly.y"
  1083. { yyval.arg = yypvt[-0].arg; } break;
  1084. case 49:
  1085. # line 350 "perly.y"
  1086. { yyval.arg = make_op(O_COMMA, 2, yypvt[-2].arg, yypvt[-0].arg, Nullarg); } break;
  1087. case 51:
  1088. # line 355 "perly.y"
  1089. { yyval.arg = yypvt[-0].arg; } break;
  1090. case 52:
  1091. # line 359 "perly.y"
  1092. {   yypvt[-2].arg = listish(yypvt[-2].arg);
  1093.                 if (yypvt[-2].arg->arg_type == O_ASSIGN && yypvt[-2].arg->arg_len == 1)
  1094.                 yypvt[-2].arg->arg_type = O_ITEM;    /* a local() */
  1095.                 if (yypvt[-2].arg->arg_type == O_LIST)
  1096.                 yypvt[-0].arg = listish(yypvt[-0].arg);
  1097.                 yyval.arg = l(make_op(O_ASSIGN, 2, yypvt[-2].arg, yypvt[-0].arg, Nullarg)); } break;
  1098. case 53:
  1099. # line 366 "perly.y"
  1100. { yyval.arg = l(make_op(O_POW, 2, yypvt[-3].arg, yypvt[-0].arg, Nullarg)); } break;
  1101. case 54:
  1102. # line 368 "perly.y"
  1103. { yyval.arg = l(make_op(yypvt[-2].ival, 2, yypvt[-3].arg, yypvt[-0].arg, Nullarg)); } break;
  1104. case 55:
  1105. # line 370 "perly.y"
  1106. { yyval.arg = rcatmaybe(l(make_op(yypvt[-2].ival, 2, yypvt[-3].arg, yypvt[-0].arg, Nullarg)));} break;
  1107. case 56:
  1108. # line 372 "perly.y"
  1109. { yyval.arg = l(make_op(O_LEFT_SHIFT, 2, yypvt[-3].arg, yypvt[-0].arg, Nullarg)); } break;
  1110. case 57:
  1111. # line 374 "perly.y"
  1112. { yyval.arg = l(make_op(O_RIGHT_SHIFT, 2, yypvt[-3].arg, yypvt[-0].arg, Nullarg)); } break;
  1113. case 58:
  1114. # line 376 "perly.y"
  1115. { yyval.arg = l(make_op(O_BIT_AND, 2, yypvt[-3].arg, yypvt[-0].arg, Nullarg)); } break;
  1116. case 59:
  1117. # line 378 "perly.y"
  1118. { yyval.arg = l(make_op(O_XOR, 2, yypvt[-3].arg, yypvt[-0].arg, Nullarg)); } break;
  1119. case 60:
  1120. # line 380 "perly.y"
  1121. { yyval.arg = l(make_op(O_BIT_OR, 2, yypvt[-3].arg, yypvt[-0].arg, Nullarg)); } break;
  1122. case 61:
  1123. # line 384 "perly.y"
  1124. { yyval.arg = make_op(O_POW, 2, yypvt[-2].arg, yypvt[-0].arg, Nullarg); } break;
  1125. case 62:
  1126. # line 386 "perly.y"
  1127. { if (yypvt[-1].ival == O_REPEAT)
  1128.                   yypvt[-2].arg = listish(yypvt[-2].arg);
  1129.                 yyval.arg = make_op(yypvt[-1].ival, 2, yypvt[-2].arg, yypvt[-0].arg, Nullarg);
  1130.                 if (yypvt[-1].ival == O_REPEAT) {
  1131.                 if (yyval.arg[1].arg_type != A_EXPR ||
  1132.                   yyval.arg[1].arg_ptr.arg_arg->arg_type != O_LIST)
  1133.                     yyval.arg[1].arg_flags &= ~AF_ARYOK;
  1134.                 } } break;
  1135. case 63:
  1136. # line 395 "perly.y"
  1137. { yyval.arg = make_op(yypvt[-1].ival, 2, yypvt[-2].arg, yypvt[-0].arg, Nullarg); } break;
  1138. case 64:
  1139. # line 397 "perly.y"
  1140. { yyval.arg = make_op(O_LEFT_SHIFT, 2, yypvt[-2].arg, yypvt[-0].arg, Nullarg); } break;
  1141. case 65:
  1142. # line 399 "perly.y"
  1143. { yyval.arg = make_op(O_RIGHT_SHIFT, 2, yypvt[-2].arg, yypvt[-0].arg, Nullarg); } break;
  1144. case 66:
  1145. # line 401 "perly.y"
  1146. { yyval.arg = make_op(yypvt[-1].ival, 2, yypvt[-2].arg, yypvt[-0].arg, Nullarg); } break;
  1147. case 67:
  1148. # line 403 "perly.y"
  1149. { yyval.arg = make_op(yypvt[-1].ival, 2, yypvt[-2].arg, yypvt[-0].arg, Nullarg); } break;
  1150. case 68:
  1151. # line 405 "perly.y"
  1152. { yyval.arg = make_op(O_BIT_AND, 2, yypvt[-2].arg, yypvt[-0].arg, Nullarg); } break;
  1153. case 69:
  1154. # line 407 "perly.y"
  1155. { yyval.arg = make_op(O_XOR, 2, yypvt[-2].arg, yypvt[-0].arg, Nullarg); } break;
  1156. case 70:
  1157. # line 409 "perly.y"
  1158. { yyval.arg = make_op(O_BIT_OR, 2, yypvt[-2].arg, yypvt[-0].arg, Nullarg); } break;
  1159. case 71:
  1160. # line 411 "perly.y"
  1161. { arg4 = Nullarg;
  1162.               yyval.arg = make_op(O_F_OR_R, 4, yypvt[-2].arg, yypvt[-0].arg, Nullarg); } break;
  1163. case 72:
  1164. # line 414 "perly.y"
  1165. { yyval.arg = make_op(O_AND, 2, yypvt[-2].arg, yypvt[-0].arg, Nullarg); } break;
  1166. case 73:
  1167. # line 416 "perly.y"
  1168. { yyval.arg = make_op(O_OR, 2, yypvt[-2].arg, yypvt[-0].arg, Nullarg); } break;
  1169. case 74:
  1170. # line 418 "perly.y"
  1171. { yyval.arg = make_op(O_COND_EXPR, 3, yypvt[-4].arg, yypvt[-2].arg, yypvt[-0].arg); } break;
  1172. case 75:
  1173. # line 420 "perly.y"
  1174. { yyval.arg = mod_match(O_MATCH, yypvt[-2].arg, yypvt[-0].arg); } break;
  1175. case 76:
  1176. # line 422 "perly.y"
  1177. { yyval.arg = mod_match(O_NMATCH, yypvt[-2].arg, yypvt[-0].arg); } break;
  1178. case 77:
  1179. # line 424 "perly.y"
  1180. { yyval.arg = yypvt[-0].arg; } break;
  1181. case 78:
  1182. # line 428 "perly.y"
  1183. { yyval.arg = make_op(O_NEGATE, 1, yypvt[-0].arg, Nullarg, Nullarg); } break;
  1184. case 79:
  1185. # line 430 "perly.y"
  1186. { yyval.arg = yypvt[-0].arg; } break;
  1187. case 80:
  1188. # line 432 "perly.y"
  1189. { yyval.arg = make_op(O_NOT, 1, yypvt[-0].arg, Nullarg, Nullarg); } break;
  1190. case 81:
  1191. # line 434 "perly.y"
  1192. { yyval.arg = make_op(O_COMPLEMENT, 1, yypvt[-0].arg, Nullarg, Nullarg);} break;
  1193. case 82:
  1194. # line 436 "perly.y"
  1195. { yyval.arg = addflags(1, AF_POST|AF_UP,
  1196.                 l(make_op(O_ITEM,1,yypvt[-1].arg,Nullarg,Nullarg))); } break;
  1197. case 83:
  1198. # line 439 "perly.y"
  1199. { yyval.arg = addflags(1, AF_POST,
  1200.                 l(make_op(O_ITEM,1,yypvt[-1].arg,Nullarg,Nullarg))); } break;
  1201. case 84:
  1202. # line 442 "perly.y"
  1203. { yyval.arg = addflags(1, AF_PRE|AF_UP,
  1204.                 l(make_op(O_ITEM,1,yypvt[-0].arg,Nullarg,Nullarg))); } break;
  1205. case 85:
  1206. # line 445 "perly.y"
  1207. { yyval.arg = addflags(1, AF_PRE,
  1208.                 l(make_op(O_ITEM,1,yypvt[-0].arg,Nullarg,Nullarg))); } break;
  1209. case 86:
  1210. # line 448 "perly.y"
  1211. { opargs[yypvt[-1].ival] = 0;    /* force it special */
  1212.                 yyval.arg = make_op(yypvt[-1].ival, 1,
  1213.                 stab2arg(A_STAB,stabent(yypvt[-0].cval,TRUE)),
  1214.                 Nullarg, Nullarg);
  1215.             } break;
  1216. case 87:
  1217. # line 454 "perly.y"
  1218. { opargs[yypvt[-1].ival] = 1;
  1219.                 yyval.arg = make_op(yypvt[-1].ival, 1, yypvt[-0].arg, Nullarg, Nullarg); } break;
  1220. case 88:
  1221. # line 457 "perly.y"
  1222. { opargs[yypvt[-0].ival] = (yypvt[-0].ival != O_FTTTY);
  1223.                 yyval.arg = make_op(yypvt[-0].ival, 1,
  1224.                 stab2arg(A_STAB,
  1225.                   yypvt[-0].ival == O_FTTTY?stabent("STDIN",TRUE):defstab),
  1226.                 Nullarg, Nullarg); } break;
  1227. case 89:
  1228. # line 463 "perly.y"
  1229. { yyval.arg = l(localize(make_op(O_ASSIGN, 1,
  1230.                 localize(listish(make_list(yypvt[-1].arg))),
  1231.                 Nullarg,Nullarg))); } break;
  1232. case 90:
  1233. # line 467 "perly.y"
  1234. { yyval.arg = make_list(yypvt[-1].arg); } break;
  1235. case 91:
  1236. # line 469 "perly.y"
  1237. { yyval.arg = make_list(Nullarg); } break;
  1238. case 92:
  1239. # line 471 "perly.y"
  1240. { yyval.arg = make_op(O_DOFILE,2,yypvt[-0].arg,Nullarg,Nullarg);
  1241.               allstabs = TRUE;} break;
  1242. case 93:
  1243. # line 474 "perly.y"
  1244. { yyval.arg = cmd_to_arg(yypvt[-0].cmdval); } break;
  1245. case 94:
  1246. # line 476 "perly.y"
  1247. { yyval.arg = stab2arg(A_STAB,yypvt[-0].stabval); } break;
  1248. case 95:
  1249. # line 478 "perly.y"
  1250. { yyval.arg = stab2arg(A_STAR,yypvt[-0].stabval); } break;
  1251. case 96:
  1252. # line 480 "perly.y"
  1253. { yyval.arg = make_op(O_AELEM, 2,
  1254.                 stab2arg(A_STAB,aadd(yypvt[-3].stabval)), yypvt[-1].arg, Nullarg); } break;
  1255. case 97:
  1256. # line 483 "perly.y"
  1257. { yyval.arg = make_op(O_HASH, 1,
  1258.                 stab2arg(A_STAB,yypvt[-0].stabval),
  1259.                 Nullarg, Nullarg); } break;
  1260. case 98:
  1261. # line 487 "perly.y"
  1262. { yyval.arg = make_op(O_ARRAY, 1,
  1263.                 stab2arg(A_STAB,yypvt[-0].stabval),
  1264.                 Nullarg, Nullarg); } break;
  1265. case 99:
  1266. # line 491 "perly.y"
  1267. { yyval.arg = make_op(O_HELEM, 2,
  1268.                 stab2arg(A_STAB,hadd(yypvt[-3].stabval)),
  1269.                 jmaybe(yypvt[-1].arg),
  1270.                 Nullarg); } break;
  1271. case 100:
  1272. # line 496 "perly.y"
  1273. { yyval.arg = make_op(O_LSLICE, 3,
  1274.                 Nullarg,
  1275.                 listish(make_list(yypvt[-1].arg)),
  1276.                 listish(make_list(yypvt[-4].arg))); } break;
  1277. case 101:
  1278. # line 501 "perly.y"
  1279. { yyval.arg = make_op(O_LSLICE, 3,
  1280.                 Nullarg,
  1281.                 listish(make_list(yypvt[-1].arg)),
  1282.                 Nullarg); } break;
  1283. case 102:
  1284. # line 506 "perly.y"
  1285. { yyval.arg = make_op(O_ASLICE, 2,
  1286.                 stab2arg(A_STAB,aadd(yypvt[-3].stabval)),
  1287.                 listish(make_list(yypvt[-1].arg)),
  1288.                 Nullarg); } break;
  1289. case 103:
  1290. # line 511 "perly.y"
  1291. { yyval.arg = make_op(O_HSLICE, 2,
  1292.                 stab2arg(A_STAB,hadd(yypvt[-3].stabval)),
  1293.                 listish(make_list(yypvt[-1].arg)),
  1294.                 Nullarg); } break;
  1295. case 104:
  1296. # line 516 "perly.y"
  1297. { yyval.arg = make_op(O_DELETE, 2,
  1298.                 stab2arg(A_STAB,hadd(yypvt[-3].stabval)),
  1299.                 jmaybe(yypvt[-1].arg),
  1300.                 Nullarg); } break;
  1301. case 105:
  1302. # line 521 "perly.y"
  1303. { yyval.arg = stab2arg(A_ARYLEN,yypvt[-0].stabval); } break;
  1304. case 106:
  1305. # line 523 "perly.y"
  1306. { yyval.arg = yypvt[-0].arg; } break;
  1307. case 107:
  1308. # line 525 "perly.y"
  1309. { yyval.arg = yypvt[-0].arg; } break;
  1310. case 108:
  1311. # line 527 "perly.y"
  1312. { yyval.arg = yypvt[-0].arg; } break;
  1313. case 109:
  1314. # line 529 "perly.y"
  1315. { yyval.arg = yypvt[-0].arg; } break;
  1316. case 110:
  1317. # line 531 "perly.y"
  1318. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  1319.                 stab2arg(A_WORD,stabent(yypvt[-3].cval,MULTI)),
  1320.                 make_list(yypvt[-1].arg),
  1321.                 Nullarg); Safefree(yypvt[-3].cval); yypvt[-3].cval = Nullch;
  1322.                 yyval.arg->arg_flags |= AF_DEPR; } break;
  1323. case 111:
  1324. # line 537 "perly.y"
  1325. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  1326.                 stab2arg(A_WORD,stabent(yypvt[-3].cval,MULTI)),
  1327.                 make_list(yypvt[-1].arg),
  1328.                 Nullarg); Safefree(yypvt[-3].cval); yypvt[-3].cval = Nullch; } break;
  1329. case 112:
  1330. # line 542 "perly.y"
  1331. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  1332.                 stab2arg(A_WORD,stabent(yypvt[-2].cval,MULTI)),
  1333.                 make_list(Nullarg),
  1334.                 Nullarg);
  1335.                 yyval.arg->arg_flags |= AF_DEPR; } break;
  1336. case 113:
  1337. # line 548 "perly.y"
  1338. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  1339.                 stab2arg(A_WORD,stabent(yypvt[-2].cval,MULTI)),
  1340.                 make_list(Nullarg),
  1341.                 Nullarg); } break;
  1342. case 114:
  1343. # line 553 "perly.y"
  1344. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  1345.                 stab2arg(A_WORD,stabent(yypvt[-0].cval,MULTI)),
  1346.                 Nullarg,
  1347.                 Nullarg); } break;
  1348. case 115:
  1349. # line 558 "perly.y"
  1350. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  1351.                 stab2arg(A_STAB,yypvt[-3].stabval),
  1352.                 make_list(yypvt[-1].arg),
  1353.                 Nullarg);
  1354.                 yyval.arg->arg_flags |= AF_DEPR; } break;
  1355. case 116:
  1356. # line 564 "perly.y"
  1357. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  1358.                 stab2arg(A_STAB,yypvt[-3].stabval),
  1359.                 make_list(yypvt[-1].arg),
  1360.                 Nullarg); } break;
  1361. case 117:
  1362. # line 569 "perly.y"
  1363. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  1364.                 stab2arg(A_STAB,yypvt[-2].stabval),
  1365.                 make_list(Nullarg),
  1366.                 Nullarg);
  1367.                 yyval.arg->arg_flags |= AF_DEPR; } break;
  1368. case 118:
  1369. # line 575 "perly.y"
  1370. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  1371.                 stab2arg(A_STAB,yypvt[-2].stabval),
  1372.                 make_list(Nullarg),
  1373.                 Nullarg); } break;
  1374. case 119:
  1375. # line 580 "perly.y"
  1376. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  1377.                 stab2arg(A_STAB,yypvt[-0].stabval),
  1378.                 Nullarg,
  1379.                 Nullarg); } break;
  1380. case 120:
  1381. # line 585 "perly.y"
  1382. { yyval.arg = make_op(yypvt[-0].ival,0,Nullarg,Nullarg,Nullarg); } break;
  1383. case 121:
  1384. # line 587 "perly.y"
  1385. { yyval.arg = make_op(yypvt[-1].ival,1,cval_to_arg(yypvt[-0].cval),
  1386.                 Nullarg,Nullarg); } break;
  1387. case 122:
  1388. # line 590 "perly.y"
  1389. { yyval.arg = make_op(yypvt[-0].ival,0,Nullarg,Nullarg,Nullarg); } break;
  1390. case 123:
  1391. # line 592 "perly.y"
  1392. { yyval.arg = make_op(yypvt[-1].ival,1,cmd_to_arg(yypvt[-0].cmdval),Nullarg,Nullarg); } break;
  1393. case 124:
  1394. # line 594 "perly.y"
  1395. { yyval.arg = make_op(yypvt[-1].ival,1,yypvt[-0].arg,Nullarg,Nullarg); } break;
  1396. case 125:
  1397. # line 596 "perly.y"
  1398. { yyval.arg = make_op(O_SELECT, 0, Nullarg, Nullarg, Nullarg);} break;
  1399. case 126:
  1400. # line 598 "perly.y"
  1401. { yyval.arg = make_op(O_SELECT, 1,
  1402.                 stab2arg(A_WORD,stabent(yypvt[-0].cval,TRUE)),
  1403.                 Nullarg,
  1404.                 Nullarg);
  1405.                 Safefree(yypvt[-0].cval); yypvt[-0].cval = Nullch; } break;
  1406. case 127:
  1407. # line 604 "perly.y"
  1408. { yyval.arg = make_op(O_SELECT, 1, yypvt[-1].arg, Nullarg, Nullarg); } break;
  1409. case 128:
  1410. # line 606 "perly.y"
  1411. { arg4 = yypvt[-1].arg;
  1412.               yyval.arg = make_op(O_SSELECT, 4, yypvt[-4].arg, yypvt[-3].arg, yypvt[-2].arg); } break;
  1413. case 129:
  1414. # line 609 "perly.y"
  1415. { yyval.arg = make_op(O_OPEN, 2,
  1416.                 stab2arg(A_WORD,stabent(yypvt[-0].cval,TRUE)),
  1417.                 stab2arg(A_STAB,stabent(yypvt[-0].cval,TRUE)),
  1418.                 Nullarg); } break;
  1419. case 130:
  1420. # line 614 "perly.y"
  1421. { yyval.arg = make_op(O_OPEN, 2,
  1422.                 stab2arg(A_WORD,stabent(yypvt[-1].cval,TRUE)),
  1423.                 stab2arg(A_STAB,stabent(yypvt[-1].cval,TRUE)),
  1424.                 Nullarg); } break;
  1425. case 131:
  1426. # line 619 "perly.y"
  1427. { yyval.arg = make_op(O_OPEN, 2,
  1428.                 yypvt[-2].arg,
  1429.                 yypvt[-1].arg, Nullarg); } break;
  1430. case 132:
  1431. # line 623 "perly.y"
  1432. { yyval.arg = make_op(yypvt[-3].ival, 1,
  1433.                 yypvt[-1].arg,
  1434.                 Nullarg, Nullarg); } break;
  1435. case 133:
  1436. # line 627 "perly.y"
  1437. { yyval.arg = make_op(yypvt[-1].ival, 1,
  1438.                 stab2arg(A_WORD,stabent(yypvt[-0].cval,TRUE)),
  1439.                 Nullarg, Nullarg);
  1440.               Safefree(yypvt[-0].cval); yypvt[-0].cval = Nullch; } break;
  1441. case 134:
  1442. # line 632 "perly.y"
  1443. { yyval.arg = make_op(yypvt[-1].ival, 1,
  1444.                 stab2arg(A_STAB,yypvt[-0].stabval),
  1445.                 Nullarg, Nullarg); } break;
  1446. case 135:
  1447. # line 636 "perly.y"
  1448. { yyval.arg = make_op(yypvt[-2].ival, 1,
  1449.                 stab2arg(A_WORD,Nullstab),
  1450.                 Nullarg, Nullarg); } break;
  1451. case 136:
  1452. # line 640 "perly.y"
  1453. { yyval.arg = make_op(yypvt[-0].ival, 0,
  1454.                 Nullarg, Nullarg, Nullarg); } break;
  1455. case 137:
  1456. # line 643 "perly.y"
  1457. { yyval.arg = make_op(yypvt[-4].ival, 2, yypvt[-2].arg, yypvt[-1].arg, Nullarg); } break;
  1458. case 138:
  1459. # line 645 "perly.y"
  1460. { yyval.arg = make_op(yypvt[-5].ival, 3, yypvt[-3].arg, yypvt[-2].arg, make_list(yypvt[-1].arg)); } break;
  1461. case 139:
  1462. # line 647 "perly.y"
  1463. { yyval.arg = make_op(yypvt[-5].ival, 2, yypvt[-3].arg, yypvt[-1].arg, Nullarg); } break;
  1464. case 140:
  1465. # line 649 "perly.y"
  1466. { arg4 = yypvt[-1].arg; yyval.arg = make_op(yypvt[-6].ival, 4, yypvt[-4].arg, yypvt[-3].arg, yypvt[-2].arg); } break;
  1467. case 141:
  1468. # line 651 "perly.y"
  1469. { arg4 = yypvt[-2].arg; arg5 = yypvt[-1].arg;
  1470.               yyval.arg = make_op(yypvt[-8].ival, 5, yypvt[-6].arg, yypvt[-4].arg, yypvt[-3].arg); } break;
  1471. case 142:
  1472. # line 654 "perly.y"
  1473. { yyval.arg = make_op(yypvt[-5].ival, 2,
  1474.                 yypvt[-3].arg,
  1475.                 make_list(yypvt[-1].arg),
  1476.                 Nullarg); } break;
  1477. case 143:
  1478. # line 659 "perly.y"
  1479. { yyval.arg = make_op(O_POP, 1, yypvt[-0].arg, Nullarg, Nullarg); } break;
  1480. case 144:
  1481. # line 661 "perly.y"
  1482. { yyval.arg = make_op(O_POP, 1, yypvt[-1].arg, Nullarg, Nullarg); } break;
  1483. case 145:
  1484. # line 663 "perly.y"
  1485. { yyval.arg = make_op(O_SHIFT, 1, yypvt[-0].arg, Nullarg, Nullarg); } break;
  1486. case 146:
  1487. # line 665 "perly.y"
  1488. { yyval.arg = make_op(O_SHIFT, 1, yypvt[-1].arg, Nullarg, Nullarg); } break;
  1489. case 147:
  1490. # line 667 "perly.y"
  1491. { yyval.arg = make_op(O_SHIFT, 1,
  1492.                 stab2arg(A_STAB,
  1493.                   aadd(stabent(subline ? "_" : "ARGV", TRUE))),
  1494.                 Nullarg, Nullarg); } break;
  1495. case 148:
  1496. # line 672 "perly.y"
  1497. {   static char p[]="/\\s+/";
  1498.                 char *oldend = bufend;
  1499.                 ARG *oldarg = yylval.arg;
  1500.                 
  1501.                 bufend=p+5;
  1502.                 (void)scanpat(p);
  1503.                 bufend=oldend;
  1504.                 yyval.arg = make_split(defstab,yylval.arg,Nullarg);
  1505.                 yylval.arg = oldarg; } break;
  1506. case 149:
  1507. # line 682 "perly.y"
  1508. { yyval.arg = mod_match(O_MATCH, yypvt[-2].arg,
  1509.               make_split(defstab,yypvt[-3].arg,yypvt[-1].arg));} break;
  1510. case 150:
  1511. # line 685 "perly.y"
  1512. { yyval.arg = mod_match(O_MATCH, yypvt[-1].arg,
  1513.               make_split(defstab,yypvt[-2].arg,Nullarg) ); } break;
  1514. case 151:
  1515. # line 688 "perly.y"
  1516. { yyval.arg = mod_match(O_MATCH,
  1517.                 stab2arg(A_STAB,defstab),
  1518.                 make_split(defstab,yypvt[-1].arg,Nullarg) ); } break;
  1519. case 152:
  1520. # line 692 "perly.y"
  1521. { yyval.arg = make_op(yypvt[-4].ival, 2,
  1522.                 yypvt[-2].arg,
  1523.                 listish(make_list(yypvt[-1].arg)),
  1524.                 Nullarg); } break;
  1525. case 153:
  1526. # line 697 "perly.y"
  1527. { yyval.arg = make_op(yypvt[-3].ival, 1,
  1528.                 make_list(yypvt[-1].arg),
  1529.                 Nullarg,
  1530.                 Nullarg); } break;
  1531. case 154:
  1532. # line 702 "perly.y"
  1533. { yyval.arg = l(make_op(yypvt[-1].ival, 1, fixl(yypvt[-1].ival,yypvt[-0].arg),
  1534.                 Nullarg, Nullarg)); } break;
  1535. case 155:
  1536. # line 705 "perly.y"
  1537. { yyval.arg = l(make_op(yypvt[-0].ival, 1,
  1538.                 stab2arg(A_STAB,defstab),
  1539.                 Nullarg, Nullarg)); } break;
  1540. case 156:
  1541. # line 709 "perly.y"
  1542. { yyval.arg = make_op(yypvt[-0].ival, 0, Nullarg, Nullarg, Nullarg); } break;
  1543. case 157:
  1544. # line 711 "perly.y"
  1545. { yyval.arg = make_op(yypvt[-2].ival, 0, Nullarg, Nullarg, Nullarg); } break;
  1546. case 158:
  1547. # line 713 "perly.y"
  1548. { yyval.arg = make_op(yypvt[-2].ival, 0, Nullarg, Nullarg, Nullarg); } break;
  1549. case 159:
  1550. # line 715 "perly.y"
  1551. { yyval.arg = make_op(yypvt[-3].ival, 1, yypvt[-1].arg, Nullarg, Nullarg); } break;
  1552. case 160:
  1553. # line 717 "perly.y"
  1554. { yyval.arg = make_op(yypvt[-4].ival, 2, yypvt[-2].arg, yypvt[-1].arg, Nullarg);
  1555.                 if (yypvt[-4].ival == O_INDEX && yyval.arg[2].arg_type == A_SINGLE)
  1556.                 fbmcompile(yyval.arg[2].arg_ptr.arg_str,0); } break;
  1557. case 161:
  1558. # line 721 "perly.y"
  1559. { yyval.arg = make_op(yypvt[-4].ival, 2, yypvt[-2].arg, yypvt[-1].arg, Nullarg);
  1560.                 if (yypvt[-4].ival == O_INDEX && yyval.arg[2].arg_type == A_SINGLE)
  1561.                 fbmcompile(yyval.arg[2].arg_ptr.arg_str,0); } break;
  1562. case 162:
  1563. # line 725 "perly.y"
  1564. { yyval.arg = make_op(yypvt[-5].ival, 3, yypvt[-3].arg, yypvt[-2].arg, yypvt[-1].arg);
  1565.                 if (yypvt[-5].ival == O_INDEX && yyval.arg[2].arg_type == A_SINGLE)
  1566.                 fbmcompile(yyval.arg[2].arg_ptr.arg_str,0); } break;
  1567. case 163:
  1568. # line 729 "perly.y"
  1569. { yyval.arg = make_op(yypvt[-5].ival, 3, yypvt[-3].arg, yypvt[-2].arg, yypvt[-1].arg); } break;
  1570. case 164:
  1571. # line 731 "perly.y"
  1572. { arg4 = yypvt[-1].arg;
  1573.               yyval.arg = make_op(yypvt[-6].ival, 4, yypvt[-4].arg, yypvt[-3].arg, yypvt[-2].arg); } break;
  1574. case 165:
  1575. # line 734 "perly.y"
  1576. { arg4 = yypvt[-2].arg; arg5 = yypvt[-1].arg;
  1577.               yyval.arg = make_op(yypvt[-7].ival, 5, yypvt[-5].arg, yypvt[-4].arg, yypvt[-3].arg); } break;
  1578. case 166:
  1579. # line 737 "perly.y"
  1580. { yyval.arg = make_op(yypvt[-3].ival, 1,
  1581.                 yypvt[-1].arg,
  1582.                 Nullarg,
  1583.                 Nullarg); } break;
  1584. case 167:
  1585. # line 742 "perly.y"
  1586. { yyval.arg = make_op(yypvt[-1].ival, 1,
  1587.                 yypvt[-0].arg,
  1588.                 Nullarg,
  1589.                 Nullarg); } break;
  1590. case 168:
  1591. # line 747 "perly.y"
  1592. { yyval.arg = make_op(yypvt[-5].ival, 3, yypvt[-3].arg, yypvt[-2].arg, yypvt[-1].arg); } break;
  1593. case 171:
  1594. # line 753 "perly.y"
  1595. { yyval.arg = make_op(yypvt[-0].ival,2,
  1596.                 stab2arg(A_WORD,Nullstab),
  1597.                 stab2arg(A_STAB,defstab),
  1598.                 Nullarg); } break;
  1599. case 172:
  1600. # line 758 "perly.y"
  1601. { yyval.arg = make_op(yypvt[-1].ival,2,
  1602.                 stab2arg(A_WORD,Nullstab),
  1603.                 maybelistish(yypvt[-1].ival,make_list(yypvt[-0].arg)),
  1604.                 Nullarg); } break;
  1605. case 173:
  1606. # line 763 "perly.y"
  1607. { yyval.arg = make_op(yypvt[-1].ival,2,
  1608.                 stab2arg(A_WORD,stabent(yypvt[-0].cval,TRUE)),
  1609.                 stab2arg(A_STAB,defstab),
  1610.                 Nullarg); } break;
  1611. case 174:
  1612. # line 768 "perly.y"
  1613. { yyval.arg = make_op(yypvt[-2].ival,2,
  1614.                 stab2arg(A_WORD,stabent(yypvt[-1].cval,TRUE)),
  1615.                 maybelistish(yypvt[-2].ival,make_list(yypvt[-0].arg)),
  1616.                 Nullarg); Safefree(yypvt[-1].cval); yypvt[-1].cval = Nullch; } break;
  1617. case 175:
  1618. # line 773 "perly.y"
  1619. { yyval.arg = make_op(yypvt[-2].ival,2,
  1620.                 stab2arg(A_STAB,yypvt[-1].stabval),
  1621.                 maybelistish(yypvt[-2].ival,make_list(yypvt[-0].arg)),
  1622.                 Nullarg); } break;
  1623. case 176:
  1624. # line 778 "perly.y"
  1625. { yyval.arg = make_op(yypvt[-2].ival,2,
  1626.                 cmd_to_arg(yypvt[-1].cmdval),
  1627.                 maybelistish(yypvt[-2].ival,make_list(yypvt[-0].arg)),
  1628.                 Nullarg); } break;
  1629. case 177:
  1630. # line 785 "perly.y"
  1631. { yyval.arg = stab2arg(A_WORD,stabent(yypvt[-0].cval,TRUE));
  1632.               Safefree(yypvt[-0].cval); yypvt[-0].cval = Nullch;} break;
  1633. case 179:
  1634. # line 791 "perly.y"
  1635. { yyval.arg = stab2arg(A_WORD,aadd(stabent(yypvt[-0].cval,TRUE)));
  1636.                 Safefree(yypvt[-0].cval); yypvt[-0].cval = Nullch; } break;
  1637. case 180:
  1638. # line 794 "perly.y"
  1639. { yyval.arg = stab2arg(A_STAB,yypvt[-0].stabval); } break;
  1640. case 181:
  1641. # line 798 "perly.y"
  1642. { yyval.arg = stab2arg(A_WORD,hadd(stabent(yypvt[-0].cval,TRUE)));
  1643.                 Safefree(yypvt[-0].cval); yypvt[-0].cval = Nullch; } break;
  1644. case 182:
  1645. # line 801 "perly.y"
  1646. { yyval.arg = stab2arg(A_STAB,yypvt[-0].stabval); } break;
  1647. case 183:
  1648. # line 805 "perly.y"
  1649. { yyval.ival = 1; } break;
  1650. case 184:
  1651. # line 807 "perly.y"
  1652. { yyval.ival = 0; } break;
  1653. case 185:
  1654. # line 816 "perly.y"
  1655. { char *s;
  1656.                 yyval.arg = op_new(1);
  1657.                 yyval.arg->arg_type = O_ITEM;
  1658.                 yyval.arg[1].arg_type = A_SINGLE;
  1659.                 yyval.arg[1].arg_ptr.arg_str = str_make(yypvt[-0].cval,0);
  1660.                 for (s = yypvt[-0].cval; *s && isLOWER(*s); s++) ;
  1661.                 if (dowarn && !*s)
  1662.                 warn(
  1663.                   "\"%s\" may clash with future reserved word",
  1664.                   yypvt[-0].cval );
  1665.             } break;
  1666.         }
  1667.         goto yystack;  /* stack new state and value */
  1668.  
  1669.     }
  1670.