
# line 2 "gram.y"
/***********************************
  (C) Copyright 1992-1993; dit/upm
  Distributed under the conditions stated in the
  TOPO General Public License (see file LICENSE)
 ***********************************
 $Log: lfe.spe,v $
 * Revision 2.20  2000/07/00  16:32:00  kjt
 * changed YYMAXDEPTH to 512
 *
 * Revision 2.19  1993/06/15  12:49:18  lotos
 * added funny colour to annotation nodes (# of lines)
 *
 * Revision 2.18  1993/03/24  18:02:51  lotos
 * new annotations for glad
 *
 * Revision 2.17  1993/01/18  18:04:54  lotos
 * distribution issues
 *
 * Revision 2.16  1992/11/19  18:26:07  lotos
 * bug fix
 *
 * Revision 2.15  1992/11/17  17:45:12  lotos
 * add source line information in 'i' and 'stop' nodes
 *
 * Revision 2.14  1992/11/04  16:30:57  lotos
 * add colour ldcinit
 * permit annotation ldc at the end of the spec
 * fix syntactical checking of parse annotation
 *
 * Revision 2.13  1992/10/14  19:19:47  lotos
 * added annotations type & copy
 * check contents pf annotations: empty, nonempty, one word
 *
 * Revision 2.12  1992/10/14  18:35:08  lotos
 * preserve behavioural annotations in their excom nodes
 * preserve annotations ordering
 * check consistency of combinations of annotations
 * remove annotations from STOP nodes
 * add new annotation IF, and USE
 *
 * Revision 2.11  1992/09/11  15:02:28  lotos
 * remove executable comments from tree, onto independent nodes
 *
 * Revision 2.10  1992/09/02  14:47:27  lotos
 * keep annotations as independent (and sorted!) nodes in AST
 *
 * Revision 2.9  92/01/14  15:22:33  lotos
 * distribution issues
 *
 * Revision 2.8  92/01/13  16:23:35  lotos
 * ophuscation details
 *
 * Revision 2.7  92/01/10  15:20:24  lotos
 * modified for ophuscation
 *
 * Revision 2.6  92/01/10  14:58:43  lotos
 * annotations added for ascom compiler
 * allow to put default annotations about every undefined var declaration
 *
 * Revision 2.5  91/08/28  15:51:12  lotos
 * added colours: internal, lexical, lexicalifpossible, using,
 *                constructor, nonconstructor, and Einfix
 *
 * Revision 2.4  91/08/28  09:58:20  lotos
 * error productions added
 *
 * Revision 2.3  91/04/15  15:19:09  lotos
 * change annotation C->lbc at the end of the spec
 *
 * Revision 2.2  91/02/28  17:15:17  lotos
 * rule 'premiss ::= _value_expression' removed
 * consequences: colours c_bool, c_rectrue, c_true removed
 * unique identifier per class generated
 *
 *
 * Revision 2.1  90/10/30  14:11:41  lotos
 * compressed AST
 * use of hardwired colours
 * compressed value expressions
 * annotations to colours
 *
 * Revision 1.5  90/06/04  15:22:47  lotos
 * if then else fi, removed
 * final match, removed
 * last ';' of eqns, made optional
 * executable comments are always lists
 * minor changes to shut lint up
 * adclr -> set_attr
 *
 * Revision 1.4  90/03/16  17:38:39  lotos
 * new room for annotations lbc and ldc
 *
 * Revision 1.3  90/01/29  13:06:25  lotos
 * fixing license details
 *
 * Revision 1.2  90/01/25  15:56:38  lotos
 * carefully control where to put % { and % }
 * around version log
 * to avoid yacc complains
 *
 * Revision 1.1  90/01/24  14:45:09  lotos
 * Initial revision
 *
 ***********************************/

#ifndef lint
static char rcsid[]= "$Id: lfe.spe,v 2.19 1993/06/15 12:49:18 lotos Exp $";
#endif

/* KJT 20/01/23: added function prototypes */
int yyparse();

# line 112 "gram.y"
# include "swbus.h"
# define YYMAXDEPTH      512
# define YYSTYPE         yystype
# define putgrn(n)       (void)ITadd(n, gl)
# define class(nt)       { cls= 0; xxc= nt-1;   \
	       for (xc= 0; xc < nt; xc++, xxc--)    \
			     if (stpick(xc)->type != tNULL) \
		 cls += (1 << xxc);}
# define ndput(tp)   { stput(tp);   \
	       if (gn != NULL){gn->value0=  \
		  (CLR_TYPE)IAT_IT_add(gl, grnl); \
		  gl->size= 0;} \
	       gn= (sttype() == tNULL) ? NULL : sttop(); }
# define ndterm(tp, val) { stput (tp);  \
		       staclr (c_lexv, (CLR_TYPE)val.name); \
		       staclr (c_line, (CLR_TYPE)val.line);}

IT* gl;
TNODE*  gn;
int cls;
int xc;
int xxc;

