# define CSETLIT 257
# define EOFX 258
# define IDENT 259
# define INTLIT 260
# define REALLIT 261
# define STRINGLIT 262
# define BREAK 263
# define BY 264
# define CASE 265
# define CREATE 266
# define DEFAULT 267
# define DO 268
# define ELSE 269
# define END 270
# define EVERY 271
# define FAIL 272
# define GLOBAL 273
# define IF 274
# define INITIAL 275
# define LINK 276
# define LOCAL 277
# define NEXT 278
# define NOT 279
# define OF 280
# define PROCEDURE 281
# define RECORD 282
# define REPEAT 283
# define RETURN 284
# define STATIC 285
# define SUSPEND 286
# define THEN 287
# define TO 288
# define UNTIL 289
# define WHILE 290
# define ASSIGN 291
# define AT 292
# define AUGACT 293
# define AUGAND 294
# define AUGEQ 295
# define AUGEQV 296
# define AUGGE 297
# define AUGGT 298
# define AUGLE 299
# define AUGLT 300
# define AUGNE 301
# define AUGNEQV 302
# define AUGSEQ 303
# define AUGSGE 304
# define AUGSGT 305
# define AUGSLE 306
# define AUGSLT 307
# define AUGSNE 308
# define BACKSLASH 309
# define BANG 310
# define BAR 311
# define CARET 312
# define CARETASGN 313
# define COLON 314
# define COMMA 315
# define CONCAT 316
# define CONCATASGN 317
# define CONJUNC 318
# define DIFF 319
# define DIFFASGN 320
# define DOT 321
# define EQUIV 322
# define INTER 323
# define INTERASGN 324
# define LBRACE 325
# define LBRACK 326
# define LCONCAT 327
# define LCONCATASGN 328
# define LEXEQ 329
# define LEXGE 330
# define LEXGT 331
# define LEXLE 332
# define LEXLT 333
# define LEXNE 334
# define LPAREN 335
# define MCOLON 336
# define MINUS 337
# define MINUSASGN 338
# define MOD 339
# define MODASGN 340
# define NOTEQUIV 341
# define NUMEQ 342
# define NUMGE 343
# define NUMGT 344
# define NUMLE 345
# define NUMLT 346
# define NUMNE 347
# define PCOLON 348
# define PLUS 349
# define PLUSASGN 350
# define QMARK 351
# define RBRACE 352
# define RBRACK 353
# define REVASSIGN 354
# define REVSWAP 355
# define RPAREN 356
# define SCANASGN 357
# define SEMICOL 358
# define SLASH 359
# define SLASHASGN 360
# define STAR 361
# define STARASGN 362
# define SWAP 363
# define TILDE 364
# define UNION 365
# define UNIONASGN 366

# line 138 "expanded.g"
#include "..\h\config.h"
#include "tproto.h"
#include "trans.h"
#include "tsym.h"
#include "tree.h"
#include "..\h\keyword.h"
#define YYSTYPE nodeptr
#define YYMAXDEPTH 500

extern int fncargs[];
int idflag;
int id_cnt;
int key_num;






#define yyclearin yychar = -1
#define yyerrok yyerrflag = 0
extern int yychar;
extern short yyerrflag;
#ifndef YYMAXDEPTH
#define YYMAXDEPTH 150
#endif
#ifndef YYSTYPE
#define YYSTYPE int
#endif
YYSTYPE yylval, yyval;
# define YYERRCODE 256

# line 431 "expanded.g"

short yyexca[] ={
-1, 1,
	0, -1,
	-2, 0,
-1, 18,
	358, 35,
	-2, 33,
-1, 103,
	358, 35,
	-2, 33,
-1, 109,
	358, 35,
	-2, 33,
	};
