home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / icon / dos / src / icont / parse.c < prev    next >
C/C++ Source or Header  |  1992-02-10  |  55KB  |  1,880 lines

  1. # define CSETLIT 257
  2. # define EOFX 258
  3. # define IDENT 259
  4. # define INTLIT 260
  5. # define REALLIT 261
  6. # define STRINGLIT 262
  7. # define BREAK 263
  8. # define BY 264
  9. # define CASE 265
  10. # define CREATE 266
  11. # define DEFAULT 267
  12. # define DO 268
  13. # define ELSE 269
  14. # define END 270
  15. # define EVERY 271
  16. # define FAIL 272
  17. # define GLOBAL 273
  18. # define IF 274
  19. # define INITIAL 275
  20. # define INVOCABLE 276
  21. # define LINK 277
  22. # define LOCAL 278
  23. # define NEXT 279
  24. # define NOT 280
  25. # define OF 281
  26. # define PROCEDURE 282
  27. # define RECORD 283
  28. # define REPEAT 284
  29. # define RETURN 285
  30. # define STATIC 286
  31. # define SUSPEND 287
  32. # define THEN 288
  33. # define TO 289
  34. # define UNTIL 290
  35. # define WHILE 291
  36. # define ASSIGN 292
  37. # define AT 293
  38. # define AUGACT 294
  39. # define AUGAND 295
  40. # define AUGEQ 296
  41. # define AUGEQV 297
  42. # define AUGGE 298
  43. # define AUGGT 299
  44. # define AUGLE 300
  45. # define AUGLT 301
  46. # define AUGNE 302
  47. # define AUGNEQV 303
  48. # define AUGSEQ 304
  49. # define AUGSGE 305
  50. # define AUGSGT 306
  51. # define AUGSLE 307
  52. # define AUGSLT 308
  53. # define AUGSNE 309
  54. # define BACKSLASH 310
  55. # define BANG 311
  56. # define BAR 312
  57. # define CARET 313
  58. # define CARETASGN 314
  59. # define COLON 315
  60. # define COMMA 316
  61. # define CONCAT 317
  62. # define CONCATASGN 318
  63. # define CONJUNC 319
  64. # define DIFF 320
  65. # define DIFFASGN 321
  66. # define DOT 322
  67. # define EQUIV 323
  68. # define INTER 324
  69. # define INTERASGN 325
  70. # define LBRACE 326
  71. # define LBRACK 327
  72. # define LCONCAT 328
  73. # define LCONCATASGN 329
  74. # define LEXEQ 330
  75. # define LEXGE 331
  76. # define LEXGT 332
  77. # define LEXLE 333
  78. # define LEXLT 334
  79. # define LEXNE 335
  80. # define LPAREN 336
  81. # define MCOLON 337
  82. # define MINUS 338
  83. # define MINUSASGN 339
  84. # define MOD 340
  85. # define MODASGN 341
  86. # define NOTEQUIV 342
  87. # define NUMEQ 343
  88. # define NUMGE 344
  89. # define NUMGT 345
  90. # define NUMLE 346
  91. # define NUMLT 347
  92. # define NUMNE 348
  93. # define PCOLON 349
  94. # define PLUS 350
  95. # define PLUSASGN 351
  96. # define QMARK 352
  97. # define RBRACE 353
  98. # define RBRACK 354
  99. # define REVASSIGN 355
  100. # define REVSWAP 356
  101. # define RPAREN 357
  102. # define SCANASGN 358
  103. # define SEMICOL 359
  104. # define SLASH 360
  105. # define SLASHASGN 361
  106. # define STAR 362
  107. # define STARASGN 363
  108. # define SWAP 364
  109. # define TILDE 365
  110. # define UNION 366
  111. # define UNIONASGN 367
  112.  
  113. # line 140 "expanded.g"
  114. #include "../h/gsupport.h"
  115. #include "tproto.h"
  116. #include "trans.h"
  117. #include "tsym.h"
  118. #include "tree.h"
  119. #include "../h/keyword.h"
  120. #undef YYSTYPE
  121. #define YYSTYPE nodeptr
  122. #define YYMAXDEPTH 500
  123. extern int fncargs[];
  124. int idflag;
  125. int id_cnt;
  126. int key_num;
  127.  
  128.  
  129.  
  130. #define yyclearin yychar = -1
  131. #define yyerrok yyerrflag = 0
  132. extern int yychar;
  133. extern int yyerrflag;
  134. #ifndef YYMAXDEPTH
  135. #define YYMAXDEPTH 150
  136. #endif
  137. #ifndef YYSTYPE
  138. #define YYSTYPE int
  139. #endif
  140. YYSTYPE yylval, yyval;
  141. # define YYERRCODE 256
  142.  
  143. # line 426 "expanded.g"
  144.  
  145. int yyexca[] ={
  146. -1, 0,
  147.     258, 2,
  148.     273, 2,
  149.     276, 2,
  150.     277, 2,
  151.     282, 2,
  152.     283, 2,
  153.     -2, 0,
  154. -1, 1,
  155.     0, -1,
  156.     -2, 0,
  157. -1, 20,
  158.     270, 40,
  159.     359, 42,
  160.     -2, 0,
  161. -1, 86,
  162.     264, 42,
  163.     268, 42,
  164.     269, 42,
  165.     281, 42,
  166.     288, 42,
  167.     289, 42,
  168.     292, 42,
  169.     294, 42,
  170.     295, 42,
  171.     296, 42,
  172.     297, 42,
  173.     298, 42,
  174.     299, 42,
  175.     300, 42,
  176.     301, 42,
  177.     302, 42,
  178.     303, 42,
  179.     304, 42,
  180.     305, 42,
  181.     306, 42,
  182.     307, 42,
  183.     308, 42,
  184.     309, 42,
  185.     314, 42,
  186.     315, 42,
  187.     316, 42,
  188.     318, 42,
  189.     321, 42,
  190.     325, 42,
  191.     329, 42,
  192.     331, 42,
  193.     332, 42,
  194.     333, 42,
  195.     334, 42,
  196.     337, 42,
  197.     339, 42,
  198.     340, 42,
  199.     341, 42,
  200.     344, 42,
  201.     345, 42,
  202.     346, 42,
  203.     347, 42,
  204.     349, 42,
  205.     351, 42,
  206.     353, 42,
  207.     354, 42,
  208.     355, 42,
  209.     356, 42,
  210.     357, 42,
  211.     358, 42,
  212.     359, 42,
  213.     361, 42,
  214.     363, 42,
  215.     364, 42,
  216.     367, 42,
  217.     -2, 0,
  218. -1, 87,
  219.     316, 42,
  220.     357, 42,
  221.     -2, 0,
  222. -1, 88,
  223.     353, 42,
  224.     359, 42,
  225.     -2, 0,
  226. -1, 89,
  227.     316, 42,
  228.     354, 42,
  229.     -2, 0,
  230. -1, 96,
  231.     264, 42,
  232.     268, 42,
  233.     269, 42,
  234.     281, 42,
  235.     288, 42,
  236.     289, 42,
  237.     292, 42,
  238.     294, 42,
  239.     295, 42,
  240.     296, 42,
  241.     297, 42,
  242.     298, 42,
  243.     299, 42,
  244.     300, 42,
  245.     301, 42,
  246.     302, 42,
  247.     303, 42,
  248.     304, 42,
  249.     305, 42,
  250.     306, 42,
  251.     307, 42,
  252.     308, 42,
  253.     309, 42,
  254.     314, 42,
  255.     315, 42,
  256.     316, 42,
  257.     318, 42,
  258.     321, 42,
  259.     325, 42,
  260.     329, 42,
  261.     331, 42,
  262.     332, 42,
  263.     333, 42,
  264.     334, 42,
  265.     337, 42,
  266.     339, 42,
  267.     340, 42,
  268.     341, 42,
  269.     344, 42,
  270.     345, 42,
  271.     346, 42,
  272.     347, 42,
  273.     349, 42,
  274.     351, 42,
  275.     353, 42,
  276.     354, 42,
  277.     355, 42,
  278.     356, 42,
  279.     357, 42,
  280.     358, 42,
  281.     359, 42,
  282.     361, 42,
  283.     363, 42,
  284.     364, 42,
  285.     367, 42,
  286.     -2, 0,
  287. -1, 97,
  288.     264, 42,
  289.     268, 42,
  290.     269, 42,
  291.     281, 42,
  292.     288, 42,
  293.     289, 42,
  294.     292, 42,
  295.     294, 42,
  296.     295, 42,
  297.     296, 42,
  298.     297, 42,
  299.     298, 42,
  300.     299, 42,
  301.     300, 42,
  302.     301, 42,
  303.     302, 42,
  304.     303, 42,
  305.     304, 42,
  306.     305, 42,
  307.     306, 42,
  308.     307, 42,
  309.     308, 42,
  310.     309, 42,
  311.     314, 42,
  312.     315, 42,
  313.     316, 42,
  314.     318, 42,
  315.     321, 42,
  316.     325, 42,
  317.     329, 42,
  318.     331, 42,
  319.     332, 42,
  320.     333, 42,
  321.     334, 42,
  322.     337, 42,
  323.     339, 42,
  324.     340, 42,
  325.     341, 42,
  326.     344, 42,
  327.     345, 42,
  328.     346, 42,
  329.     347, 42,
  330.     349, 42,
  331.     351, 42,
  332.     353, 42,
  333.     354, 42,
  334.     355, 42,
  335.     356, 42,
  336.     357, 42,
  337.     358, 42,
  338.     359, 42,
  339.     361, 42,
  340.     363, 42,
  341.     364, 42,
  342.     367, 42,
  343.     -2, 0,
  344. -1, 111,
  345.     270, 40,
  346.     359, 42,
  347.     -2, 0,
  348. -1, 117,
  349.     270, 40,
  350.     359, 42,
  351.     -2, 0,
  352. -1, 182,
  353.     354, 42,
  354.     -2, 0,
  355. -1, 183,
  356.     316, 42,
  357.     -2, 0,
  358. -1, 184,
  359.     316, 42,
  360.     357, 42,
  361.     -2, 0,
  362. -1, 311,
  363.     316, 42,
  364.     354, 42,
  365.     357, 42,
  366.     -2, 0,
  367. -1, 313,
  368.     353, 42,
  369.     359, 42,
  370.     -2, 0,
  371. -1, 335,
  372.     316, 42,
  373.     353, 42,
  374.     -2, 0,
  375.     };
  376. # define YYNPROD 203
  377. # define YYLAST 769
  378. int yyact[]={
  379.  
  380.     38,    94,   171,    84,    91,    92,    93,    86,   228,    99,
  381.     83,   353,   352,   358,   175,   102,    95,   313,    98,   359,
  382.    173,    20,   118,    85,    51,   117,   345,   324,   103,    96,
  383.    177,    97,   170,   355,   101,   100,   311,    50,   118,   335,
  384.    311,   329,   312,   119,   232,   311,   110,    41,   172,   168,
  385.    176,   326,   174,   341,    73,    56,    52,    61,   228,   317,
  386.    169,    53,   327,    90,    57,   118,    55,    69,    62,   346,
  387.     88,    89,    54,   356,    67,   350,   334,   336,   228,    68,
  388.     87,   310,    64,   314,   361,   331,    72,    65,   118,   118,
  389.    320,   316,    66,   319,    58,   107,    71,   118,   318,   315,
  390.    106,   360,   108,   214,    60,   325,    59,   333,   116,    63,
  391.     70,    38,    94,   328,    84,    91,    92,    93,    86,   332,
  392.     99,    83,   118,   231,    19,   118,   102,    95,    28,    98,
  393.    218,    29,   105,   185,    85,    51,   180,   183,   182,   103,
  394.     96,   118,    97,   217,   118,   101,   100,   184,    50,   118,
  395.    118,   321,   113,   179,   181,   114,   178,    24,   309,   109,
  396.     25,    32,     3,   115,   212,    73,    56,    52,    61,    34,
  397.    330,   351,    53,   306,    90,    57,    44,    55,    69,    62,
  398.     45,    88,    89,    54,    37,    67,    82,   104,    23,    27,
  399.     68,    87,     2,    64,    31,    81,    17,    72,    65,    80,
  400.    273,   274,    79,    66,    78,    58,    77,    71,   305,    13,
  401.     76,    75,    15,    14,    74,    60,    49,    59,    16,    11,
  402.     63,    70,    38,    94,    47,    84,    91,    92,    93,    86,
  403.     42,    99,    83,    40,   112,   322,    30,   102,    95,   111,
  404.     98,    33,    12,     4,   233,    85,    51,    18,    21,    22,
  405.    103,    96,    26,    97,   216,    10,   101,   100,    13,    50,
  406.      9,    15,    14,     8,     7,     6,     5,    16,    11,     1,
  407.      0,     0,     0,     0,     0,     0,    73,    56,    52,    61,
  408.     36,   235,     0,    53,     0,    90,    57,   238,    55,    69,
  409.     62,     0,    88,    89,    54,   229,    67,   230,   234,     0,
  410.    236,    68,    87,   239,    64,     0,     0,     0,    72,    65,
  411.      0,     0,     0,     0,    66,     0,    58,     0,    71,     0,
  412.      0,     0,     0,     0,     0,     0,    60,     0,    59,     0,
  413.      0,    63,    70,    94,     0,    84,    91,    92,    93,    86,
  414.      0,    99,    83,     0,     0,   289,   290,   102,    95,   308,
  415.     98,   291,   292,   293,   294,    85,    51,     0,     0,     0,
  416.    103,    96,     0,    97,   210,     0,   101,   100,     0,    50,
  417.      0,     0,   362,     0,     0,     0,   347,     0,   221,   222,
  418.    223,   224,   225,   226,   227,     0,    73,    56,    52,    61,
  419.      0,     0,     0,    53,   237,    90,    57,     0,    55,    69,
  420.     62,     0,    88,    89,    54,     0,    67,     0,     0,     0,
  421.      0,    68,    87,     0,    64,    46,     0,   338,    72,    65,
  422.    323,     0,     0,     0,    66,     0,    58,     0,    71,     0,
  423.      0,     0,    35,     0,     0,     0,    60,    39,    59,     0,
  424.    152,    63,    70,   121,     0,   151,   150,   135,   136,   137,
  425.    138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
  426.    148,     0,     0,   304,   153,   134,     0,     0,     0,   124,
  427.      0,     0,   126,     0,     0,   166,   131,     0,     0,     0,
  428.    125,    48,   154,   155,   156,   157,   158,   159,    43,     0,
  429.    129,     0,   133,     0,   167,   160,   161,   162,   163,   164,
  430.    165,     0,   128,     0,     0,     0,   123,   122,     0,   149,
  431.      0,     0,   132,     0,   130,   120,     0,     0,   127,   211,
  432.    213,   215,   213,     0,     0,     0,     0,     0,     0,   219,
  433.    220,     0,   186,   187,   188,   189,   190,   191,   192,   193,
  434.    194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
  435.    204,   205,   206,   207,   208,   209,     0,   240,   241,   242,
  436.    243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
  437.    253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
  438.    263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
  439.    295,   296,   297,   298,   299,     0,   339,   340,     0,   342,
  440.    343,   344,     0,     0,     0,     0,     0,     0,     0,     0,
  441.      0,   348,     0,     0,     0,   303,   307,   213,     0,     0,
  442.      0,     0,   354,     0,     0,     0,     0,     0,     0,     0,
  443.      0,   357,     0,     0,     0,     0,     0,     0,     0,     0,
  444.    354,   363,   364,   275,   276,   277,   278,   279,   280,   281,
  445.    282,   283,   284,   285,   286,   287,   288,     0,     0,     0,
  446.      0,   300,   301,   302,     0,     0,     0,     0,     0,     0,
  447.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  448.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  449.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  450.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  451.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  452.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  453.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  454.      0,     0,     0,     0,   337,     0,   215,     0,     0,     0,
  455.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  456.      0,     0,     0,     0,     0,     0,     0,     0,   349 };
  457. int yypact[]={
  458.  
  459.    -94, -1000,   -15, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
  460.  -1000, -1000,  -235, -1000,  -102,  -131, -1000,   -64,   -98, -1000,
  461.    -34,  -127,  -216, -1000, -1000, -1000,  -221, -1000, -1000,  -213,
  462.   -100, -1000,  -290,  -123,  -162,  -334,  -254,  -309, -1000, -1000,
  463.    151, -1000,   152,  -268,  -318,  -310, -1000,  -157, -1000,  -189,
  464.     76,    76,    76,    76,    76,    76,    76,    76,    76,    76,
  465.     76,    76,    76,    76,    76,    76,    76,    76,    76,    76,
  466.     76,    76,    76,    76, -1000, -1000, -1000, -1000, -1000, -1000,
  467.  -1000, -1000, -1000,   -34, -1000, -1000,   -34,   -34,   -34,   -34,
  468.   -129, -1000, -1000, -1000, -1000, -1000,   -34,   -34,   -34,   -34,
  469.    -34,   -34,   -34,   -34,  -238, -1000,  -102,  -131,  -137,  -292,
  470.   -127,   -34,  -127,   -34, -1000, -1000, -1000,   -34,    76,    76,
  471.     76,    76,    76,    76,    76,    76,    76,    76,    76,    76,
  472.     76,    76,    76,    76,    76,    76,    76,    76,    76,    76,
  473.     76,    76,    76,    76,    76,    76,    76,    76,    76,    76,
  474.     76,    76,    76,    76,    76,    76,    76,    76,    76,    76,
  475.     76,    76,    76,    76,    76,    76,    76,    76,    76,    76,
  476.     76,    76,    76,    76,    76,    76,    76,    76,    76,    76,
  477.     76,    76,   -34,  -145,   -34,  -101, -1000, -1000, -1000, -1000,
  478.  -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
  479.  -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
  480.   -254, -1000,  -276, -1000,  -311,  -342,  -271, -1000, -1000, -1000,
  481.  -1000,  -169,  -197,  -222,  -170,  -175,  -178,  -254,  -108, -1000,
  482.  -1000, -1000,  -127,  -330,  -238,  -165,  -308,  -297, -1000,  -309,
  483.  -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
  484.  -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
  485.  -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
  486.  -1000, -1000, -1000,  -151, -1000,  -268,  -268,  -268,  -268,  -268,
  487.   -268,  -268,  -268,  -268,  -268,  -268,  -268,  -268,  -268,  -318,
  488.   -318,  -310,  -310,  -310,  -310, -1000, -1000, -1000, -1000, -1000,
  489.  -1000, -1000, -1000,  -313,  -230, -1000,  -277, -1000,  -280, -1000,
  490.  -1000,   -34, -1000,   -34, -1000,   -34,   -34,  -273,   -34,   -34,
  491.    -34, -1000,  -331,  -258, -1000, -1000, -1000, -1000,    76, -1000,
  492.    -34, -1000, -1000, -1000, -1000,   -34, -1000, -1000, -1000,  -254,
  493.   -194,  -256,  -254,  -254,  -254, -1000,  -321, -1000,  -281, -1000,
  494.    -34,  -340, -1000,  -214,  -231, -1000, -1000,  -254, -1000,  -256,
  495.    -34,   -34, -1000,  -254,  -254 };
  496. int yypgo[]={
  497.  
  498.      0,   269,   192,   266,   265,   264,   263,   260,   255,   252,
  499.    189,   249,   188,   248,   187,   247,   244,   242,   241,   239,
  500.    169,   236,   235,   234,   280,   432,   184,   437,   233,    47,
  501.    230,   488,   176,   180,   415,   224,   481,   216,   214,   211,
  502.    210,   206,   204,   202,   199,   195,   186,   164,   103,   173,
  503.    171,    12,   170 };
  504. int yyr1[]={
  505.  
  506.      0,     1,     2,     2,     3,     3,     3,     3,     3,     8,
  507.      9,     9,    10,    10,    10,     7,    11,    11,    12,    12,
  508.     13,     6,    15,     4,    16,    16,     5,    21,    17,    22,
  509.     22,    22,    14,    14,    18,    18,    23,    23,    19,    19,
  510.     20,    20,    25,    25,    24,    24,    26,    26,    27,    27,
  511.     27,    27,    27,    27,    27,    27,    27,    27,    27,    27,
  512.     27,    27,    27,    27,    27,    27,    27,    27,    27,    27,
  513.     27,    27,    27,    27,    27,    27,    27,    27,    27,    27,
  514.     27,    28,    28,    28,    29,    29,    30,    30,    30,    30,
  515.     30,    30,    30,    30,    30,    30,    30,    30,    30,    30,
  516.     30,    31,    31,    31,    32,    32,    32,    32,    32,    33,
  517.     33,    33,    33,    33,    34,    34,    35,    35,    35,    35,
  518.     36,    36,    36,    36,    36,    36,    36,    36,    36,    36,
  519.     36,    36,    36,    36,    36,    36,    36,    36,    36,    36,
  520.     36,    36,    36,    36,    36,    37,    37,    37,    37,    37,
  521.     37,    37,    37,    37,    37,    37,    37,    37,    37,    37,
  522.     37,    37,    37,    37,    37,    37,    37,    37,    43,    43,
  523.     44,    44,    45,    45,    46,    40,    40,    40,    40,    41,
  524.     41,    42,    50,    50,    51,    51,    47,    47,    49,    49,
  525.     38,    38,    38,    38,    39,    52,    52,    52,    48,    48,
  526.      1,     5,    24 };
  527. int yyr2[]={
  528.  
  529.      0,     5,     0,     4,     3,     3,     3,     3,     2,     4,
  530.      2,     6,     2,     2,     6,     5,     2,     7,     3,     3,
  531.      1,     7,     1,    13,     1,     3,    13,     1,    13,     1,
  532.      3,     7,     3,     7,     1,     9,     3,     3,     1,     7,
  533.      1,     7,     1,     2,     2,     7,     2,     7,     2,     7,
  534.      7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
  535.      7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
  536.      7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
  537.      7,     2,     7,    11,     2,     7,     2,     7,     7,     7,
  538.      7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
  539.      7,     2,     7,     7,     2,     7,     7,     7,     7,     2,
  540.      7,     7,     7,     7,     2,     7,     2,     7,     7,     7,
  541.      2,     5,     5,     5,     5,     5,     5,     5,     5,     5,
  542.      5,     5,     5,     5,     5,     5,     5,     5,     5,     5,
  543.      5,     5,     5,     5,     5,     2,     2,     2,     2,     2,
  544.      2,     2,     2,     2,     5,     3,     3,     5,     7,     7,
  545.      7,     9,     7,     9,     9,     7,     5,     5,     5,     9,
  546.      5,     9,     5,     9,     5,     3,     5,     5,     9,     9,
  547.     13,    13,     2,     7,     7,     7,     2,     7,     3,     7,
  548.      3,     3,     3,     3,    13,     3,     3,     3,     2,     7,
  549.      6,     8,     2 };
  550. int yychk[]={
  551.  
  552.  -1000,    -1,    -2,   256,   258,    -3,    -4,    -5,    -6,    -7,
  553.     -8,   283,   -17,   273,   277,   276,   282,    -2,   -15,   359,
  554.    256,   -13,   -11,   -12,   259,   262,    -9,   -10,   259,   262,
  555.    -21,   258,   259,   -18,   -20,   -25,   -24,   -26,   256,   -27,
  556.    -28,   -29,   -30,   -31,   -32,   -33,   -34,   -35,   -36,   -37,
  557.    293,   280,   312,   317,   328,   322,   311,   320,   350,   362,
  558.    360,   313,   324,   365,   338,   343,   348,   330,   335,   323,
  559.    366,   352,   342,   310,   -38,   -39,   -40,   -41,   -42,   -43,
  560.    -44,   -45,   -46,   266,   259,   279,   263,   336,   326,   327,
  561.    319,   260,   261,   262,   257,   272,   285,   287,   274,   265,
  562.    291,   290,   271,   284,   -14,   259,   316,   316,   315,   259,
  563.    336,   -19,   -23,   275,   278,   286,   270,   359,   319,   352,
  564.    364,   292,   356,   355,   318,   329,   321,   367,   351,   339,
  565.    363,   325,   361,   341,   314,   296,   297,   298,   299,   300,
  566.    301,   302,   303,   304,   305,   306,   307,   308,   309,   358,
  567.    295,   294,   289,   312,   330,   331,   332,   333,   334,   335,
  568.    343,   344,   345,   346,   347,   348,   323,   342,   317,   328,
  569.    350,   320,   366,   338,   362,   324,   360,   340,   313,   310,
  570.    293,   311,   327,   326,   336,   322,   -36,   -36,   -36,   -36,
  571.    -36,   -36,   -36,   -36,   -36,   -36,   -36,   -36,   -36,   -36,
  572.    -36,   -36,   -36,   -36,   -36,   -36,   -36,   -36,   -36,   -36,
  573.    -24,   -25,   -47,   -25,   -48,   -25,   -47,   272,   259,   -25,
  574.    -25,   -24,   -24,   -24,   -24,   -24,   -24,   -24,   316,   -12,
  575.    -10,   260,   336,   -16,   -14,   -20,   -14,   -24,   -20,   -26,
  576.    -27,   -27,   -27,   -27,   -27,   -27,   -27,   -27,   -27,   -27,
  577.    -27,   -27,   -27,   -27,   -27,   -27,   -27,   -27,   -27,   -27,
  578.    -27,   -27,   -27,   -27,   -27,   -27,   -27,   -27,   -27,   -27,
  579.    -27,   -27,   -27,   -29,   -29,   -31,   -31,   -31,   -31,   -31,
  580.    -31,   -31,   -31,   -31,   -31,   -31,   -31,   -31,   -31,   -32,
  581.    -32,   -33,   -33,   -33,   -33,   -34,   -34,   -34,   -34,   -34,
  582.    -36,   -36,   -36,   -25,   -24,   353,   -49,   -25,   -47,   259,
  583.    357,   316,   353,   359,   354,   268,   288,   281,   268,   268,
  584.    268,   259,   -22,   -14,   357,   270,   359,   359,   264,   354,
  585.    -52,   315,   349,   337,   353,   316,   357,   -25,   -48,   -24,
  586.    -24,   326,   -24,   -24,   -24,   357,   327,   -29,   -24,   -25,
  587.    269,   -50,   -51,   267,   -24,   354,   354,   -24,   353,   359,
  588.    315,   315,   -51,   -24,   -24 };
  589. int yydef[]={
  590.  
  591.     -2,    -2,     0,     2,     1,     3,     4,     5,     6,     7,
  592.      8,    22,     0,    20,     0,     0,    27,     0,     0,    34,
  593.     -2,     0,    15,    16,    18,    19,     9,    10,    12,    13,
  594.      0,   200,     0,    38,     0,     0,    43,    44,   202,    46,
  595.     48,    81,    84,    86,   101,   104,   109,   114,   116,   120,
  596.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  597.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  598.      0,     0,     0,     0,   145,   146,   147,   148,   149,   150,
  599.    151,   152,   153,     0,   155,   156,    -2,    -2,    -2,    -2,
  600.      0,   190,   191,   192,   193,   175,    -2,    -2,     0,     0,
  601.      0,     0,     0,     0,    21,    32,     0,     0,     0,     0,
  602.     24,    -2,     0,     0,    36,    37,   201,    -2,     0,     0,
  603.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  604.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  605.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  606.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  607.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  608.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  609.      0,     0,    -2,    -2,    -2,     0,   121,   122,   123,   124,
  610.    125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
  611.    135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
  612.    154,   157,     0,   186,     0,   198,     0,   166,   167,   176,
  613.    177,    43,     0,     0,   168,   170,   172,   174,     0,    17,
  614.     11,    14,    29,     0,    25,     0,     0,     0,    41,    45,
  615.     47,    49,    50,    51,    52,    53,    54,    55,    56,    57,
  616.     58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
  617.     68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
  618.     78,    79,    80,    82,    85,    87,    88,    89,    90,    91,
  619.     92,    93,    94,    95,    96,    97,    98,    99,   100,   102,
  620.    103,   105,   106,   107,   108,   110,   111,   112,   113,   115,
  621.    117,   118,   119,     0,    43,   162,     0,   188,     0,   165,
  622.    158,    -2,   159,    -2,   160,     0,     0,     0,     0,     0,
  623.      0,    33,     0,    30,    23,    26,    35,    39,     0,   161,
  624.      0,   195,   196,   197,   163,    -2,   164,   187,   199,   178,
  625.    179,     0,   169,   171,   173,    28,     0,    83,     0,   189,
  626.      0,     0,   182,     0,     0,    31,   194,   180,   181,     0,
  627.      0,     0,   183,   184,   185 };
  628. typedef struct { char *t_name; int t_val; } yytoktype;
  629. #ifndef YYDEBUG
  630. #    define YYDEBUG    0    /* don't allow debugging */
  631. #endif
  632.  
  633. #if YYDEBUG
  634.  
  635. yytoktype yytoks[] =
  636. {
  637.     "CSETLIT",    257,
  638.     "EOFX",    258,
  639.     "IDENT",    259,
  640.     "INTLIT",    260,
  641.     "REALLIT",    261,
  642.     "STRINGLIT",    262,
  643.     "BREAK",    263,
  644.     "BY",    264,
  645.     "CASE",    265,
  646.     "CREATE",    266,
  647.     "DEFAULT",    267,
  648.     "DO",    268,
  649.     "ELSE",    269,
  650.     "END",    270,
  651.     "EVERY",    271,
  652.     "FAIL",    272,
  653.     "GLOBAL",    273,
  654.     "IF",    274,
  655.     "INITIAL",    275,
  656.     "INVOCABLE",    276,
  657.     "LINK",    277,
  658.     "LOCAL",    278,
  659.     "NEXT",    279,
  660.     "NOT",    280,
  661.     "OF",    281,
  662.     "PROCEDURE",    282,
  663.     "RECORD",    283,
  664.     "REPEAT",    284,
  665.     "RETURN",    285,
  666.     "STATIC",    286,
  667.     "SUSPEND",    287,
  668.     "THEN",    288,
  669.     "TO",    289,
  670.     "UNTIL",    290,
  671.     "WHILE",    291,
  672.     "ASSIGN",    292,
  673.     "AT",    293,
  674.     "AUGACT",    294,
  675.     "AUGAND",    295,
  676.     "AUGEQ",    296,
  677.     "AUGEQV",    297,
  678.     "AUGGE",    298,
  679.     "AUGGT",    299,
  680.     "AUGLE",    300,
  681.     "AUGLT",    301,
  682.     "AUGNE",    302,
  683.     "AUGNEQV",    303,
  684.     "AUGSEQ",    304,
  685.     "AUGSGE",    305,
  686.     "AUGSGT",    306,
  687.     "AUGSLE",    307,
  688.     "AUGSLT",    308,
  689.     "AUGSNE",    309,
  690.     "BACKSLASH",    310,
  691.     "BANG",    311,
  692.     "BAR",    312,
  693.     "CARET",    313,
  694.     "CARETASGN",    314,
  695.     "COLON",    315,
  696.     "COMMA",    316,
  697.     "CONCAT",    317,
  698.     "CONCATASGN",    318,
  699.     "CONJUNC",    319,
  700.     "DIFF",    320,
  701.     "DIFFASGN",    321,
  702.     "DOT",    322,
  703.     "EQUIV",    323,
  704.     "INTER",    324,
  705.     "INTERASGN",    325,
  706.     "LBRACE",    326,
  707.     "LBRACK",    327,
  708.     "LCONCAT",    328,
  709.     "LCONCATASGN",    329,
  710.     "LEXEQ",    330,
  711.     "LEXGE",    331,
  712.     "LEXGT",    332,
  713.     "LEXLE",    333,
  714.     "LEXLT",    334,
  715.     "LEXNE",    335,
  716.     "LPAREN",    336,
  717.     "MCOLON",    337,
  718.     "MINUS",    338,
  719.     "MINUSASGN",    339,
  720.     "MOD",    340,
  721.     "MODASGN",    341,
  722.     "NOTEQUIV",    342,
  723.     "NUMEQ",    343,
  724.     "NUMGE",    344,
  725.     "NUMGT",    345,
  726.     "NUMLE",    346,
  727.     "NUMLT",    347,
  728.     "NUMNE",    348,
  729.     "PCOLON",    349,
  730.     "PLUS",    350,
  731.     "PLUSASGN",    351,
  732.     "QMARK",    352,
  733.     "RBRACE",    353,
  734.     "RBRACK",    354,
  735.     "REVASSIGN",    355,
  736.     "REVSWAP",    356,
  737.     "RPAREN",    357,
  738.     "SCANASGN",    358,
  739.     "SEMICOL",    359,
  740.     "SLASH",    360,
  741.     "SLASHASGN",    361,
  742.     "STAR",    362,
  743.     "STARASGN",    363,
  744.     "SWAP",    364,
  745.     "TILDE",    365,
  746.     "UNION",    366,
  747.     "UNIONASGN",    367,
  748.     "-unknown-",    -1    /* ends search */
  749. };
  750.  
  751. char * yyreds[] =
  752. {
  753.     "-no such reduction-",
  754.     "program : decls EOFX",
  755.     "decls : /* empty */",
  756.     "decls : decls decl",
  757.     "decl : record",
  758.     "decl : proc",
  759.     "decl : global",
  760.     "decl : link",
  761.     "decl : invocable",
  762.     "invocable : INVOCABLE invoclist",
  763.     "invoclist : invocop",
  764.     "invoclist : invoclist COMMA invocop",
  765.     "invocop : IDENT",
  766.     "invocop : STRINGLIT",
  767.     "invocop : STRINGLIT COLON INTLIT",
  768.     "link : LINK lnklist",
  769.     "lnklist : lnkfile",
  770.     "lnklist : lnklist COMMA lnkfile",
  771.     "lnkfile : IDENT",
  772.     "lnkfile : STRINGLIT",
  773.     "global : GLOBAL",
  774.     "global : GLOBAL idlist",
  775.     "record : RECORD",
  776.     "record : RECORD IDENT LPAREN fldlist RPAREN",
  777.     "fldlist : /* empty */",
  778.     "fldlist : idlist",
  779.     "proc : prochead SEMICOL locals initial procbody END",
  780.     "prochead : PROCEDURE",
  781.     "prochead : PROCEDURE IDENT LPAREN arglist RPAREN",
  782.     "arglist : /* empty */",
  783.     "arglist : idlist",
  784.     "arglist : idlist LBRACK RBRACK",
  785.     "idlist : IDENT",
  786.     "idlist : idlist COMMA IDENT",
  787.     "locals : /* empty */",
  788.     "locals : locals retention idlist SEMICOL",
  789.     "retention : LOCAL",
  790.     "retention : STATIC",
  791.     "initial : /* empty */",
  792.     "initial : INITIAL expr SEMICOL",
  793.     "procbody : /* empty */",
  794.     "procbody : nexpr SEMICOL procbody",
  795.     "nexpr : /* empty */",
  796.     "nexpr : expr",
  797.     "expr : expr1a",
  798.     "expr : expr CONJUNC expr1a",
  799.     "expr1a : expr1",
  800.     "expr1a : expr1a QMARK expr1",
  801.     "expr1 : expr2",
  802.     "expr1 : expr2 SWAP expr1",
  803.     "expr1 : expr2 ASSIGN expr1",
  804.     "expr1 : expr2 REVSWAP expr1",
  805.     "expr1 : expr2 REVASSIGN expr1",
  806.     "expr1 : expr2 CONCATASGN expr1",
  807.     "expr1 : expr2 LCONCATASGN expr1",
  808.     "expr1 : expr2 DIFFASGN expr1",
  809.     "expr1 : expr2 UNIONASGN expr1",
  810.     "expr1 : expr2 PLUSASGN expr1",
  811.     "expr1 : expr2 MINUSASGN expr1",
  812.     "expr1 : expr2 STARASGN expr1",
  813.     "expr1 : expr2 INTERASGN expr1",
  814.     "expr1 : expr2 SLASHASGN expr1",
  815.     "expr1 : expr2 MODASGN expr1",
  816.     "expr1 : expr2 CARETASGN expr1",
  817.     "expr1 : expr2 AUGEQ expr1",
  818.     "expr1 : expr2 AUGEQV expr1",
  819.     "expr1 : expr2 AUGGE expr1",
  820.     "expr1 : expr2 AUGGT expr1",
  821.     "expr1 : expr2 AUGLE expr1",
  822.     "expr1 : expr2 AUGLT expr1",
  823.     "expr1 : expr2 AUGNE expr1",
  824.     "expr1 : expr2 AUGNEQV expr1",
  825.     "expr1 : expr2 AUGSEQ expr1",
  826.     "expr1 : expr2 AUGSGE expr1",
  827.     "expr1 : expr2 AUGSGT expr1",
  828.     "expr1 : expr2 AUGSLE expr1",
  829.     "expr1 : expr2 AUGSLT expr1",
  830.     "expr1 : expr2 AUGSNE expr1",
  831.     "expr1 : expr2 SCANASGN expr1",
  832.     "expr1 : expr2 AUGAND expr1",
  833.     "expr1 : expr2 AUGACT expr1",
  834.     "expr2 : expr3",
  835.     "expr2 : expr2 TO expr3",
  836.     "expr2 : expr2 TO expr3 BY expr3",
  837.     "expr3 : expr4",
  838.     "expr3 : expr4 BAR expr3",
  839.     "expr4 : expr5",
  840.     "expr4 : expr4 LEXEQ expr5",
  841.     "expr4 : expr4 LEXGE expr5",
  842.     "expr4 : expr4 LEXGT expr5",
  843.     "expr4 : expr4 LEXLE expr5",
  844.     "expr4 : expr4 LEXLT expr5",
  845.     "expr4 : expr4 LEXNE expr5",
  846.     "expr4 : expr4 NUMEQ expr5",
  847.     "expr4 : expr4 NUMGE expr5",
  848.     "expr4 : expr4 NUMGT expr5",
  849.     "expr4 : expr4 NUMLE expr5",
  850.     "expr4 : expr4 NUMLT expr5",
  851.     "expr4 : expr4 NUMNE expr5",
  852.     "expr4 : expr4 EQUIV expr5",
  853.     "expr4 : expr4 NOTEQUIV expr5",
  854.     "expr5 : expr6",
  855.     "expr5 : expr5 CONCAT expr6",
  856.     "expr5 : expr5 LCONCAT expr6",
  857.     "expr6 : expr7",
  858.     "expr6 : expr6 PLUS expr7",
  859.     "expr6 : expr6 DIFF expr7",
  860.     "expr6 : expr6 UNION expr7",
  861.     "expr6 : expr6 MINUS expr7",
  862.     "expr7 : expr8",
  863.     "expr7 : expr7 STAR expr8",
  864.     "expr7 : expr7 INTER expr8",
  865.     "expr7 : expr7 SLASH expr8",
  866.     "expr7 : expr7 MOD expr8",
  867.     "expr8 : expr9",
  868.     "expr8 : expr9 CARET expr8",
  869.     "expr9 : expr10",
  870.     "expr9 : expr9 BACKSLASH expr10",
  871.     "expr9 : expr9 AT expr10",
  872.     "expr9 : expr9 BANG expr10",
  873.     "expr10 : expr11",
  874.     "expr10 : AT expr10",
  875.     "expr10 : NOT expr10",
  876.     "expr10 : BAR expr10",
  877.     "expr10 : CONCAT expr10",
  878.     "expr10 : LCONCAT expr10",
  879.     "expr10 : DOT expr10",
  880.     "expr10 : BANG expr10",
  881.     "expr10 : DIFF expr10",
  882.     "expr10 : PLUS expr10",
  883.     "expr10 : STAR expr10",
  884.     "expr10 : SLASH expr10",
  885.     "expr10 : CARET expr10",
  886.     "expr10 : INTER expr10",
  887.     "expr10 : TILDE expr10",
  888.     "expr10 : MINUS expr10",
  889.     "expr10 : NUMEQ expr10",
  890.     "expr10 : NUMNE expr10",
  891.     "expr10 : LEXEQ expr10",
  892.     "expr10 : LEXNE expr10",
  893.     "expr10 : EQUIV expr10",
  894.     "expr10 : UNION expr10",
  895.     "expr10 : QMARK expr10",
  896.     "expr10 : NOTEQUIV expr10",
  897.     "expr10 : BACKSLASH expr10",
  898.     "expr11 : literal",
  899.     "expr11 : section",
  900.     "expr11 : return",
  901.     "expr11 : if",
  902.     "expr11 : case",
  903.     "expr11 : while",
  904.     "expr11 : until",
  905.     "expr11 : every",
  906.     "expr11 : repeat",
  907.     "expr11 : CREATE expr",
  908.     "expr11 : IDENT",
  909.     "expr11 : NEXT",
  910.     "expr11 : BREAK nexpr",
  911.     "expr11 : LPAREN exprlist RPAREN",
  912.     "expr11 : LBRACE compound RBRACE",
  913.     "expr11 : LBRACK exprlist RBRACK",
  914.     "expr11 : expr11 LBRACK nexpr RBRACK",
  915.     "expr11 : expr11 LBRACE RBRACE",
  916.     "expr11 : expr11 LBRACE pdcolist RBRACE",
  917.     "expr11 : expr11 LPAREN exprlist RPAREN",
  918.     "expr11 : expr11 DOT IDENT",
  919.     "expr11 : CONJUNC FAIL",
  920.     "expr11 : CONJUNC IDENT",
  921.     "while : WHILE expr",
  922.     "while : WHILE expr DO expr",
  923.     "until : UNTIL expr",
  924.     "until : UNTIL expr DO expr",
  925.     "every : EVERY expr",
  926.     "every : EVERY expr DO expr",
  927.     "repeat : REPEAT expr",
  928.     "return : FAIL",
  929.     "return : RETURN nexpr",
  930.     "return : SUSPEND nexpr",
  931.     "return : SUSPEND expr DO expr",
  932.     "if : IF expr THEN expr",
  933.     "if : IF expr THEN expr ELSE expr",
  934.     "case : CASE expr OF LBRACE caselist RBRACE",
  935.     "caselist : cclause",
  936.     "caselist : caselist SEMICOL cclause",
  937.     "cclause : DEFAULT COLON expr",
  938.     "cclause : expr COLON expr",
  939.     "exprlist : nexpr",
  940.     "exprlist : exprlist COMMA nexpr",
  941.     "pdcolist : nexpr",
  942.     "pdcolist : pdcolist COMMA nexpr",
  943.     "literal : INTLIT",
  944.     "literal : REALLIT",
  945.     "literal : STRINGLIT",
  946.     "literal : CSETLIT",
  947.     "section : expr11 LBRACK expr sectop expr RBRACK",
  948.     "sectop : COLON",
  949.     "sectop : PCOLON",
  950.     "sectop : MCOLON",
  951.     "compound : nexpr",
  952.     "compound : nexpr SEMICOL compound",
  953.     "program : error decls EOFX",
  954.     "proc : prochead error procbody END",
  955.     "expr : error",
  956. };
  957. #endif
  958. #line 1 "/usr/lib/yaccpar"
  959. /*    @(#)yaccpar 1.10 89/04/04 SMI; from S5R3 1.10    */
  960.  
  961. /*
  962. ** Skeleton parser driver for yacc output
  963. */
  964.  
  965. /*
  966. ** yacc user known macros and defines
  967. */
  968. #define YYERROR        goto yyerrlab
  969. #define YYACCEPT    { free((char *)yys); free((char *)yyv); return(0); }
  970. #define YYABORT        { free((char *)yys); free((char *)yyv); return(1); }
  971. #define YYBACKUP( newtoken, newvalue )\
  972. {\
  973.     if ( yychar >= 0 || ( yyr2[ yytmp ] >> 1 ) != 1 )\
  974.     {\
  975.         tsyserr("parser: syntax error - cannot backup" );\
  976.         goto yyerrlab;\
  977.     }\
  978.     yychar = newtoken;\
  979.     yystate = *yyps;\
  980.     yylval = newvalue;\
  981.     goto yynewstate;\
  982. }
  983. #define YYRECOVERING()    (!!yyerrflag)
  984. #ifndef YYDEBUG
  985. #    define YYDEBUG    1    /* make debugging available */
  986. #endif
  987.  
  988. /*
  989. ** user known globals
  990. */
  991. int yydebug;            /* set to 1 to get debugging */
  992.  
  993. /*
  994. ** driver internal defines
  995. */
  996. #define YYFLAG        (-1000)
  997.  
  998. /*
  999. ** static variables used by the parser
  1000. */
  1001. static YYSTYPE *yyv;            /* value stack */
  1002. static int *yys;            /* state stack */
  1003.  
  1004. static YYSTYPE *yypv;            /* top of value stack */
  1005. static int *yyps;            /* top of state stack */
  1006.  
  1007. static int yystate;            /* current state */
  1008. static int yytmp;            /* extra var (lasts between blocks) */
  1009.  
  1010. int yynerrs;            /* number of errors */
  1011.  
  1012. int yyerrflag;            /* error recovery flag */
  1013. int yychar;            /* current input token number */
  1014.  
  1015.  
  1016. /*
  1017. ** yyparse - return 0 if worked, 1 if syntax error not recovered from
  1018. */
  1019. int
  1020. yyparse()
  1021. {
  1022.     register YYSTYPE *yypvt;    /* top of value stack for $vars */
  1023.     unsigned yymaxdepth = YYMAXDEPTH;
  1024.  
  1025.     /*
  1026.     ** Initialize externals - yyparse may be called more than once
  1027.     */
  1028.     yyv = (YYSTYPE*)malloc(yymaxdepth*sizeof(YYSTYPE));
  1029.     yys = (int*)malloc(yymaxdepth*sizeof(int));
  1030.     if (!yyv || !yys)
  1031.     {
  1032.         tsyserr("parser: out of memory" );
  1033.         return(1);
  1034.     }
  1035.     yypv = &yyv[-1];
  1036.     yyps = &yys[-1];
  1037.     yystate = 0;
  1038.     yytmp = 0;
  1039.     yynerrs = 0;
  1040.     yyerrflag = 0;
  1041.     yychar = -1;
  1042.  
  1043.     goto yystack;
  1044.     {
  1045.         register YYSTYPE *yy_pv;    /* top of value stack */
  1046.         register int *yy_ps;        /* top of state stack */
  1047.         register int yy_state;        /* current state */
  1048.         register int  yy_n;        /* internal state number info */
  1049.  
  1050.         /*
  1051.         ** get globals into registers.
  1052.         ** branch to here only if YYBACKUP was called.
  1053.         */
  1054.     yynewstate:
  1055.         yy_pv = yypv;
  1056.         yy_ps = yyps;
  1057.         yy_state = yystate;
  1058.         goto yy_newstate;
  1059.  
  1060.         /*
  1061.         ** get globals into registers.
  1062.         ** either we just started, or we just finished a reduction
  1063.         */
  1064.     yystack:
  1065.         yy_pv = yypv;
  1066.         yy_ps = yyps;
  1067.         yy_state = yystate;
  1068.  
  1069.         /*
  1070.         ** top of for (;;) loop while no reductions done
  1071.         */
  1072.     yy_stack:
  1073.         /*
  1074.         ** put a state and value onto the stacks
  1075.         */
  1076. #if YYDEBUG
  1077.         /*
  1078.         ** if debugging, look up token value in list of value vs.
  1079.         ** name pairs.  0 and negative (-1) are special values.
  1080.         ** Note: linear search is used since time is not a real
  1081.         ** consideration while debugging.
  1082.         */
  1083.         if ( yydebug )
  1084.         {
  1085.             register int yy_i;
  1086.  
  1087.             (void)printf( "State %d, token ", yy_state );
  1088.             if ( yychar == 0 )
  1089.                 (void)printf( "end-of-file\n" );
  1090.             else if ( yychar < 0 )
  1091.                 (void)printf( "-none-\n" );
  1092.             else
  1093.             {
  1094.                 for ( yy_i = 0; yytoks[yy_i].t_val >= 0;
  1095.                     yy_i++ )
  1096.                 {
  1097.                     if ( yytoks[yy_i].t_val == yychar )
  1098.                         break;
  1099.                 }
  1100.                 (void)printf( "%s\n", yytoks[yy_i].t_name );
  1101.             }
  1102.         }
  1103. #endif
  1104.         if ( ++yy_ps >= &yys[ yymaxdepth ] )    /* room on stack? */
  1105.         {
  1106.             /*
  1107.             ** reallocate and recover.  Note that pointers
  1108.             ** have to be reset, or bad things will happen
  1109.             */
  1110.             int yyps_index = (yy_ps - yys);
  1111.             int yypv_index = (yy_pv - yyv);
  1112.             int yypvt_index = (yypvt - yyv);
  1113.             yymaxdepth += YYMAXDEPTH;
  1114.             yyv = (YYSTYPE*)realloc((char*)yyv,
  1115.                 yymaxdepth * sizeof(YYSTYPE));
  1116.             yys = (int*)realloc((char*)yys,
  1117.                 yymaxdepth * sizeof(int));
  1118.             if (!yyv || !yys)
  1119.             {
  1120.                 tsyserr("parse stack overflow" );
  1121.                 return(1);
  1122.             }
  1123.             yy_ps = yys + yyps_index;
  1124.             yy_pv = yyv + yypv_index;
  1125.             yypvt = yyv + yypvt_index;
  1126.         }
  1127.         *yy_ps = yy_state;
  1128.         *++yy_pv = yyval;
  1129.  
  1130.         /*
  1131.         ** we have a new state - find out what to do
  1132.         */
  1133.     yy_newstate:
  1134.         if ( ( yy_n = yypact[ yy_state ] ) <= YYFLAG )
  1135.             goto yydefault;        /* simple state */
  1136. #if YYDEBUG
  1137.         /*
  1138.         ** if debugging, need to mark whether new token grabbed
  1139.         */
  1140.         yytmp = yychar < 0;
  1141. #endif
  1142.         if ( ( yychar < 0 ) && ( ( yychar = yylex() ) < 0 ) )
  1143.             yychar = 0;        /* reached EOF */
  1144. #if YYDEBUG
  1145.         if ( yydebug && yytmp )
  1146.         {
  1147.             register int yy_i;
  1148.  
  1149.             (void)printf( "Received token " );
  1150.             if ( yychar == 0 )
  1151.                 (void)printf( "end-of-file\n" );
  1152.             else if ( yychar < 0 )
  1153.                 (void)printf( "-none-\n" );
  1154.             else
  1155.             {
  1156.                 for ( yy_i = 0; yytoks[yy_i].t_val >= 0;
  1157.                     yy_i++ )
  1158.                 {
  1159.                     if ( yytoks[yy_i].t_val == yychar )
  1160.                         break;
  1161.                 }
  1162.                 (void)printf( "%s\n", yytoks[yy_i].t_name );
  1163.             }
  1164.         }
  1165. #endif
  1166.         if ( ( ( yy_n += yychar ) < 0 ) || ( yy_n >= YYLAST ) )
  1167.             goto yydefault;
  1168.         if ( yychk[ yy_n = yyact[ yy_n ] ] == yychar )    /*valid shift*/
  1169.         {
  1170.             yychar = -1;
  1171.             yyval = yylval;
  1172.             yy_state = yy_n;
  1173.             if ( yyerrflag > 0 )
  1174.                 yyerrflag--;
  1175.             goto yy_stack;
  1176.         }
  1177.  
  1178.     yydefault:
  1179.         if ( ( yy_n = yydef[ yy_state ] ) == -2 )
  1180.         {
  1181. #if YYDEBUG
  1182.             yytmp = yychar < 0;
  1183. #endif
  1184.             if ( ( yychar < 0 ) && ( ( yychar = yylex() ) < 0 ) )
  1185.                 yychar = 0;        /* reached EOF */
  1186. #if YYDEBUG
  1187.             if ( yydebug && yytmp )
  1188.             {
  1189.                 register int yy_i;
  1190.  
  1191.                 (void)printf( "Received token " );
  1192.                 if ( yychar == 0 )
  1193.                     (void)printf( "end-of-file\n" );
  1194.                 else if ( yychar < 0 )
  1195.                     (void)printf( "-none-\n" );
  1196.                 else
  1197.                 {
  1198.                     for ( yy_i = 0;
  1199.                         yytoks[yy_i].t_val >= 0;
  1200.                         yy_i++ )
  1201.                     {
  1202.                         if ( yytoks[yy_i].t_val
  1203.                             == yychar )
  1204.                         {
  1205.                             break;
  1206.                         }
  1207.                     }
  1208.                     (void)printf( "%s\n", yytoks[yy_i].t_name );
  1209.                 }
  1210.             }
  1211. #endif
  1212.             /*
  1213.             ** look through exception table
  1214.             */
  1215.             {
  1216.                 register int *yyxi = yyexca;
  1217.  
  1218.                 while ( ( *yyxi != -1 ) ||
  1219.                     ( yyxi[1] != yy_state ) )
  1220.                 {
  1221.                     yyxi += 2;
  1222.                 }
  1223.                 while ( ( *(yyxi += 2) >= 0 ) &&
  1224.                     ( *yyxi != yychar ) )
  1225.                     ;
  1226.                 if ( ( yy_n = yyxi[1] ) < 0 )
  1227.                     YYACCEPT;
  1228.             }
  1229.         }
  1230.  
  1231.         /*
  1232.         ** check for syntax error
  1233.         */
  1234.         if ( yy_n == 0 )    /* have an error */
  1235.         {
  1236.             /* no worry about speed here! */
  1237.             switch ( yyerrflag )
  1238.             {
  1239.             case 0:        /* new error */
  1240.                 yyerror(yychar, yylval, yy_state );
  1241.                 goto skip_init;
  1242.             yyerrlab:
  1243.                 /*
  1244.                 ** get globals into registers.
  1245.                 ** we have a user generated syntax type error
  1246.                 */
  1247.                 yy_pv = yypv;
  1248.                 yy_ps = yyps;
  1249.                 yy_state = yystate;
  1250.                 yynerrs++;
  1251.             skip_init:
  1252.             case 1:
  1253.             case 2:        /* incompletely recovered error */
  1254.                     /* try again... */
  1255.                 yyerrflag = 3;
  1256.                 /*
  1257.                 ** find state where "error" is a legal
  1258.                 ** shift action
  1259.                 */
  1260.                 while ( yy_ps >= yys )
  1261.                 {
  1262.                     yy_n = yypact[ *yy_ps ] + YYERRCODE;
  1263.                     if ( yy_n >= 0 && yy_n < YYLAST &&
  1264.                         yychk[yyact[yy_n]] == YYERRCODE)                    {
  1265.                         /*
  1266.                         ** simulate shift of "error"
  1267.                         */
  1268.                         yy_state = yyact[ yy_n ];
  1269.                         goto yy_stack;
  1270.                     }
  1271.                     /*
  1272.                     ** current state has no shift on
  1273.                     ** "error", pop stack
  1274.                     */
  1275. #if YYDEBUG
  1276. #    define _POP_ "Error recovery pops state %d, uncovers state %d\n"
  1277.                     if ( yydebug )
  1278.                         (void)printf( _POP_, *yy_ps,
  1279.                             yy_ps[-1] );
  1280. #    undef _POP_
  1281. #endif
  1282.                     yy_ps--;
  1283.                     yy_pv--;
  1284.                 }
  1285.                 /*
  1286.                 ** there is no state on stack with "error" as
  1287.                 ** a valid shift.  give up.
  1288.                 */
  1289.                 YYABORT;
  1290.             case 3:        /* no shift yet; eat a token */
  1291. #if YYDEBUG
  1292.                 /*
  1293.                 ** if debugging, look up token in list of
  1294.                 ** pairs.  0 and negative shouldn't occur,
  1295.                 ** but since timing doesn't matter when
  1296.                 ** debugging, it doesn't hurt to leave the
  1297.                 ** tests here.
  1298.                 */
  1299.                 if ( yydebug )
  1300.                 {
  1301.                     register int yy_i;
  1302.  
  1303.                     (void)printf( "Error recovery discards " );
  1304.                     if ( yychar == 0 )
  1305.                         (void)printf( "token end-of-file\n" );
  1306.                     else if ( yychar < 0 )
  1307.                         (void)printf( "token -none-\n" );
  1308.                     else
  1309.                     {
  1310.                         for ( yy_i = 0;
  1311.                             yytoks[yy_i].t_val >= 0;
  1312.                             yy_i++ )
  1313.                         {
  1314.                             if ( yytoks[yy_i].t_val
  1315.                                 == yychar )
  1316.                             {
  1317.                                 break;
  1318.                             }
  1319.                         }
  1320.                         (void)printf( "token %s\n",
  1321.                             yytoks[yy_i].t_name );
  1322.                     }
  1323.                 }
  1324. #endif
  1325.                 if ( yychar == 0 )    /* reached EOF. quit */
  1326.                     YYABORT;
  1327.                 yychar = -1;
  1328.                 goto yy_newstate;
  1329.             }
  1330.         }/* end if ( yy_n == 0 ) */
  1331.         /*
  1332.         ** reduction by production yy_n
  1333.         ** put stack tops, etc. so things right after switch
  1334.         */
  1335. #if YYDEBUG
  1336.         /*
  1337.         ** if debugging, print the string that is the user's
  1338.         ** specification of the reduction which is just about
  1339.         ** to be done.
  1340.         */
  1341.         if ( yydebug )
  1342.             (void)printf( "Reduce by (%d) \"%s\"\n",
  1343.                 yy_n, yyreds[ yy_n ] );
  1344. #endif
  1345.         yytmp = yy_n;            /* value to switch over */
  1346.         yypvt = yy_pv;            /* $vars top of value stack */
  1347.         /*
  1348.         ** Look in goto table for next state
  1349.         ** Sorry about using yy_state here as temporary
  1350.         ** register variable, but why not, if it works...
  1351.         ** If yyr2[ yy_n ] doesn't have the low order bit
  1352.         ** set, then there is no action to be done for
  1353.         ** this reduction.  So, no saving & unsaving of
  1354.         ** registers done.  The only difference between the
  1355.         ** code just after the if and the body of the if is
  1356.         ** the goto yy_stack in the body.  This way the test
  1357.         ** can be made before the choice of what to do is needed.
  1358.         */
  1359.         {
  1360.             /* length of production doubled with extra bit */
  1361.             register int yy_len = yyr2[ yy_n ];
  1362.  
  1363.             if ( !( yy_len & 01 ) )
  1364.             {
  1365.                 yy_len >>= 1;
  1366.                 yyval = ( yy_pv -= yy_len )[1];    /* $$ = $1 */
  1367.                 yy_state = yypgo[ yy_n = yyr1[ yy_n ] ] +
  1368.                     *( yy_ps -= yy_len ) + 1;
  1369.                 if ( yy_state >= YYLAST ||
  1370.                     yychk[ yy_state =
  1371.                     yyact[ yy_state ] ] != -yy_n )
  1372.                 {
  1373.                     yy_state = yyact[ yypgo[ yy_n ] ];
  1374.                 }
  1375.                 goto yy_stack;
  1376.             }
  1377.             yy_len >>= 1;
  1378.             yyval = ( yy_pv -= yy_len )[1];    /* $$ = $1 */
  1379.             yy_state = yypgo[ yy_n = yyr1[ yy_n ] ] +
  1380.                 *( yy_ps -= yy_len ) + 1;
  1381.             if ( yy_state >= YYLAST ||
  1382.                 yychk[ yy_state = yyact[ yy_state ] ] != -yy_n )
  1383.             {
  1384.                 yy_state = yyact[ yypgo[ yy_n ] ];
  1385.             }
  1386.         }
  1387.                     /* save until reenter driver code */
  1388.         yystate = yy_state;
  1389.         yyps = yy_ps;
  1390.         yypv = yy_pv;
  1391.     }
  1392.     /*
  1393.     ** code supplied by user is placed in this switch
  1394.     */
  1395.     switch( yytmp )
  1396.     {
  1397.         
  1398. case 1:
  1399. # line 160 "expanded.g"
  1400. {gout(globfile) ;} break;
  1401. case 4:
  1402. # line 165 "expanded.g"
  1403. {if (!nocode)    rout(globfile, Str0(yypvt[-0]));    nocode = 0;    loc_init() ;} break;
  1404. case 5:
  1405. # line 166 "expanded.g"
  1406. {if (!nocode)    codegen(yypvt[-0]);    nocode = 0;    treeinit();    loc_init() ;} break;
  1407. case 6:
  1408. # line 167 "expanded.g"
  1409. {;} break;
  1410. case 7:
  1411. # line 168 "expanded.g"
  1412. {;} break;
  1413. case 15:
  1414. # line 181 "expanded.g"
  1415. {;} break;
  1416. case 17:
  1417. # line 184 "expanded.g"
  1418. {;} break;
  1419. case 18:
  1420. # line 186 "expanded.g"
  1421. {addlfile(Str0(yypvt[-0])) ;} break;
  1422. case 19:
  1423. # line 187 "expanded.g"
  1424. {addlfile(Str0(yypvt[-0])) ;} break;
  1425. case 20:
  1426. # line 189 "expanded.g"
  1427. {idflag = F_Global ;} break;
  1428. case 21:
  1429. # line 189 "expanded.g"
  1430. {;} break;
  1431. case 22:
  1432. # line 191 "expanded.g"
  1433. {idflag = F_Argument ;} break;
  1434. case 23:
  1435. # line 191 "expanded.g"
  1436. {
  1437.         install(Str0(yypvt[-3]),F_Record|F_Global,id_cnt); yyval = yypvt[-3] ;
  1438.         } break;
  1439. case 24:
  1440. # line 195 "expanded.g"
  1441. {id_cnt = 0 ;} break;
  1442. case 25:
  1443. # line 196 "expanded.g"
  1444. {;} break;
  1445. case 26:
  1446. # line 198 "expanded.g"
  1447. {
  1448.         yyval = tree6(N_Proc,yypvt[-5],yypvt[-5],yypvt[-2],yypvt[-1],yypvt[-0]) ;
  1449.         } break;
  1450. case 27:
  1451. # line 202 "expanded.g"
  1452. {idflag = F_Argument ;} break;
  1453. case 28:
  1454. # line 202 "expanded.g"
  1455. {
  1456.         yyval = yypvt[-3];    install(Str0(yypvt[-3]),F_Proc|F_Global,id_cnt) ;
  1457.         } break;
  1458. case 29:
  1459. # line 206 "expanded.g"
  1460. {id_cnt = 0 ;} break;
  1461. case 30:
  1462. # line 207 "expanded.g"
  1463. {;} break;
  1464. case 31:
  1465. # line 208 "expanded.g"
  1466. {id_cnt = -id_cnt ;} break;
  1467. case 32:
  1468. # line 211 "expanded.g"
  1469. {
  1470.         install(Str0(yypvt[-0]),idflag,0);    id_cnt = 1 ;
  1471.         } break;
  1472. case 33:
  1473. # line 214 "expanded.g"
  1474. {
  1475.         install(Str0(yypvt[-0]),idflag,0);    ++id_cnt ;
  1476.         } break;
  1477. case 34:
  1478. # line 218 "expanded.g"
  1479. {;} break;
  1480. case 35:
  1481. # line 219 "expanded.g"
  1482. {;} break;
  1483. case 36:
  1484. # line 221 "expanded.g"
  1485. {idflag = F_Dynamic ;} break;
  1486. case 37:
  1487. # line 222 "expanded.g"
  1488. {idflag = F_Static ;} break;
  1489. case 38:
  1490. # line 224 "expanded.g"
  1491. {yyval = tree1(N_Empty)  ;} break;
  1492. case 39:
  1493. # line 225 "expanded.g"
  1494. {yyval = yypvt[-1] ;} break;
  1495. case 40:
  1496. # line 227 "expanded.g"
  1497. {yyval = tree1(N_Empty)  ;} break;
  1498. case 41:
  1499. # line 228 "expanded.g"
  1500. {yyval = tree4(N_Slist,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1501. case 42:
  1502. # line 230 "expanded.g"
  1503. {yyval = tree1(N_Empty)  ;} break;
  1504. case 45:
  1505. # line 234 "expanded.g"
  1506. {yyval = tree5(N_Conj,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1507. case 47:
  1508. # line 237 "expanded.g"
  1509. {yyval = tree5(N_Scan,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1510. case 49:
  1511. # line 240 "expanded.g"
  1512. case 50:
  1513. # line 241 "expanded.g"
  1514. case 51:
  1515. # line 242 "expanded.g"
  1516. case 52:
  1517. # line 243 "expanded.g"
  1518. {yyval = tree5(N_Binop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1519. case 53:
  1520. # line 244 "expanded.g"
  1521. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1522. case 54:
  1523. # line 245 "expanded.g"
  1524. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1525. case 55:
  1526. # line 246 "expanded.g"
  1527. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1528. case 56:
  1529. # line 247 "expanded.g"
  1530. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1531. case 57:
  1532. # line 248 "expanded.g"
  1533. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1534. case 58:
  1535. # line 249 "expanded.g"
  1536. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1537. case 59:
  1538. # line 250 "expanded.g"
  1539. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1540. case 60:
  1541. # line 251 "expanded.g"
  1542. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1543. case 61:
  1544. # line 252 "expanded.g"
  1545. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1546. case 62:
  1547. # line 253 "expanded.g"
  1548. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1549. case 63:
  1550. # line 254 "expanded.g"
  1551. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1552. case 64:
  1553. # line 255 "expanded.g"
  1554. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1555. case 65:
  1556. # line 256 "expanded.g"
  1557. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1558. case 66:
  1559. # line 257 "expanded.g"
  1560. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1561. case 67:
  1562. # line 258 "expanded.g"
  1563. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1564. case 68:
  1565. # line 259 "expanded.g"
  1566. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1567. case 69:
  1568. # line 260 "expanded.g"
  1569. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1570. case 70:
  1571. # line 261 "expanded.g"
  1572. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1573. case 71:
  1574. # line 262 "expanded.g"
  1575. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1576. case 72:
  1577. # line 263 "expanded.g"
  1578. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1579. case 73:
  1580. # line 264 "expanded.g"
  1581. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1582. case 74:
  1583. # line 265 "expanded.g"
  1584. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1585. case 75:
  1586. # line 266 "expanded.g"
  1587. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1588. case 76:
  1589. # line 267 "expanded.g"
  1590. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1591. case 77:
  1592. # line 268 "expanded.g"
  1593. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1594. case 78:
  1595. # line 269 "expanded.g"
  1596. {yyval = tree5(N_Scan,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1597. case 79:
  1598. # line 270 "expanded.g"
  1599. {yyval = tree5(N_Conj,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1600. case 80:
  1601. # line 271 "expanded.g"
  1602. {yyval = tree5(N_Activat,yypvt[-1],yypvt[-1],yypvt[-0],yypvt[-2]) ;} break;
  1603. case 82:
  1604. # line 274 "expanded.g"
  1605. {yyval = tree4(N_To,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1606. case 83:
  1607. # line 275 "expanded.g"
  1608. {yyval = tree5(N_ToBy,yypvt[-3],yypvt[-4],yypvt[-2],yypvt[-0]) ;} break;
  1609. case 85:
  1610. # line 278 "expanded.g"
  1611. {yyval = tree4(N_Alt,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1612. case 87:
  1613. # line 281 "expanded.g"
  1614. case 88:
  1615. # line 282 "expanded.g"
  1616. case 89:
  1617. # line 283 "expanded.g"
  1618. case 90:
  1619. # line 284 "expanded.g"
  1620. case 91:
  1621. # line 285 "expanded.g"
  1622. case 92:
  1623. # line 286 "expanded.g"
  1624. case 93:
  1625. # line 287 "expanded.g"
  1626. case 94:
  1627. # line 288 "expanded.g"
  1628. case 95:
  1629. # line 289 "expanded.g"
  1630. case 96:
  1631. # line 290 "expanded.g"
  1632. case 97:
  1633. # line 291 "expanded.g"
  1634. case 98:
  1635. # line 292 "expanded.g"
  1636. case 99:
  1637. # line 293 "expanded.g"
  1638. case 100:
  1639. # line 294 "expanded.g"
  1640. case 102:
  1641. # line 297 "expanded.g"
  1642. case 103:
  1643. # line 298 "expanded.g"
  1644. case 105:
  1645. # line 301 "expanded.g"
  1646. case 106:
  1647. # line 302 "expanded.g"
  1648. case 107:
  1649. # line 303 "expanded.g"
  1650. case 108:
  1651. # line 304 "expanded.g"
  1652. case 110:
  1653. # line 307 "expanded.g"
  1654. case 111:
  1655. # line 308 "expanded.g"
  1656. case 112:
  1657. # line 309 "expanded.g"
  1658. case 113:
  1659. # line 310 "expanded.g"
  1660. case 115:
  1661. # line 313 "expanded.g"
  1662. {yyval = tree5(N_Binop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1663. case 117:
  1664. # line 316 "expanded.g"
  1665. {yyval = tree4(N_Limit,yypvt[-2],yypvt[-2],yypvt[-0]) ;} break;
  1666. case 118:
  1667. # line 317 "expanded.g"
  1668. {yyval = tree5(N_Activat,yypvt[-1],yypvt[-1],yypvt[-0],yypvt[-2]) ;} break;
  1669. case 119:
  1670. # line 318 "expanded.g"
  1671. {yyval = tree4(N_Apply,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1672. case 121:
  1673. # line 321 "expanded.g"
  1674. {yyval = tree5(N_Activat,yypvt[-1],yypvt[-1],yypvt[-0],tree1(N_Empty) ) ;} break;
  1675. case 122:
  1676. # line 322 "expanded.g"
  1677. {yyval = tree3(N_Not,yypvt[-0],yypvt[-0]) ;} break;
  1678. case 123:
  1679. # line 323 "expanded.g"
  1680. {yyval = tree3(N_Bar,yypvt[-0],yypvt[-0]) ;} break;
  1681. case 124:
  1682. # line 324 "expanded.g"
  1683. {yyval = tree3(N_Bar,yypvt[-0],yypvt[-0]) ;} break;
  1684. case 125:
  1685. # line 325 "expanded.g"
  1686. {yyval = tree3(N_Bar,yypvt[-0],yypvt[-0]) ;} break;
  1687. case 126:
  1688. # line 326 "expanded.g"
  1689. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]) ;} break;
  1690. case 127:
  1691. # line 327 "expanded.g"
  1692. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]) ;} break;
  1693. case 128:
  1694. # line 328 "expanded.g"
  1695. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]) ;} break;
  1696. case 129:
  1697. # line 329 "expanded.g"
  1698. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]) ;} break;
  1699. case 130:
  1700. # line 330 "expanded.g"
  1701. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]) ;} break;
  1702. case 131:
  1703. # line 331 "expanded.g"
  1704. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]) ;} break;
  1705. case 132:
  1706. # line 332 "expanded.g"
  1707. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]) ;} break;
  1708. case 133:
  1709. # line 333 "expanded.g"
  1710. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]) ;} break;
  1711. case 134:
  1712. # line 334 "expanded.g"
  1713. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]) ;} break;
  1714. case 135:
  1715. # line 335 "expanded.g"
  1716. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]) ;} break;
  1717. case 136:
  1718. # line 336 "expanded.g"
  1719. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]) ;} break;
  1720. case 137:
  1721. # line 337 "expanded.g"
  1722. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]) ;} break;
  1723. case 138:
  1724. # line 338 "expanded.g"
  1725. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]) ;} break;
  1726. case 139:
  1727. # line 339 "expanded.g"
  1728. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]) ;} break;
  1729. case 140:
  1730. # line 340 "expanded.g"
  1731. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]) ;} break;
  1732. case 141:
  1733. # line 341 "expanded.g"
  1734. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]) ;} break;
  1735. case 142:
  1736. # line 342 "expanded.g"
  1737. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]) ;} break;
  1738. case 143:
  1739. # line 343 "expanded.g"
  1740. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]) ;} break;
  1741. case 144:
  1742. # line 344 "expanded.g"
  1743. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]) ;} break;
  1744. case 154:
  1745. # line 354 "expanded.g"
  1746. {yyval = tree3(N_Create,yypvt[-1],yypvt[-0]) ;} break;
  1747. case 155:
  1748. # line 355 "expanded.g"
  1749. {Val0(yypvt[-0]) = putloc(Str0(yypvt[-0]),0) ;} break;
  1750. case 156:
  1751. # line 356 "expanded.g"
  1752. {yyval = tree2(N_Next,yypvt[-0]) ;} break;
  1753. case 157:
  1754. # line 357 "expanded.g"
  1755. {yyval = tree3(N_Break,yypvt[-1],yypvt[-0]) ;} break;
  1756. case 158:
  1757. # line 358 "expanded.g"
  1758. {if ((yypvt[-1])->n_type == N_Elist) yyval = tree4(N_Invok,yypvt[-2],tree1(N_Empty) ,yypvt[-1]); else yyval = yypvt[-1] ;} break;
  1759. case 159:
  1760. # line 359 "expanded.g"
  1761. {yyval = yypvt[-1] ;} break;
  1762. case 160:
  1763. # line 360 "expanded.g"
  1764. {yyval = tree3(N_List,yypvt[-2],yypvt[-1]) ;} break;
  1765. case 161:
  1766. # line 361 "expanded.g"
  1767. {yyval = tree5(N_Binop,yypvt[-2],yypvt[-2],yypvt[-3],yypvt[-1]) ;} break;
  1768. case 162:
  1769. # line 362 "expanded.g"
  1770. {yyval = tree4(N_Invok,yypvt[-1],yypvt[-2],    tree3(N_List,yypvt[-1],tree1(N_Empty) )) ;} break;
  1771. case 163:
  1772. # line 363 "expanded.g"
  1773. {yyval = tree4(N_Invok,yypvt[-2],yypvt[-3],tree3(N_List,yypvt[-2],yypvt[-1])) ;} break;
  1774. case 164:
  1775. # line 367 "expanded.g"
  1776. {yyval = tree4(N_Invok,yypvt[-2],yypvt[-3],yypvt[-1]) ;} break;
  1777. case 165:
  1778. # line 368 "expanded.g"
  1779. {yyval = tree4(N_Field,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1780. case 166:
  1781. # line 369 "expanded.g"
  1782. {yyval = int_leaf(N_Key,yypvt[-1],K_FAIL) ;} break;
  1783. case 167:
  1784. # line 370 "expanded.g"
  1785. {if ((key_num = klookup(Str0(yypvt[-0]))) == 0)    tfatal("invalid keyword",Str0(yypvt[-0]));    yyval = int_leaf(N_Key,yypvt[-1],key_num) ;} break;
  1786. case 168:
  1787. # line 372 "expanded.g"
  1788. {yyval = tree5(N_Loop,yypvt[-1],yypvt[-1],yypvt[-0],tree1(N_Empty) ) ;} break;
  1789. case 169:
  1790. # line 373 "expanded.g"
  1791. {yyval = tree5(N_Loop,yypvt[-3],yypvt[-3],yypvt[-2],yypvt[-0]) ;} break;
  1792. case 170:
  1793. # line 375 "expanded.g"
  1794. {yyval = tree5(N_Loop,yypvt[-1],yypvt[-1],yypvt[-0],tree1(N_Empty) ) ;} break;
  1795. case 171:
  1796. # line 376 "expanded.g"
  1797. {yyval = tree5(N_Loop,yypvt[-3],yypvt[-3],yypvt[-2],yypvt[-0]) ;} break;
  1798. case 172:
  1799. # line 378 "expanded.g"
  1800. {yyval = tree5(N_Loop,yypvt[-1],yypvt[-1],yypvt[-0],tree1(N_Empty) ) ;} break;
  1801. case 173:
  1802. # line 379 "expanded.g"
  1803. {yyval = tree5(N_Loop,yypvt[-3],yypvt[-3],yypvt[-2],yypvt[-0]) ;} break;
  1804. case 174:
  1805. # line 381 "expanded.g"
  1806. {yyval = tree5(N_Loop,yypvt[-1],yypvt[-1],yypvt[-0],tree1(N_Empty) ) ;} break;
  1807. case 175:
  1808. # line 383 "expanded.g"
  1809. {yyval = tree4(N_Ret,yypvt[-0],yypvt[-0],tree1(N_Empty) ) ;} break;
  1810. case 176:
  1811. # line 384 "expanded.g"
  1812. {yyval = tree4(N_Ret,yypvt[-1],yypvt[-1],yypvt[-0]) ;} break;
  1813. case 177:
  1814. # line 385 "expanded.g"
  1815. {yyval = tree5(N_Loop,yypvt[-1],yypvt[-1],yypvt[-0],tree1(N_Empty) ) ;} break;
  1816. case 178:
  1817. # line 386 "expanded.g"
  1818. {yyval = tree5(N_Loop,yypvt[-3],yypvt[-3],yypvt[-2],yypvt[-0]) ;} break;
  1819. case 179:
  1820. # line 388 "expanded.g"
  1821. {yyval = tree5(N_If,yypvt[-3],yypvt[-2],yypvt[-0],tree1(N_Empty) ) ;} break;
  1822. case 180:
  1823. # line 389 "expanded.g"
  1824. {yyval = tree5(N_If,yypvt[-5],yypvt[-4],yypvt[-2],yypvt[-0]) ;} break;
  1825. case 181:
  1826. # line 391 "expanded.g"
  1827. {yyval = tree4(N_Case,yypvt[-5],yypvt[-4],yypvt[-1]) ;} break;
  1828. case 183:
  1829. # line 394 "expanded.g"
  1830. {yyval = tree4(N_Clist,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1831. case 184:
  1832. # line 396 "expanded.g"
  1833. {yyval = tree4(N_Ccls,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1834. case 185:
  1835. # line 397 "expanded.g"
  1836. {yyval = tree4(N_Ccls,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1837. case 187:
  1838. # line 400 "expanded.g"
  1839. {yyval = tree4(N_Elist,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1840. case 188:
  1841. # line 402 "expanded.g"
  1842. {
  1843.         yyval = tree3(N_Create,yypvt[-0],yypvt[-0]) ;
  1844.         } break;
  1845. case 189:
  1846. # line 405 "expanded.g"
  1847. {
  1848.         yyval = tree4(N_Elist,yypvt[-1],yypvt[-2],tree3(N_Create,yypvt[-1],yypvt[-0])) ;
  1849.         } break;
  1850. case 190:
  1851. # line 409 "expanded.g"
  1852. {Val0(yypvt[-0]) = putlit(Str0(yypvt[-0]),F_IntLit,0) ;} break;
  1853. case 191:
  1854. # line 410 "expanded.g"
  1855. {Val0(yypvt[-0]) = putlit(Str0(yypvt[-0]),F_RealLit,0) ;} break;
  1856. case 192:
  1857. # line 411 "expanded.g"
  1858. {Val0(yypvt[-0]) = putlit(Str0(yypvt[-0]),F_StrLit,(int)Val1(yypvt[-0])) ;} break;
  1859. case 193:
  1860. # line 412 "expanded.g"
  1861. {Val0(yypvt[-0]) = putlit(Str0(yypvt[-0]),F_CsetLit,(int)Val1(yypvt[-0])) ;} break;
  1862. case 194:
  1863. # line 414 "expanded.g"
  1864. {yyval = tree6(N_Sect,yypvt[-2],yypvt[-2],yypvt[-5],yypvt[-3],yypvt[-1]) ;} break;
  1865. case 195:
  1866. # line 416 "expanded.g"
  1867. {yyval = yypvt[-0] ;} break;
  1868. case 196:
  1869. # line 417 "expanded.g"
  1870. {yyval = yypvt[-0] ;} break;
  1871. case 197:
  1872. # line 418 "expanded.g"
  1873. {yyval = yypvt[-0] ;} break;
  1874. case 199:
  1875. # line 421 "expanded.g"
  1876. {yyval = tree4(N_Slist,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1877.     }
  1878.     goto yystack;        /* reset registers in driver code */
  1879. }
  1880.