# define SPECIFICATION 260
# define BEHAVIOUR 261
# define ENDSPEC 262
# define WHERE 263
# define LIBRARY 264
# define ENDLIB 265
# define STYPE 266
# define IS 267
# define ENDTYPE 268
# define ACTUALIZEDBY 269
# define USING 270
# define RENAMEDBY 271
# define FORMALSORTS 272
# define FORMALOPNS 273
# define FORMALEQNS 274
# define SORTS 275
# define OPNS 276
# define EQNS 277
# define SORTNAMES 278
# define OPNNAMES 279
# define FOR 280
# define FORALL 281
# define ARROW 282
# define OFSORT 283
# define IMPLICATION 284
# define PROCESS 285
# define DEFINITION 286
# define ENDPROC 287
# define EXIT 288
# define NOEXIT 289
# define LET 290
# define IN 291
# define CHOICE 292
# define FAT_BAR 293
# define PAR 294
# define SYNCHRONIZATION 295
# define INTERLEAVING 296
# define LEFT_PAR 297
# define RIGHT_PAR 298
# define HIDE 299
# define ENABLE 300
# define ACCEPT 301
# define DISABLE 302
# define I 303
# define STOP 304
# define ANY 305
# define OF 306
# define IDENTIFIER 307
# define SPECIAL 308
# define EXCOMM 309
#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 3006 "gram.y"


PRIVATE int
yylex ()
{
    token *tk;

   tk = gtk ();
   yylval = tk->yylval;
   return tk->type;
}

PUBLIC TNODE*
bast ()
{
   gl= ITcreate (4, 2, 1);
   gn= NULL;
   (void)yyparse();
   if (gn != NULL) gn->value0= (CLR_TYPE)IAT_IT_add(gl, grnl);
   return sttop();
}
short yyexca[] ={
-1, 1,
	0, -1,
	-2, 0,
-1, 126,
	309, 247,
	59, 247,
	63, 247,
	33, 247,
	-2, 246,
-1, 402,
	284, 105,
	44, 105,
	-2, 99,
	};
# define YYNPROD 253
# define YYLAST 486
short yyact[]={

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

-126,-1000,-1000,-1000,-214,-143,  82,-134,-1000,-1000,
-1000,-215,-216,-1000, 217,-1000,-217,  31,-1000,-140,
-141, 175,-1000,-1000,-147,-150,-1000,-291, 128,-1000,
-218,  77,  76, 174,-1000,-1000,-131,-137,-1000,-1000,
-1000,-1000,-1000,-220,-221,-222,  31,-246,-1000,-224,
-250,-1000,-239,-1000,-229,-1000,-1000,-1000, -36,-1000,
-1000,-1000,-179,  -7,-1000, -13,-1000,-1000,-1000,-261,
-261,-1000,-128,-1000,-1000,-1000,-192, 201, 191, 172,
-1000, 127, 171,-1000,-1000,-1000,-1000,-262,-1000,-1000,
-166,-210,-211, 170,-1000, 116,-231,-234,-1000,-1000,
 168,-1000,   8,-239,-239,-1000,-213,-1000, -36,-248,
-219,-223, -36, -36,-1000,-1000,-225, -36,-1000,-1000,
 122, 215,  54,  85, 147,-1000,-1000,  75,  74,-1000,
-1000, -41,-257, 214, -21,-1000,-1000,-1000,-205,-157,
-155,-1000, 167, -43, 208,-1000,-1000,-1000,-264,-263,
-264,-1000,-1000,-1000,-1000,-166,-1000,-1000,-1000,-228,
  31,  31,-264, -10,  31,  31,-264,  84,  31,  31,
-1000,-1000,-264,-1000,-1000,-1000,-1000,-237,-238,-1000,
 162,-1000,-1000,-254,-1000, -23, 189, 188, 204,-1000,
-230,-1000,  83, 147,-1000,-264, -10,-1000,-1000,-1000,
 -10, -10,-1000,-263,-1000, -10, -16, 186,-1000,-1000,
-206,-263,-261,-207,-261,-132,-133,-1000,-263,-1000,
-1000,-1000,-1000,-1000,  82,-212,-1000,-1000,-1000,-1000,
-285,-1000,-1000,-1000,-262,-1000,-1000,-226,-1000,-1000,
-262,-1000, 185, 161,-1000,-285,-263,-1000,-1000,-1000,
 -10,  69,  66,-1000,-1000,-1000,-1000, 126,-285,-285,
-259,-1000, 184, 157,-285,-1000,-1000,-161, -74,-1000,
 156,-1000,-153,-1000,-1000,-170,-263,-1000,-1000,-1000,
 180, 154,-1000,-185,  31,-1000,  61,-1000,-1000,-1000,
 -23,-1000, 179,-1000,-1000,-1000,-263,-1000,-263,-1000,
 -10,-163,-175,-1000, -74,-1000, 125, 151,-1000,-1000,
-285,-263,-207,-1000,-285,-1000,-263,-1000,-172,-1000,
-1000,-1000,-263, -54,-193,-1000,-1000,-1000,-1000,-1000,
-285,-165,-263,-1000,-181,-264,-1000,-263, -74,-1000,
  52,-1000,-1000,-1000,-285,-1000,-173,-1000,-263,-1000,
-199,-203,-1000,-167, -74,-1000, 150,-1000,-1000,-1000,
-181,-1000,-263,-1000,-209,-1000, 148,-1000,-1000,-1000,
-1000,-285,-1000,-1000,-1000,-1000,-176,-1000, -74,-1000,
-263,-1000,-1000,-177,-263,-263,-1000,-1000,-1000,-181,
-264,-1000,-1000, -10,-264,-1000,-1000,-1000,-1000,-1000,
 119,-1000,-1000,-208, 145,-1000,-1000, -10, -10, -10,
-1000,-1000, -41,-1000 };
short yypgo[]={

   0, 485, 484, 279, 483, 138,  10,  16, 482, 481,
 262, 480, 163, 370, 479, 478, 477, 476, 152, 475,
 474, 473, 144, 472,  14, 471, 470, 469, 468, 467,
 466, 465, 464, 463, 462, 461, 460, 459, 458, 457,
 456, 455, 454,  15, 453,  11,   5,   0, 452, 451,
   9, 450,   6,   3, 449,   8, 448, 447, 446, 445,
 444,  13, 443, 442, 441,  12, 440, 439, 438,   7,
   1, 437, 436,   4, 435,   2, 148, 434, 433, 430,
 429, 425, 187, 422, 421, 420, 419, 418, 417, 416,
 164, 408, 407, 149, 263, 406, 193, 405, 172, 404,
 142, 403, 161, 402, 400, 399, 158, 398, 153, 396,
 182, 394, 387, 150, 384, 156, 383, 382, 378, 375,
 140, 374, 371, 366, 143, 151, 362, 361, 359, 351,
  69, 350, 336, 329, 141, 326, 139, 324, 316, 288,
 283, 280, 146, 278, 275, 270, 171, 258, 191 };