# define YYNPROD 196
# define YYLAST 784
short yyact[]={

  32,  88, 163,  78,  85,  86,  87,  80, 167,  93,
  77, 343, 110, 348, 220,  96,  89, 303,  92, 349,
 165,  18,  79,  45, 169, 109, 335,  97,  90, 314,
  91, 301, 162,  95,  94, 301,  44, 301, 302, 110,
 345, 319, 111, 325, 168, 177, 166, 342, 164, 175,
 174, 340, 317,  67,  50,  46,  55, 316, 222, 176,
  47, 102,  84,  51, 331,  49,  63,  56, 110,  82,
  83,  48, 326,  61, 346, 304, 300, 310,  62,  81,
 324,  58, 350, 160, 321,  66,  59, 220, 110, 309,
 306,  60, 351,  52, 161,  65, 110, 308, 336,  35,
 110, 305, 220,  54, 307,  53, 323, 100,  57,  64,
  32,  88, 206,  78,  85,  86,  87,  80, 322,  93,
  77, 110, 315,  17, 318,  96,  89, 110,  92, 108,
  99,  22,  79,  45,  23, 172, 210,  97,  90, 110,
  91, 311, 110,  95,  94, 299,  44, 110, 105, 209,
 106, 110, 171, 173, 101, 170,  26,   3, 107,  38,
  31,  21, 320,  67,  50,  46,  55,  98, 341,  25,
  47, 204,  84,  51,  28,  49,  63,  56,   2,  82,
  83,  48,  15,  61,  12, 296,  76,  13,  62,  81,
  75,  58,  14,  10,  74,  66,  59,  73,  72,  40,
  71,  60,  70,  52,  69,  65, 295,  68,  39,  43,
  41,  36,  34,  54, 104,  53,   4, 312,  57,  64,
  32,  88,  24,  78,  85,  86,  87,  80, 103,  93,
  77,  12,  27,  11,  13,  96,  89, 223,  92,  14,
  10,  16,  79,  45, 263, 264,  19,  97,  90,  20,
  91,   9,   8,  95,  94, 208,  44,   7,   6,   5,
   1,   0, 221,   0,   0,   0,   0,   0,   0,   0,
 224, 229, 226,  67,  50,  46,  55,   0, 225,   0,
  47,   0,  84,  51, 228,  49,  63,  56,   0,  82,
  83,  48,   0,  61,   0,   0,   0,   0,  62,  81,
   0,  58,   0,   0,   0,  66,  59,   0,   0,   0,
   0,  60,   0,  52,   0,  65,   0,   0,   0,   0,
 279, 280,   0,  54,   0,  53,   0,   0,  57,  64,
  88,   0,  78,  85,  86,  87,  80,   0,  93,  77,
   0,   0,   0,   0,  96,  89,   0,  92, 298,   0,
   0,  79,  45,   0,   0,   0,  97,  90,   0,  91,
   0,   0,  95,  94,   0,  44, 285, 286, 287, 288,
 289, 281, 282, 283, 284,   0,   0,   0,   0,   0,
   0,   0,  67,  50,  46,  55,  30,   0,   0,  47,
 313,  84,  51,   0,  49,  63,  56, 352,  82,  83,
  48,   0,  61,   0,   0,   0,   0,  62,  81,   0,
  58,   0,   0,   0,  66,  59, 328,   0, 337,   0,
  60,   0,  52,   0,  65,   0,   0,   0,   0,   0,
   0,   0,  54,   0,  53,   0, 144,  57,  64, 113,
   0, 143, 142, 127, 128, 129, 130, 131, 132, 133,
 134, 135, 136, 137, 138, 139, 140,  29,   0,   0,
   0, 126,   0,   0, 202, 116,   0,   0, 118,   0,
   0,   0, 123,   0,  33,   0, 117,   0, 213, 214,
 215, 216, 217, 218, 219,   0, 121,   0, 125,  37,
   0,   0, 227,   0,   0,   0,   0,   0, 120,   0,
   0, 145, 115, 114,   0, 141,   0,   0, 124,   0,
 122, 112, 158,   0, 119,   0,   0,  42,   0, 146,
 147, 148, 149, 150, 151,   0,   0,   0,   0,   0,
   0, 159, 152, 153, 154, 155, 156, 157, 203, 205,
 207, 205,   0,   0,   0,   0,   0,   0, 211, 212,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0, 294, 178, 179, 180, 181, 182, 183, 184, 185,
 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
 196, 197, 198, 199, 200, 201, 230, 231, 232, 233,
 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
 254, 255, 256, 257, 258, 259, 260, 261, 262,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0, 293, 297, 205,   0, 265, 266, 267, 268,
 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0, 290,
 291, 292, 329, 330,   0, 332, 333, 334,   0,   0,
   0,   0,   0,   0,   0,   0,   0, 338,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0, 344,   0,
   0,   0,   0,   0,   0,   0,   0, 347,   0,   0,
   0,   0,   0,   0,   0,   0, 344, 353, 354,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0, 327,
   0, 207,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0, 339 };
