4.1cBSD/usr/src/ucb/ingres/source/equel/grammar.c

Compare this file to the similar file:
Show the results in this format:


# line 34 "grammar.y"
	/* STANDARD SCANNER & PARSER GLOBALS */

# include	"constants.h"
# include	<stdio.h>
# include	"globals.h"
# include	<sccs.h>

SCCSID(@(#)grammar.y	7.1	2/5/81)



# line 45 "grammar.y"
typedef union 
{
	struct disp_node	*u_dn;
} YYSTYPE;
# define APPEND 257
# define COPY 258
# define CREATE 259
# define DEFINE 260
# define DELETE 261
# define DESTROY 262
# define HELP 263
# define INDEX 264
# define MODIFY 265
# define PRINT 266
# define INTEGRITY 267
# define RANGE 268
# define REPLACE 269
# define RETRIEVE 270
# define SAVE 271
# define UNIQUE 272
# define PERMIT 273
# define VIEW 274
# define INGRES 275
# define EXIT 276
# define PARAM 277
# define TYPE 278
# define ALLOC 279
# define STRUCT 280
# define STRUCT_VAR 281
# define ALL 282
# define BY 283
# define FROM 284
# define IN 285
# define INTO 286
# define IS 287
# define OF 288
# define ON 289
# define ONTO 290
# define TO 291
# define WHERE 292
# define UNTIL 293
# define AT 294
# define NAME 295
# define SCONST 296
# define I2CONST 297
# define I4CONST 298
# define F8CONST 299
# define C_CODE 300
# define COMMA 301
# define LPAREN 302
# define RPAREN 303
# define PERIOD 304
# define QUOTE 305
# define BGNCMNT 306
# define ENDCMNT 307
# define LBRACE 308
# define RBRACE 309
# define LBRKT 310
# define RBRKT 311
# define NONREF 312
# define SEMICOL 313
# define POINTER 314
# define COLON 315
# define UOP 316
# define BOP 317
# define BDOP 318
# define EOP 319
# define LBOP 320
# define LUOP 321
# define FOP 322
# define FBOP 323
# define AOP 324
# define unaryop 325
#define yyclearin yychar = -1
#define yyerrok yyerrflag = 0
extern int yychar;
extern short yyerrflag;
#ifndef YYMAXDEPTH
#define YYMAXDEPTH 150
#endif
YYSTYPE yylval, yyval;

# line 112 "grammar.y"
	struct cvar	*cvarp;
# define YYERRCODE 256

# line 1226 "grammar.y"


# include	"tokens.y"
short yyexca[] ={
-1, 1,
	0, -1,
	257, 8,
	258, 8,
	259, 8,
	260, 8,
	261, 8,
	262, 8,
	263, 8,
	264, 8,
	265, 8,
	266, 8,
	268, 8,
	269, 8,
	270, 8,
	271, 8,
	275, 8,
	276, 8,
	277, 8,
	-2, 0,
-1, 61,
	302, 128,
	-2, 304,
-1, 188,
	272, 268,
	302, 268,
	-2, 265,
-1, 277,
	287, 176,
	304, 182,
	316, 176,
	317, 176,
	318, 176,
	319, 176,
	-2, 191,
-1, 353,
	304, 182,
	-2, 176,
	};
# define YYNPROD 307
# define YYLAST 767
short yyact[]={

 300, 431, 465, 408, 305, 222, 215, 214, 153, 326,
 380, 295, 339, 359, 234, 294, 272, 248, 319, 265,
 230, 111, 350, 361, 360, 421, 361, 360, 124, 272,
 276, 361, 432, 350, 194, 272, 181, 196, 384, 383,
 359, 343, 361, 360, 358, 357, 386, 426, 361, 360,
 110, 118, 194, 126, 138, 142, 216, 146, 194, 126,
 155, 117, 131, 167, 192, 169, 170, 178, 173, 361,
 360, 358, 357, 361, 360,  93, 293, 290, 291, 292,
 361, 360, 201,  93, 101, 211, 117, 154, 272, 397,
   7, 196, 113, 249, 117, 212, 296,  95,  11,  12,
  93, 281, 297, 298, 299,  95, 202, 194,  93, 293,
 290, 291, 292, 117, 117, 201, 329, 113, 328, 103,
 282, 217,  95,  16, 201, 113, 219,  93,  93, 296,
  95, 194, 101, 272, 126, 297, 298, 299, 274, 238,
 237, 129, 231, 117, 113, 263, 229, 130, 140,  95,
  95, 216, 194,  93, 260, 117, 134,  93, 241, 306,
 194, 239, 221, 205, 245, 435, 117, 134, 236,  93,
 141,  90, 247, 173, 113,  95, 216, 204, 165,  95,
  93, 134, 306, 166, 117, 231, 113, 250, 251, 129,
 231,  95, 218, 253, 254, 130, 117, 113,  93, 164,
 466, 267,  95, 117, 271, 237, 189, 264, 190, 258,
  93, 141, 268, 165, 271, 113, 223,  93, 166, 301,
  95, 138, 342, 309, 370, 310, 341, 113, 304, 117,
 134, 312,  95, 313, 113, 451, 140, 277, 117,  95,
 315, 307, 329,  93, 328, 117,  17, 323, 316,   4,
 317, 318,  93, 174, 164,  16, 324,  20, 334,  93,
 113, 330, 331,   6,  89,  95, 335, 272, 148, 113,
 182, 342, 327, 171,  95, 341, 113, 347, 123, 121,
 346,  95, 193, 122, 340,  16,  17,  20, 381, 135,
 269, 106, 343, 270, 109, 107, 108,  55, 208, 227,
 353, 353, 228, 225, 226, 129, 161,   7, 353, 351,
 354, 130, 140, 159, 158,  11,  12, 160, 112, 371,
 184, 185, 186,  80, 115, 220, 382, 372, 379,  92,
  91, 443, 187, 188, 114,  94,  13, 377, 162, 267,
 233, 389, 139, 378, 425, 307, 392, 382, 394, 390,
 268,  97, 385, 179, 391, 337, 156, 393, 387, 344,
 199, 353, 104,  99, 125, 348, 137, 128, 127, 126,
 183, 353, 404, 409, 289, 126, 176, 353, 353, 288,
 395, 287, 412, 102, 416, 353, 353, 353, 353, 307,
 415, 353, 382, 417, 411, 414, 363, 405, 419, 352,
 406, 307, 418, 413, 150, 286, 195, 362, 151, 375,
 356, 424, 436, 197, 430, 285, 152, 149, 136,  94,
 439,  15, 145, 144, 143, 175, 168, 191, 284, 134,
 409, 447, 448, 445, 197, 452,  98, 353, 283, 266,
  14, 396, 353, 453, 420, 353, 252, 353, 355, 280,
 207, 455, 256, 458,  96, 461, 349, 279, 464, 338,
 388, 469, 345, 470, 460, 210, 261, 468, 345, 198,
 471, 100, 307, 475, 474, 473, 398, 399, 353, 478,
 467, 477,  19, 479, 400, 401, 402, 403,  18,  10,
 472, 422, 307, 467, 476, 427, 367,  88, 307, 321,
 307, 200, 314, 437, 275, 332, 333, 203, 273, 139,
 308, 320,  92, 376, 442, 213, 243, 240,  94, 180,
  71, 206, 242, 209, 259, 177,  70, 336,  69, 193,
  68, 454, 255, 172,  67, 262, 438,  65, 325,  64,
  63, 440, 322, 246, 441, 462, 444,  62, 163,  61,
 257, 157,  60, 200,  59,  58, 450, 434, 200, 244,
  73,  74,  75,  80,  76,  77,  78,  79,  81,  82,
 235,  83,  84,  85,  86, 459, 449, 463,  87,  66,
  72,  92, 433, 410, 373, 232, 147,  94,  57, 446,
 311, 428, 407,  56, 369, 423, 224,  54, 133, 132,
 429,  53, 303, 302,  52, 120, 119,  51,  50,  49,
 105,  48, 278,  47, 206,  46, 209,  45,  44,  43,
  42,  41,  40,  39,  38,  37, 200,  36,  35,  34,
  33,  32,  31,  30,  29,  28, 456,  27,  26, 457,
  25,  24,  23,   8,   5,  22,  21,   3,   2,   1,
 116,   9,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0, 278, 278,   0,   0,   0,
   0,   0,   0,   0, 364, 365, 366,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0, 368,   0,   0,   0,
 374,   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, 278,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0, 278 };
short yypact[]={

-1000,   7,-1000, 303,-1000,-1000,-1000,-1000,-1000,-1000,
-142,-1000,-1000, -33, -23,-1000,-1000,-1000,-224,-176,
-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,   5,-195,
-195,  -6, -78,-126,-195,  38,-195, 147,-195,-195,
  28, -73,-195,   5,-195,-195,-1000, -43,  28,-108,
-241,-272,  63,-1000,-1000,-1000,-1000,-1000,-1000, -83,
-1000,-1000,-1000, -80,-1000,-1000,-1000,-1000, -18,-249,
-1000,-1000,-273,-1000,-212,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-1000,-178,-195,-1000,-1000,-1000,-1000,
-178,-1000,-273,-118,-273,-167,-219,-1000,-178,-116,
-195,-1000,-1000,-1000,-194,-195,-1000,-1000,-1000,-1000,
-1000,-1000,-194,-195,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000, -71,  14,-1000,-195,-106,-149,-1000,-1000,
-1000,-1000,-1000,-1000,-194, -71,-178,-195,-1000,-1000,
-1000,-178,-178,-195,-1000,-1000,-1000,-121,-209,-209,
-209,-1000, -43,-1000,-1000,-209,-209,-1000,-1000,-1000,
-1000,-1000,-1000, -38,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-209,-1000,-212,-1000,-1000,-1000,-1000,-155,-116,
-195,-1000,-1000, -36,-1000,-1000,-1000,-1000,-1000,-219,
-157,-1000,-1000,-195,-1000,-220,-1000,-1000,-195,-115,
 -85,-194,-195,-1000,-195,-1000,-1000,-1000,-1000,-178,
-195,-1000,-195, 147,-1000,-1000,-1000,-1000,-1000,-195,
-116,-1000,-116,-116,-1000,-1000,-195,-1000,-116,-1000,
-168,-1000,-1000,-116,-116,-210,-210,-195,-116,-1000,
-1000,-1000,-212,-1000,-1000,-215,-194, -12,-1000,-170,
 -42, -71,-1000,-1000,-1000,-170,-298,-1000,-220,-220,
-1000,-1000,-247,-1000,-1000,-1000,-187,-178,-178,-178,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-263,-1000,-1000,-194,-1000,-1000,-1000,-1000,-1000,-178,
 -63,-116, -84,-178,-1000,-1000,-1000,-1000,-1000,-215,
-194,-195,-1000,-138,-1000, -85,-1000,-1000,-1000,-1000,
-1000,-1000,-270,-271,-209,-1000,-267,-1000,-195,-187,
 -52,-1000,-1000,-1000, -42,-195, -85,-195,-1000,-220,
-1000,-287,-274,-1000,-1000,-187,-187,-1000,-1000,-1000,
-1000,-1000,-1000,-187,-187,-187,-187,-138,-195,-220,
-1000,-1000,-195,-101,-195,-1000,-1000, -61,-1000,-138,
-1000,-1000,-1000,-1000,-1000,-116,-1000,-1000,-290,-1000,
-1000, -85, -71,-1000,-1000,-1000,-1000,-1000,-293,-285,
-268,-268,-243,-236,-1000,-170,-298,-141,-1000,-283,
-129,-195,-1000,-170,-1000,-187,-1000,-1000,-1000,-195,
-187,-1000,-1000,-187,-215,-187,-1000,-1000,-1000,-195,
-195,-195,-1000, -49, -52,-1000,-1000,-1000,-290,-1000,
-290,-268,-1000,-141,-290,-1000,-194, -71,-1000, -84,
-138,-1000,-1000,-1000,-1000,-215,-187,-195, -97,-116,
-195,-283,-1000,-290, -71,-1000,-1000,-1000,-1000,-106,
-138, -97,-195,-106,-1000,-1000,-138,-283,-138,-1000 };
short yypgo[]={

   0, 651,  21, 318, 334, 324, 298, 650,   0, 649,
 648, 647, 646, 645, 249, 644, 643, 642, 641, 640,
 638, 637, 635, 634, 633, 632, 631, 630, 629, 628,
 627, 625, 624, 623, 622, 621, 620, 619, 618, 617,
 615, 613, 611, 362, 360,   7, 610, 609, 396, 290,
  89,   9,  10, 288, 608, 607, 606, 605, 604,  28,
 364, 603, 368, 367, 602,   8, 601, 599, 598, 289,
 192, 366, 597,   5, 297, 596, 594,  30, 593,  20,
  14, 592, 591,   3,   1,   6, 589,   2, 588, 586,
 585, 584, 583, 582, 576, 575, 268, 570, 557, 556,
   4, 555, 554, 552, 356, 551, 549, 306, 548, 547,
 543, 542, 540,  17, 539, 538, 537, 534, 273, 533,
 530, 528, 526, 525, 520, 519, 338, 516,  18, 511,
 499,  15,  12, 120, 353, 270, 497, 489, 264, 336,
 440, 421, 488, 363, 482, 471, 469, 466, 330, 406,
 465, 457, 456, 449, 448, 444,  19, 439,  11, 438,
 428, 415, 410, 405, 381, 379, 374, 344, 331, 284 };
short yyr1[]={

   0,   9,   9,  10,  10,  10,  10,  10,  11,  14,
  14,  14,  16,   1,  12,  12,  12,  12,  12,  12,
  12,  12,  12,  12,  12,  12,  12,  12,  12,  12,
  13,  13,  13,  13,  13,  13,  13,  13,  13,  17,
  43,  18,  18,  52,  52,  19,  20,  56,  21,  21,
  60,  60,  61,  61,  22,  22,  22,  22,  67,  67,
  69,  69,  68,  68,  23,  24,  25,  25,  81,  81,
  83,  83,  82,  82,  86,  86,  87,  87,  26,  88,
  89,  89,  96,  96,  96,  96,  96,  90,  90,  90,
  91,  91,  92,  92,  92,  93,  93,  93,  94,  94,
  95,  95,  27,  28,  29, 104,  30, 107,  31, 111,
  32,  33,  34, 115, 115,  35,  36,  37, 118, 118,
 119, 119,  38,  39,  40,  40, 122, 126, 126, 127,
 128, 128, 129, 130, 123, 123, 134, 125, 125, 135,
 124,  41,  15,  15, 137, 137, 137, 137, 137, 137,
 140, 139, 141, 141, 141, 142, 143, 146, 146, 147,
 147, 138, 138, 148,   2,   2,   2,   2,   4,   4,
   4,   7,   6,   6, 150, 150, 131,   3,   3,   3,
   5, 149,   8,  59,  59, 100, 100,  64,  64, 113,
  45,  45,  45,  77,  77,  77,  77,  77, 153, 153,
  49,  49,  53,  44, 156, 156, 157, 157, 133, 133,
 133, 133, 133, 133, 133, 133, 160, 159, 161, 161,
 161, 161, 161, 161, 168, 168, 158, 158, 152, 151,
 155, 154, 154, 154, 163, 164, 165, 162, 162, 167,
 166, 112,  42,  47, 114,  51,  51,  54, 116,  74,
  55,  58,  66,  72, 117,  62, 132, 132,  78,  63,
 101, 102, 103, 120, 106, 121, 109, 144, 136,  71,
  65,  46,  46,  46,  46,  46,  98,  84,  70,  57,
  57,  57,  57,  99,  75,  75,  75,  75,  73,  76,
  76, 145,  48,  97,  80, 169, 105, 105, 105, 105,
  50,  79, 108, 108, 108, 110,  85 };
short yyr2[]={

   0,   2,   0,   2,   2,   1,   1,   1,   0,   1,
   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
   1,   1,   1,   1,   1,   1,   1,   1,   1,   4,
   2,   7,   6,   1,   1,   5,   3,   2,   2,   4,
   1,   1,   1,   1,   1,   2,   2,   3,   1,   3,
   1,   1,   1,   1,   7,   6,   7,   4,   1,   3,
   1,   3,   2,   0,   3,   5,   1,   1,  10,   2,
   1,   3,   1,   1,   1,   1,   1,   1,   1,   1,
   3,   0,   2,   1,   0,   2,   2,   0,   8,   0,
   4,   0,   2,   4,   4,   2,   4,   2,   4,   3,
   5,   4,   5,   1,   1,   3,   1,   2,   1,   2,
   1,   1,   4,   4,   2,   2,   4,   1,   0,   3,
   1,   3,   4,   0,   4,   1,   0,   4,   1,   0,
   4,   6,   3,   2,   1,   1,   2,   2,   1,   2,
   1,   1,   2,   1,   2,   2,   3,   2,   0,   3,
   1,   1,   3,   1,   1,   2,   2,   1,   2,   2,
   2,   1,   2,   2,   1,   1,   1,   1,   2,   2,
   1,   1,   1,   1,   3,   1,   1,   1,   3,   1,
   2,   2,   0,   3,   2,   3,   1,   0,   3,   5,
   3,   5,   1,   3,   1,   3,   3,   1,   1,   1,
   1,   3,   3,   2,   4,   6,   5,   7,   1,   1,
   1,   1,   1,   1,   3,   1,   3,   3,   1,   1,
   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
   1,   2,   1,   1,   2,   1,   1,   1,   2,   1,
   1,   1,   1,   2,   1,   1,   1,   1,   1,   1,
   1,   2,   1,   2,   1,   2,   1,   1,   2,   1,
   1,   1,   1,   1,   1,   0,   1,   1,   1,   1,
   1,   1,   0,   1,   1,   1,   1,   1,   1,   1,
   0,   1,   1,   1,   1,   1,   1,   1,   1,   0,
   1,   1,   1,   1,   0,   1,   1 };
short yychk[]={

-1000,  -9, -10, -11, -14, -15, 256, 300, -16,  -1,
-137, 308, 309,-139,-140,-141, 278, 279,-142,-144,
 280, -12, -13, -17, -18, -19, -20, -21, -22, -23,
 -24, -25, -26, -27, -28, -29, -30, -31, -32, -33,
 -34, -35, -36, -37, -38, -39, -40, -41, -42, -47,
 -54, -55, -58, -66, -72, -74, -78, -88,-101,-102,
-103,-106,-109,-112,-114,-116, 276,-117,-120,-121,
-122,-124, 277, 257, 258, 259, 261, 262, 263, 264,
 260, 265, 266, 268, 269, 270, 271, 275,-136,-138,
 313,-148,  -3, 295,  -5, 317,-140,-139,-141,-143,
-145, 308,-143, 295, -43, -46, 286, 290, 291, 289,
  -8,  -2,  -3, 312,  -4,  -5,  -7, 281,  -8, -56,
 -57, 285, 289, 284, -59, -60,  -8, -62, -63, 267,
 273, -65, -67, -68, 282, -69, -60, -71,  -8, -53,
 274, 296,  -8, -62, -63, -71,  -8, -89, -96, 270,
 257, 261, 269, -65, -59,  -8,-104,-105, 286, 285,
 289,-107,-126,-108, 272, 286, 291,  -8, -43,  -8,
  -8,-118,-119,  -8, 296,-104,-107,-123, 308,-134,
-125, 308,-135, -74, 257, 258, 259, 269, 270, 289,
 288,-126, 313, -70, 301,-149, 310,  -3,-146, -44,
 -48, 302,  -8, -48, 295, 281,-149,  -4,  -6,-149,
-150, 304, 314, -48, -45, -85, 292,  -8, -70,  -8,
 -70, -59, -73, 287, -75, 289, 290, 285, 288,  -8,
 -79, 291, -90, -70, -80, -97, -79, 289, 288, -73,
 -44,  -8, -44,-127, -48,  -8,-110, 293,-113, 302,
-113,-113,-118,-113,-113,-134,-135, -71,-113,-148,
 309,-147,-139, 300, -45,-156,-157,  -8,-158, -49,
 -50,  -8, 303,  -6, 295, -49, -77,  -2, -48,-151,
-153, 321,-133,-159,-160,-161,-163,-164,-165,-166,
 297, 298, 299, 296,-131,-158, 316, 322, 323, 324,
  -8,  -8, -61, -64, -65,-100, 297,  -2, -69,  -8,
  -8, -44,  -8,  -8, -96,  -8, -45, -45, -45,-128,
-129,-130,-111,  -8, -45,-115, -51,  -2, 286, 284,
 -45, -45, -14, -14,  -8, -45,-138, -50, -70,-132,
-169, 287, 283, 304, -50, -70, -51, -73, -50,-152,
 320, -77,-133,  -2, -77,-154,-162, 319, 318, 287,
 317, 316,-133, -48, -48, -48, -48, -70, -48, -76,
 287, -45, -80, -91, -48, -50, -70,-131,  -2,-100,
 -52, -53,  -8, 309, 309,-113, 313,-156,-133,  -8,
 -65, -51,  -8, -52,  -8, -77, -50, -50,-133,-133,
-133,-133,-133,-133,-100, -59, -77, -81, -83,  -8,
 -92, -79, -65, -59,-128,-132,-100, -45, -52, -73,
-155, 318, -50, -70, -45,-167, 283, -50, -82, -70,
 -85, -84, 315, -93, -98, 294,  -8, -50,-133,  -8,
-133,-133, -50,-168,-133, -83, -86,  -8,  -8, -94,
 -99, 284,  -8, -65, -50, -45, -70, -70, -73, -95,
 -80,-100, -50,-133,  -8, -87, 297,  -2, -45,  -8,
 -84, -73, -79,-100, -87,  -8, -79,-100, -84,-100 };
short yydef[]={

   2,  -2,   1,   0,   5,   6,   7,   9,  10,  11,
   0,  12,  13, 144, 145, 148, 151, 150, 153,   0,
 267,   3,   4,  14,  15,  16,  17,  18,  19,  20,
  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,
  31,  32,  33,  34,  35,  36,  37,  38, 275,   0,
   0, 282,   0,  54,   0,   0,   0,   0,   0,   0,
 299,  -2,   0, 275,   0,   0, 116,   0, 299, 304,
 136, 139,   0, 242, 243, 247, 250, 251, 252,   0,
 249, 258, 260,   0, 262, 264, 266, 254, 128,   0,
 143, 161, 163, 177,   0, 180, 146, 147, 149, 152,
 158, 291, 154, 155,   0,   0, 271, 272, 273, 274,
   0, 182, 164,   0, 167,   0,   0, 171,   0, 192,
   0, 279, 280, 281,  48,   0, 183,  50,  51, 255,
 259,  55,  56,   0, 270,  58,  62,  63,  60,  61,
 269, 202,   0,   0,  79,   0,   0,   0,  80,  82,
  83,  84,  85,  86, 102,   0,   0,   0, 296, 297,
 298,   0,   0,   0, 127, 302, 303,   0,   0,   0,
   0, 117, 118, 120, 121,   0,   0, 124, 136, 135,
 125, 139, 138,   0, 241, 244, 248, 263,  -2, 253,
 261,   0, 142,   0, 278, 179, 181, 178,   0, 192,
   0, 292,  40,   0, 165, 166, 169, 168, 170,   0,
   0, 174, 175,   0,  46, 197, 306,  47,   0,   0,
   0,  57,   0, 288,   0, 284, 285, 286, 287,   0,
   0, 301,   0,   0,  87,  88,  89, 294, 293,   0,
 192, 105, 192, 192, 133, 107,   0, 305, 192, 189,
   0, 115, 119, 192, 192,   0,   0,   0, 192, 162,
 156, 157,   0, 160,  39,   0, 204,   0, 207,   0,
   0,   0, 300, 172, 173,   0, 190,  -2, 197, 197,
 196, 229,   0, 208, 209, 210,   0,   0,   0,   0,
 218, 219, 220, 221, 222, 223, 234, 235, 236, 240,
   0, 184,  49,  52,  53, 187, 185, 186,  59,   0,
 290, 192,  67,  91,  81, 103, 104, 106, 126,   0,
 130,   0, 108,   0, 111,   0, 113, 114, 245, 246,
 122, 123,   0,   0,   0, 140,   0, 203,   0,   0,
   0, 256, 257, 295,   0,   0,   0,   0,  45, 197,
 228,   0,   0,  -2, 194,   0,   0, 231, 232, 233,
 237, 238, 213,   0,   0,   0,   0,   0,   0, 197,
 289, 110,   0,  94,   0, 129, 133,   0, 176,   0,
 112,  43,  44, 134, 137, 192, 159, 205, 206, 226,
 227,   0,   0,  42, 200, 195, 193, 212, 198, 211,
   0,   0,   0, 192, 188,   0,  65,  73,  68,  70,
  97,   0,  93,   0, 131,   0, 109, 141,  41,   0,
   0, 230, 214,   0,   0,   0, 239,  64,  66,   0,
   0,   0, 277,  99,   0, 276,  92,  90, 132, 201,
 199,   0, 216, 192, 225,  69,  72,   0,  71, 101,
   0, 283,  95,  96, 215,   0,   0,   0,   0, 192,
   0,   0, 217, 224,   0,  74,  76,  77,  78,   0,
   0,   0,   0,   0,  75, 100,   0,   0,   0,  98 };
#
# 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] ) { yyerror( "yacc 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( "syntax error" );
		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 119 "grammar.y"
 
		{
			/* for each "statement", free the symbol space
			 * used by that query (lookahed space must not
			 * be freed), and catch up on output lines
			 */
			symspfree();
			equate_lines();
		} break;
case 3:
# line 130 "grammar.y"
 
		{
			w_sync();
			/* the purpose of the actions for startquel
			 * and this action is to make each query
			 * a single compound C statement (if (x) "{query}")
			 */
			w_op("}");
		} break;
case 4:
# line 139 "grammar.y"

		{
			end_quote();
			w_op("}");
		} break;
case 8:
# line 148 "grammar.y"

			w_op("{"); break;
case 10:
# line 158 "grammar.y"

			Block_level += 1; break;
case 11:
# line 160 "grammar.y"

		{
			if (Block_level == 0)
				yyserror("extra '}'", yypvt[-0].u_dn);
			else if ((Block_level -= 1) == 0)
			{
				freecvar(&C_locals);
				freecvar(&F_locals);
			}
		} break;
case 12:
# line 175 "grammar.y"

			w_op(yypvt[-0].u_dn->d_elm); break;
case 13:
# line 178 "grammar.y"

			w_op(yypvt[-0].u_dn->d_elm); break;
case 76:
# line 284 "grammar.y"

			w_con(I2CONST, yypvt[-0].u_dn->d_elm); break;
case 77:
# line 286 "grammar.y"

		{
			if (yypvt[-0].u_dn)
			{
				if (!Cvarp)
					w_key(yypvt[-0].u_dn->d_elm);
				else if (Fieldp && Fieldp->c_type == opINT
					|| Cvarp->c_type == opINT)
						w_var(Cv_display, opINT);
				else if (Fieldp && Fieldp->c_type == opSTRING 
					|| Cvarp->c_type == opSTRING)
						w_var(Cv_display, opIDSTRING);
				else
					yyserror("in MODIFY, qual var must be in or string",
					yypvt[-0].u_dn);
			}
			else
				yyserror("bad modify qualification", 0);
			free_display(Cv_display);
			Cvarp = Fieldp = 0;
		} break;
case 82:
# line 317 "grammar.y"

			w_key(yypvt[-0].u_dn->d_elm); break;
case 83:
# line 319 "grammar.y"

			w_key(yypvt[-0].u_dn->d_elm); break;
case 84:
# line 321 "grammar.y"

			w_key(yypvt[-0].u_dn->d_elm); break;
case 85:
# line 323 "grammar.y"
 
			w_key(yypvt[-0].u_dn->d_elm); break;
case 114:
# line 384 "grammar.y"

		{
			if (yypvt[-0].u_dn && Cvarp)
			{
				if (Fieldp && Fieldp->c_type != opSTRING
				   || !Fieldp && Cvarp->c_type != opSTRING)
					yyserror("string var expected for from/into in COPY",
					yypvt[-0].u_dn);
				else
					w_var(Cv_display, opIDSTRING);
			}
			else
				yyserror("into/from expected in COPY", yypvt[-0].u_dn);
			free_display(Cv_display);
			Fieldp = Cvarp = 0;
		} break;
case 116:
# line 405 "grammar.y"
 
		{ 
			Opflag = mdEXIT;
			w_new("IIexit();"); 
		} break;
case 117:
# line 412 "grammar.y"
 
			w_op(");"); break;
case 118:
# line 415 "grammar.y"

			w_op("0"); break;
case 120:
# line 419 "grammar.y"

			w_op(","); break;
case 121:
# line 421 "grammar.y"

		{
			w_string(yypvt[-0].u_dn->d_elm, 0);
			w_op(",");
		} break;
case 124:
# line 434 "grammar.y"

			w_flush(); break;
case 125:
# line 436 "grammar.y"

			w_flush(); break;
case 126:
# line 439 "grammar.y"

		{
			w_new("IIsetup();");
		} break;
case 127:
# line 444 "grammar.y"

		{
			Opflag = mdTUPRET;
			w_key(yypvt[-0].u_dn->d_elm);
		} break;
case 128:
# line 449 "grammar.y"

			Opflag = mdTUPRET; break;
case 133:
# line 459 "grammar.y"

			Opflag = mdCTLELM; break;
case 134:
# line 462 "grammar.y"

			w_op("}"); break;
case 135:
# line 464 "grammar.y"

			w_op("}"); break;
case 136:
# line 467 "grammar.y"

		{
			w_new("while(IIn_get(");
			w_file();
			w_op(")){");
			w_ret();
			free_ret();
			w_op("if(IIerrtest())continue;");
			equate_lines();
		} break;
case 137:
# line 478 "grammar.y"

			w_op("}"); break;
case 138:
# line 480 "grammar.y"

			w_op("}"); break;
case 139:
# line 483 "grammar.y"

		{
			w_new("while(IIgettup(");
			w_file();
			w_op(")){");
			equate_lines();
		} break;
case 140:
# line 491 "grammar.y"

		{
			w_new("IIsetup();");
		} break;
case 142:
# line 504 "grammar.y"

		{
			w_op(yypvt[-0].u_dn->d_elm);
			Type_spec = 0;
		} break;
case 143:
# line 509 "grammar.y"
 
		{ 
			w_op(yypvt[-0].u_dn->d_elm);
			Type_spec = 0;
		} break;
case 148:
# line 519 "grammar.y"

		{
			Struct_flag = 0;
			Type_spec = opSTRUCT;
		} break;
case 149:
# line 524 "grammar.y"

		{
			Struct_flag = 0;
			Type_spec = opSTRUCT;
		} break;
case 150:
# line 530 "grammar.y"

		{
			Opflag = mdDECL;
			w_key(yypvt[-0].u_dn->d_elm);
			/* in case the default "int" should be assumed,
			 * the Type_spec is set up for it, if a previous
			 * type hasn't been given
			 */
			if (!Type_spec)
				Type_spec = opINT;
		} break;
case 151:
# line 542 "grammar.y"

		{
			Opflag = mdDECL;
			w_key(yypvt[-0].u_dn->d_elm);
			Type_spec = Opcode;
		} break;
case 155:
# line 553 "grammar.y"

			w_key(yypvt[-0].u_dn->d_elm); break;
case 156:
# line 556 "grammar.y"

		{
			w_op(yypvt[-0].u_dn->d_elm);
			Type_spec = 0;
		} break;
case 159:
# line 565 "grammar.y"

		{
			w_op(yypvt[-0].u_dn->d_elm);
			Type_spec = 0;
		} break;
case 163:
# line 575 "grammar.y"

		{
			if (Type_spec == opSTRING)
				Indir_level -= 1;
			if (Struct_flag)
				decl_field(yypvt[-0].u_dn->d_elm, Type_spec,
					Indir_level, Block_level);
			else
				decl_cvar(yypvt[-0].u_dn->d_elm, Type_spec,
					Indir_level, Block_level);
			free_display(Cv_display);
			Indir_level = Field_indir = 0;
			Fieldp = Cvarp = 0;
		} break;
case 164:
# line 590 "grammar.y"

		{
			yyval.u_dn = yypvt[-0].u_dn;
			if (Cvarp && Cvarp->c_indir != Indir_level)
			{
				yyserror("bad indirection on a C variable", yypvt[-0].u_dn);
				yyval.u_dn = 0;
			}
			Indir_level = Field_indir = 0;
		} break;
case 165:
# line 600 "grammar.y"

		{
			enter_display(Cv_display, salloc(yypvt[-1].u_dn->d_elm));
			Cvarp = Fieldp = 0;
			yyval.u_dn = yypvt[-0].u_dn;
		} break;
case 166:
# line 606 "grammar.y"

		{
			enter_display(Cv_display, salloc(yypvt[-1].u_dn->d_elm));
			Cvarp = Fieldp = 0;
			yyval.u_dn = yypvt[-0].u_dn;
		} break;
case 167:
# line 612 "grammar.y"

		{
			if (!Fieldp)
			{
				yyserror("undeclared field", yypvt[-0].u_dn);
				yyval.u_dn = yypvt[-1].u_dn;
			}
			else if (Fieldp->c_indir != Field_indir)
			{
				yyserror("bad indirection on a structure's field",
				yypvt[-0].u_dn);
				yyval.u_dn = 0;
			}
			if (Cvarp->c_indir != Indir_level)
			{
				yysemerr("bad indirection a structure variable",
				Cvarp->c_indir);
				yyval.u_dn = 0;
			}
			Indir_level = Field_indir = 0;
		} break;
case 168:
# line 634 "grammar.y"

		{
			if (yypvt[-1].u_dn->d_elm[1] == '*')
				Field_indir += 1;
			Field_indir += 1;
			yyval.u_dn = yypvt[-0].u_dn;
		} break;
case 169:
# line 641 "grammar.y"

			Field_indir += 1; break;
case 171:
# line 645 "grammar.y"

		{
			Cvarp = getcvar(yypvt[-0].u_dn->d_elm);
			enter_display(Cv_display, yypvt[-0].u_dn->d_elm);
		} break;
case 172:
# line 651 "grammar.y"

		{
			Indir_level += 1;
			yyval.u_dn = yypvt[-0].u_dn;
		} break;
case 173:
# line 656 "grammar.y"

		{
			enter_display(Cv_display, yypvt[-0].u_dn->d_elm);
			Fieldp = getfield(yypvt[-0].u_dn->d_elm);
			yyval.u_dn = yypvt[-0].u_dn;
		} break;
case 174:
# line 663 "grammar.y"

			enter_display(Cv_display, yypvt[-0].u_dn->d_elm); break;
case 175:
# line 665 "grammar.y"

		{
			enter_display(Cv_display, yypvt[-0].u_dn->d_elm);
			Indir_level += 1;
		} break;
case 176:
# line 673 "grammar.y"
	
		{
			if (yypvt[-0].u_dn)
			{
				if (!Fieldp && ! Cvarp)
				{
					if (!Field_indir && !Indir_level
					  && (sequal(yypvt[-0].u_dn->d_elm, "dba")
					    || sequal(yypvt[-0].u_dn->d_elm, "usercode")))
						/* constant operator COP */
						w_key(yypvt[-0].u_dn->d_elm);
					else
						yyserror("C var expected", yypvt[-0].u_dn);
				}
				else if (Opflag == mdCTLELM)
				{
					w_con(NAME,
					  Fieldp ? Fieldp->c_id: Cvarp->c_id);
					enter_ret(Cv_display,
					  Fieldp ? Fieldp->c_type: Cvarp->c_type);
				}
				else
					w_var(Cv_display,
					  Fieldp ? Fieldp->c_type: Cvarp->c_type);
			}
			free_display(Cv_display);
			Fieldp = Cvarp = 0;
			Indir_level = Field_indir = 0;
		} break;
case 177:
# line 702 "grammar.y"

		{
			if (Opflag == mdDECL)
				w_con(NAME, yypvt[-0].u_dn->d_elm);
			else
			{
				Cvarp = getcvar(yypvt[-0].u_dn->d_elm);
				enter_display(Cv_display, salloc(yypvt[-0].u_dn->d_elm));
			}
		} break;
case 178:
# line 712 "grammar.y"

		{
			if (yypvt[-1].u_dn->d_elm [1] == '*')
				Indir_level += 1;
			Indir_level += 1;
			yyval.u_dn = yypvt[-0].u_dn;
		} break;
case 179:
# line 719 "grammar.y"

		{
			Indir_level += 1;
		} break;
case 180:
# line 724 "grammar.y"

		{
			if (!sequal(yypvt[-0].u_dn->d_elm, "*") && !sequal((struct disp_node *)(yypvt[-0].u_dn)->d_elm, "**"))
				yyserror(Opflag == mdDECL ?
				"invalid operator in declaration":
				"invalid operator in C variable",
				yypvt[-0].u_dn);
			if (Opflag == mdDECL)
				w_op(yypvt[-0].u_dn->d_elm);
			else
				enter_display(Cv_display, salloc(yypvt[-0].u_dn->d_elm));
		} break;
case 181:
# line 737 "grammar.y"

		{
			if (Opflag == mdDECL)
				eat_display(0, '[', ']');
			else
				eat_display(Cv_display, '[', ']');
		} break;
case 182:
# line 750 "grammar.y"

		{
			if (yypvt[-0].u_dn)
			{
				if (Cvarp)
				{
					if (Fieldp && Fieldp->c_type != opSTRING
					   || !Fieldp && Cvarp->c_type != opSTRING)
						yyserror("string var expected", yypvt[-0].u_dn);
					else if (Opflag == mdFILENAME)
						w_var(Cv_display, opSTRING);
					else if (Opflag == mdINGRES)
						w_display(Cv_display);
					else
						w_var(Cv_display, opIDSTRING);
				}
				else if (Opflag == mdINGRES)
					w_string(yypvt[-0].u_dn->d_elm, 0);
				else if (Opflag == mdFILENAME)
					yyserror("file for a COPY must be a string or string variable",
					yypvt[-0].u_dn);
				else
					w_key(yypvt[-0].u_dn->d_elm);
			}
			free_display(Cv_display);
			Fieldp = Cvarp = 0;
		} break;
case 185:
# line 783 "grammar.y"

			w_con(I2CONST, yypvt[-0].u_dn->d_elm); break;
case 186:
# line 785 "grammar.y"

		{
			if (yypvt[-0].u_dn)
			{
				if (Cvarp)
					if (Fieldp && Fieldp->c_type == opINT
					   || Cvarp->c_type == opINT)
						w_var(Cv_display, opINT);
					else
						yyserror("integer variable required",
						yypvt[-0].u_dn);
				else
					yyserror("integer variable required", yypvt[-0].u_dn);
			}
			free_display(Cv_display);
		} break;
case 189:
# line 807 "grammar.y"

		{
			w_op("(");
			end_quote();
			if (Opflag == mdTUPRET)
				w_key("IIw_left");
			else
				w_key("IIw_right");
			eat_display(0, '(', ')');
			w_op(";");
			begin_quote();
			w_op(")");

		} break;
case 191:
# line 824 "grammar.y"

		{
			if (!yypvt[-0].u_dn || !Cvarp)
				yyserror("C var (string) expected", yypvt[-0].u_dn);
			else if (Fieldp && Fieldp->c_type == opSTRING
				|| Cvarp->c_type == opSTRING)
			{
				end_quote();
				w_op("IIwrite(");
				w_display(Cv_display);
				w_op(");");
			}
			else
				yyserror("var must be string valued for qualification",
				yypvt[-0].u_dn);
			free_display(Cv_display);
			Cvarp = Fieldp = 0;
		} break;
case 202:
# line 857 "grammar.y"
 
			w_con(SCONST, yypvt[-0].u_dn->d_elm); break;
case 218:
# line 887 "grammar.y"
 
			w_con(I2CONST, yypvt[-0].u_dn->d_elm); break;
case 219:
# line 889 "grammar.y"
 
			w_con(I4CONST, yypvt[-0].u_dn->d_elm); break;
case 220:
# line 891 "grammar.y"
 
			w_con(F8CONST, yypvt[-0].u_dn->d_elm); break;
case 221:
# line 893 "grammar.y"
 
			w_con(SCONST, yypvt[-0].u_dn->d_elm); break;
case 227:
# line 902 "grammar.y"

		{
			if (Opflag != mdVIEW && Opflag != mdRETRIEVE
			   && Opflag != mdAPPEND)
				yyserror(
				"'all' applied to this range variable illegal in this kind of statement",
				yypvt[-2].u_dn);
		} break;
case 228:
# line 911 "grammar.y"
 
			w_key(yypvt[-0].u_dn->d_elm); break;
case 229:
# line 914 "grammar.y"
 
			w_key(yypvt[-0].u_dn->d_elm); break;
case 230:
# line 917 "grammar.y"
 
			w_op(yypvt[-0].u_dn->d_elm); break;
case 231:
# line 920 "grammar.y"
 
			w_op(yypvt[-0].u_dn->d_elm); break;
case 232:
# line 922 "grammar.y"
 
			w_op(yypvt[-0].u_dn->d_elm); break;
case 233:
# line 924 "grammar.y"
 
			w_op("="); break;
case 234:
# line 927 "grammar.y"
 
			w_op(yypvt[-0].u_dn->d_elm); break;
case 235:
# line 930 "grammar.y"
 
			w_key(yypvt[-0].u_dn->d_elm); break;
case 236:
# line 933 "grammar.y"
 
			w_key(yypvt[-0].u_dn->d_elm); break;
case 237:
# line 936 "grammar.y"
 
			w_op(yypvt[-0].u_dn->d_elm); break;
case 238:
# line 938 "grammar.y"
 
			w_op(yypvt[-0].u_dn->d_elm); break;
case 239:
# line 941 "grammar.y"

			w_key(yypvt[-0].u_dn->d_elm); break;
case 240:
# line 944 "grammar.y"
 
			w_key(yypvt[-0].u_dn->d_elm); break;
case 241:
# line 952 "grammar.y"

		{
			begin_quote();
			w_key(yypvt[-0].u_dn->d_elm);
			Opflag = mdAPPEND;
		} break;
case 242:
# line 959 "grammar.y"

		{
			Opflag = mdAPPEND;
			begin_quote();
			w_key(yypvt[-0].u_dn->d_elm);
		} break;
case 243:
# line 966 "grammar.y"

		{
			Opflag = mdCOPY;
			begin_quote();
			w_key(yypvt[-0].u_dn->d_elm);
		} break;
case 244:
# line 973 "grammar.y"

		{
			Opflag = mdCOPY;
			begin_quote();
			w_key(yypvt[-0].u_dn->d_elm);
		} break;
case 245:
# line 980 "grammar.y"
 
		{
			w_key(yypvt[-0].u_dn->d_elm);
			Opflag = mdFILENAME;
		} break;
case 246:
# line 985 "grammar.y"
 
		{
			w_key(yypvt[-0].u_dn->d_elm);
			Opflag = mdFILENAME;
		} break;
case 247:
# line 991 "grammar.y"

		{
			Opflag = mdCREATE;
			begin_quote();
			w_key(yypvt[-0].u_dn->d_elm);
		} break;
case 248:
# line 998 "grammar.y"

		{
			Opflag = mdCREATE;
			begin_quote();
			w_key(yypvt[-0].u_dn->d_elm);
		} break;
case 249:
# line 1005 "grammar.y"

		{
			Opflag = mdDEFINE;
			begin_quote();
			w_key(yypvt[-0].u_dn->d_elm);
		} break;
case 250:
# line 1012 "grammar.y"

		{
			Opflag = mdDELETE;
			begin_quote();
			w_key(yypvt[-0].u_dn->d_elm);
		} break;
case 251:
# line 1019 "grammar.y"

		{
			Opflag = mdDESTROY;
			begin_quote();
			w_key(yypvt[-0].u_dn->d_elm);
		} break;
case 252:
# line 1026 "grammar.y"

		{
			Opflag = mdHELP;
			begin_quote();
			w_key(yypvt[-0].u_dn->d_elm);
		} break;
case 253:
# line 1033 "grammar.y"

		{
			Opflag = mdINDEX;
			begin_quote();
			w_key(yypvt[-1].u_dn->d_elm);
			w_key(yypvt[-0].u_dn->d_elm);
		} break;
case 254:
# line 1041 "grammar.y"

		{
			Opflag = mdINGRES;
			w_new("IIingres(");
		} break;
case 255:
# line 1047 "grammar.y"

		{
			if (Opflag == mdDEFINE)
				Opflag = mdINTEGRITY;
			w_key(yypvt[-0].u_dn->d_elm);
		} break;
case 256:
# line 1054 "grammar.y"

		{ 
			if (Opflag == mdCTLELM)
				Opflag = mdTUPRET;
			w_op("=");
		} break;
case 257:
# line 1060 "grammar.y"
 
			w_key(yypvt[-0].u_dn->d_elm); break;
case 258:
# line 1063 "grammar.y"

		{
			Opflag = mdMODIFY;
			begin_quote();
			w_key(yypvt[-0].u_dn->d_elm);
		} break;
case 259:
# line 1070 "grammar.y"

		{
			if (Opflag == mdDEFINE)
				Opflag = mdINTEGRITY;
			w_key(yypvt[-0].u_dn->d_elm);
		} break;
case 260:
# line 1077 "grammar.y"
  
		{ 
			Opflag = mdPRINT;
			begin_quote();
			w_key(yypvt[-0].u_dn->d_elm);
		} break;
case 261:
# line 1084 "grammar.y"
 
		{
			Opflag = mdRANGE;
			begin_quote();
			w_key(yypvt[-1].u_dn->d_elm);
			w_key(yypvt[-0].u_dn->d_elm);
		} break;
case 262:
# line 1092 "grammar.y"

		{
			Opflag = mdREPLACE;
			begin_quote();
			w_key(yypvt[-0].u_dn->d_elm);
		} break;
case 263:
# line 1099 "grammar.y"

		{
			begin_quote();
			Opflag = mdREPLACE;
			w_key(yypvt[-0].u_dn->d_elm);
		} break;
case 264:
# line 1106 "grammar.y"

		{
			Opflag = mdRETRIEVE;
			begin_quote();
			w_key(yypvt[-0].u_dn->d_elm);
		} break;
case 265:
# line 1113 "grammar.y"

		{
			Opflag = mdRETRIEVE;
			begin_quote();
			w_key(yypvt[-0].u_dn->d_elm);
		} break;
case 266:
# line 1120 "grammar.y"

		{
			Opflag = mdSAVE;
			begin_quote();
			w_key(yypvt[-0].u_dn->d_elm);
		} break;
case 267:
# line 1127 "grammar.y"

		{
			Opflag = mdDECL;
			Struct_flag = 1;
			w_key(yypvt[-0].u_dn->d_elm);
		} break;
case 268:
# line 1134 "grammar.y"

		{
			begin_quote();
			w_key(yypvt[-0].u_dn->d_elm);
			Opflag = mdTUPRET;
		} break;
case 269:
# line 1141 "grammar.y"

		{
			if (Opflag == mdDEFINE)
				Opflag = mdVIEW;
			w_key(yypvt[-0].u_dn->d_elm);
		} break;
case 270:
# line 1153 "grammar.y"

			w_key(yypvt[-0].u_dn->d_elm); break;
case 276:
# line 1162 "grammar.y"

			w_key(yypvt[-0].u_dn->d_elm); break;
case 277:
# line 1165 "grammar.y"

			w_op(yypvt[-0].u_dn->d_elm); break;
case 278:
# line 1168 "grammar.y"
 
			w_op(yypvt[-0].u_dn->d_elm); break;
case 283:
# line 1176 "grammar.y"

			w_key(yypvt[-0].u_dn->d_elm); break;
case 288:
# line 1184 "grammar.y"
 
			w_op("="); break;
case 291:
# line 1190 "grammar.y"

			w_op(yypvt[-0].u_dn->d_elm); break;
case 292:
# line 1193 "grammar.y"
 
			w_op(yypvt[-0].u_dn->d_elm); break;
case 293:
# line 1196 "grammar.y"

			w_key(yypvt[-0].u_dn->d_elm); break;
case 294:
# line 1199 "grammar.y"

			w_key(yypvt[-0].u_dn->d_elm); break;
case 295:
# line 1202 "grammar.y"

			w_op(yypvt[-0].u_dn->d_elm); break;
case 300:
# line 1210 "grammar.y"

			w_op(yypvt[-0].u_dn->d_elm); break;
case 301:
# line 1213 "grammar.y"
 
			w_key(yypvt[-0].u_dn->d_elm); break;
case 305:
# line 1220 "grammar.y"
 
			w_key(yypvt[-0].u_dn->d_elm); break;
case 306:
# line 1223 "grammar.y"
 
			w_key(yypvt[-0].u_dn->d_elm); break;
		}
		goto yystack;  /* stack new state and value */

	}