short yyr1[]={

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

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

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

  15,  -2,   1,   2,   0,  17, 113,   0, 241,  16,
  18,   0,   0, 249, 115, 114,   0, 249, 249,   0,
   0,  25,  23, 242,   0,   0,  15, 251,   0, 116,
   0,   0,   0, 236, 234, 247,   0,   7, 129, 130,
 131, 132, 133,   0,   0,   0, 249, 156, 157,   0,
 162, 163, 165, 166, 168, 169, 171, 172, 249, 177,
 178, 179,   0,   0, 192,   0,   6,  19,  20,   0,
  26,  22,   0, 250, 252, 117,   0,   0,   0, 226,
 224,   0, 240, 238, 249, 118, 119,   0, 249,   9,
   0,   0,   0, 138, 136,   0,   0,   0, 142, 143,
 230, 228,   0,   0,   0, 146,   0, 153, 249, 159,
   0,   0, 249, 249, 147, 148, 149, 249, 173, 174,
   0, 193, 249, 203, 249, 249,  -2,   0,   0, 105,
 106, 107, 210, 216,   0, 244, 245,  24,   0,  34,
  31,  27,  33, 249, 122, 125, 120, 121,   0,   0,
   0, 248, 235,   5,   8,  12,  10,  13,  14,   0,
 249, 249,   0,   0, 249, 249,   0,   0, 249, 249,
 158, 161,   0, 154, 155, 164, 167,   0,   0, 150,
 233, 231, 170, 249, 195,   0,   0,   0, 205, 204,
   0, 181, 189, 186, 184,   0,   0, 183, 175, 176,
   0,   0, 212,   0, 218,   0,   0,   0,  21,  28,
  36,   0,   0,  47,   0,   0,   0, 124,   0, 225,
 227, 243, 239,  11, 113,   0, 246, 134, 135, 137,
 139, 140, 141, 229,   0, 144, 145,   0, 151, 152,
   0, 180,   0, 200, 198, 201,   0, 196, 197, 207,
   0,   0,   0, 249, 191, 190, 185,   0, 188, 108,
 213, 211,   0, 223, 221, 219, 220,  38,   0,  35,
  62,  60,   0,  31,  30,  49,   0,  32, 249, 249,
   0, 128, 126,   0, 249, 112,   0, 160, 232, 194,
   0, 202,   0, 208, 209, 182,   0, 215,   0, 217,
   0,  40,  66,  37,  65,  63,   0,  81,  79, 249,
   0,   0,  47,  51,   0,  48,  54,  52,   0,   3,
   4, 123,   0, 249,   0, 237, 199, 206, 187, 214,
 222,  42,   0,  39,   0,   0,  64,  76,   0,  82,
   0,  61,  29,  50,  57,  55,   0,  53,   0, 127,
   0,   0, 110,  44,   0,  41,  71,  69, 249,  68,
  92,  90,   0,  67,   0,  77,  86,  84,  80, 249,
  56,   0,  58, 109, 111,  46,  87,  43,  75,  73,
   0,  72,  91,  93,   0,   0,  83,  59,  45,   0,
   0,  74,  70, 101,   0,  78,  85,  89,  88,  95,
  98,  96,  -2,   0, 104, 102,  94, 101,   0,   0,
  97, 100,   0, 103 };
# line 1 "/usr/lib/yaccpar"
#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 */

/* KJT 20/01/23: added "int" type */
int 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 195 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(1);
	}
	} break;
case 2:
# line 205 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(2);
	}
	} break;
case 3:
# line 215 "gram.y"
{
	if (errorcount == 0)
	{
	 class(6);
	 stlrlink ();
	 stlrlink ();
	 stlrlink ();
	 stlrlink ();
	 stlrlink ();
	 ndput(tspecification);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(3);
	}
	} break;
case 4:
# line 236 "gram.y"
{
	if (errorcount == 0)
	{
	 class(6);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(tspecification);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(4);
	}
	} break;
case 5:
# line 267 "gram.y"
{
	if (errorcount == 0)
	{
	 class(3);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(tspecification);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(5);
	}
	} break;
case 6:
# line 289 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(tspecification);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(6);
	}
	} break;
case 7:
# line 308 "gram.y"
{ ndput (tNULL); } break;
case 9:
# line 317 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(tdefinition_block);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(7);
	}
	} break;
case 11:
# line 340 "gram.y"
{ if (errorcount == 0) stlrlink (); } break;
case 12:
# line 345 "gram.y"
{
	if (errorcount == 0)
	{
	 class(1);
	 ndput(tlocal_definitions);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(8);
	}
	} break;