short yypact[]={

 -99,-1000, -42,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-235,-1000,-128,-1000, -89,-103,-1000, -36,-129,
-208,-1000,-1000,-1000,-105,-1000,-274,-127,-141,-333,
-250,-309,-1000,-1000, 148,-1000, 190,-233,-317,-315,
-1000,-157,-1000,-276,  73,  73,  73,  73,  73,  73,
  73,  73,  73,  73,  73,  73,  73,  73,  73,  73,
  73,  73,  73,  73,  73,  73,  73,  73,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000, -36,-1000,-1000,
 -36, -36, -36, -36,-123,-1000,-1000,-1000,-1000,-1000,
 -36, -36, -36, -36, -36, -36, -36, -36,-213,-1000,
-128,-277,-129, -36,-129, -36,-1000,-1000,-1000, -36,
  73,  73,  73,  73,  73,  73,  73,  73,  73,  73,
  73,  73,  73,  73,  73,  73,  73,  73,  73,  73,
  73,  73,  73,  73,  73,  73,  73,  73,  73,  73,
  73,  73,  73,  73,  73,  73,  73,  73,  73,  73,
  73,  73,  73,  73,  73,  73,  73,  73,  73,  73,
  73,  73,  73,  73,  73,  73,  73,  73,  73,  73,
  73,  73,  73,  73, -36,-146, -36,-114,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-250,-1000,-280,-1000,-314,-341,-278,-1000,
-1000,-1000,-1000,-167,-197,-176,-171,-179,-191,-250,
-118,-1000,-129,-327,-213,-148,-301,-306,-1000,-309,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-140,-1000,-233,-233,-233,-233,-233,
-233,-233,-233,-233,-233,-233,-233,-233,-233,-317,
-317,-315,-315,-315,-315,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-312,-230,-1000,-272,-1000,-284,-1000,
-1000, -36,-1000, -36,-1000, -36, -36,-261, -36, -36,
 -36,-1000,-330,-228,-1000,-1000,-1000,-1000,  73,-1000,
 -36,-1000,-1000,-1000,-1000, -36,-1000,-1000,-1000,-250,
-218,-256,-250,-250,-250,-1000,-313,-1000,-279,-1000,
 -36,-339,-1000,-232,-222,-1000,-1000,-250,-1000,-256,
 -36, -36,-1000,-250,-250 };
short yypgo[]={

   0, 260, 178, 259, 258, 257, 252, 251, 249, 161,
 246, 167, 241, 237, 233, 232, 228, 174, 222, 217,
 214, 386, 457, 160, 474, 212,  99, 211, 489, 159,
 208, 199, 210, 517, 209, 207, 204, 202, 200, 198,
 197, 194, 190, 186, 171, 112, 185, 168,  47, 162 };
short yyr1[]={

   0,   1,   2,   2,   3,   3,   3,   3,   7,   8,
   8,   9,   9,  10,   6,  12,   4,  13,  13,   5,
  18,  14,  19,  19,  19,  11,  11,  15,  15,  20,
  20,  16,  16,  17,  17,  22,  22,  21,  21,  23,
  23,  24,  24,  24,  24,  24,  24,  24,  24,  24,
  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,
  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,
  24,  24,  24,  24,  25,  25,  25,  26,  26,  27,
  27,  27,  27,  27,  27,  27,  27,  27,  27,  27,
  27,  27,  27,  27,  28,  28,  28,  29,  29,  29,
  29,  29,  30,  30,  30,  30,  30,  31,  31,  32,
  32,  32,  32,  33,  33,  33,  33,  33,  33,  33,
  33,  33,  33,  33,  33,  33,  33,  33,  33,  33,
  33,  33,  33,  33,  33,  33,  33,  33,  34,  34,
  34,  34,  34,  34,  34,  34,  34,  34,  34,  34,
  34,  34,  34,  34,  34,  34,  34,  34,  34,  34,
  34,  40,  40,  41,  41,  42,  42,  43,  37,  37,
  37,  37,  38,  38,  39,  47,  47,  48,  48,  44,
  44,  46,  46,  35,  35,  35,  35,  36,  49,  49,
  49,  45,  45,   1,   5,  21 };
short yyr2[]={

   0,   2,   0,   2,   1,   1,   1,   1,   2,   1,
   3,   1,   1,   0,   3,   0,   6,   0,   1,   6,
   0,   6,   0,   1,   3,   1,   3,   0,   4,   1,
   1,   0,   3,   0,   3,   0,   1,   1,   3,   1,
   3,   1,   3,   3,   3,   3,   3,   3,   3,   3,
   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,
   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,
   3,   3,   3,   3,   1,   3,   5,   1,   3,   1,
   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,
   3,   3,   3,   3,   1,   3,   3,   1,   3,   3,
   3,   3,   1,   3,   3,   3,   3,   1,   3,   1,
   3,   3,   3,   1,   2,   2,   2,   2,   2,   2,
   2,   2,   2,   2,   2,   2,   2,   2,   2,   2,
   2,   2,   2,   2,   2,   2,   2,   2,   1,   1,
   1,   1,   1,   1,   1,   1,   1,   2,   1,   1,
   2,   3,   3,   3,   4,   3,   4,   4,   3,   2,
   2,   2,   4,   2,   4,   2,   4,   2,   1,   2,
   2,   4,   4,   6,   6,   1,   3,   3,   3,   1,
   3,   1,   3,   1,   1,   1,   1,   6,   1,   1,
   1,   1,   3,   3,   4,   1 };
short yychk[]={

-1000,  -1,  -2, 256, 258,  -3,  -4,  -5,  -6,  -7,
 282, -14, 273, 276, 281,  -2, -12, 358, 256, -10,
  -8,  -9, 259, 262, -18, 258, 259, -15, -17, -22,
 -21, -23, 256, -24, -25, -26, -27, -28, -29, -30,
 -31, -32, -33, -34, 292, 279, 311, 316, 327, 321,
 310, 319, 349, 361, 359, 312, 323, 364, 337, 342,
 347, 329, 334, 322, 365, 351, 341, 309, -35, -36,
 -37, -38, -39, -40, -41, -42, -43, 266, 259, 278,
 263, 335, 325, 326, 318, 260, 261, 262, 257, 272,
 284, 286, 274, 265, 290, 289, 271, 283, -11, 259,
 315, 259, 335, -16, -20, 275, 277, 285, 270, 358,
 318, 351, 363, 291, 355, 354, 317, 328, 320, 366,
 350, 338, 362, 324, 360, 340, 313, 295, 296, 297,
 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
 308, 357, 294, 293, 288, 311, 329, 330, 331, 332,
 333, 334, 342, 343, 344, 345, 346, 347, 322, 341,
 316, 327, 349, 319, 365, 337, 361, 323, 359, 339,
 312, 309, 292, 310, 326, 325, 335, 321, -33, -33,
 -33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
 -33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
 -33, -33, -21, -22, -44, -22, -45, -22, -44, 272,
 259, -22, -22, -21, -21, -21, -21, -21, -21, -21,
 315,  -9, 335, -13, -11, -17, -11, -21, -17, -23,
 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
 -24, -24, -24, -26, -26, -28, -28, -28, -28, -28,
 -28, -28, -28, -28, -28, -28, -28, -28, -28, -29,
 -29, -30, -30, -30, -30, -31, -31, -31, -31, -31,
 -33, -33, -33, -22, -21, 352, -46, -22, -44, 259,
 356, 315, 352, 358, 353, 268, 287, 280, 268, 268,
 268, 259, -19, -11, 356, 270, 358, 358, 264, 353,
 -49, 314, 348, 336, 352, 315, 356, -22, -45, -21,
 -21, 325, -21, -21, -21, 356, 326, -26, -21, -22,
 269, -47, -48, 267, -21, 353, 353, -21, 352, 358,
 314, 314, -48, -21, -21 };
short yydef[]={

   2,  -2,   0,   2,   1,   3,   4,   5,   6,   7,
  15,   0,  13,   0,  20,   0,   0,  27,  -2,   0,
   8,   9,  11,  12,   0, 193,   0,  31,   0,   0,
  36,  37, 195,  39,  41,  74,  77,  79,  94,  97,
 102, 107, 109, 113,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0, 138, 139,
 140, 141, 142, 143, 144, 145, 146,   0, 148, 149,
  35,  35,  35,  35,   0, 183, 184, 185, 186, 168,
  35,  35,   0,   0,   0,   0,   0,   0,  14,  25,
   0,   0,  17,  -2,   0,   0,  29,  30, 194,  -2,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,  35,  35,  35,   0, 114, 115,
 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
 136, 137, 147, 150,   0, 179,   0, 191,   0, 159,
 160, 169, 170,  36,   0,   0, 161, 163, 165, 167,
   0,  10,  22,   0,  18,   0,   0,   0,  34,  38,
  40,  42,  43,  44,  45,  46,  47,  48,  49,  50,
  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,
  61,  62,  63,  64,  65,  66,  67,  68,  69,  70,
  71,  72,  73,  75,  78,  80,  81,  82,  83,  84,
  85,  86,  87,  88,  89,  90,  91,  92,  93,  95,
  96,  98,  99, 100, 101, 103, 104, 105, 106, 108,
 110, 111, 112,   0,  36, 155,   0, 181,   0, 158,
 151,  35, 152,  35, 153,   0,   0,   0,   0,   0,
   0,  26,   0,  23,  16,  19,  28,  32,   0, 154,
   0, 188, 189, 190, 156,  35, 157, 180, 192, 171,
 172,   0, 162, 164, 166,  21,   0,  76,   0, 182,
   0,   0, 175,   0,   0,  24, 187, 173, 174,   0,
   0,   0, 176, 177, 178 };
#ifndef lint
static char yaccpar_sccsid[] = "@(#)yaccpar	4.1	(Berkeley)	2/11/83";
#endif

# define YYFLAG -1000
# define YYERROR goto yyerrlab
# define YYACCEPT return(0)
# define YYABORT return(1)