case 13:
# line 361 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(9);
	}
	} break;
case 14:
# line 371 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(10);
	}
	} break;
case 15:
# line 381 "gram.y"
{ ndput(tNULL); } break;
case 16:
# line 386 "gram.y"
{
	if (errorcount == 0)
	{
	 if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	}
	} break;
case 17:
# line 397 "gram.y"
{
	if (errorcount == 0)
	{
	 if (sttype() == tNULL){
		class(0);
		stpop();
	 }
	 else class(1);
	 ndput(tdata_type_definitions);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (cls == 1) stsflink ();
	 putgrn(11);
	}
	} break;
case 18:
# line 415 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(12);
	}
	} break;
case 19:
# line 425 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(13);
	}
	} break;
case 20:
# line 435 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(14);
	}
	} break;
case 21:
# line 445 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 stlrlink ();
	 ndput(ttype_definition);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(15);
	}
	} break;
case 22:
# line 462 "gram.y"
{
	if (errorcount == 0)
	{
	 if (sttype() == tNULL){
		class(0);
		stpop();
	 }
	 else class(1);
	 ndput(ttype_definition);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (cls == 1) stsflink ();
	 putgrn(16);
	}
	} break;
case 24:
# line 484 "gram.y"
{ if (errorcount == 0) stlrlink (); } break;
case 25:
# line 489 "gram.y"
{
	if (errorcount == 0)
	{
	 class(1);
	 ndput(tlibrary_declaration);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(17);
	}
	} break;
case 26:
# line 505 "gram.y"
{ ndput (tNULL); } break;
case 28:
# line 514 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(tp_expression);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(18);
	}
	} break;
case 29:
# line 533 "gram.y"
{
	if (errorcount == 0)
	{
	 class(3);
	 stlrlink ();
	 stlrlink ();
	 ndput(tp_expression);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(19);
	}
	} break;
case 30:
# line 551 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 stlrlink ();
	 ndput(tp_expression);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(20);
	}
	} break;
case 32:
# line 572 "gram.y"
{ if (errorcount == 0) stlrlink (); } break;
case 33:
# line 577 "gram.y"
{
	if (errorcount == 0)
	{
	 class(1);
	 ndput(ttype_union);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(21);
	}
	} break;
case 34:
# line 593 "gram.y"
{ ndput (tNULL); } break;
case 36:
# line 602 "gram.y"
{ ndput (tNULL); } break;
case 38:
# line 611 "gram.y"
{ ndput (tNULL); } break;
case 40:
# line 620 "gram.y"
{ ndput (tNULL); } break;
case 42:
# line 629 "gram.y"
{ ndput (tNULL); } break;
case 44:
# line 638 "gram.y"
{ ndput (tNULL); } break;
case 46:
# line 647 "gram.y"
{
	if (errorcount == 0)
	{
	 class(6);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(tp_specification);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(22);
	}
	} break;
case 47:
# line 678 "gram.y"
{ ndput (tNULL); } break;
case 49:
# line 687 "gram.y"
{ ndput (tNULL); } break;
case 51:
# line 696 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(treplacement);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(23);
	}
	} break;
case 53:
# line 719 "gram.y"
{ if (errorcount == 0) stlrlink (); } break;
case 54:
# line 724 "gram.y"
{
	if (errorcount == 0)
	{
	 class(1);
	 ndput(tsort_pair_list);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(24);
	}
	} break;
case 56:
# line 744 "gram.y"
{ if (errorcount == 0) stlrlink (); } break;
case 57:
# line 749 "gram.y"
{
	if (errorcount == 0)
	{
	 class(1);
	 ndput(toperation_pair_list);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(25);
	}
	} break;
case 58:
# line 765 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 stlrlink ();
	 ndput(tsort_pair);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(26);
	}
	} break;
case 59:
# line 782 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 stlrlink ();
	 ndput(toperation_pair);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(27);
	}
	} break;
case 61:
# line 803 "gram.y"
{ if (errorcount == 0) stlrlink (); } break;
case 62:
# line 808 "gram.y"
{
	if (errorcount == 0)
	{
	 class(1);
	 ndput(tformal_sorts);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(28);
	}
	} break;
case 64:
# line 828 "gram.y"
{ if (errorcount == 0) stlrlink (); } break;
case 65:
# line 833 "gram.y"
{
	if (errorcount == 0)
	{
	 class(1);
	 ndput(tformal_operations);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(29);
	}
	} break;
case 66:
# line 849 "gram.y"
{ ndput (tNULL); } break;
case 68:
# line 858 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(tformal_equations);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(30);
	}
	} break;
case 70:
# line 881 "gram.y"
{ if (errorcount == 0) stlrlink (); } break;
case 71:
# line 886 "gram.y"
{
	if (errorcount == 0)
	{
	 class(1);
	 ndput(tsorts);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(31);
	}
	} break;
case 72:
# line 902 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 stlrlink ();
	 ndput(tsort_id_comm);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(32);
	}
	} break;
case 74:
# line 923 "gram.y"
{ if (errorcount == 0) stlrlink (); } break;
case 75:
# line 928 "gram.y"
{
	if (errorcount == 0)
	{
	 class(1);
	 ndput(toperations);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(33);
	}
	} break;
case 76:
# line 944 "gram.y"
{ ndput (tNULL); } break;
case 78:
# line 953 "gram.y"
{
	if (errorcount == 0)
	{
	 class(3);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(toperation);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(34);
	}
	} break;