/*	parser for yacc output	*/

#ifdef YYDEBUG
int yydebug = 0; /* 1 for debugging */
#endif
YYSTYPE yyv[YYMAXDEPTH]; /* where the values are stored */
int yychar = -1; /* current input token number */
int yynerrs = 0;  /* number of errors */
short yyerrflag = 0;  /* error recovery flag */

yyparse() {

	short yys[YYMAXDEPTH];
	short yyj, yym;
	register YYSTYPE *yypvt;
	register short yystate, *yyps, yyn;
	register YYSTYPE *yypv;
	register short *yyxi;

	yystate = 0;
	yychar = -1;
	yynerrs = 0;
	yyerrflag = 0;
	yyps= &yys[-1];
	yypv= &yyv[-1];

 yystack:    /* put a state and value onto the stack */

#ifdef YYDEBUG
	if( yydebug  ) printf( "state %d, char 0%o\n", yystate, yychar );
#endif
		if( ++yyps> &yys[YYMAXDEPTH] ) { tsyserr( "parse stack overflow" ); return(1); }
		*yyps = yystate;
		++yypv;
		*yypv = yyval;

 yynewstate:

	yyn = yypact[yystate];

	if( yyn<= YYFLAG ) goto yydefault; /* simple state */

	if( yychar<0 ) if( (yychar=yylex())<0 ) yychar=0;
	if( (yyn += yychar)<0 || yyn >= YYLAST ) goto yydefault;

	if( yychk[ yyn=yyact[ yyn ] ] == yychar ){ /* valid shift */
		yychar = -1;
		yyval = yylval;
		yystate = yyn;
		if( yyerrflag > 0 ) --yyerrflag;
		goto yystack;
		}

 yydefault:
	/* default state action */

	if( (yyn=yydef[yystate]) == -2 ) {
		if( yychar<0 ) if( (yychar=yylex())<0 ) yychar = 0;
		/* look through exception table */

		for( yyxi=yyexca; (*yyxi!= (-1)) || (yyxi[1]!=yystate) ; yyxi += 2 ) ; /* VOID */

		while( *(yyxi+=2) >= 0 ){
			if( *yyxi == yychar ) break;
			}
		if( (yyn = yyxi[1]) < 0 ) return(0);   /* accept */
		}

	if( yyn == 0 ){ /* error */
		/* error ... attempt to resume parsing */

		switch( yyerrflag ){

		case 0:   /* brand new error */

			yyerror( yychar, yylval, yystate );
		yyerrlab:
			++yynerrs;

		case 1:
		case 2: /* incompletely recovered error ... try again */

			yyerrflag = 3;

			/* find a state where "error" is a legal shift action */

			while ( yyps >= yys ) {
			   yyn = yypact[*yyps] + YYERRCODE;
			   if( yyn>= 0 && yyn < YYLAST && yychk[yyact[yyn]] == YYERRCODE ){
			      yystate = yyact[yyn];  /* simulate a shift of "error" */
			      goto yystack;
			      }
			   yyn = yypact[*yyps];

			   /* the current yyps has no shift onn "error", pop stack */

#ifdef YYDEBUG
			   if( yydebug ) printf( "error recovery pops state %d, uncovers %d\n", *yyps, yyps[-1] );
#endif
			   --yyps;
			   --yypv;
			   }

			/* there is no state on the stack with an error shift ... abort */

	yyabort:
			return(1);


		case 3:  /* no shift yet; clobber input char */

#ifdef YYDEBUG
			if( yydebug ) printf( "error recovery discards char %d\n", yychar );
#endif

			if( yychar == 0 ) goto yyabort; /* don't discard EOF, quit */
			yychar = -1;
			goto yynewstate;   /* try again in the same state */

			}

		}

	/* reduction by production yyn */

#ifdef YYDEBUG
		if( yydebug ) printf("reduce %d\n",yyn);
#endif
		yyps -= yyr2[yyn];
		yypvt = yypv;
		yypv -= yyr2[yyn];
		yyval = yypv[1];
		yym=yyn;
			/* consult goto table to find next state */
		yyn = yyr1[yyn];
		yyj = yypgo[yyn] + *yyps + 1;
		if( yyj>=YYLAST || yychk[ yystate = yyact[yyj] ] != -yyn ) yystate = yyact[yypgo[yyn]];
		switch(yym){
			
case 1:
# line 161 "expanded.g"
{gout(globfile);} break;
case 4:
# line 166 "expanded.g"
{if (!nocode)
		   rout(globfile, Str0(yypvt[-0]));
		nocode = 0;
		loc_init();} break;
case 5:
# line 170 "expanded.g"
{if (!nocode)
		   codegen(yypvt[-0]);
		nocode = 0;
		treeinit();
		loc_init();} break;
case 6:
# line 175 "expanded.g"
{;} break;
case 7:
# line 176 "expanded.g"
{;} break;
case 8:
# line 178 "expanded.g"
{;} break;
case 10:
# line 181 "expanded.g"
{;} break;
case 11:
# line 183 "expanded.g"
{addlfile(Str0(yypvt[-0]));} break;
case 12:
# line 184 "expanded.g"
{addlfile(Str0(yypvt[-0]));} break;
case 13:
# line 186 "expanded.g"
{idflag = F_Global;} break;
case 14:
# line 186 "expanded.g"
{;} break;
case 15:
# line 188 "expanded.g"
{idflag = F_Argument;} break;
case 16:
# line 188 "expanded.g"
{
		 install(Str0(yypvt[-3]),F_Record|F_Global,id_cnt); 
		    yyval = yypvt[-3];
		} break;
case 17:
# line 193 "expanded.g"
{id_cnt = 0;} break;
case 18:
# line 194 "expanded.g"
{;} break;
case 19:
# line 196 "expanded.g"
{
		 yyval = tree6(N_Proc,yypvt[-5],yypvt[-5],yypvt[-2],yypvt[-1],yypvt[-0]);
		} break;
case 20:
# line 200 "expanded.g"
{idflag = F_Argument;} break;
case 21:
# line 200 "expanded.g"
{
		yyval = yypvt[-3];
		install(Str0(yypvt[-3]),F_Proc|F_Global,id_cnt);
		} break;
case 22:
# line 205 "expanded.g"
{id_cnt = 0;} break;
case 23:
# line 206 "expanded.g"
{;} break;
case 24:
# line 207 "expanded.g"
{id_cnt = -id_cnt;} break;
case 25:
# line 210 "expanded.g"
{
		install(Str0(yypvt[-0]),idflag,0);
		id_cnt = 1;
		} break;
case 26:
# line 214 "expanded.g"
{
		install(Str0(yypvt[-0]),idflag,0);
		++id_cnt;
		} break;
case 27:
# line 219 "expanded.g"
{;} break;
case 28:
# line 220 "expanded.g"
{;} break;
case 29:
# line 222 "expanded.g"
{idflag = F_Dynamic;} break;
case 30:
# line 223 "expanded.g"
{idflag = F_Static;} break;
case 31:
# line 225 "expanded.g"
{yyval = tree1(N_Empty) ;} break;
case 32:
# line 226 "expanded.g"
{yyval = yypvt[-1];} break;
case 33:
# line 228 "expanded.g"
{yyval = tree1(N_Empty) ;} break;
case 34:
# line 229 "expanded.g"
{yyval = tree4(N_Slist,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
case 35:
# line 231 "expanded.g"
{yyval = tree1(N_Empty) ;} break;
case 38:
# line 235 "expanded.g"
{yyval = tree5(N_Conj,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
case 40:
# line 238 "expanded.g"
{yyval = tree5(N_Scan,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
case 42:
# line 241 "expanded.g"
case 43:
# line 242 "expanded.g"
case 44:
# line 243 "expanded.g"
case 45:
# line 244 "expanded.g"
{yyval = tree5(N_Binop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 46:
# line 245 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 47:
# line 246 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 48:
# line 247 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 49:
# line 248 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 50:
# line 249 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 51:
# line 250 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 52:
# line 251 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 53:
# line 252 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 54:
# line 253 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 55:
# line 254 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 56:
# line 255 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 57:
# line 256 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 58:
# line 257 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 59:
# line 258 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 60:
# line 259 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 61:
# line 260 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 62:
# line 261 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 63:
# line 262 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 64:
# line 263 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 65:
# line 264 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 66:
# line 265 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 67:
# line 266 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 68:
# line 267 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 69:
# line 268 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 70:
# line 269 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 71:
# line 270 "expanded.g"
{yyval = tree5(N_Scan,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
case 72:
# line 271 "expanded.g"
{yyval = tree5(N_Conj,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
case 73:
# line 272 "expanded.g"
{yyval = tree5(N_Activat,yypvt[-1],yypvt[-1],yypvt[-0],yypvt[-2]) ;} break;
case 75:
# line 275 "expanded.g"
{yyval = tree4(N_To,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
case 76:
# line 276 "expanded.g"
{yyval = tree5(N_ToBy,yypvt[-3],yypvt[-4],yypvt[-2],yypvt[-0]) ;} break;
case 78:
# line 279 "expanded.g"
{yyval = tree4(N_Alt,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
case 80:
# line 282 "expanded.g"
case 81:
# line 283 "expanded.g"
case 82:
# line 284 "expanded.g"
case 83:
# line 285 "expanded.g"
case 84:
# line 286 "expanded.g"
case 85:
# line 287 "expanded.g"
case 86:
# line 288 "expanded.g"
case 87:
# line 289 "expanded.g"
case 88:
# line 290 "expanded.g"
case 89:
# line 291 "expanded.g"
case 90:
# line 292 "expanded.g"
case 91:
# line 293 "expanded.g"
case 92:
# line 294 "expanded.g"
case 93:
# line 295 "expanded.g"
case 95:
# line 298 "expanded.g"
case 96:
# line 299 "expanded.g"
case 98:
# line 302 "expanded.g"
case 99:
# line 303 "expanded.g"
case 100:
# line 304 "expanded.g"
case 101:
# line 305 "expanded.g"
case 103:
# line 308 "expanded.g"
case 104:
# line 309 "expanded.g"
case 105:
# line 310 "expanded.g"
case 106:
# line 311 "expanded.g"
case 108:
# line 314 "expanded.g"
{yyval = tree5(N_Binop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 110:
# line 317 "expanded.g"
{yyval = tree4(N_Limit,yypvt[-2],yypvt[-2],yypvt[-0]) ;} break;
case 111:
# line 318 "expanded.g"
{yyval = tree5(N_Activat,yypvt[-1],yypvt[-1],yypvt[-0],yypvt[-2]) ;} break;
case 112:
# line 319 "expanded.g"
{yyval = tree4(N_Apply,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
case 114:
# line 322 "expanded.g"
{yyval = tree5(N_Activat,yypvt[-1],yypvt[-1],yypvt[-0],tree1(N_Empty) ) ;} break;
case 115:
# line 323 "expanded.g"
{yyval = tree3(N_Not,yypvt[-0],yypvt[-0]) ;} break;
case 116:
# line 324 "expanded.g"
{yyval = tree3(N_Bar,yypvt[-0],yypvt[-0]) ;} break;
case 117:
# line 325 "expanded.g"
{yyval = tree3(N_Bar,yypvt[-0],yypvt[-0]) ;} break;
case 118:
# line 326 "expanded.g"
{yyval = tree3(N_Bar,yypvt[-0],yypvt[-0]) ;} break;
case 119:
# line 327 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 120:
# line 328 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 121:
# line 329 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 122:
# line 330 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 123:
# line 331 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 124:
# line 332 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 125:
# line 333 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 126:
# line 334 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 127:
# line 335 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 128:
# line 336 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 129:
# line 337 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 130:
# line 338 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 131:
# line 339 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 132:
# line 340 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 133:
# line 341 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 134:
# line 342 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 135:
# line 343 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 136:
# line 344 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 137:
# line 345 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 147:
# line 355 "expanded.g"
{yyval = tree3(N_Create,yypvt[-1],yypvt[-0]) ;} break;
case 148:
# line 356 "expanded.g"
{Val0(yypvt[-0]) = putloc(Str0(yypvt[-0]),0);} break;
case 149:
# line 357 "expanded.g"
{yyval = tree2(N_Next,yypvt[-0]) ;} break;
case 150:
# line 358 "expanded.g"
{yyval = tree3(N_Break,yypvt[-1],yypvt[-0]) ;} break;
case 151:
# line 359 "expanded.g"
{if ((yypvt[-1])->n_type == N_Elist) 
		   yyval = tree4(N_Invok,yypvt[-2],tree1(N_Empty) ,yypvt[-1]); 
		else 
		   yyval = yypvt[-1];} break;
case 152:
# line 363 "expanded.g"
{yyval = yypvt[-1];} break;
case 153:
# line 364 "expanded.g"
{yyval = tree3(N_List,yypvt[-2],yypvt[-1]) ;} break;
case 154:
# line 365 "expanded.g"
{yyval = tree5(N_Binop,yypvt[-2],yypvt[-2],yypvt[-3],yypvt[-1]);} break;
case 155:
# line 366 "expanded.g"
{yyval = tree4(N_Invok,yypvt[-1],yypvt[-2],
		      tree3(N_List,yypvt[-1],tree1(N_Empty) )) ;} break;
case 156:
# line 368 "expanded.g"
{yyval = tree4(N_Invok,yypvt[-2],yypvt[-3],tree3(N_List,yypvt[-2],yypvt[-1])) ;} break;
case 157:
# line 370 "expanded.g"
{yyval = tree4(N_Invok,yypvt[-2],yypvt[-3],yypvt[-1]) ;} break;
case 158:
# line 371 "expanded.g"
{yyval = tree4(N_Field,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
case 159:
# line 372 "expanded.g"
{yyval = int_leaf(N_Key,yypvt[-1],K_FAIL) ;} break;
case 160:
# line 373 "expanded.g"
{if ((key_num = klookup(Str0(yypvt[-0]))) == 0)
		   tfatal("invalid keyword",Str0(yypvt[-0]));
		yyval = int_leaf(N_Key,yypvt[-1],key_num);} break;
case 161:
# line 377 "expanded.g"
{yyval = tree5(N_Loop,yypvt[-1],yypvt[-1],yypvt[-0],tree1(N_Empty) );} break;
case 162:
# line 378 "expanded.g"
{yyval = tree5(N_Loop,yypvt[-3],yypvt[-3],yypvt[-2],yypvt[-0]) ;} break;
case 163:
# line 380 "expanded.g"
{yyval = tree5(N_Loop,yypvt[-1],yypvt[-1],yypvt[-0],tree1(N_Empty) ) ;} break;
case 164:
# line 381 "expanded.g"
{yyval = tree5(N_Loop,yypvt[-3],yypvt[-3],yypvt[-2],yypvt[-0]) ;} break;
case 165:
# line 383 "expanded.g"
{yyval = tree5(N_Loop,yypvt[-1],yypvt[-1],yypvt[-0],tree1(N_Empty) ) ;} break;
case 166:
# line 384 "expanded.g"
{yyval = tree5(N_Loop,yypvt[-3],yypvt[-3],yypvt[-2],yypvt[-0]) ;} break;
case 167:
# line 386 "expanded.g"
{yyval = tree5(N_Loop,yypvt[-1],yypvt[-1],yypvt[-0],tree1(N_Empty) ) ;} break;
case 168:
# line 388 "expanded.g"
{yyval = tree4(N_Ret,yypvt[-0],yypvt[-0],tree1(N_Empty) ) ;} break;
case 169:
# line 389 "expanded.g"
{yyval = tree4(N_Ret,yypvt[-1],yypvt[-1],yypvt[-0]) ;} break;
case 170:
# line 390 "expanded.g"
{yyval = tree5(N_Loop,yypvt[-1],yypvt[-1],yypvt[-0],tree1(N_Empty) ) ;} break;
case 171:
# line 391 "expanded.g"
{yyval = tree5(N_Loop,yypvt[-3],yypvt[-3],yypvt[-2],yypvt[-0]) ;} break;
case 172:
# line 393 "expanded.g"
{yyval = tree5(N_If,yypvt[-3],yypvt[-2],yypvt[-0],tree1(N_Empty) ) ;} break;
case 173:
# line 394 "expanded.g"
{yyval = tree5(N_If,yypvt[-5],yypvt[-4],yypvt[-2],yypvt[-0]) ;} break;
case 174:
# line 396 "expanded.g"
{yyval = tree4(N_Case,yypvt[-5],yypvt[-4],yypvt[-1]) ;} break;
case 176:
# line 399 "expanded.g"
{yyval = tree4(N_Clist,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
case 177:
# line 401 "expanded.g"
{yyval = tree4(N_Ccls,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
case 178:
# line 402 "expanded.g"
{yyval = tree4(N_Ccls,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
case 180:
# line 405 "expanded.g"
{yyval = tree4(N_Elist,yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 181:
# line 407 "expanded.g"
{
		yyval = tree3(N_Create,yypvt[-0],yypvt[-0]) ;
		} break;
case 182:
# line 410 "expanded.g"
{
		yyval = tree4(N_Elist,yypvt[-1],yypvt[-2],tree3(N_Create,yypvt[-1],yypvt[-0]));
		} break;
case 183:
# line 414 "expanded.g"
{Val0(yypvt[-0]) = putlit(Str0(yypvt[-0]),F_IntLit,0);} break;
case 184:
# line 415 "expanded.g"
{Val0(yypvt[-0]) = putlit(Str0(yypvt[-0]),F_RealLit,0);} break;
case 185:
# line 416 "expanded.g"
{Val0(yypvt[-0]) = putlit(Str0(yypvt[-0]),F_StrLit,(int)Val1(yypvt[-0]));} break;
case 186:
# line 417 "expanded.g"
{Val0(yypvt[-0]) = putlit(Str0(yypvt[-0]),F_CsetLit,(int)Val1(yypvt[-0]));} break;
case 187:
# line 419 "expanded.g"
{yyval = tree6(N_Sect,yypvt[-2],yypvt[-2],yypvt[-5],yypvt[-3],yypvt[-1]) ;} break;
case 188:
# line 421 "expanded.g"
{yyval = yypvt[-0];} break;
case 189:
# line 422 "expanded.g"
{yyval = yypvt[-0];} break;
case 190:
# line 423 "expanded.g"
{yyval = yypvt[-0];} break;
case 192:
# line 426 "expanded.g"
{yyval = tree4(N_Slist,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
		}
		goto yystack;  /* stack new state and value */

	}