case 80:
# line 979 "gram.y"
{ if (errorcount == 0) stlrlink (); } break;
case 81:
# line 984 "gram.y"
{
	if (errorcount == 0)
	{
	 class(1);
	 ndput(tdescriptor_list);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(35);
	}
	} break;
case 82:
# line 1000 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 stlrlink ();
	 ndput(toperation_descriptor);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(36);
	}
	} break;
case 83:
# line 1017 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 stlrlink ();
	 ndput(toperation_descriptor);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(37);
	}
	} break;
case 85:
# line 1038 "gram.y"
{ if (errorcount == 0) stlrlink (); } break;
case 86:
# line 1043 "gram.y"
{
	if (errorcount == 0)
	{
	 class(1);
	 ndput(targument_list);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(38);
	}
	} break;
case 87:
# line 1059 "gram.y"
{ ndput (tNULL); } break;
case 89:
# line 1068 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(tequations);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(39);
	}
	} break;
case 91:
# line 1091 "gram.y"
{ if (errorcount == 0) stlrlink (); } break;
case 92:
# line 1096 "gram.y"
{
	if (errorcount == 0)
	{
	 class(1);
	 ndput(tequation_lists);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(40);
	}
	} break;
case 93:
# line 1112 "gram.y"
{ ndput (tNULL); } break;
case 95:
# line 1121 "gram.y"
{
	if (errorcount == 0)
	{
	 class(3);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(tequation_list);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(41);
	}
	} break;
case 97:
# line 1147 "gram.y"
{ if (errorcount == 0) stlrlink (); } break;
case 98:
# line 1152 "gram.y"
{
	if (errorcount == 0)
	{
	 class(1);
	 ndput(teqn_list);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(42);
	}
	} break;
case 99:
# line 1168 "gram.y"
{
	if (errorcount == 0)
	{
	 class(1);
	 ndput(tequation);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(43);
	}
	} break;
case 100:
# line 1184 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 stlrlink ();
	 ndput(tequation);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(44);
	}
	} break;
case 101:
# line 1201 "gram.y"
{
	if (errorcount == 0)
	{
	 ndput(tequation);
	 putgrn(45);
	}
	} break;
case 103:
# line 1216 "gram.y"
{ if (errorcount == 0) stlrlink (); } break;
case 104:
# line 1221 "gram.y"
{
	if (errorcount == 0)
	{
	 class(1);
	 ndput(tpremisses);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(46);
	}
	} break;
case 105:
# line 1237 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(47);
	}
	} break;
case 106:
# line 1247 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(48);
	}
	} break;
case 107:
# line 1257 "gram.y"
{
	if (errorcount == 0)
	{
	 class(1);
	 ndput(timplicit_true);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(49);
	}
	} break;
case 108:
# line 1273 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 stlrlink ();
	 ndput(tsimple_equation);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(50);
	}
	} break;
case 109:
# line 1290 "gram.y"
{
	if (errorcount == 0)
	{
	 class(3);
	 stlrlink ();
	 stlrlink ();
	 ndput(tprocess_definition);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(51);
	}
	} break;
case 110:
# line 1308 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(tprocess_definition);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(52);
	}
	} break;
case 111:
# line 1327 "gram.y"
{
	if (errorcount == 0)
	{
	 class(3);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(tprocess_definition);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(53);
	}
	} break;
case 112:
# line 1349 "gram.y"
{
	if (errorcount == 0)
	{
	 if (sttype() == tNULL){
		class(0);
		stpop();
	 }
	 else class(1);
	 ndput(tprocess_definition);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (cls == 1) stsflink ();
	 putgrn(54);
	}
	} break;
case 113:
# line 1367 "gram.y"
{ ndput (tNULL); } break;
case 115:
# line 1376 "gram.y"
{ ndput (tNULL); } break;
case 117:
# line 1385 "gram.y"
{
	if (errorcount == 0)
	{
	 class(3);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(tformal_parameter_list);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(55);
	}
	} break;
case 118:
# line 1407 "gram.y"
{
	if (errorcount == 0)
	{
	 class(1);
	 ndput(tgate_parameter_list);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(56);
	}
	} break;
case 119:
# line 1423 "gram.y"
{
	if (errorcount == 0)
	{
	 if (sttype() == tNULL){
		class(0);
		stpop();
	 }
	 else class(1);
	 ndput(tgate_parameter_list);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (cls == 1) stsflink ();
	 putgrn(57);
	}
	} break;
case 120:
# line 1441 "gram.y"
{
	if (errorcount == 0)
	{
	 class(1);
	 ndput(tvalue_parameter_list);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(58);
	}
	} break;
case 121:
# line 1457 "gram.y"
{
	if (errorcount == 0)
	{
	 if (sttype() == tNULL){
		class(0);
		stpop();
	 }
	 else class(1);
	 ndput(tvalue_parameter_list);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (cls == 1) stsflink ();
	 putgrn(59);
	}
	} break;
case 122:
# line 1475 "gram.y"
{ ndput (tNULL); } break;
case 124:
# line 1484 "gram.y"
{
	if (errorcount == 0)
	{
	 if (sttype() == tNULL){
		class(0);
		stpop();
	 }
	 else class(1);
	 ndput(tfunctionality_list);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (cls == 1) stsflink ();
	 putgrn(60);
	}
	} break;
case 125:
# line 1502 "gram.y"
{
	if (errorcount == 0)
	{
     ndput(tfunctionality_list);
	 putgrn(61);
	}
	} break;
case 127:
# line 1517 "gram.y"
{ if (errorcount == 0) stlrlink (); } break;
case 128:
# line 1522 "gram.y"
{
	if (errorcount == 0)
	{
	 class(1);
	 ndput(texit_list);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(62);
	}
	} break;
case 129:
# line 1538 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(63);
	}
	} break;
case 130:
# line 1548 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(64);
	}
	} break;
case 131:
# line 1558 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(65);
	}
	} break;
case 132:
# line 1568 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(66);
	}
	} break;
case 133:
# line 1578 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(67);
	}
	} break;
case 134:
# line 1588 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(tlocal_definition_expression);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(68);
	}
	} break;
case 135:
# line 1607 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(tlocal_definition_expression);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(69);
	}
	} break;
case 137:
# line 1630 "gram.y"
{ if (errorcount == 0) stlrlink (); } break;
case 138:
# line 1635 "gram.y"
{
	if (errorcount == 0)
	{
	 class(1);
	 ndput(tidentifier_equations);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(70);
	}
	} break;
case 139:
# line 1651 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 stlrlink ();
	 ndput(tidentifier_equation);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(71);
	}
	} break;
case 140:
# line 1668 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(tsum_expression);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(72);
	}
	} break;
case 141:
# line 1687 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(tsum_expression);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(73);
	}
	} break;
case 142:
# line 1706 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(74);
	}
	} break;
case 143:
# line 1716 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(75);
	}
	} break;
case 144:
# line 1726 "gram.y"
{
	if (errorcount == 0)
	{
	 class(3);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(tpar_expression);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(76);
	}
	} break;
case 145:
# line 1748 "gram.y"
{
	if (errorcount == 0)
	{
	 class(3);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(tpar_expression);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(77);
	}
	} break;
case 146:
# line 1770 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(78);
	}
	} break;
case 147:
# line 1780 "gram.y"
{
	if (errorcount == 0)
	{
     ndput(tparallel_operator);
	 putgrn(79);
	}
	} break;
case 148:
# line 1791 "gram.y"
{
	if (errorcount == 0)
	{
     ndput(tparallel_operator);
	 putgrn(80);
	}
	} break;
case 149:
# line 1802 "gram.y"
{ ndput (tNULL); } break;
case 151:
# line 1811 "gram.y"
{
	if (errorcount == 0)
	{
	 if (sttype() == tNULL){
		class(0);
		stpop();
	 }
	 else class(1);
	 ndput(tparallel_operator);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (cls == 1) stsflink ();
	 putgrn(81);
	}
	} break;
case 152:
# line 1829 "gram.y"
{
	if (errorcount == 0)
	{
	 if (sttype() == tNULL){
		class(0);
		stpop();
	 }
	 else class(1);
	 ndput(tparallel_operator);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (cls == 1) stsflink ();
	 putgrn(82);
	}
	} break;
case 153:
# line 1847 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(thiding_expression);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(83);
	}
	} break;
case 154:
# line 1866 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(84);
	}
	} break;
case 155:
# line 1876 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(85);
	}
	} break;
case 156:
# line 1886 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(86);
	}
	} break;
case 157:
# line 1896 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(87);
	}
	} break;
case 158:
# line 1906 "gram.y"
{
	if (errorcount == 0)
	{
	 class(3);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(tenable_expression);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(88);
	}
	} break;
case 159:
# line 1928 "gram.y"
{ ndput (tNULL); } break;
case 161:
# line 1937 "gram.y"
{
	if (errorcount == 0)
	{
	 if (sttype() == tNULL){
		class(0);
		stpop();
	 }
	 else class(1);
	 ndput(tenable_operator);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (cls == 1) stsflink ();
	 putgrn(89);
	}
	} break;
case 162:
# line 1955 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(90);
	}
	} break;
case 163:
# line 1965 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(91);
	}
	} break;
case 164:
# line 1975 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(tdisable_expression);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(92);
	}
	} break;
case 165:
# line 1994 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(93);
	}
	} break;
case 166:
# line 2004 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(94);
	}
	} break;
case 167:
# line 2014 "gram.y"
{
	if (errorcount == 0)
	{
	 class(3);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(tparallel_expression);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(95);
	}
	} break;
case 168:
# line 2036 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(96);
	}
	} break;
case 169:
# line 2046 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(97);
	}
	} break;
case 170:
# line 2056 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(tchoice_expression);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(98);
	}
	} break;
case 171:
# line 2075 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(99);
	}
	} break;
case 172:
# line 2085 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(100);
	}
	} break;
case 173:
# line 2095 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(tguarded_expression);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(101);
	}
	} break;
case 174:
# line 2114 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(102);
	}
	} break;
case 175:
# line 2124 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(103);
	}
	} break;
case 176:
# line 2134 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(104);
	}
	} break;
case 177:
# line 2144 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(105);
	}
	} break;
case 178:
# line 2154 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(106);
	}
	} break;
case 179:
# line 2164 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(107);
	}
	} break;
case 180:
# line 2174 "gram.y"
{
	if (errorcount == 0)
	{
	 class(3);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(taction_prefix_expression);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(108);
	}
	} break;
case 181:
# line 2196 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 stlrlink ();
	 ndput(taction_denotation);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(109);
	}
	} break;
case 182:
# line 2213 "gram.y"
{
	if (errorcount == 0)
	{
	 class(4);
	 stlrlink ();
	 stlrlink ();
	 stlrlink ();
	 ndput(taction_denotation);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(110);
	}
	} break;
case 183:
# line 2232 "gram.y"
{
	if (errorcount == 0)
	{
  if (errorcount == 0)
  {
    class(1);
    ndput(taction_denotation);
    sttop()->value1= (CLR_TYPE)cls;
    if (stpick(1)->type == tNULL)
    {stswap(); stpop();}
    else stsflink ();
    staclr (c_line, (CLR_TYPE)yypvt[-1].line);
    putgrn(111);
  }
	 putgrn(111);
	}
	} break;
case 185:
# line 2257 "gram.y"
{ if (errorcount == 0) stlrlink (); } break;
case 186:
# line 2262 "gram.y"
{
	if (errorcount == 0)
	{
	 class(1);
	 ndput(texperiment_offer_list);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(112);
	}
	} break;
case 187:
# line 2278 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 stlrlink ();
	 ndput(texperiment_offer);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(113);
	}
	} break;
case 188:
# line 2295 "gram.y"
{
	if (errorcount == 0)
	{
	 class(1);
	 ndput(texperiment_offer);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(114);
	}
	} break;
case 189:
# line 2311 "gram.y"
{ ndput (tNULL); } break;
case 191:
# line 2320 "gram.y"
{
	if (errorcount == 0)
	{
	 if (sttype() == tNULL){
		class(0);
		stpop();
	 }
	 else class(1);
	 ndput(tselection_predicate);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (cls == 1) stsflink ();
	 putgrn(115);
	}
	} break;
case 192:
# line 2338 "gram.y"
{
	if (errorcount == 0)
	{
	  ndput(tatomic_expression);
	 putgrn(116);
	}
	} break;
case 193:
# line 2349 "gram.y"
{ ndput (tNULL); } break;
case 195:
# line 2358 "gram.y"
{
	if (errorcount == 0)
	{
  if (errorcount == 0)
  {
    class(2);
    if (sttype() == tNULL) stpop();
    else if (stpick(1)->type == tNULL) {stswap(); stpop();}
    else stlrlink();
    ndput(tatomic_expression);
    sttop()->value1= (CLR_TYPE)cls;
    if (stpick(1)->type == tNULL)
		  {stswap(); stpop();}
    else stsflink ();
    putgrn(117);
    staclr (c_line, (CLR_TYPE)yypvt[-1].line);
  }
	 putgrn(117);
	}
	} break;
case 196:
# line 2382 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(tatomic_expression);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(118);
	}
	} break;
case 197:
# line 2401 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(tatomic_expression);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(119);
	}
	} break;
case 199:
# line 2424 "gram.y"
{ if (errorcount == 0) stlrlink (); } break;
case 200:
# line 2429 "gram.y"
{
	if (errorcount == 0)
	{
	 class(1);
	 ndput(texit_entry_list);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(120);
	}
	} break;
case 201:
# line 2445 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(121);
	}
	} break;
case 202:
# line 2455 "gram.y"
{
	if (errorcount == 0)
	{
	 putgrn(122);
	}
	} break;
case 203:
# line 2465 "gram.y"
{ ndput (tNULL); } break;
case 205:
# line 2474 "gram.y"
{ ndput (tNULL); } break;
case 207:
# line 2483 "gram.y"
{
	if (errorcount == 0)
	{
	 class(4);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(tprocess_instantiation);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(123);
	}
	} break;
case 208:
# line 2508 "gram.y"
{
	if (errorcount == 0)
	{
	 class(1);
	 ndput(tactual_gate_list);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(124);
	}
	} break;
case 209:
# line 2524 "gram.y"
{
	if (errorcount == 0)
	{
	 if (sttype() == tNULL){
		class(0);
		stpop();
	 }
	 else class(1);
	 ndput(tactual_gate_list);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (cls == 1) stsflink ();
	 putgrn(125);
	}
	} break;
case 210:
# line 2542 "gram.y"
{ ndput (tNULL); } break;
case 212:
# line 2551 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(tvalue_expression);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(126);
	}
	} break;
case 213:
# line 2570 "gram.y"
{ ndput (tNULL); } break;
case 215:
# line 2579 "gram.y"
{
	if (errorcount == 0)
	{
	 class(4);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(tvalue_expression);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(127);
	}
	} break;
case 216:
# line 2604 "gram.y"
{ ndput (tNULL); } break;
case 218:
# line 2613 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 if (sttype() == tNULL) stpop();
	 else if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	 ndput(tterm_expression);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(128);
	}
	} break;
case 219:
# line 2632 "gram.y"
{
	if (errorcount == 0)
	{
	 class(1);
	 ndput(tterm_expression);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(129);
	}
	} break;
case 220:
# line 2648 "gram.y"
{
	if (errorcount == 0)
	{
	 if (sttype() == tNULL){
		class(0);
		stpop();
	 }
	 else class(1);
	 ndput(tterm_expression);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (cls == 1) stsflink ();
	 putgrn(130);
	}
	} break;
case 222:
# line 2670 "gram.y"
{ if (errorcount == 0) stlrlink (); } break;
case 223:
# line 2675 "gram.y"
{
	if (errorcount == 0)
	{
	 class(1);
	 ndput(tvalue_expression_list);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(131);
	}
	} break;
case 225:
# line 2695 "gram.y"
{ if (errorcount == 0) stlrlink (); } break;
case 226:
# line 2700 "gram.y"
{
	if (errorcount == 0)
	{
	 class(1);
	 ndput(tidentifier_declarations);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(132);
	}
	} break;
case 227:
# line 2716 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 stlrlink ();
	 ndput(tidentifier_declaration);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(133);
	}
	} break;
case 229:
# line 2737 "gram.y"
{ if (errorcount == 0) stlrlink (); } break;
case 230:
# line 2742 "gram.y"
{
	if (errorcount == 0)
	{
	 class(1);
	 ndput(tgate_declarations);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(134);
	}
	} break;
case 232:
# line 2762 "gram.y"
{ if (errorcount == 0) stlrlink (); } break;
case 233:
# line 2767 "gram.y"
{
	if (errorcount == 0)
	{
	 class(1);
	 ndput(tgate_list);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(135);
	}
	} break;
case 235:
# line 2787 "gram.y"
{ if (errorcount == 0) stlrlink (); } break;
case 236:
# line 2792 "gram.y"
{
	if (errorcount == 0)
	{
	 class(1);
	 ndput(tgate_declaration_list);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(136);
	}
	} break;
case 237:
# line 2808 "gram.y"
{
	if (errorcount == 0)
	{
	 class(2);
	 stlrlink ();
	 ndput(tgate_declaration);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(137);
	}
	} break;
case 239:
# line 2829 "gram.y"
{ if (errorcount == 0) stlrlink (); } break;
case 240:
# line 2834 "gram.y"
{
	if (errorcount == 0)
	{
	 class(1);
	 ndput(tidentifier_declaration_list);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (stpick(1)->type == tNULL)
	      {stswap(); stpop();}
	 else stsflink ();
	 putgrn(138);
	}
	} break;
case 241:
# line 2850 "gram.y"
{
	if (errorcount == 0)
	{
	 ndput(tspecification_identifier);
	 staclr (c_lexv, (CLR_TYPE)yypvt[-0].name);
	 staclr (c_line, (CLR_TYPE)yypvt[-0].line);
	 putgrn(139);
	}
	} break;
case 242:
# line 2863 "gram.y"
{
	if (errorcount == 0)
	{
	 ndput(ttype_identifier);
	 staclr (c_lexv, (CLR_TYPE)yypvt[-0].name);
	 staclr (c_line, (CLR_TYPE)yypvt[-0].line);
	 putgrn(140);
	}
	} break;
case 243:
# line 2876 "gram.y"
{
	if (errorcount == 0)
	{
	 ndput(tsort_identifier);
	 staclr (c_lexv, (CLR_TYPE)yypvt[-0].name);
	 staclr (c_line, (CLR_TYPE)yypvt[-0].line);
	 putgrn(141);
	}
	} break;
case 244:
# line 2889 "gram.y"
{
	if (errorcount == 0)
	{
	 ndput(toperation_identifier);
	 staclr (c_lexv, (CLR_TYPE)yypvt[-0].name);
	 staclr (c_line, (CLR_TYPE)yypvt[-0].line);
	 putgrn(142);
	}
	} break;
case 245:
# line 2902 "gram.y"
{
	if (errorcount == 0)
	{
	 ndput(toperation_identifier);
	 staclr (c_lexv, (CLR_TYPE)yypvt[-0].name);
	 staclr (c_line, (CLR_TYPE)yypvt[-0].line);
	 putgrn(143);
	}
	} break;
case 246:
# line 2915 "gram.y"
{
	if (errorcount == 0)
	{
	 ndput(tprocess_identifier);
	 staclr (c_lexv, (CLR_TYPE)yypvt[-0].name);
	 staclr (c_line, (CLR_TYPE)yypvt[-0].line);
	 putgrn(144);
	}
	} break;
case 247:
# line 2928 "gram.y"
{
	if (errorcount == 0)
	{
	 ndput(tgate_identifier);
	 staclr (c_lexv, (CLR_TYPE)yypvt[-0].name);
	 staclr (c_line, (CLR_TYPE)yypvt[-0].line);
	 putgrn(145);
	}
	} break;
case 248:
# line 2941 "gram.y"
{
	if (errorcount == 0)
	{
	class(1);
	ndput(tidentifier);
	sttop()->value1= (CLR_TYPE)cls;
	if (stpick(1)->type == tNULL)
	{stswap(); stpop();}
	else stsflink ();
	staclr (c_lexv, (CLR_TYPE)yypvt[-1].name);
	staclr (c_line, (CLR_TYPE)yypvt[-1].line);
	 putgrn(146);
	}
	} break;
case 249:
# line 2959 "gram.y"
{ ndput(tNULL); } break;
case 250:
# line 2964 "gram.y"
{
	if (errorcount == 0)
	{
	 if (stpick(1)->type == tNULL) {stswap(); stpop();}
	 else stlrlink();
	}
	} break;
case 251:
# line 2975 "gram.y"
{
	if (errorcount == 0)
	{
	 if (sttype() == tNULL){
		class(0);
		stpop();
	 }
	 else class(1);
	 ndput(texecutable_comment_list);
	 sttop()->value1= (CLR_TYPE)cls;
	 if (cls == 1) stsflink ();
	 putgrn(147);
	}
	} break;
case 252:
# line 2993 "gram.y"
{
	if (errorcount == 0)
	{
	  ndput(texcomm);
	  staclr (c_ckey, (CLR_TYPE)yypvt[-0].ckey);
	  staclr (c_cval, (CLR_TYPE)yypvt[-0].cval);
	  /* KJT 14/02/12: changed .name to .line */
	  staclr (c_line, (CLR_TYPE)yypvt[-0].line);
	  staclr (c_funny, (CLR_TYPE)yypvt[-0].name);
	 putgrn(148);
	}
	} break;
# line 148 "/usr/lib/yaccpar"

		}
		goto yystack;  /* stack new state and value */

	}
