
# line 15 "fegram.y"
#include "li.h"

#include "resolve.h"
#include "resfuncs.h"

#include "predefined.cd"
#include "errors.cd"

#undef TRUE
#undef FALSE
#undef CALLMESSAGE
#undef INITPORT

#define True -1
#define False 0

extern char yytext[];

static flag cons_type;		/* are we constructing a type? or attribute? */

/* we need a big stack because we're a big, important language! */
#define YYMAXDEPTH 500

# line 157 "fegram.y"
typedef union  {
	char *string;
	object *obj;
	dfd_boolean boolean;
	decl *declp;
	selrec *selector;
      } YYSTYPE;
# define T_UNINITIALIZED 257
# define T_ERROR 258
# define T_SYMBOL 259
# define T_INTEGER 260
# define T_REAL 261
# define T_NAME 262
# define T_STRING 263
# define T_NAMESCASE 264
# define T_ASSIGN 265
# define T_NEQUAL 266
# define T_LEQUAL 267
# define T_GEQUAL 268
# define T_MOVE 269
# define PRINT 270
# define TYPENAME 271
# define ATTRIBUTENAME 272
# define ACCURACY 273
# define AGAINST 274
# define AND 275
# define AS 276
# define ASSERT 277
# define AT 278
# define BEGIN 279
# define BLOCK 280
# define BOOLEAN 281
# define CALL 282
# define CALLMESSAGE 283
# define CASE 284
# define CHECKDEFINITIONS 285
# define CONNECT 286
# define CONSTANT 287
# define CONSTRAINT 288
# define CONVERT 289
# define COPY 290
# define CREATE 291
# define CURRENTPROGRAM 292
# define DECLARE 293
# define DEFINITIONS 294
# define DISCARD 295
# define DISSOLVE 296
# define DROP 297
# define ELSE 298
# define EMPTY 299
# define END 300
# define ENUMERATION 301
# define EVALUATE 302
# define EVENT 303
# define EVERY 304
# define EXCEPT 305
# define EXCEPTION 306
# define EXISTS 307
# define EXIT 308
# define EXTRACT 309
# define FALSE 310
# define FOR 311
# define FORALL 312
# define FROM 313
# define HIDE 314
# define IF 315
# define IN 316
# define INPORT 317
# define INSERT 318
# define INSPECT 319
# define INTEGER 320
# define INTO 321
# define IS 322
# define KEYS 323
# define LINKING 324
# define MERGE 325
# define MINIMUM 326
# define MOD 327
# define NEW 328
# define NOMINAL 329
# define NOT 330
# define OF 331
# define ON 332
# define OR 333
# define ORDERED 334
# define OTHERWISE 335
# define OUTPORT 336
# define POLYMORPH 337
# define POSITION 338
# define PRAGMA 339
# define PROCEDURE 340
# define PROCESS 341
# define REAL 342
# define RECEIVE 343
# define RECORD 344
# define REM 345
# define REMOVE 346
# define REPEAT 347
# define RETURN 348
# define REVEAL 349
# define SELECT 350
# define SEND 351
# define SIZE 352
# define TABLE 353
# define THEN 354
# define TO 355
# define TRUE 356
# define TYPE 357
# define TYPESTATE 358
# define UNIQUE 359
# define UNITE 360
# define UNWRAP 361
# define USING 362
# define VARIANT 363
# define WHERE 364
# define WHILE 365
# define WRAP 366
#define yyclearin yychar = -1
#define yyerrok yyerrflag = 0
extern int yychar;
extern int yyerrflag;
#ifndef YYMAXDEPTH
#define YYMAXDEPTH 150
#endif
YYSTYPE yylval, yyval;
typedef int yytabelem;
# define YYERRCODE 256

# line 1726 "fegram.y"

yytabelem yyexca[] ={
-1, 1,
	0, -1,
	-2, 0,
-1, 150,
	33, 213,
	-2, 205,
-1, 185,
	41, 276,
	-2, 278,
-1, 193,
	41, 276,
	-2, 278,
-1, 194,
	41, 283,
	-2, 285,
-1, 201,
	41, 276,
	-2, 278,
-1, 231,
	300, 346,
	332, 346,
	-2, 380,
-1, 281,
	279, 43,
	287, 43,
	293, 43,
	-2, 394,
-1, 283,
	265, 424,
	269, 424,
	46, 424,
	-2, 77,
-1, 285,
	303, 258,
	335, 258,
	364, 258,
	-2, 454,
-1, 286,
	265, 466,
	269, 466,
	46, 466,
	-2, 77,
-1, 343,
	40, 236,
	-2, 102,
-1, 362,
	91, 230,
	-2, 123,
-1, 380,
	35, 205,
	33, 213,
	-2, 202,
-1, 404,
	58, 224,
	-2, 217,
-1, 450,
	33, 213,
	46, 205,
	-2, 203,
-1, 602,
	91, 230,
	-2, 223,
-1, 675,
	35, 205,
	33, 213,
	-2, 202,
-1, 705,
	298, 69,
	300, 69,
	303, 69,
	332, 69,
	335, 69,
	364, 69,
	-2, 258,
	};
# define YYNPROD 468
# define YYLAST 2137
yytabelem yyact[]={

   380,     3,   207,   229,   617,   170,   730,   244,   534,   725,
   684,   673,   729,   406,   232,   805,   687,   733,   637,   566,
   562,   327,   571,   677,   432,   447,   313,   390,   621,   365,
   339,   458,   372,   149,     2,   202,   630,   314,   337,   257,
   300,   336,   395,   114,   396,   771,   340,   639,   640,    92,
   683,   192,   361,   419,   516,   461,   527,   768,   628,   178,
   533,   479,   831,   306,   101,   140,   480,   827,   788,   830,
   816,   465,   720,   765,   498,   762,   761,   148,   497,   496,
   636,   126,   495,   494,   251,   492,   491,   490,   488,   428,
   487,   486,   485,   484,   195,   184,   182,   191,    97,   249,
     3,   253,   253,   181,   115,   180,   140,   140,   375,   639,
   122,   179,   140,   154,   140,   140,   253,   509,     3,   129,
   464,   462,   829,   502,   798,   115,   338,   627,    98,   135,
   797,   596,   530,   107,   518,   517,   511,   139,   155,   510,
   156,   463,   796,   150,   795,   166,   418,   137,   367,   141,
   142,   125,   307,   538,   803,   515,   763,   173,   364,   715,
   708,   704,   130,   523,   423,   822,   821,   817,   133,   694,
   529,   186,   147,   680,   158,   122,   519,   159,   712,   466,
   460,   150,   150,   508,   507,   150,   160,   121,   129,   200,
   324,   169,   437,   161,   162,   145,   150,   235,   312,   163,
   383,   164,   311,   222,   373,   213,   214,   129,   317,   376,
   197,   199,   549,   541,   203,   473,   245,   304,   814,   753,
   165,   691,   690,   504,   400,   219,    91,    96,   254,   233,
   175,   136,   131,   129,   782,   746,   668,   105,   537,   536,
   110,   112,   526,   212,   211,   135,   132,    87,   246,   643,
   294,   129,   189,   477,   553,   478,   781,   760,   754,   150,
   129,   129,   129,   129,   129,   150,   328,   129,   129,   209,
   745,   129,   722,   129,   129,   129,   129,   779,   129,   129,
   780,   168,   667,   129,   172,   129,   743,   665,   228,   744,
   666,   326,   316,   663,   552,   550,   150,   542,   316,   329,
   416,   435,   292,   290,   289,   150,   250,   124,   450,   117,
   820,   188,   819,   334,   385,   801,   387,   778,   398,   759,
   234,   236,   399,   682,   208,   742,   241,   721,   689,   316,
   415,   443,   305,   433,   664,   662,   315,   448,   316,   789,
   370,   607,   315,   226,   568,   231,   481,   439,   551,   434,
   144,   129,   452,   453,   239,   247,   238,   301,   468,   467,
   469,   237,   225,   459,   482,   210,   410,   134,   222,   381,
   235,   145,   123,   315,   116,   567,   724,   713,   626,   545,
   539,   342,   315,   115,   455,   451,   298,   502,   483,   248,
   201,   194,   204,   193,   185,   176,   118,   103,    99,   500,
   368,   424,   456,   174,   431,   221,   442,   223,   650,   697,
   728,   561,   501,   499,   113,   106,   672,   240,   217,   216,
   308,   227,   473,   414,   206,   205,   506,   299,   642,   422,
   417,   427,   489,   430,   783,   726,   656,   129,   559,   558,
   670,   402,   441,   409,   669,   445,   429,   295,   454,   382,
   440,   296,   328,   528,   303,   302,   564,   122,   657,   127,
   436,   129,   129,   129,   129,   129,   394,   369,   397,   297,
   322,   224,   777,   557,   723,   653,   546,   540,   242,   183,
   220,   167,   802,   648,   421,   772,   420,   291,   177,   190,
   153,   129,   129,   129,   152,   129,   151,   575,   143,   120,
   109,   102,   573,   129,   584,   577,   129,   576,   150,   150,
   129,   129,   129,   792,   503,   681,   618,   472,   548,   471,
   129,   470,   600,   609,   585,   586,   625,   150,   127,   408,
   514,   610,   752,   615,   565,   608,   751,   631,   613,   522,
   652,   316,   614,   150,   301,   612,   647,   127,   619,   799,
   532,   150,   707,   450,   618,   535,   203,   651,   661,   633,
   620,   459,   629,   622,   474,   475,   476,   655,   675,   632,
   641,   544,   525,   288,   524,   622,   316,   658,   660,   252,
   433,   695,   448,   521,   316,   315,   520,   611,   659,   555,
   401,   127,   693,   560,   578,   579,   580,   581,   582,   583,
   288,   288,   288,   288,   288,   676,   457,   288,   288,   310,
   309,   288,   674,   288,   288,   288,   288,   230,   288,   288,
   315,   187,   574,   404,   362,   411,   171,   129,   315,   146,
   699,   700,   108,   111,   705,   706,    95,   104,   692,    90,
    94,   129,   100,    93,   652,   644,   645,    89,    88,   597,
   598,   599,     1,   601,   196,   688,   198,   731,   172,   218,
   547,   716,   403,   714,   328,   735,   512,   739,   129,   129,
   616,   157,   717,   709,   710,   711,   425,   649,   654,   701,
   531,   686,   556,   554,   750,   737,   446,   738,   444,   215,
   374,   127,   138,   824,   774,   646,   747,   758,   243,   736,
   293,   757,   734,   766,   755,   671,   756,   438,   812,   412,
   413,   371,   748,   679,   384,   767,   333,   569,   320,   405,
   623,   388,   392,   652,   331,   749,   449,   770,   775,   543,
   718,   769,   426,   378,   379,   377,   493,   366,   363,   360,
   776,   764,   343,   335,   407,   785,   344,   634,   685,   638,
   635,   702,   679,   256,   513,   678,   784,   255,     0,     0,
     0,   129,   793,   790,   696,   208,   208,     0,   703,   208,
   208,   791,     0,     0,     0,     0,     0,   127,   652,     0,
     0,   808,   652,   652,   719,     0,     0,   804,   809,   810,
   786,   787,   811,   807,   727,   806,   288,   688,   815,   688,
     0,   288,   288,   288,   618,   288,   800,     0,   818,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   208,
   823,     0,     0,     0,   826,     0,   825,     0,     0,     0,
   828,     0,   208,     0,   813,     0,     0,     0,     0,     0,
     0,     0,     0,   288,     0,     0,   127,     0,     0,     0,
   288,   288,     0,     0,     0,   773,     0,   287,     0,     0,
   288,   587,   588,   589,   590,     0,   591,   592,   593,   594,
   595,     0,     0,     0,     0,     0,     0,   603,   604,   605,
   606,     0,     0,     0,   319,   321,   319,   323,   325,     0,
   685,   330,   332,     0,     0,   386,   231,   389,   391,   393,
   325,     0,   325,   287,     0,     0,     0,   330,     0,   330,
     0,     0,     0,     0,     0,   727,     0,     0,   367,     0,
     0,   535,     0,   341,     0,     0,     0,     0,     0,     0,
   172,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,   208,     0,     0,     0,   208,
     0,     0,     0,     0,   231,     0,     0,   698,     0,     0,
   383,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,   288,     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,   288,   288,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   367,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   563,     0,     0,     0,     0,   570,   572,   287,   330,   330,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,   794,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,   330,   330,   330,   383,   602,
     0,     0,     0,     0,     0,     0,     0,   330,     0,     0,
     0,     0,     0,     0,   330,   572,   330,     4,   222,   381,
   235,   145,     0,     0,   624,     0,     0,     0,     5,     6,
     7,     8,     9,     0,    10,    11,    12,     0,    13,    14,
    15,    16,   345,    18,    19,    20,    21,   346,   347,   348,
   368,    25,    26,    27,    28,    29,   732,   349,     0,    31,
   350,     0,   351,    33,    34,   352,    36,    37,    38,    39,
   353,    41,    42,    43,    44,    45,    46,    47,    48,    49,
    50,    51,    52,    53,    54,    55,    56,    57,   354,    58,
     0,    59,    60,     0,    61,    62,   355,     0,   356,   382,
    65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
   357,    76,     0,    77,    78,   358,   359,   369,    81,    82,
    83,    84,     0,    85,    86,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,   572,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     4,   222,   381,   235,   145,
     0,     0,   740,   741,     0,     0,     5,     6,     7,     8,
     9,     0,    10,    11,    12,     0,    13,    14,    15,    16,
   345,    18,    19,    20,    21,   346,   347,   348,   368,    25,
    26,    27,    28,    29,     0,   349,     0,    31,   350,     0,
   351,    33,    34,   352,    36,    37,    38,    39,   353,    41,
    42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
    52,    53,    54,    55,    56,    57,   354,    58,     0,    59,
    60,     0,    61,    62,   355,     0,   356,   382,    65,    66,
    67,    68,    69,    70,    71,    72,    73,    74,   357,    76,
     0,    77,    78,   358,   359,   369,    81,    82,    83,    84,
   505,    85,    86,     4,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     5,     6,     7,     8,     9,     0,
    10,    11,    12,     0,    13,    14,    15,    16,    17,    18,
    19,    20,    21,    22,    23,    24,     0,    25,    26,    27,
    28,    29,     0,    30,     0,    31,     0,     0,    32,    33,
    34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
    44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
    54,    55,    56,    57,     0,    58,     0,    59,    60,     0,
    61,    62,    63,     0,    64,     0,    65,    66,    67,    68,
    69,    70,    71,    72,    73,    74,    75,    76,     0,    77,
    78,    79,    80,     0,    81,    82,    83,    84,   128,    85,
    86,     4,   318,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     5,     6,     7,     8,     9,     0,    10,    11,
    12,     0,    13,    14,    15,    16,    17,    18,    19,    20,
    21,    22,    23,    24,     0,    25,    26,    27,    28,    29,
     0,    30,     0,    31,     0,     0,    32,    33,    34,    35,
    36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
    46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
    56,    57,     0,    58,     0,    59,    60,     0,    61,    62,
    63,     0,    64,     0,    65,    66,    67,    68,    69,    70,
    71,    72,    73,    74,    75,    76,     0,    77,    78,    79,
    80,     0,    81,    82,    83,    84,     0,    85,    86,     4,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     5,     6,     7,     8,     9,     0,    10,    11,    12,     0,
    13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    23,    24,     0,    25,    26,    27,    28,    29,     0,    30,
     0,    31,     0,     0,    32,    33,    34,    35,    36,    37,
    38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
    48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
     0,    58,     0,    59,    60,     0,    61,    62,    63,     0,
    64,     0,    65,    66,    67,    68,    69,    70,    71,    72,
    73,    74,    75,    76,     0,    77,    78,    79,    80,     0,
    81,    82,    83,    84,     0,    85,    86,     0,     0,     0,
     0,     4,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     5,     6,     7,     8,     9,     0,    10,    11,
    12,     0,    13,    14,    15,    16,    17,    18,    19,    20,
    21,    22,    23,    24,     0,    25,    26,    27,    28,    29,
     0,    30,     0,    31,     0,     0,    32,    33,    34,    35,
    36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
    46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
    56,    57,     0,    58,     0,    59,    60,     0,    61,    62,
    63,     0,    64,     0,    65,    66,    67,    68,    69,    70,
    71,    72,    73,    74,    75,    76,     0,    77,    78,    79,
    80,     0,    81,    82,    83,    84,   280,    85,    86,     4,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   271,     6,     7,     8,     9,     0,    10,   258,    12,     0,
   281,    14,   259,    16,    17,   260,   261,    20,    21,    22,
    23,    24,     0,    25,    26,   262,   263,   264,     0,    30,
     0,    31,     0,     0,    32,    33,    34,    35,   265,   266,
    38,   282,    40,    41,   267,   283,    44,    45,   268,   284,
    48,    49,    50,    51,    52,   269,    54,    55,   270,    57,
     0,    58,     0,    59,    60,     0,    61,    62,    63,     0,
    64,     0,    65,   272,    67,    68,   273,    70,   274,   275,
   285,   276,    75,    76,     0,    77,    78,    79,    80,     4,
   277,   278,    83,    84,     0,   286,   279,     0,     0,     0,
     5,     6,     7,     8,     9,     0,    10,    11,    12,     0,
    13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    23,    24,     0,    25,    26,    27,    28,    29,     0,    30,
   119,    31,     0,     0,    32,    33,    34,    35,    36,    37,
    38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
    48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
     0,    58,     0,    59,    60,     0,    61,    62,    63,     0,
    64,     0,    65,    66,    67,    68,    69,    70,    71,    72,
    73,    74,    75,    76,     0,    77,    78,    79,    80,     4,
    81,    82,    83,    84,     0,    85,    86,     0,     0,     0,
     5,     6,     7,     8,     9,     0,    10,    11,    12,     0,
    13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    23,    24,     0,    25,    26,    27,    28,    29,     0,    30,
     0,    31,     0,     0,    32,    33,    34,    35,    36,    37,
    38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
    48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
     0,    58,     0,    59,    60,     0,    61,    62,    63,     0,
    64,     0,    65,    66,    67,    68,    69,    70,    71,    72,
    73,    74,    75,    76,     0,    77,    78,    79,    80,     0,
    81,    82,    83,    84,     0,    85,    86 };
yytabelem yypact[]={

  1770, -1000,   189, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,  -313,  -196,
 -1000, -1000,   358,  -277, -1000, -1000, -1000, -1000,   357,  1770,
 -1000, -1000, -1000,  1770,   333, -1000,   265, -1000,   356,  1670,
 -1000,   331, -1000,   263, -1000, -1000, -1000,  1770,  1242,  -132,
   173,   188, -1000, -1000,  1770, -1000,   326,   187,   172, -1000,
 -1000, -1000,  -274, -1000,  -274,  -274, -1000, -1000, -1000, -1000,
   -68, -1000,  1770,  -143, -1000, -1000,  -136, -1000, -1000,   370,
 -1000, -1000, -1000, -1000,   171,   355, -1000,  -242,  -226, -1000,
 -1000,  -228, -1000,  -235, -1000,  -236,   354, -1000, -1000, -1000,
  -108, -1000, -1000, -1000,  1770, -1000,  -259,   353,   351,  -237,
  1770,  1770,   -84,   350,  1770, -1000, -1000,  1242, -1000, -1000,
   324,   186,   185, -1000, -1000,  1770, -1000, -1000, -1000, -1000,
   -57, -1000, -1000, -1000,   321, -1000,  1242,  -274, -1000,   170,
 -1000,   -65,   -65,   320, -1000,   315, -1000,   -65, -1000, -1000,
    93,   201, -1000,   314,   349,  -223, -1000,   262, -1000,  -216,
   169, -1000,  1570, -1000,   260, -1000,   259, -1000, -1000, -1000,
   258, -1000,    93, -1000, -1000, -1000,   -57, -1000,   -65,    94,
  1242,  -278, -1000,   112, -1000, -1000, -1000,   -67,  1770,  1462,
  1770,  1770,  1770,  1770,  1770,  1770,  1770,  1770,   878,   878,
  1770,   878,  1770,  1770,  1770,  1770,   878,  1770,  1770,   878,
   165, -1000,  1770, -1000,  1242,   878, -1000, -1000, -1000,  -164,
  -303,  -123,   -65,  -234, -1000,  1770, -1000,   308, -1000,   257,
 -1000,   -72,   878, -1000,  1770, -1000, -1000,  1770,   345,   878,
   878, -1000, -1000, -1000,   344, -1000,   369, -1000,   878, -1000,
   -94, -1000,  -300, -1000,  -200, -1000, -1000, -1000, -1000,  -172,
 -1000, -1000, -1000,  -201, -1000,  -262,   -96, -1000,   298,   210,
    19,  1026, -1000, -1000, -1000,  -238,  -239,  -240,  -241,  -243,
  1242,  -244,  -245,  -246,  1026,  -248,  -249,  -252,  -253,  -257,
   108, -1000, -1000, -1000, -1000,   364, -1000,   878, -1000, -1000,
  -193, -1000,   132, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
 -1000, -1000,  1350,   -88,  -204, -1000, -1000, -1000,  -174, -1000,
  -177, -1000,  -151, -1000, -1000,  -301, -1000,  -178,  -179,  -100,
 -1000,  -124, -1000, -1000,  -193,   184,  -298, -1000,   878,  -109,
  -181,    71, -1000, -1000, -1000, -1000,  -287, -1000,   181,   180,
  -155, -1000, -1000,   340, -1000, -1000, -1000, -1000, -1000,    88,
 -1000,   253, -1000,   339, -1000,   -65,  1242, -1000, -1000, -1000,
    87, -1000,   251, -1000,   307, -1000,   250, -1000,   208, -1000,
 -1000,  1770, -1000, -1000, -1000,  1770,  1770,   335,   303, -1000,
  1770,  1770,  1770,  1770,  1770,   878,   878,   878,   878,   878,
   878,   878,   878,   878, -1000, -1000, -1000,  1026,  1026,  1026,
  1026,  1026,  1026,    19,  1026,  1026,  1026,  1026,  1026,  -182,
  1770,  1770,  1770, -1000,  1770,  1026,  1026,  1026,  1026, -1000,
 -1000,   300,  1770,   335, -1000,  1242, -1000,  1770,  1770,  1770,
  1770,  1770, -1000, -1000, -1000,  1770,   878,   878,   878,  1770,
  -136, -1000, -1000,   338,  -192,  -289,  1770, -1000, -1000, -1000,
   878,  -255, -1000, -1000,   203, -1000,   -65,   -65,    93,  1770,
 -1000, -1000,  1770, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
  1770, -1000,  1770,  1770,   294, -1000,   249, -1000,   293,   246,
 -1000,   238, -1000, -1000,   178, -1000, -1000,   878, -1000, -1000,
 -1000, -1000, -1000, -1000, -1000,  -105,   -96, -1000,    91,    91,
    91,    91,    91,    91,   210,    19,    19, -1000, -1000, -1000,
 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,   -41, -1000,
   878,   287,   130,   129,  -105, -1000, -1000, -1000, -1000, -1000,
 -1000, -1000, -1000, -1000, -1000,  -110,  1770, -1000, -1000, -1000,
  -137, -1000, -1000, -1000,  -140, -1000, -1000, -1000,   -97,   337,
  1770,  -141, -1000,  1770, -1000, -1000,  -254, -1000,   286, -1000,
   228, -1000, -1000,   336, -1000, -1000,  1134,    93, -1000, -1000,
 -1000, -1000, -1000,  1770, -1000, -1000,  1770,  1770,  1770,   284,
   245, -1000,   226, -1000, -1000,   177,   335, -1000, -1000, -1000,
   878, -1000, -1000, -1000,   126, -1000,   214, -1000, -1000,  -274,
 -1000, -1000, -1000,    93, -1000,   278, -1000,   213, -1000,  -224,
  -225,  -144, -1000, -1000, -1000,  -274,  -227,    93,  -293, -1000,
 -1000, -1000,  -317, -1000, -1000,  -320, -1000, -1000, -1000, -1000,
    93, -1000,  1770, -1000, -1000,   276,   236, -1000,   212, -1000,
 -1000,   176, -1000, -1000, -1000, -1000, -1000, -1000, -1000,   178,
 -1000, -1000, -1000, -1000,  1770,   878,   878, -1000, -1000, -1000,
  -232,   299,   878, -1000,   878, -1000, -1000, -1000,  -274, -1000,
  1770,  -167,  -169,  -185, -1000,  -195, -1000, -1000, -1000, -1000,
   274, -1000,  -152, -1000, -1000, -1000, -1000,  1134, -1000, -1000,
  1770,  1134,  1134, -1000, -1000,   177, -1000, -1000, -1000,   878,
   125, -1000,  -136,  -230, -1000, -1000, -1000, -1000, -1000,  -112,
 -1000, -1000, -1000,  1770,   271, -1000, -1000, -1000,   176, -1000,
 -1000,   203,   269, -1000, -1000,  -113,  -115, -1000,    93, -1000,
 -1000, -1000, -1000,  -233, -1000, -1000,  -274,  -197,  -231, -1000,
  -279, -1000 };
yytabelem yypgo[]={

     0,    81,   757,   755,   754,   753,   751,   750,   749,    18,
   747,    36,   158,   746,    16,   744,    44,   743,    41,    38,
   126,    30,    46,   381,   742,   739,    52,   738,   737,   735,
   734,   733,   732,   730,     7,    24,   729,    33,   624,    43,
   340,    17,     6,    29,    37,    77,    25,     4,   726,    21,
    39,   724,   190,    32,    27,   208,    22,   722,   721,   720,
   719,   718,   717,    42,   716,   714,   712,    31,   711,    28,
   710,   709,   708,    13,   707,   706,   703,   702,   700,   698,
   695,   694,   693,   692,   690,   204,   209,   108,   206,   205,
   689,   688,   686,   683,   682,    15,    10,   681,   680,   679,
   676,   672,   671,    23,    14,   666,     0,   662,   660,    35,
   659,   656,   654,   652,   648,   647,   643,   642,   640,   639,
   637,   636,   633,   632,   629,     5,     2,     3,   626,   621,
   617,   610,   609,    26,   606,    19,   605,   592,   590,   586,
   583,   581,   579,   574,   572,   569,   552,   549,   537,   536,
   532,   531,   529,   521,   519,   517,   515,   514,   513,   501,
   500,   499,   498,   496,   494,   490,   489,   488,   487,   486,
   485,   484,   483,   482,   481,   480,   479,   478,   477,   475,
   474,   472,     9,   471,   469,    40,   460,   458,   455,   454,
   450,   448,   447,   446,   444,   440,    11,   439,   438,    20,
   137,   436,   435,    12,   434,     8,   430,   428,   427,   425,
   424,   421,   419,   418,   417,   416,   415,   414,   411,   410,
   409,   408,   406,   404 };
yytabelem yyr1[]={

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

     0,    13,    11,     1,     8,     8,     1,     1,    27,     4,
     9,     5,     5,     7,     7,     5,     1,     9,     1,    13,
     9,     9,     5,     9,     5,     5,     9,     5,    11,     5,
    11,     5,     5,     9,     9,     7,     5,     5,     9,     9,
     1,    13,     9,     1,    19,     9,    11,    13,     1,    15,
     1,    15,    15,     5,     1,    15,     1,     1,    23,    13,
     5,     5,     9,     5,     9,     5,    13,     7,     1,     5,
     1,    17,     1,    15,     1,    11,     3,     1,     5,     3,
     3,     7,     3,     7,     3,     7,     7,     7,     7,     7,
     7,     3,     7,     3,     5,     7,     7,     3,     7,     7,
     7,     7,     3,     3,     7,     7,     7,     7,     7,     1,
    13,     7,     7,     7,     5,     7,     7,     7,     7,     7,
     7,     5,     3,     3,     3,     5,     3,     7,     3,     3,
     3,     1,     7,     3,     3,     3,     3,     3,     3,     3,
     1,    25,     5,     9,     9,     1,    11,     1,    10,     2,
     2,     8,    15,    15,     1,     1,    23,     8,     5,     7,
    11,     2,     1,    11,     3,     3,     7,     3,    13,     1,
    11,     1,    15,     1,     7,     1,     9,     1,    15,     1,
    11,     3,    15,     6,     4,     1,     9,     5,     6,     7,
     6,     6,     6,     7,     3,    11,    11,     6,     1,     1,
     3,     7,     3,     3,     3,     3,     7,     3,     3,     3,
     1,     7,     3,     3,     3,     7,     3,     1,     7,     5,
     3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
     3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
     3,     3,     3,     3,     3,     3,     3,     3,     3,     2,
     3,     3,     3,     3,     3,     3,     3,     5,     0,     5,
     4,     5,     2,     2,     2,     2,     2,     2,     3,     3,
     3,     3,     2,     2,     2,     6,     1,     5,     1,     5,
     3,     7,     3,     1,     5,     1,     5,     3,     7,     2,
     2,     7,     3,     3,     3,     7,     3,     3,     3,     7,
     3,     2,     2,     3,     7,     2,     2,     7,     3,     2,
     2,     6,     2,     2,     2,     7,     3,     2,     2,     6,
     2,     2,     2,     7,     3,     3,     3,     7,     3,     2,
     6,     6,     2,     2,     6,     2,     2,     2,     6,     2,
     2,     3,     7,     4,     2,     4,     2,     4,     2,     5,
     3,     4,     2,     7,     2,     6,     2,     6,     2,     2,
     2,     2,     2,     2,     2,     3,     3,     3,     3,     3,
     3,     3,     3,     2,     2,     3,     3,     3,     3,     3,
     3,     3,     3,     2,     2,     3,     3,     3,     3,     3,
     3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
     3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
     3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
     3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
     3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
     3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
     3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
     3,     3,     3,     3,     3,     3,     3,     3 };
yytabelem yychk[]={

 -1000,  -113,   -37,  -106,   259,   270,   271,   272,   273,   274,
   276,   277,   278,   280,   281,   282,   283,   284,   285,   286,
   287,   288,   289,   290,   291,   293,   294,   295,   296,   297,
   299,   301,   304,   305,   306,   307,   308,   309,   310,   311,
   312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
   322,   323,   324,   325,   326,   327,   328,   329,   331,   333,
   334,   336,   337,   338,   340,   342,   343,   344,   345,   346,
   347,   348,   349,   350,   351,   352,   353,   355,   356,   357,
   358,   360,   361,   362,   363,   365,   366,    58,  -114,  -115,
  -119,  -200,   362,  -116,  -118,  -121,  -200,   294,   324,    40,
  -117,   341,  -159,    40,  -120,  -200,  -216,   -37,  -123,  -160,
  -200,  -122,  -200,  -217,   -39,  -106,    41,    44,    40,   300,
  -161,   -45,  -106,    41,    44,   -37,    -1,   -40,   256,  -106,
   294,    59,    58,   -39,    41,    58,    59,  -104,   -83,  -200,
   339,  -104,  -104,  -162,   -86,   263,  -124,   -43,   -45,   -37,
  -106,  -163,  -164,  -165,   256,   281,   283,  -102,   317,   320,
   329,   336,   337,   342,   344,   363,   288,  -174,  -200,   334,
  -125,  -128,  -200,   293,    33,    59,    40,  -167,   301,   353,
   331,   331,   331,  -176,   331,    40,   279,  -129,  -200,   -45,
  -166,   356,   310,    40,    40,   331,  -112,   -43,  -111,   -43,
   273,    40,  -109,   -43,   -88,  -209,  -210,  -126,  -200,    -1,
    41,    58,    58,   -89,   -88,   -90,  -212,  -213,  -110,   -43,
  -175,   -85,   260,   -89,  -183,    41,  -200,  -211,    -1,  -127,
  -130,  -200,  -104,    59,   -87,   262,   -87,    41,    41,  -200,
  -214,   -87,  -177,   -79,   -34,   123,    47,    41,    40,   322,
    44,   300,  -142,   332,    59,    -2,    -5,   -50,   277,   282,
   285,   286,   295,   296,   297,   308,   309,   314,   318,   325,
   328,   270,   343,   346,   348,   349,   351,   360,   361,   366,
   256,   280,   311,   315,   319,   350,   365,   -38,   -40,    44,
    44,  -168,    44,   -78,   -34,  -192,   -85,  -184,  -200,  -208,
  -185,   -87,  -188,  -189,   123,    -1,   341,    40,   308,  -131,
  -132,   269,   265,  -133,   -44,   -45,   -37,   -55,    40,   -38,
   -61,   -38,   -55,   -38,   -52,   -38,  -133,   -49,  -106,   -53,
   -38,   -51,   -38,   -64,   -16,   -17,   -18,   -19,   -20,   -21,
   -22,    45,   -23,   -24,   -13,   284,   289,   290,   291,   299,
   302,   304,   307,   312,   330,   338,   340,   352,   357,   358,
   -25,   -26,   -38,   -27,   -12,   -43,   -28,    40,   292,   359,
   -40,   -68,   -53,   -85,   -84,   -87,   -86,   -29,   -31,   -30,
  -106,   261,   341,    92,   -65,   -16,   -38,   -16,   -58,   -38,
   -54,   -38,   -57,   -38,   -52,   -63,   -16,   -52,   -50,   -63,
    59,  -138,   -12,  -107,   -40,   -60,   -73,   -15,  -152,   -12,
    -1,   -40,   -71,   -70,  -200,   -16,   -73,  -206,   310,   356,
  -169,  -171,  -200,   287,   -87,  -100,   -32,  -200,   323,  -193,
  -200,  -223,   -35,   -44,    41,    44,  -186,   264,   -74,   -16,
  -190,  -200,  -222,  -133,   -91,  -200,   -92,   -46,   -43,   -48,
  -106,    40,   -63,   -63,  -191,    40,    33,  -134,   -67,   -16,
   274,   355,   321,   313,   321,   333,   275,    61,    60,    62,
  -153,  -154,  -155,   124,   266,   267,   268,    43,    45,    42,
    47,   327,   345,   -22,   331,   331,   331,   331,   331,    -1,
   331,   331,   331,   -23,   331,   331,   331,   331,   331,   -26,
    35,   -16,   316,  -157,    91,    40,   -39,   272,   271,   321,
   313,   313,  -105,    -4,  -200,   306,   355,   313,   313,   276,
  -139,  -140,  -200,   287,  -143,  -144,    58,   354,   -16,   279,
   313,   -98,  -200,   347,  -205,  -200,    58,    58,   308,    40,
  -178,   125,    44,   -36,  -200,    40,  -185,  -108,    -1,   125,
    44,    41,    44,    46,   -93,  -200,   -94,   -49,  -197,  -198,
  -200,  -218,  -199,   -38,  -106,   -45,  -135,    40,    41,   -62,
   -38,   -56,   -38,   -50,   -12,   -53,   -18,   -19,   -20,   -20,
   -20,   -20,   -20,   -20,   -21,   -22,   -22,   -23,   -23,   -23,
   -23,   -23,   -23,   -23,   -23,   -23,   313,   -12,   -12,   -12,
   -54,   -12,   -38,   -23,   -23,   -23,   -23,    41,   -53,  -135,
  -151,    -1,   -44,   -43,   -53,   -56,   -12,   -47,  -106,   -67,
   -63,   -69,   -16,   -59,   -38,  -125,    40,   319,   347,  -109,
   -11,  -148,  -145,   -69,   -10,    -7,   335,    -9,    -8,   364,
   303,   -11,  -207,    46,   -87,   -87,   -80,   -34,  -172,  -200,
  -221,   -41,  -106,  -179,  -200,   -35,  -201,  -187,  -133,   -11,
   -46,   -47,    41,    44,    41,    41,    44,    44,    58,  -194,
  -195,  -200,  -215,  -196,   -16,  -106,  -136,  -103,    -3,  -200,
   278,  -156,   364,    91,   -96,  -200,   -97,   -14,   -16,    41,
    92,    92,  -103,  -137,   279,  -141,  -200,  -220,   -40,  -126,
  -126,   -99,    -6,  -200,   298,  -126,  -126,  -146,   300,   -11,
   -11,   -11,   275,    40,   -56,   300,   -41,  -101,   -33,  -200,
   326,    41,    44,  -180,    40,  -182,  -202,  -200,  -219,  -203,
   -42,  -106,    42,   -41,   -77,   -34,   -11,   -49,  -199,  -106,
   -38,   -38,    41,    41,    44,    44,    58,  -135,   -66,   -16,
  -126,  -149,  -150,    93,    44,  -104,   -75,   -34,  -126,    41,
    44,   300,   300,   300,   -11,   300,   -76,   -34,   350,    -9,
   -73,   365,  -170,  -200,   -81,   -34,   -41,  -181,    41,    41,
    44,    44,    58,  -204,  -196,  -106,   -16,   -16,   300,    40,
   -96,   -14,  -158,  -127,   -40,   311,   311,   315,   319,  -147,
   -11,    41,  -173,   306,  -182,   -95,   -95,  -203,  -106,   -42,
   -42,  -205,   -72,   -16,    93,  -125,   300,   279,   -47,    41,
    41,   279,   280,  -126,   -82,   -34,  -126,   300,  -127,   319,
   300,   341 };
yytabelem yydef[]={

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

#if YYDEBUG

yytoktype yytoks[] =
{
	"T_UNINITIALIZED",	257,
	"T_ERROR",	258,
	"T_SYMBOL",	259,
	"T_INTEGER",	260,
	"T_REAL",	261,
	"T_NAME",	262,
	"T_STRING",	263,
	"T_NAMESCASE",	264,
	"T_ASSIGN",	265,
	"T_NEQUAL",	266,
	"T_LEQUAL",	267,
	"T_GEQUAL",	268,
	"T_MOVE",	269,
	"PRINT",	270,
	"TYPENAME",	271,
	"ATTRIBUTENAME",	272,
	"ACCURACY",	273,
	"AGAINST",	274,
	"AND",	275,
	"AS",	276,
	"ASSERT",	277,
	"AT",	278,
	"BEGIN",	279,
	"BLOCK",	280,
	"BOOLEAN",	281,
	"CALL",	282,
	"CALLMESSAGE",	283,
	"CASE",	284,
	"CHECKDEFINITIONS",	285,
	"CONNECT",	286,
	"CONSTANT",	287,
	"CONSTRAINT",	288,
	"CONVERT",	289,
	"COPY",	290,
	"CREATE",	291,
	"CURRENTPROGRAM",	292,
	"DECLARE",	293,
	"DEFINITIONS",	294,
	"DISCARD",	295,
	"DISSOLVE",	296,
	"DROP",	297,
	"ELSE",	298,
	"EMPTY",	299,
	"END",	300,
	"ENUMERATION",	301,
	"EVALUATE",	302,
	"EVENT",	303,
	"EVERY",	304,
	"EXCEPT",	305,
	"EXCEPTION",	306,
	"EXISTS",	307,
	"EXIT",	308,
	"EXTRACT",	309,
	"FALSE",	310,
	"FOR",	311,
	"FORALL",	312,
	"FROM",	313,
	"HIDE",	314,
	"IF",	315,
	"IN",	316,
	"INPORT",	317,
	"INSERT",	318,
	"INSPECT",	319,
	"INTEGER",	320,
	"INTO",	321,
	"IS",	322,
	"KEYS",	323,
	"LINKING",	324,
	"MERGE",	325,
	"MINIMUM",	326,
	"MOD",	327,
	"NEW",	328,
	"NOMINAL",	329,
	"NOT",	330,
	"OF",	331,
	"ON",	332,
	"OR",	333,
	"ORDERED",	334,
	"OTHERWISE",	335,
	"OUTPORT",	336,
	"POLYMORPH",	337,
	"POSITION",	338,
	"PRAGMA",	339,
	"PROCEDURE",	340,
	"PROCESS",	341,
	"REAL",	342,
	"RECEIVE",	343,
	"RECORD",	344,
	"REM",	345,
	"REMOVE",	346,
	"REPEAT",	347,
	"RETURN",	348,
	"REVEAL",	349,
	"SELECT",	350,
	"SEND",	351,
	"SIZE",	352,
	"TABLE",	353,
	"THEN",	354,
	"TO",	355,
	"TRUE",	356,
	"TYPE",	357,
	"TYPESTATE",	358,
	"UNIQUE",	359,
	"UNITE",	360,
	"UNWRAP",	361,
	"USING",	362,
	"VARIANT",	363,
	"WHERE",	364,
	"WHILE",	365,
	"WRAP",	366,
	"-unknown-",	-1	/* ends search */
};

char * yyreds[] =
{
	"-no such reduction-",
	"module : module_name ':' mod_init opt_imports opt_linking process_module_body",
	"module : module_name ':' mod_init opt_imports definitions_module_body",
	"mod_init : /* empty */",
	"imports : USING '(' module_name_list ')'",
	"linking : LINKING '(' link_name_list ')'",
	"process_module_body : PROCESS",
	"process_module_body : PROCESS '(' declaration ')' opt_pragma",
	"process_module_body : PROCESS '(' declaration ')' opt_pragma opt_declaration_section BEGIN statement_series handler_s END PROCESS",
	"declaration_section : DECLARE declaration_series",
	"declaration : base_variable ':' opt_pragma type_name",
	"statement : opt_pragma simple_statement",
	"statement : opt_pragma compound_statement",
	"simple_statement : result_variable move source_expression",
	"simple_statement : result_variable assign source_expression",
	"simple_statement : ASSERT attribute",
	"simple_statement : CALL outport_variable",
	"simple_statement : CALL outport_variable call_arguments",
	"simple_statement : CALL '(' outport_expression ')'",
	"simple_statement : CALL '(' outport_expression ')' call_arguments",
	"simple_statement : CHECKDEFINITIONS definitions_module_variable AGAINST definitions_library_variable",
	"simple_statement : CONNECT outport_variable TO inport_variable",
	"simple_statement : DISCARD variable_name",
	"simple_statement : DISSOLVE variant_component INTO result_variable",
	"simple_statement : DROP attribute",
	"simple_statement : EXIT exit_name",
	"simple_statement : EXTRACT table_variable FROM selector",
	"simple_statement : HIDE variant_variable",
	"simple_statement : INSERT element_expression INTO table_variable opt_atposition",
	"atposition : AT position_expression",
	"simple_statement : MERGE table_expression INTO table_variable opt_atposition",
	"simple_statement : NEW variable_name",
	"simple_statement : PRINT expression",
	"simple_statement : RECEIVE message_variable FROM inport_variable",
	"simple_statement : REMOVE element_variable FROM selector",
	"simple_statement : RETURN callmessage_variable opt_return_exception",
	"return_exception : EXCEPTION user_exception_name",
	"simple_statement : REVEAL variant_component",
	"simple_statement : SEND source_expression TO outport_expression",
	"simple_statement : UNITE variant_component FROM source_expression",
	"simple_statement : UNWRAP result_variable FROM polymorph_expression",
	"simple_statement : UNWRAP result_variable FROM polymorph_expression unwrapped_typestate",
	"simple_statement : WRAP source_expression AS polymorph_variable",
	"compound_statement : BLOCK",
	"compound_statement : BLOCK opt_constant_section opt_declaration_section BEGIN statement_series handler_s END BLOCK",
	"constant_section : CONSTANT '(' base_variable_list ')'",
	"handler : ON '(' exception_name_list ')' statement_clause",
	"handler : ON EXIT '(' exit_name_list ')' statement_clause",
	"compound_statement : FOR selector",
	"compound_statement : FOR selector INSPECT statement_series END FOR",
	"compound_statement : FOR enumeration_declaration",
	"compound_statement : FOR enumeration_declaration REPEAT statement_series END FOR",
	"compound_statement : IF test_expression THEN statement_clause opt_else_clause END IF",
	"else_clause : ELSE statement_clause",
	"compound_statement : INSPECT selector BEGIN",
	"compound_statement : INSPECT selector BEGIN statement_series END INSPECT",
	"compound_statement : INSPECT declaration FROM polymorph_expression",
	"compound_statement : INSPECT declaration FROM polymorph_expression inspect_typestate",
	"compound_statement : INSPECT declaration FROM polymorph_expression inspect_typestate BEGIN statement_series END INSPECT",
	"compound_statement : SELECT opt_select_expression select_clause_s otherwise_clause END SELECT",
	"select_clause : boolean_guard statement_clause",
	"select_clause : event_guard statement_clause",
	"select_clause : event_guard AND boolean_guard statement_clause",
	"event_guard : EVENT inport_variable",
	"boolean_guard : WHERE '(' test_expression ')'",
	"otherwise_clause : OTHERWISE statement_clause",
	"compound_statement : WHILE test_expression REPEAT statement_clause END WHILE",
	"enumeration_declaration : enumeration_variable ':' enumeration_type",
	"statement_clause : /* empty */",
	"statement_clause : statement_series",
	"selector : base_variable IN table_variable WHERE",
	"selector : base_variable IN table_variable WHERE '(' selector_expression ')'",
	"selector : base_variable IN table_variable '['",
	"selector : base_variable IN table_variable '[' mapping_list ']'",
	"selector : table_variable '['",
	"selector : table_variable '[' mapping_list ']'",
	"mapping : expression",
	"expression_clause : /* empty */",
	"expression_clause : expression",
	"expression : disjunction",
	"disjunction : conjunction",
	"disjunction : disjunction OR conjunction",
	"conjunction : relation",
	"conjunction : conjunction AND relation",
	"relation : concat",
	"relation : concat '=' concat",
	"relation : concat '<' concat",
	"relation : concat '>' concat",
	"relation : concat nequal concat",
	"relation : concat lequal concat",
	"relation : concat gequal concat",
	"concat : term",
	"concat : concat '|' term",
	"term : factor",
	"term : '-' factor",
	"term : term '+' factor",
	"term : term '-' factor",
	"factor : secondary",
	"factor : factor '*' secondary",
	"factor : factor '/' secondary",
	"factor : factor MOD secondary",
	"factor : factor REM secondary",
	"secondary : primary",
	"secondary : the_element",
	"secondary : CASE OF secondary",
	"secondary : CONVERT OF secondary",
	"secondary : COPY OF secondary",
	"secondary : CREATE OF secondary",
	"secondary : EMPTY OF secondary",
	"secondary : EVALUATE declaration FROM",
	"secondary : EVALUATE declaration FROM statement_series END",
	"secondary : EVERY OF selector",
	"secondary : EXISTS OF selector",
	"secondary : FORALL OF selector",
	"secondary : NOT secondary",
	"secondary : POSITION OF element_variable",
	"secondary : POSITION OF selector",
	"secondary : PROCEDURE OF secondary",
	"secondary : SIZE OF secondary",
	"secondary : TYPE OF secondary",
	"secondary : TYPESTATE OF secondary",
	"primary : type_specifier typed_primary",
	"primary : typed_primary",
	"primary : variable_name",
	"primary : function_reference",
	"type_specifier : type_name '#'",
	"typed_primary : literal",
	"typed_primary : '(' expression ')'",
	"typed_primary : CURRENTPROGRAM",
	"typed_primary : UNIQUE",
	"the_element : selector",
	"function_reference : outport_primary",
	"function_reference : outport_primary call_arguments",
	"literal : integer_literal",
	"literal : real_literal",
	"literal : named_literal",
	"literal : string_literal",
	"literal : program_literal",
	"literal : attributename_literal",
	"literal : typename_literal",
	"program_literal : PROCESS '(' declaration ')' opt_pragma",
	"program_literal : PROCESS '(' declaration ')' opt_pragma opt_declaration_section BEGIN statement_series handler_s END PROCESS",
	"program_literal : PROCESS link_name",
	"attributename_literal : '\\' ATTRIBUTENAME attribute_name '\\'",
	"typename_literal : '\\' TYPENAME type_name '\\'",
	"definitions_module_body : DEFINITIONS",
	"definitions_module_body : DEFINITIONS definition_series END DEFINITIONS",
	"definition : definition_name ':' opt_pragma",
	"definition : definition_name ':' opt_pragma construction",
	"construction : type_construction",
	"construction : attribute_construction",
	"type_construction : BOOLEAN '(' boolean_association ')'",
	"boolean_association : TRUE ':' named_literal ',' FALSE ':' named_literal",
	"boolean_association : FALSE ':' named_literal ',' TRUE ':' named_literal",
	"type_construction : CALLMESSAGE",
	"type_construction : CALLMESSAGE '(' component_declaration_list ')'",
	"type_construction : CALLMESSAGE '(' component_declaration_list ')' opt_constant_parameters EXIT exit_typestate opt_minimum user_exception_s",
	"constant_parameters : CONSTANT '(' component_name_list ')'",
	"minimum : MINIMUM minimum_typestate",
	"user_exception : EXCEPTION user_exception_name exception_typestate",
	"type_construction : opt_ordered ENUMERATION '(' named_literal_list ')'",
	"ordered : ORDERED",
	"type_construction : INPORT OF callmessage_type",
	"type_construction : INPORT OF callmessage_type entry_typestate",
	"type_construction : INTEGER",
	"type_construction : NOMINAL",
	"type_construction : OUTPORT OF inport_type",
	"type_construction : POLYMORPH",
	"type_construction : REAL OF ACCURACY integer_literal '/' integer_literal",
	"type_construction : RECORD",
	"type_construction : RECORD '(' component_declaration_list ')'",
	"type_construction : opt_ordered TABLE OF element_type",
	"type_construction : opt_ordered TABLE OF element_type element_typestate opt_key_definition",
	"key_definition : KEYS",
	"key_definition : KEYS key_s",
	"key : '('",
	"key : '(' formal_variable_list ')'",
	"type_construction : VARIANT OF enumeration_type",
	"type_construction : VARIANT OF enumeration_type '(' case_declaration_list ')'",
	"case_declaration : named_literal names_case component_declaration",
	"case_declaration : named_literal names_case component_declaration component_typestate",
	"component_declaration : declaration",
	"attribute_construction : CONSTRAINT '(' declaration_list ')' IS constraint_typestate constraint_expression",
	"typestate : '{' attribute_list '}'",
	"attribute : attribute_name attribute_arguments",
	"formal_typestate : '{'",
	"formal_typestate : '{' formal_attribute_list '}'",
	"formal_attribute : attribute_name formal_attribute_arguments",
	"call_arguments : '(' expression_list ')'",
	"call_arguments : '(' labeled_expression_NElist ')'",
	"labeled_expression : identifier ':' expression",
	"attribute_arguments : '(' variable_name_list ')'",
	"attribute_arguments : '(' labeled_variable_name_NElist ')'",
	"labeled_variable_name : identifier ':' variable_name",
	"formal_attribute_arguments : empty",
	"formal_attribute_arguments : '(' formal_attributes_init formal_variable_list ')' formal_attributes_done",
	"formal_attribute_arguments : '(' formal_attributes_init labeled_formal_variable_NElist ')' formal_attributes_done",
	"labeled_formal_variable : identifier ':' formal_variable",
	"formal_attributes_init : /* empty */",
	"formal_attributes_done : /* empty */",
	"attribute_name : definition_name",
	"attribute_name : module_name '!' definition_name",
	"base_variable : identifier",
	"builtin_exception_name : identifier",
	"component_name : identifier",
	"definition_name : identifier",
	"exception_name : type_name '.' user_exception_name",
	"exception_name : builtin_exception_name",
	"exit_name : identifier",
	"formal_variable : '*'",
	"formal_variable : component_name",
	"formal_variable : component_name dot_component_s",
	"link_name : identifier",
	"module_name : identifier",
	"type_name : definition_name",
	"type_name : module_name '!' definition_name",
	"user_exception_name : identifier",
	"variable_name : base_variable",
	"variable_name : base_variable dot_component_s",
	"dot_component : '.' component_name",
	"callmessage_variable : variable_name",
	"definitions_library_variable : variable_name",
	"definitions_module_variable : variable_name",
	"element_variable : variable_name",
	"enumeration_variable : base_variable",
	"inport_variable : variable_name",
	"message_variable : variable_name",
	"outport_variable : variable_name",
	"polymorph_variable : variable_name",
	"result_variable : variable_name",
	"table_variable : variable_name",
	"variant_variable : variable_name",
	"variant_component : variable_name",
	"constraint_expression : expression",
	"element_expression : expression",
	"outport_expression : expression",
	"outport_primary : primary",
	"polymorph_expression : expression",
	"position_expression : expression",
	"select_expression : expression",
	"selector_expression : expression",
	"source_expression : expression",
	"table_expression : expression",
	"test_expression : expression_clause",
	"callmessage_type : type_name",
	"element_type : type_name",
	"enumeration_type : type_name",
	"inport_type : type_name",
	"component_typestate : formal_typestate",
	"constraint_typestate : typestate",
	"element_typestate : formal_typestate",
	"entry_typestate : formal_typestate",
	"exception_typestate : formal_typestate",
	"exit_typestate : formal_typestate",
	"inspect_typestate : formal_typestate",
	"minimum_typestate : formal_typestate",
	"unwrapped_typestate : formal_typestate",
	"pragma : PRAGMA string_literal",
	"empty : /* empty */",
	"simple_statement : error ';'",
	"construction : error ';'",
	"declaration : error ';'",
	"names_case : T_NAMESCASE",
	"move : T_MOVE",
	"assign : T_ASSIGN",
	"nequal : T_NEQUAL",
	"lequal : T_LEQUAL",
	"gequal : T_GEQUAL",
	"real_literal : T_REAL",
	"integer_literal : T_INTEGER",
	"string_literal : T_STRING",
	"named_literal : T_NAME",
	"case_declaration_list : empty",
	"case_declaration_list : case_declaration_NElist",
	"case_declaration_NElist : case_declaration",
	"case_declaration_NElist : case_declaration_NElist ',' case_declaration",
	"declaration_list : /* empty */",
	"declaration_list : empty",
	"declaration_list : /* empty */",
	"declaration_list : declaration_NElist",
	"declaration_NElist : declaration",
	"declaration_NElist : declaration_NElist ',' declaration",
	"component_declaration_list : declaration_list",
	"named_literal_list : /* empty */",
	"named_literal_list : empty",
	"named_literal_list : /* empty */",
	"named_literal_list : named_literal_NElist",
	"named_literal_NElist : named_literal",
	"named_literal_NElist : named_literal_NElist ',' named_literal",
	"expression_list : empty",
	"expression_list : expression_NElist",
	"expression_NElist : expression_NElist ',' expression",
	"expression_NElist : expression",
	"exception_name_list : empty",
	"exception_name_list : exception_name_NElist",
	"exception_name_NElist : exception_name_NElist ',' exception_name",
	"exception_name_NElist : exception_name",
	"exit_name_list : empty",
	"exit_name_list : exit_name_NElist",
	"exit_name_NElist : exit_name_NElist ',' exit_name",
	"exit_name_NElist : exit_name",
	"module_name_list : empty",
	"module_name_list : module_name_NElist",
	"module_name_NElist : module_name",
	"module_name_NElist : module_name_NElist ',' module_name",
	"link_name_list : empty",
	"link_name_list : link_name_NElist",
	"link_name_NElist : link_name_NElist ',' link_name",
	"link_name_NElist : link_name",
	"variable_name_list : empty",
	"variable_name_list : variable_name_NElist",
	"variable_name_NElist : variable_name_NElist ',' variable_name",
	"variable_name_NElist : variable_name",
	"formal_variable_list : empty",
	"formal_variable_list : formal_variable_NElist",
	"formal_variable_NElist : formal_variable_NElist ',' formal_variable",
	"formal_variable_NElist : formal_variable",
	"base_variable_list : empty",
	"base_variable_list : base_variable_NElist",
	"base_variable_NElist : base_variable_NElist ',' base_variable",
	"base_variable_NElist : base_variable",
	"component_name_list : empty",
	"component_name_list : component_name_NElist",
	"component_name_NElist : component_name_NElist ',' component_name",
	"component_name_NElist : component_name",
	"mapping_list : empty",
	"mapping_list : mapping_NElist",
	"mapping_NElist : mapping_NElist ',' mapping",
	"mapping_NElist : mapping",
	"labeled_expression_NElist : labeled_expression",
	"labeled_expression_NElist : labeled_expression_NElist ',' labeled_expression",
	"labeled_variable_name_NElist : labeled_variable_name_NElist ',' labeled_variable_name",
	"labeled_variable_name_NElist : labeled_variable_name",
	"labeled_formal_variable_NElist : labeled_formal_variable",
	"labeled_formal_variable_NElist : labeled_formal_variable_NElist ',' labeled_formal_variable",
	"attribute_list : empty",
	"attribute_list : attribute_NElist",
	"attribute_NElist : attribute",
	"attribute_NElist : attribute_NElist ',' attribute",
	"formal_attribute_list : empty",
	"formal_attribute_list : formal_attribute_NElist",
	"formal_attribute_NElist : formal_attribute",
	"formal_attribute_NElist : formal_attribute_NElist ',' formal_attribute",
	"user_exception_s : user_exception_s user_exception",
	"user_exception_s : empty",
	"handler_s : handler_s handler",
	"handler_s : empty",
	"key_s : key_s key",
	"key_s : empty",
	"select_clause_s : select_clause_s select_clause",
	"select_clause_s : empty",
	"dot_component_s : dot_component_s dot_component",
	"dot_component_s : empty",
	"declaration_series : declaration_series declaration ';'",
	"declaration_series : empty",
	"definition_series : definition_series definition ';'",
	"definition_series : empty",
	"statement_series : statement_series statement ';'",
	"statement_series : empty",
	"opt_imports : imports",
	"opt_imports : empty",
	"opt_linking : linking",
	"opt_linking : empty",
	"opt_declaration_section : declaration_section",
	"opt_declaration_section : empty",
	"opt_else_clause : else_clause",
	"opt_else_clause : empty",
	"opt_select_expression : select_expression",
	"opt_select_expression : empty",
	"opt_key_definition : key_definition",
	"opt_key_definition : empty",
	"opt_minimum : minimum",
	"opt_minimum : empty",
	"opt_constant_section : constant_section",
	"opt_constant_section : empty",
	"opt_ordered : ordered",
	"opt_ordered : empty",
	"opt_atposition : atposition",
	"opt_atposition : empty",
	"opt_pragma : pragma",
	"opt_pragma : empty",
	"opt_return_exception : return_exception",
	"opt_return_exception : empty",
	"opt_constant_parameters : constant_parameters",
	"opt_constant_parameters : empty",
	"identifier : T_SYMBOL",
	"identifier : PRINT",
	"identifier : TYPENAME",
	"identifier : ATTRIBUTENAME",
	"identifier : ACCURACY",
	"identifier : AGAINST",
	"identifier : AS",
	"identifier : ASSERT",
	"identifier : AT",
	"identifier : BLOCK",
	"identifier : BOOLEAN",
	"identifier : CALL",
	"identifier : CALLMESSAGE",
	"identifier : CASE",
	"identifier : CHECKDEFINITIONS",
	"identifier : CONNECT",
	"identifier : CONSTANT",
	"identifier : CONSTRAINT",
	"identifier : CONVERT",
	"identifier : COPY",
	"identifier : CREATE",
	"identifier : DECLARE",
	"identifier : DEFINITIONS",
	"identifier : DISCARD",
	"identifier : DISSOLVE",
	"identifier : DROP",
	"identifier : EMPTY",
	"identifier : ENUMERATION",
	"identifier : EVERY",
	"identifier : EXCEPT",
	"identifier : EXCEPTION",
	"identifier : EXISTS",
	"identifier : EXIT",
	"identifier : EXTRACT",
	"identifier : FALSE",
	"identifier : FOR",
	"identifier : FORALL",
	"identifier : FROM",
	"identifier : HIDE",
	"identifier : IF",
	"identifier : IN",
	"identifier : INPORT",
	"identifier : INSERT",
	"identifier : INSPECT",
	"identifier : INTEGER",
	"identifier : INTO",
	"identifier : IS",
	"identifier : KEYS",
	"identifier : LINKING",
	"identifier : MERGE",
	"identifier : MINIMUM",
	"identifier : MOD",
	"identifier : NEW",
	"identifier : NOMINAL",
	"identifier : OF",
	"identifier : OR",
	"identifier : ORDERED",
	"identifier : OUTPORT",
	"identifier : POLYMORPH",
	"identifier : POSITION",
	"identifier : PROCEDURE",
	"identifier : REAL",
	"identifier : RECEIVE",
	"identifier : RECORD",
	"identifier : REM",
	"identifier : REMOVE",
	"identifier : REPEAT",
	"identifier : RETURN",
	"identifier : REVEAL",
	"identifier : SELECT",
	"identifier : SEND",
	"identifier : SIZE",
	"identifier : TABLE",
	"identifier : TO",
	"identifier : TRUE",
	"identifier : TYPE",
	"identifier : TYPESTATE",
	"identifier : UNITE",
	"identifier : UNWRAP",
	"identifier : USING",
	"identifier : VARIANT",
	"identifier : WHILE",
	"identifier : WRAP",
};
#endif /* YYDEBUG */
/* @(#)yaccpar	1.3  com/cmd/lang/yacc,3.1,9021 9/7/89 18:46:37 */
/*
** Skeleton parser driver for yacc output
*/

/*
** yacc user known macros and defines
*/
#ifdef YYSPLIT
#   define YYERROR	return(-2)
#else
#   define YYERROR	goto yyerrlab
#endif

#define YYACCEPT	return(0)
#define YYABORT		return(1)
#define YYBACKUP( newtoken, newvalue )\
{\
	if ( yychar >= 0 || ( yyr2[ yytmp ] >> 1 ) != 1 )\
	{\
		yyerror( "syntax error - cannot backup" );\
		goto yyerrlab;\
	}\
	yychar = newtoken;\
	yystate = *yyps;\
	yylval = newvalue;\
	goto yynewstate;\
}
#define YYRECOVERING()	(!!yyerrflag)
#ifndef YYDEBUG
#	define YYDEBUG	1	/* make debugging available */
#endif

/*
** user known globals
*/
int yydebug;			/* set to 1 to get debugging */

/*
** driver internal defines
*/
#define YYFLAG		(-1000)

#ifdef YYSPLIT
#   define YYSCODE { \
			extern int (*yyf[])(); \
			register int yyret; \
			if (yyf[yytmp]) \
			    if ((yyret=(*yyf[yytmp])()) == -2) \
				    goto yyerrlab; \
				else if (yyret>=0) return(yyret); \
		   }
#endif

/*
** global variables used by the parser
*/
YYSTYPE yyv[ YYMAXDEPTH ];	/* value stack */
int yys[ YYMAXDEPTH ];		/* state stack */

YYSTYPE *yypv;			/* top of value stack */
YYSTYPE *yypvt;			/* top of value stack for $vars */
int *yyps;			/* top of state stack */

int yystate;			/* current state */
int yytmp;			/* extra var (lasts between blocks) */

int yynerrs;			/* number of errors */
int yyerrflag;			/* error recovery flag */
int yychar;			/* current input token number */



/*
** yyparse - return 0 if worked, 1 if syntax error not recovered from
*/
int
yyparse()
{
	/*
	** Initialize externals - yyparse may be called more than once
	*/
	yypv = &yyv[-1];
	yyps = &yys[-1];
	yystate = 0;
	yytmp = 0;
	yynerrs = 0;
	yyerrflag = 0;
	yychar = -1;

	goto yystack;
	{
		register YYSTYPE *yy_pv;	/* top of value stack */
		register int *yy_ps;		/* top of state stack */
		register int yy_state;		/* current state */
		register int  yy_n;		/* internal state number info */

		/*
		** get globals into registers.
		** branch to here only if YYBACKUP was called.
		*/
	yynewstate:
		yy_pv = yypv;
		yy_ps = yyps;
		yy_state = yystate;
		goto yy_newstate;

		/*
		** get globals into registers.
		** either we just started, or we just finished a reduction
		*/
	yystack:
		yy_pv = yypv;
		yy_ps = yyps;
		yy_state = yystate;

		/*
		** top of for (;;) loop while no reductions done
		*/
	yy_stack:
		/*
		** put a state and value onto the stacks
		*/
#if YYDEBUG
		/*
		** if debugging, look up token value in list of value vs.
		** name pairs.  0 and negative (-1) are special values.
		** Note: linear search is used since time is not a real
		** consideration while debugging.
		*/
		if ( yydebug )
		{
			register int yy_i;

			printf( "State %d, token ", yy_state );
			if ( yychar == 0 )
				printf( "end-of-file\n" );
			else if ( yychar < 0 )
				printf( "-none-\n" );
			else
			{
				for ( yy_i = 0; yytoks[yy_i].t_val >= 0;
					yy_i++ )
				{
					if ( yytoks[yy_i].t_val == yychar )
						break;
				}
				printf( "%s\n", yytoks[yy_i].t_name );
			}
		}
#endif /* YYDEBUG */
		if ( ++yy_ps >= &yys[ YYMAXDEPTH ] )	/* room on stack? */
		{
			yyerror( "yacc stack overflow" );
			YYABORT;
		}
		*yy_ps = yy_state;
		*++yy_pv = yyval;

		/*
		** we have a new state - find out what to do
		*/
	yy_newstate:
		if ( ( yy_n = yypact[ yy_state ] ) <= YYFLAG )
			goto yydefault;		/* simple state */
#if YYDEBUG
		/*
		** if debugging, need to mark whether new token grabbed
		*/
		yytmp = yychar < 0;
#endif
		if ( ( yychar < 0 ) && ( ( yychar = yylex() ) < 0 ) )
			yychar = 0;		/* reached EOF */
#if YYDEBUG
		if ( yydebug && yytmp )
		{
			register int yy_i;

			printf( "Received token " );
			if ( yychar == 0 )
				printf( "end-of-file\n" );
			else if ( yychar < 0 )
				printf( "-none-\n" );
			else
			{
				for ( yy_i = 0; yytoks[yy_i].t_val >= 0;
					yy_i++ )
				{
					if ( yytoks[yy_i].t_val == yychar )
						break;
				}
				printf( "%s\n", yytoks[yy_i].t_name );
			}
		}
#endif /* YYDEBUG */
		if ( ( ( yy_n += yychar ) < 0 ) || ( yy_n >= YYLAST ) )
			goto yydefault;
		if ( yychk[ yy_n = yyact[ yy_n ] ] == yychar )	/*valid shift*/
		{
			yychar = -1;
			yyval = yylval;
			yy_state = yy_n;
			if ( yyerrflag > 0 )
				yyerrflag--;
			goto yy_stack;
		}

	yydefault:
		if ( ( yy_n = yydef[ yy_state ] ) == -2 )
		{
#if YYDEBUG
			yytmp = yychar < 0;
#endif
			if ( ( yychar < 0 ) && ( ( yychar = yylex() ) < 0 ) )
				yychar = 0;		/* reached EOF */
#if YYDEBUG
			if ( yydebug && yytmp )
			{
				register int yy_i;

				printf( "Received token " );
				if ( yychar == 0 )
					printf( "end-of-file\n" );
				else if ( yychar < 0 )
					printf( "-none-\n" );
				else
				{
					for ( yy_i = 0;
						yytoks[yy_i].t_val >= 0;
						yy_i++ )
					{
						if ( yytoks[yy_i].t_val
							== yychar )
						{
							break;
						}
					}
					printf( "%s\n", yytoks[yy_i].t_name );
				}
			}
#endif /* YYDEBUG */
			/*
			** look through exception table
			*/
			{
				register int *yyxi = yyexca;

				while ( ( *yyxi != -1 ) ||
					( yyxi[1] != yy_state ) )
				{
					yyxi += 2;
				}
				while ( ( *(yyxi += 2) >= 0 ) &&
					( *yyxi != yychar ) )
					;
				if ( ( yy_n = yyxi[1] ) < 0 )
					YYACCEPT;
			}
		}

		/*
		** check for syntax error
		*/
		if ( yy_n == 0 )	/* have an error */
		{
			/* no worry about speed here! */
			switch ( yyerrflag )
			{
			case 0:		/* new error */
				yyerror( "syntax error" );
				goto skip_init;
			yyerrlab:
				/*
				** get globals into registers.
				** we have a user generated syntax type error
				*/
				yy_pv = yypv;
				yy_ps = yyps;
				yy_state = yystate;
				yynerrs++;
			skip_init:
			case 1:
			case 2:		/* incompletely recovered error */
					/* try again... */
				yyerrflag = 3;
				/*
				** find state where "error" is a legal
				** shift action
				*/
				while ( yy_ps >= yys )
				{
					yy_n = yypact[ *yy_ps ] + YYERRCODE;
					if ( yy_n >= 0 && yy_n < YYLAST &&
						yychk[yyact[yy_n]] == YYERRCODE)					{
						/*
						** simulate shift of "error"
						*/
						yy_state = yyact[ yy_n ];
						goto yy_stack;
					}
					/*
					** current state has no shift on
					** "error", pop stack
					*/
#if YYDEBUG
#	define _POP_ "Error recovery pops state %d, uncovers state %d\n"
					if ( yydebug )
						printf( _POP_, *yy_ps,
							yy_ps[-1] );
#	undef _POP_
#endif
					yy_ps--;
					yy_pv--;
				}
				/*
				** there is no state on stack with "error" as
				** a valid shift.  give up.
				*/
				YYABORT;
			case 3:		/* no shift yet; eat a token */
#if YYDEBUG
				/*
				** if debugging, look up token in list of
				** pairs.  0 and negative shouldn't occur,
				** but since timing doesn't matter when
				** debugging, it doesn't hurt to leave the
				** tests here.
				*/
				if ( yydebug )
				{
					register int yy_i;

					printf( "Error recovery discards " );
					if ( yychar == 0 )
						printf( "token end-of-file\n" );
					else if ( yychar < 0 )
						printf( "token -none-\n" );
					else
					{
						for ( yy_i = 0;
							yytoks[yy_i].t_val >= 0;
							yy_i++ )
						{
							if ( yytoks[yy_i].t_val
								== yychar )
							{
								break;
							}
						}
						printf( "token %s\n",
							yytoks[yy_i].t_name );
					}
				}
#endif /* YYDEBUG */
				if ( yychar == 0 )	/* reached EOF. quit */
					YYABORT;
				yychar = -1;
				goto yy_newstate;
			}
		}/* end if ( yy_n == 0 ) */
		/*
		** reduction by production yy_n
		** put stack tops, etc. so things right after switch
		*/
#if YYDEBUG
		/*
		** if debugging, print the string that is the user's
		** specification of the reduction which is just about
		** to be done.
		*/
		if ( yydebug )
			printf( "Reduce by (%d) \"%s\"\n",
				yy_n, yyreds[ yy_n ] );
#endif
		yytmp = yy_n;			/* value to switch over */
		yypvt = yy_pv;			/* $vars top of value stack */
		/*
		** Look in goto table for next state
		** Sorry about using yy_state here as temporary
		** register variable, but why not, if it works...
		** If yyr2[ yy_n ] doesn't have the low order bit
		** set, then there is no action to be done for
		** this reduction.  So, no saving & unsaving of
		** registers done.  The only difference between the
		** code just after the if and the body of the if is
		** the goto yy_stack in the body.  This way the test
		** can be made before the choice of what to do is needed.
		*/
		{
			/* length of production doubled with extra bit */
			register int yy_len = yyr2[ yy_n ];

			if ( !( yy_len & 01 ) )
			{
				yy_len >>= 1;
				yyval = ( yy_pv -= yy_len )[1];	/* $$ = $1 */
				yy_state = yypgo[ yy_n = yyr1[ yy_n ] ] +
					*( yy_ps -= yy_len ) + 1;
				if ( yy_state >= YYLAST ||
					yychk[ yy_state =
					yyact[ yy_state ] ] != -yy_n )
				{
					yy_state = yyact[ yypgo[ yy_n ] ];
				}
				goto yy_stack;
			}
			yy_len >>= 1;
			yyval = ( yy_pv -= yy_len )[1];	/* $$ = $1 */
			yy_state = yypgo[ yy_n = yyr1[ yy_n ] ] +
				*( yy_ps -= yy_len ) + 1;
			if ( yy_state >= YYLAST ||
				yychk[ yy_state = yyact[ yy_state ] ] != -yy_n )
			{
				yy_state = yyact[ yypgo[ yy_n ] ];
			}
		}
					/* save until reenter driver code */
		yystate = yy_state;
		yyps = yy_ps;
		yypv = yy_pv;
	}
	/*
	** code supplied by user is placed in this switch
	*/

		switch(yytmp){

case 1:
# line 303 "fegram.y"
{ p_mod_end(); } /*NOTREACHED*/ break;
case 2:
# line 309 "fegram.y"
{ p_mod_end(); } /*NOTREACHED*/ break;
case 3:
# line 323 "fegram.y"
{ p_mod_init(yypvt[-1].string); } /*NOTREACHED*/ break;
case 6:
# line 338 "fegram.y"
{ init_proc_module(); } /*NOTREACHED*/ break;
case 7:
# line 342 "fegram.y"
{ init_executables(); p_init_process(yypvt[-2].declp, yypvt[-0].string, False); } /*NOTREACHED*/ break;
case 8:
# line 354 "fegram.y"
{ p_end_proc_module(); } /*NOTREACHED*/ break;
case 10:
# line 365 "fegram.y"
{ yyval.declp = p_decl(yypvt[-3].string, yypvt[-0].obj, yypvt[-1].string); } /*NOTREACHED*/ break;
case 11:
# line 374 "fegram.y"
{ p_set_stmt_pragma(yypvt[-1].string, yypvt[-0].obj); p_add_stmt(yypvt[-0].obj); } /*NOTREACHED*/ break;
case 12:
# line 376 "fegram.y"
{ p_set_stmt_pragma(yypvt[-1].string, yypvt[-0].obj); p_add_stmt(yypvt[-0].obj); } /*NOTREACHED*/ break;
case 13:
# line 389 "fegram.y"
{ yyval.obj = p_movestmt(yypvt[-2].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 14:
# line 392 "fegram.y"
{ yyval.obj = p_copystmt(yypvt[-2].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 15:
# line 395 "fegram.y"
{ p_unsupported(); } /*NOTREACHED*/ break;
case 16:
# line 399 "fegram.y"
{ p_init_call(yypvt[-0].obj); } /*NOTREACHED*/ break;
case 17:
# line 401 "fegram.y"
{ yyval.obj = p_end_call(); } /*NOTREACHED*/ break;
case 18:
# line 403 "fegram.y"
{ p_init_call(yypvt[-1].obj); } /*NOTREACHED*/ break;
case 19:
# line 405 "fegram.y"
{ yyval.obj = p_end_call(); } /*NOTREACHED*/ break;
case 20:
# line 412 "fegram.y"
{ p_unsupported(); } /*NOTREACHED*/ break;
case 21:
# line 417 "fegram.y"
{ yyval.obj = p_binaryop(operator__connect, yypvt[-2].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 22:
# line 420 "fegram.y"
{ yyval.obj = p_unaryop(operator__discard, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 23:
# line 423 "fegram.y"
{ yyval.obj = p_binaryop(operator__dissolve, yypvt[-0].obj, yypvt[-2].obj); } /*NOTREACHED*/ break;
case 24:
# line 426 "fegram.y"
{ p_unsupported(); } /*NOTREACHED*/ break;
case 25:
# line 429 "fegram.y"
{ yyval.obj = p_exit_statement(yypvt[-0].string); } /*NOTREACHED*/ break;
case 26:
# line 432 "fegram.y"
{ yyval.obj = p_remove_extract(operator__extract, yypvt[-2].obj, yypvt[-0].selector); } /*NOTREACHED*/ break;
case 27:
# line 435 "fegram.y"
{ yyval.obj = p_unaryop(operator__hide, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 28:
# line 441 "fegram.y"
{ if (yypvt[-0].obj)
	    yyval.obj = p_insertormergeat(operator__insert_at, yypvt[-1].obj, yypvt[-3].obj, yypvt[-0].obj);
	  else
	    yyval.obj = p_binaryop(operator__insert, yypvt[-1].obj, yypvt[-3].obj);
	} /*NOTREACHED*/ break;
case 29:
# line 449 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 30:
# line 455 "fegram.y"
{ if (yypvt[-0].obj)
	    yyval.obj = p_insertormergeat(operator__merge_at, yypvt[-1].obj, yypvt[-3].obj, yypvt[-0].obj);
	  else
	    yyval.obj = p_binaryop(operator__merge, yypvt[-1].obj, yypvt[-3].obj);
	} /*NOTREACHED*/ break;
case 31:
# line 462 "fegram.y"
{ yyval.obj = p_unaryop(operator__new, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 32:
# line 465 "fegram.y"
{ yyval.obj = p_print(yypvt[-0].obj); } /*NOTREACHED*/ break;
case 33:
# line 468 "fegram.y"
{ yyval.obj = p_binaryop(operator__receive, yypvt[-2].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 34:
# line 471 "fegram.y"
{ yyval.obj = p_remove_extract(operator__remove, yypvt[-2].obj, yypvt[-0].selector); } /*NOTREACHED*/ break;
case 35:
# line 477 "fegram.y"
{ yyval.obj = p_return(yypvt[-1].obj, yypvt[-0].string); } /*NOTREACHED*/ break;
case 36:
# line 481 "fegram.y"
{ yyval.string = yypvt[-0].string; } /*NOTREACHED*/ break;
case 37:
# line 484 "fegram.y"
{ yyval.obj = p_unaryop(operator__reveal, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 38:
# line 487 "fegram.y"
{ yyval.obj = p_send(yypvt[-0].obj, yypvt[-2].obj); } /*NOTREACHED*/ break;
case 39:
# line 490 "fegram.y"
{ yyval.obj = p_binaryop(operator__unite, yypvt[-2].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 40:
# line 496 "fegram.y"
{ p_set_resenv(lookup_object_typename(yypvt[-2].obj)); } /*NOTREACHED*/ break;
case 41:
# line 498 "fegram.y"
{ yyval.obj = p_unwrap(yypvt[-4].obj, yypvt[-2].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 42:
# line 505 "fegram.y"
{ yyval.obj = p_binaryop(operator__wrap, yypvt[-0].obj, yypvt[-2].obj); } /*NOTREACHED*/ break;
case 43:
# line 513 "fegram.y"
{ p_init_block(); } /*NOTREACHED*/ break;
case 44:
# line 527 "fegram.y"
{ yyval.obj = p_end_compound_scope(); } /*NOTREACHED*/ break;
case 45:
# line 533 "fegram.y"
{ fe_error(Warning, errorcode__general_error, "Block constants list not yet supported"); } /*NOTREACHED*/ break;
case 46:
# line 539 "fegram.y"
{ p_handler(yypvt[-2].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 47:
# line 544 "fegram.y"
{ p_handler(yypvt[-2].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 48:
# line 550 "fegram.y"
{ p_init_inspect(operator__for_inspect, yypvt[-0].selector); } /*NOTREACHED*/ break;
case 49:
# line 557 "fegram.y"
{ yyval.obj = p_end_compound_scope(); } /*NOTREACHED*/ break;
case 50:
# line 560 "fegram.y"
{ p_init_for_enumerate(yypvt[-0].declp); } /*NOTREACHED*/ break;
case 51:
# line 567 "fegram.y"
{ yyval.obj = p_end_compound_scope(); } /*NOTREACHED*/ break;
case 52:
# line 581 "fegram.y"
{ yyval.obj = p_if(yypvt[-5].obj, yypvt[-3].obj, yypvt[-2].obj); } /*NOTREACHED*/ break;
case 53:
# line 585 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 54:
# line 590 "fegram.y"
{ p_init_inspect(operator__inspect_table, yypvt[-1].selector); } /*NOTREACHED*/ break;
case 55:
# line 596 "fegram.y"
{ yyval.obj = p_end_compound_scope(); } /*NOTREACHED*/ break;
case 56:
# line 602 "fegram.y"
{ p_set_resenv(yypvt[-2].declp->typename); } /*NOTREACHED*/ break;
case 57:
# line 604 "fegram.y"
{ p_inspect_polymorph(yypvt[-4].declp, yypvt[-2].obj, yypvt[-0].obj) ; } /*NOTREACHED*/ break;
case 58:
# line 612 "fegram.y"
{ yyval.obj = p_end_compound_scope(); } /*NOTREACHED*/ break;
case 59:
# line 626 "fegram.y"
{ yyval.obj = p_select(yypvt[-4].obj, yypvt[-3].obj, yypvt[-2].obj); } /*NOTREACHED*/ break;
case 60:
# line 629 "fegram.y"
{ yyval.obj = p_select_guard_boolean(yypvt[-1].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 61:
# line 631 "fegram.y"
{ yyval.obj = p_select_guard_event(yypvt[-1].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 62:
# line 633 "fegram.y"
{ yyval.obj = p_select_guard_both(yypvt[-3].obj, yypvt[-1].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 63:
# line 636 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 64:
# line 639 "fegram.y"
{ yyval.obj = yypvt[-1].obj; } /*NOTREACHED*/ break;
case 65:
# line 642 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 66:
# line 652 "fegram.y"
{ yyval.obj = p_while(yypvt[-4].obj, yypvt[-2].obj); } /*NOTREACHED*/ break;
case 67:
# line 656 "fegram.y"
{ yyval.declp = p_decl(yypvt[-2].string, yypvt[-0].obj, (char *) nil); } /*NOTREACHED*/ break;
case 68:
# line 660 "fegram.y"
{ p_init_statement_clause(); } /*NOTREACHED*/ break;
case 69:
# line 662 "fegram.y"
{ yyval.obj = p_end_statement_clause(); } /*NOTREACHED*/ break;
case 70:
# line 675 "fegram.y"
{ p_init_selector(yypvt[-3].string, yypvt[-1].obj); } /*NOTREACHED*/ break;
case 71:
# line 677 "fegram.y"
{ yyval.selector = p_selector(yypvt[-1].obj); } /*NOTREACHED*/ break;
case 72:
# line 682 "fegram.y"
{ p_init_selector(yypvt[-3].string, yypvt[-1].obj); } /*NOTREACHED*/ break;
case 73:
# line 684 "fegram.y"
{ yyval.selector = p_selector(yypvt[-1].obj); } /*NOTREACHED*/ break;
case 74:
# line 686 "fegram.y"
{ p_init_selector(nil, yypvt[-1].obj); } /*NOTREACHED*/ break;
case 75:
# line 688 "fegram.y"
{ yyval.selector = p_selector(yypvt[-1].obj); } /*NOTREACHED*/ break;
case 76:
# line 692 "fegram.y"
{ yyval.obj = make_mapping(yypvt[-0].obj); } /*NOTREACHED*/ break;
case 77:
# line 703 "fegram.y"
{ p_init_expression_clause(); } /*NOTREACHED*/ break;
case 78:
# line 705 "fegram.y"
{ yyval.obj = p_end_expression_clause(yypvt[-0].obj); } /*NOTREACHED*/ break;
case 79:
# line 708 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 80:
# line 711 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 81:
# line 713 "fegram.y"
{ yyval.obj = p_binary_expr(operator__or, yypvt[-2].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 82:
# line 716 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 83:
# line 718 "fegram.y"
{ yyval.obj = p_binary_expr(operator__and, yypvt[-2].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 84:
# line 721 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 85:
# line 723 "fegram.y"
{ yyval.obj = p_binary_expr(operator__equal, yypvt[-2].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 86:
# line 725 "fegram.y"
{ yyval.obj = p_binary_expr(operator__less, yypvt[-2].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 87:
# line 727 "fegram.y"
{ yyval.obj = p_binary_expr(operator__greater, yypvt[-2].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 88:
# line 729 "fegram.y"
{ yyval.obj = p_binary_expr(operator__not_equal, yypvt[-2].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 89:
# line 731 "fegram.y"
{ yyval.obj = p_binary_expr(operator__less_equal, yypvt[-2].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 90:
# line 733 "fegram.y"
{ yyval.obj = p_binary_expr(operator__greater_equal, yypvt[-2].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 91:
# line 736 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 92:
# line 738 "fegram.y"
{ yyval.obj = p_binary_expr(operator__concatenate, yypvt[-2].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 93:
# line 741 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 94:
# line 743 "fegram.y"
{ yyval.obj = p_unary_expr(operator__unary_minus, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 95:
# line 745 "fegram.y"
{ yyval.obj = p_binary_expr(operator__add, yypvt[-2].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 96:
# line 747 "fegram.y"
{ yyval.obj = p_binary_expr(operator__subtract, yypvt[-2].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 97:
# line 750 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 98:
# line 752 "fegram.y"
{ yyval.obj = p_binary_expr(operator__multiply, yypvt[-2].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 99:
# line 754 "fegram.y"
{ yyval.obj = p_binary_expr(operator__divide, yypvt[-2].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 100:
# line 756 "fegram.y"
{ yyval.obj = p_binary_expr(operator__mod, yypvt[-2].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 101:
# line 758 "fegram.y"
{ yyval.obj = p_binary_expr(operator__rem, yypvt[-2].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 102:
# line 765 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 103:
# line 768 "fegram.y"
{ yyval.obj = p_unary_table_expr(operator__the_element, yypvt[-0].selector); } /*NOTREACHED*/ break;
case 104:
# line 771 "fegram.y"
{ yyval.obj = p_unary_expr(operator__case, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 105:
# line 774 "fegram.y"
{ yyval.obj = p_unary_expr(operator__convert, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 106:
# line 777 "fegram.y"
{ yyval.obj = p_unary_expr(operator__copy, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 107:
# line 780 "fegram.y"
{ yyval.obj = p_unary_expr(operator__create, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 108:
# line 783 "fegram.y"
{ yyval.obj = p_unary_expr(operator__empty, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 109:
# line 786 "fegram.y"
{ p_init_exprblock(yypvt[-1].declp); } /*NOTREACHED*/ break;
case 110:
# line 788 "fegram.y"
{ yyval.obj = p_end_exprblock(); } /*NOTREACHED*/ break;
case 111:
# line 791 "fegram.y"
{ yyval.obj = p_unary_table_expr(operator__every, yypvt[-0].selector); } /*NOTREACHED*/ break;
case 112:
# line 794 "fegram.y"
{ yyval.obj = p_unary_table_expr(operator__exists, yypvt[-0].selector); } /*NOTREACHED*/ break;
case 113:
# line 797 "fegram.y"
{ yyval.obj = p_unary_table_expr(operator__forall, yypvt[-0].selector); } /*NOTREACHED*/ break;
case 114:
# line 800 "fegram.y"
{ yyval.obj = p_unary_expr(operator__not, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 115:
# line 803 "fegram.y"
{ yyval.obj = p_unary_expr(operator__position_of_element, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 116:
# line 805 "fegram.y"
{ yyval.obj = p_unary_table_expr(operator__position_of_selector, yypvt[-0].selector); } /*NOTREACHED*/ break;
case 117:
# line 808 "fegram.y"
{ yyval.obj = p_unary_expr(operator__procedure, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 118:
# line 811 "fegram.y"
{ yyval.obj = p_unary_expr(operator__size, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 119:
# line 814 "fegram.y"
{ yyval.obj = p_unary_expr(operator__type, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 120:
# line 817 "fegram.y"
{ yyval.obj = p_unary_expr(operator__typestate, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 121:
# line 824 "fegram.y"
{ yyval.obj = p_typed_expr(yypvt[-1].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 122:
# line 826 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 123:
# line 828 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 124:
# line 830 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 125:
# line 833 "fegram.y"
{ yyval.obj = yypvt[-1].obj; } /*NOTREACHED*/ break;
case 126:
# line 836 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 127:
# line 838 "fegram.y"
{ yyval.obj = yypvt[-1].obj; } /*NOTREACHED*/ break;
case 128:
# line 840 "fegram.y"
{ yyval.obj = p_niladic_expr(operator__currentprogram); } /*NOTREACHED*/ break;
case 129:
# line 842 "fegram.y"
{ yyval.obj = p_niladic_expr(operator__unique); } /*NOTREACHED*/ break;
case 130:
# line 846 "fegram.y"
{ yyval.selector = yypvt[-0].selector; } /*NOTREACHED*/ break;
case 131:
# line 849 "fegram.y"
{ p_init_call(yypvt[-0].obj); } /*NOTREACHED*/ break;
case 132:
# line 851 "fegram.y"
{ yyval.obj = p_function(); } /*NOTREACHED*/ break;
case 133:
# line 858 "fegram.y"
{ yyval.obj = p_literal(operator__integer_literal, yypvt[-0].string); } /*NOTREACHED*/ break;
case 134:
# line 860 "fegram.y"
{ yyval.obj = p_literal(operator__real_literal, yypvt[-0].string); } /*NOTREACHED*/ break;
case 135:
# line 862 "fegram.y"
{ yyval.obj = p_literal(operator__named_literal, yypvt[-0].string); } /*NOTREACHED*/ break;
case 136:
# line 864 "fegram.y"
{ yyval.obj = p_literal(operator__string_literal, yypvt[-0].string); } /*NOTREACHED*/ break;
case 137:
# line 866 "fegram.y"
{ yyval.obj = p_qliteral(operator__program_literal, yypvt[-0].obj,
			  qualifier_types__program_literal); } /*NOTREACHED*/ break;
case 138:
# line 869 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 139:
# line 871 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 140:
# line 876 "fegram.y"
{ p_init_process(yypvt[-2].declp, yypvt[-0].string, True); } /*NOTREACHED*/ break;
case 141:
# line 888 "fegram.y"
{ yyval.obj = p_end_process(); } /*NOTREACHED*/ break;
case 142:
# line 890 "fegram.y"
{ yyval.obj = p_link_process(yypvt[-0].string); } /*NOTREACHED*/ break;
case 143:
# line 894 "fegram.y"
{ yyval.obj = p_qliteral(operator__attributename, yypvt[-1].obj,
			  qualifier_types__attributename); } /*NOTREACHED*/ break;
case 144:
# line 897 "fegram.y"
{ yyval.obj = p_qliteral(operator__typename, yypvt[-1].obj,
			  qualifier_types__typename); } /*NOTREACHED*/ break;
case 145:
# line 910 "fegram.y"
{ p_init_def_module(); } /*NOTREACHED*/ break;
case 146:
# line 916 "fegram.y"
{ p_end_def_module(); } /*NOTREACHED*/ break;
case 147:
# line 919 "fegram.y"
{ p_def_name(yypvt[-2].string, yypvt[-0].string); } /*NOTREACHED*/ break;
case 152:
# line 936 "fegram.y"
{ p_boolean_def(yypvt[-4].string, yypvt[-0].string); } /*NOTREACHED*/ break;
case 153:
# line 938 "fegram.y"
{ p_boolean_def(yypvt[-0].string, yypvt[-4].string); } /*NOTREACHED*/ break;
case 154:
# line 942 "fegram.y"
{ p_init_callmsg_def(); } /*NOTREACHED*/ break;
case 155:
# line 949 "fegram.y"
{ p_set_callmsg(yypvt[-1].obj); } /*NOTREACHED*/ break;
case 156:
# line 958 "fegram.y"
{ p_callmsg_def(yypvt[-2].obj, yypvt[-1].obj); } /*NOTREACHED*/ break;
case 158:
# line 963 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 159:
# line 966 "fegram.y"
{ p_callmsg_exception(yypvt[-1].string, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 160:
# line 974 "fegram.y"
{ p_enum_def(yypvt[-4].boolean, yypvt[-1].obj); } /*NOTREACHED*/ break;
case 162:
# line 982 "fegram.y"
{ p_set_resenv(yypvt[-0].obj); } /*NOTREACHED*/ break;
case 163:
# line 984 "fegram.y"
{ p_inport_def(yypvt[-2].obj,yypvt[-0].obj); } /*NOTREACHED*/ break;
case 164:
# line 987 "fegram.y"
{ p_integer_def(); } /*NOTREACHED*/ break;
case 165:
# line 990 "fegram.y"
{ p_nominal_def(); } /*NOTREACHED*/ break;
case 166:
# line 993 "fegram.y"
{ p_outport_def(yypvt[-0].obj); } /*NOTREACHED*/ break;
case 167:
# line 996 "fegram.y"
{ p_polymorph_def(); } /*NOTREACHED*/ break;
case 168:
# line 999 "fegram.y"
{ p_real_def(yypvt[-2].string,yypvt[-0].string); } /*NOTREACHED*/ break;
case 169:
# line 1002 "fegram.y"
{ p_init_record_def(); } /*NOTREACHED*/ break;
case 170:
# line 1009 "fegram.y"
{ p_record_def(yypvt[-1].obj); } /*NOTREACHED*/ break;
case 171:
# line 1014 "fegram.y"
{ p_set_resenv(yypvt[-0].obj); } /*NOTREACHED*/ break;
case 172:
# line 1019 "fegram.y"
{ p_table_def(yypvt[-6].boolean, yypvt[-3].obj, yypvt[-1].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 173:
# line 1023 "fegram.y"
{ p_init_keyset(); } /*NOTREACHED*/ break;
case 174:
# line 1025 "fegram.y"
{ yyval.obj = p_get_keyset(); } /*NOTREACHED*/ break;
case 175:
# line 1028 "fegram.y"
{ p_init_formal_object_name_list(); } /*NOTREACHED*/ break;
case 176:
# line 1031 "fegram.y"
{ p_add_key(p_get_formal_object_name_list()); } /*NOTREACHED*/ break;
case 177:
# line 1034 "fegram.y"
{ p_init_variant_def(yypvt[-0].obj); } /*NOTREACHED*/ break;
case 178:
# line 1041 "fegram.y"
{ p_variant_def(); } /*NOTREACHED*/ break;
case 179:
# line 1047 "fegram.y"
{ p_set_resenv(yypvt[-0].declp->typename); } /*NOTREACHED*/ break;
case 180:
# line 1049 "fegram.y"
{ p_add_variant_case(yypvt[-4].string, yypvt[-2].declp, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 181:
# line 1052 "fegram.y"
{ yyval.declp = yypvt[-0].declp; } /*NOTREACHED*/ break;
case 182:
# line 1066 "fegram.y"
{ p_unsupported(); } /*NOTREACHED*/ break;
case 185:
# line 1086 "fegram.y"
{ p_init_formal_typestate(); } /*NOTREACHED*/ break;
case 186:
# line 1088 "fegram.y"
{ yyval.obj = p_get_formal_typestate(); } /*NOTREACHED*/ break;
case 187:
# line 1091 "fegram.y"
{ yyval.obj = p_formal_attribute(yypvt[-1].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 189:
# line 1108 "fegram.y"
{ p_unsupported(); } /*NOTREACHED*/ break;
case 193:
# line 1116 "fegram.y"
{ p_unsupported(); } /*NOTREACHED*/ break;
case 194:
# line 1119 "fegram.y"
{ yyval.obj = p_formal_whole_object(); } /*NOTREACHED*/ break;
case 195:
# line 1123 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 196:
# line 1128 "fegram.y"
{ p_unsupported(); } /*NOTREACHED*/ break;
case 198:
# line 1133 "fegram.y"
{ p_init_formal_object_name_list(); } /*NOTREACHED*/ break;
case 199:
# line 1136 "fegram.y"
{ yyval.obj = p_get_formal_object_name_list(); } /*NOTREACHED*/ break;
case 200:
# line 1143 "fegram.y"
{ yyval.obj = p_attr_info(p_qual_name(nil, yypvt[-0].string)); } /*NOTREACHED*/ break;
case 201:
# line 1145 "fegram.y"
{ yyval.obj = p_attr_info(p_qual_name(yypvt[-2].string, yypvt[-0].string)); } /*NOTREACHED*/ break;
case 202:
# line 1148 "fegram.y"
{ yyval.string = yypvt[-0].string; } /*NOTREACHED*/ break;
case 203:
# line 1151 "fegram.y"
{ yyval.string = yypvt[-0].string; } /*NOTREACHED*/ break;
case 204:
# line 1154 "fegram.y"
{ yyval.string = yypvt[-0].string; } /*NOTREACHED*/ break;
case 205:
# line 1157 "fegram.y"
{ yyval.string = yypvt[-0].string; } /*NOTREACHED*/ break;
case 206:
# line 1160 "fegram.y"
{ yyval.obj = p_user_exception(yypvt[-2].obj, yypvt[-0].string); } /*NOTREACHED*/ break;
case 207:
# line 1162 "fegram.y"
{ yyval.obj = p_builtin_exception(yypvt[-0].string); } /*NOTREACHED*/ break;
case 208:
# line 1165 "fegram.y"
{ yyval.string = yypvt[-0].string; } /*NOTREACHED*/ break;
case 209:
# line 1168 "fegram.y"
{ yyval.obj = p_whole_formal_object(); } /*NOTREACHED*/ break;
case 210:
# line 1170 "fegram.y"
{ p_init_formal_object_name(); p_add_component_name(yypvt[-0].string); } /*NOTREACHED*/ break;
case 211:
# line 1172 "fegram.y"
{ yyval.obj = p_get_formal_object_name(); p_reset_resenv(); } /*NOTREACHED*/ break;
case 212:
# line 1175 "fegram.y"
{ yyval.string = yypvt[-0].string; } /*NOTREACHED*/ break;
case 213:
# line 1178 "fegram.y"
{ yyval.string = yypvt[-0].string; } /*NOTREACHED*/ break;
case 214:
# line 1181 "fegram.y"
{ yyval.obj = p_type_or_attr_name(p_qual_name(nil, yypvt[-0].string), True); } /*NOTREACHED*/ break;
case 215:
# line 1183 "fegram.y"
{ yyval.obj = p_type_or_attr_name(p_qual_name(yypvt[-2].string, yypvt[-0].string), True); } /*NOTREACHED*/ break;
case 216:
# line 1186 "fegram.y"
{ yyval.string = yypvt[-0].string; } /*NOTREACHED*/ break;
case 217:
# line 1189 "fegram.y"
{ p_init_object_name(yypvt[-0].string); } /*NOTREACHED*/ break;
case 218:
# line 1191 "fegram.y"
{ yyval.obj = p_get_object_name(); } /*NOTREACHED*/ break;
case 219:
# line 1195 "fegram.y"
{ p_add_component_name(yypvt[-0].string); } /*NOTREACHED*/ break;
case 220:
# line 1202 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 221:
# line 1205 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 222:
# line 1208 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 223:
# line 1211 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 224:
# line 1214 "fegram.y"
{ yyval.string = yypvt[-0].string; } /*NOTREACHED*/ break;
case 225:
# line 1217 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 226:
# line 1220 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 227:
# line 1222 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 228:
# line 1225 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 229:
# line 1228 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 230:
# line 1231 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 231:
# line 1234 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 232:
# line 1237 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 233:
# line 1244 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 234:
# line 1247 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 235:
# line 1250 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 236:
# line 1253 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 237:
# line 1256 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 238:
# line 1259 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 239:
# line 1262 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 240:
# line 1265 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 241:
# line 1268 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 242:
# line 1271 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 243:
# line 1274 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 244:
# line 1281 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 245:
# line 1284 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 246:
# line 1287 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 247:
# line 1290 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 248:
# line 1296 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 250:
# line 1301 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 251:
# line 1304 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 252:
# line 1307 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 253:
# line 1310 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 254:
# line 1313 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 255:
# line 1316 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 256:
# line 1319 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 257:
# line 1328 "fegram.y"
{ yyval.string = yypvt[-0].string; } /*NOTREACHED*/ break;
case 259:
# line 1342 "fegram.y"
{ yyval.obj = (objectp) nil; } /*NOTREACHED*/ break;
case 261:
# line 1346 "fegram.y"
{ yyval.declp = (decl *) nil; } /*NOTREACHED*/ break;
case 268:
# line 1364 "fegram.y"
{ yyval.string = copystring(yytext); } /*NOTREACHED*/ break;
case 269:
# line 1367 "fegram.y"
{ yyval.string = copystring(yytext); } /*NOTREACHED*/ break;
case 270:
# line 1370 "fegram.y"
{ yyval.string = copystring(yytext); } /*NOTREACHED*/ break;
case 271:
# line 1373 "fegram.y"
{ yyval.string = copystring(yytext); } /*NOTREACHED*/ break;
case 276:
# line 1397 "fegram.y"
{ p_init_declaration_list(); } /*NOTREACHED*/ break;
case 277:
# line 1399 "fegram.y"
{ yyval.obj = p_get_declaration_list(); } /*NOTREACHED*/ break;
case 278:
# line 1401 "fegram.y"
{ p_init_declaration_list(); } /*NOTREACHED*/ break;
case 279:
# line 1403 "fegram.y"
{ yyval.obj = p_get_declaration_list(); } /*NOTREACHED*/ break;
case 280:
# line 1405 "fegram.y"
{ (void) p_add_declaration(yypvt[-0].declp); } /*NOTREACHED*/ break;
case 281:
# line 1407 "fegram.y"
{ (void) p_add_declaration(yypvt[-0].declp); } /*NOTREACHED*/ break;
case 282:
# line 1410 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 283:
# line 1413 "fegram.y"
{ p_init_enum_elements(); } /*NOTREACHED*/ break;
case 284:
# line 1415 "fegram.y"
{ yyval.obj = p_get_enum_elements(); } /*NOTREACHED*/ break;
case 285:
# line 1417 "fegram.y"
{ p_init_enum_elements(); } /*NOTREACHED*/ break;
case 286:
# line 1419 "fegram.y"
{ yyval.obj = p_get_enum_elements(); } /*NOTREACHED*/ break;
case 287:
# line 1421 "fegram.y"
{ p_add_enum(yypvt[-0].string); } /*NOTREACHED*/ break;
case 288:
# line 1423 "fegram.y"
{ p_add_enum(yypvt[-0].string); } /*NOTREACHED*/ break;
case 291:
# line 1429 "fegram.y"
{ p_add_callparm(yypvt[-0].obj); } /*NOTREACHED*/ break;
case 292:
# line 1431 "fegram.y"
{ p_add_callparm(yypvt[-0].obj); } /*NOTREACHED*/ break;
case 293:
# line 1434 "fegram.y"
{ yyval.obj = (objectp) nil; } /*NOTREACHED*/ break;
case 294:
# line 1436 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 295:
# line 1438 "fegram.y"
{ yyval.obj = p_merge_exceptions(yypvt[-2].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 296:
# line 1440 "fegram.y"
{ yyval.obj = p_merge_exceptions(nil, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 297:
# line 1443 "fegram.y"
{ yyval.obj = (objectp) nil; } /*NOTREACHED*/ break;
case 298:
# line 1445 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 299:
# line 1447 "fegram.y"
{ yyval.obj = p_merge_exits(yypvt[-2].obj, yypvt[-0].string); } /*NOTREACHED*/ break;
case 300:
# line 1449 "fegram.y"
{ yyval.obj = p_merge_exits(nil, yypvt[-0].string); } /*NOTREACHED*/ break;
case 303:
# line 1454 "fegram.y"
{ p_mod_import(yypvt[-0].string); } /*NOTREACHED*/ break;
case 304:
# line 1456 "fegram.y"
{ p_mod_import(yypvt[-0].string); } /*NOTREACHED*/ break;
case 307:
# line 1461 "fegram.y"
{ p_load_link(yypvt[-0].string); } /*NOTREACHED*/ break;
case 308:
# line 1463 "fegram.y"
{ p_load_link(yypvt[-0].string); } /*NOTREACHED*/ break;
case 315:
# line 1474 "fegram.y"
{ p_add_formal_object_name(yypvt[-0].obj); } /*NOTREACHED*/ break;
case 316:
# line 1476 "fegram.y"
{ p_add_formal_object_name(yypvt[-0].obj); } /*NOTREACHED*/ break;
case 323:
# line 1486 "fegram.y"
{ p_add_callmsg_constant(yypvt[-0].string); } /*NOTREACHED*/ break;
case 324:
# line 1488 "fegram.y"
{ p_add_callmsg_constant(yypvt[-0].string); } /*NOTREACHED*/ break;
case 325:
# line 1491 "fegram.y"
{ yyval.obj = mapping_expression(nil); } /*NOTREACHED*/ break;
case 326:
# line 1493 "fegram.y"
{ yyval.obj = mapping_expression(yypvt[-0].obj); } /*NOTREACHED*/ break;
case 327:
# line 1495 "fegram.y"
{ yyval.obj = combine_mappings(yypvt[-2].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 328:
# line 1497 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 341:
# line 1518 "fegram.y"
{ p_add_formal_attribute(yypvt[-0].obj); } /*NOTREACHED*/ break;
case 342:
# line 1520 "fegram.y"
{ p_add_formal_attribute(yypvt[-0].obj); } /*NOTREACHED*/ break;
case 349:
# line 1539 "fegram.y"
{ yyval.obj = p_merge_select_clauses(yypvt[-1].obj, yypvt[-0].obj); } /*NOTREACHED*/ break;
case 350:
# line 1541 "fegram.y"
{ yyval.obj = p_make_select_clauses(); } /*NOTREACHED*/ break;
case 353:
# line 1554 "fegram.y"
{ p_declare(yypvt[-1].declp); } /*NOTREACHED*/ break;
case 365:
# line 1581 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 366:
# line 1583 "fegram.y"
{ yyval.obj = nil; } /*NOTREACHED*/ break;
case 367:
# line 1586 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 368:
# line 1588 "fegram.y"
{ yyval.obj = nil; } /*NOTREACHED*/ break;
case 369:
# line 1591 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 370:
# line 1593 "fegram.y"
{ yyval.obj = (objectp) nil; } /*NOTREACHED*/ break;
case 371:
# line 1596 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 372:
# line 1598 "fegram.y"
{ yyval.obj = (objectp) nil; } /*NOTREACHED*/ break;
case 375:
# line 1604 "fegram.y"
{ yyval.boolean = nil_true; } /*NOTREACHED*/ break;
case 376:
# line 1606 "fegram.y"
{ yyval.boolean = nil_false; } /*NOTREACHED*/ break;
case 377:
# line 1609 "fegram.y"
{ yyval.obj = yypvt[-0].obj; } /*NOTREACHED*/ break;
case 378:
# line 1611 "fegram.y"
{ yyval.obj = nil; } /*NOTREACHED*/ break;
case 379:
# line 1614 "fegram.y"
{ yyval.string = yypvt[-0].string; } /*NOTREACHED*/ break;
case 380:
# line 1616 "fegram.y"
{ yyval.string = (char *) nil; } /*NOTREACHED*/ break;
case 381:
# line 1619 "fegram.y"
{ yyval.string = yypvt[-0].string; } /*NOTREACHED*/ break;
case 382:
# line 1621 "fegram.y"
{ yyval.string = (char *) nil; } /*NOTREACHED*/ break;
case 385:
# line 1641 "fegram.y"
{ yyval.string = downcase(copystring(yytext)); } /*NOTREACHED*/ break;
case 386:
# line 1642 "fegram.y"
{ yyval.string = downcase(copystring("PRINT")); } /*NOTREACHED*/ break;
case 387:
# line 1643 "fegram.y"
{ yyval.string = downcase(copystring("TYPENAME")); } /*NOTREACHED*/ break;
case 388:
# line 1644 "fegram.y"
{ yyval.string = downcase(copystring("ATTRIBUTENAME")); } /*NOTREACHED*/ break;
case 389:
# line 1645 "fegram.y"
{ yyval.string = downcase(copystring("ACCURACY")); } /*NOTREACHED*/ break;
case 390:
# line 1646 "fegram.y"
{ yyval.string = downcase(copystring("AGAINST")); } /*NOTREACHED*/ break;
case 391:
# line 1647 "fegram.y"
{ yyval.string = downcase(copystring("AS")); } /*NOTREACHED*/ break;
case 392:
# line 1648 "fegram.y"
{ yyval.string = downcase(copystring("ASSERT")); } /*NOTREACHED*/ break;
case 393:
# line 1649 "fegram.y"
{ yyval.string = downcase(copystring("AT")); } /*NOTREACHED*/ break;
case 394:
# line 1650 "fegram.y"
{ yyval.string = downcase(copystring("BLOCK")); } /*NOTREACHED*/ break;
case 395:
# line 1651 "fegram.y"
{ yyval.string = downcase(copystring("BOOLEAN")); } /*NOTREACHED*/ break;
case 396:
# line 1652 "fegram.y"
{ yyval.string = downcase(copystring("CALL")); } /*NOTREACHED*/ break;
case 397:
# line 1653 "fegram.y"
{ yyval.string = downcase(copystring("CALLMESSAGE")); } /*NOTREACHED*/ break;
case 398:
# line 1654 "fegram.y"
{ yyval.string = downcase(copystring("CASE")); } /*NOTREACHED*/ break;
case 399:
# line 1655 "fegram.y"
{ yyval.string = downcase(copystring("CHECKDEFINITIONS")); } /*NOTREACHED*/ break;
case 400:
# line 1656 "fegram.y"
{ yyval.string = downcase(copystring("CONNECT")); } /*NOTREACHED*/ break;
case 401:
# line 1657 "fegram.y"
{ yyval.string = downcase(copystring("CONSTANT")); } /*NOTREACHED*/ break;
case 402:
# line 1658 "fegram.y"
{ yyval.string = downcase(copystring("CONSTRAINT")); } /*NOTREACHED*/ break;
case 403:
# line 1659 "fegram.y"
{ yyval.string = downcase(copystring("CONVERT")); } /*NOTREACHED*/ break;
case 404:
# line 1660 "fegram.y"
{ yyval.string = downcase(copystring("COPY")); } /*NOTREACHED*/ break;
case 405:
# line 1661 "fegram.y"
{ yyval.string = downcase(copystring("CREATE")); } /*NOTREACHED*/ break;
case 406:
# line 1662 "fegram.y"
{ yyval.string = downcase(copystring("DECLARE")); } /*NOTREACHED*/ break;
case 407:
# line 1663 "fegram.y"
{ yyval.string = downcase(copystring("DEFINITIONS")); } /*NOTREACHED*/ break;
case 408:
# line 1664 "fegram.y"
{ yyval.string = downcase(copystring("DISCARD")); } /*NOTREACHED*/ break;
case 409:
# line 1665 "fegram.y"
{ yyval.string = downcase(copystring("DISSOLVE")); } /*NOTREACHED*/ break;
case 410:
# line 1666 "fegram.y"
{ yyval.string = downcase(copystring("DROP")); } /*NOTREACHED*/ break;
case 411:
# line 1667 "fegram.y"
{ yyval.string = downcase(copystring("EMPTY")); } /*NOTREACHED*/ break;
case 412:
# line 1668 "fegram.y"
{ yyval.string = downcase(copystring("ENUMERATION")); } /*NOTREACHED*/ break;
case 413:
# line 1669 "fegram.y"
{ yyval.string = downcase(copystring("EVERY")); } /*NOTREACHED*/ break;
case 414:
# line 1670 "fegram.y"
{ yyval.string = downcase(copystring("EXCEPT")); } /*NOTREACHED*/ break;
case 415:
# line 1671 "fegram.y"
{ yyval.string = downcase(copystring("EXCEPTION")); } /*NOTREACHED*/ break;
case 416:
# line 1672 "fegram.y"
{ yyval.string = downcase(copystring("EXISTS")); } /*NOTREACHED*/ break;
case 417:
# line 1673 "fegram.y"
{ yyval.string = downcase(copystring("EXIT")); } /*NOTREACHED*/ break;
case 418:
# line 1674 "fegram.y"
{ yyval.string = downcase(copystring("EXTRACT")); } /*NOTREACHED*/ break;
case 419:
# line 1675 "fegram.y"
{ yyval.string = downcase(copystring("FALSE")); } /*NOTREACHED*/ break;
case 420:
# line 1676 "fegram.y"
{ yyval.string = downcase(copystring("FOR")); } /*NOTREACHED*/ break;
case 421:
# line 1677 "fegram.y"
{ yyval.string = downcase(copystring("FORALL")); } /*NOTREACHED*/ break;
case 422:
# line 1678 "fegram.y"
{ yyval.string = downcase(copystring("FROM")); } /*NOTREACHED*/ break;
case 423:
# line 1679 "fegram.y"
{ yyval.string = downcase(copystring("HIDE")); } /*NOTREACHED*/ break;
case 424:
# line 1680 "fegram.y"
{ yyval.string = downcase(copystring("IF")); } /*NOTREACHED*/ break;
case 425:
# line 1681 "fegram.y"
{ yyval.string = downcase(copystring("IN")); } /*NOTREACHED*/ break;
case 426:
# line 1682 "fegram.y"
{ yyval.string = downcase(copystring("INPORT")); } /*NOTREACHED*/ break;
case 427:
# line 1683 "fegram.y"
{ yyval.string = downcase(copystring("INSERT")); } /*NOTREACHED*/ break;
case 428:
# line 1684 "fegram.y"
{ yyval.string = downcase(copystring("INSPECT")); } /*NOTREACHED*/ break;
case 429:
# line 1685 "fegram.y"
{ yyval.string = downcase(copystring("INTEGER")); } /*NOTREACHED*/ break;
case 430:
# line 1686 "fegram.y"
{ yyval.string = downcase(copystring("INTO")); } /*NOTREACHED*/ break;
case 431:
# line 1687 "fegram.y"
{ yyval.string = downcase(copystring("IS")); } /*NOTREACHED*/ break;
case 432:
# line 1688 "fegram.y"
{ yyval.string = downcase(copystring("KEYS")); } /*NOTREACHED*/ break;
case 433:
# line 1689 "fegram.y"
{ yyval.string = downcase(copystring("LINKING")); } /*NOTREACHED*/ break;
case 434:
# line 1690 "fegram.y"
{ yyval.string = downcase(copystring("MERGE")); } /*NOTREACHED*/ break;
case 435:
# line 1691 "fegram.y"
{ yyval.string = downcase(copystring("MINIMUM")); } /*NOTREACHED*/ break;
case 436:
# line 1692 "fegram.y"
{ yyval.string = downcase(copystring("MOD")); } /*NOTREACHED*/ break;
case 437:
# line 1693 "fegram.y"
{ yyval.string = downcase(copystring("NEW")); } /*NOTREACHED*/ break;
case 438:
# line 1694 "fegram.y"
{ yyval.string = downcase(copystring("NOMINAL")); } /*NOTREACHED*/ break;
case 439:
# line 1695 "fegram.y"
{ yyval.string = downcase(copystring("OF")); } /*NOTREACHED*/ break;
case 440:
# line 1696 "fegram.y"
{ yyval.string = downcase(copystring("OR")); } /*NOTREACHED*/ break;
case 441:
# line 1697 "fegram.y"
{ yyval.string = downcase(copystring("ORDERED")); } /*NOTREACHED*/ break;
case 442:
# line 1698 "fegram.y"
{ yyval.string = downcase(copystring("OUTPORT")); } /*NOTREACHED*/ break;
case 443:
# line 1699 "fegram.y"
{ yyval.string = downcase(copystring("POLYMORPH")); } /*NOTREACHED*/ break;
case 444:
# line 1700 "fegram.y"
{ yyval.string = downcase(copystring("POSITION")); } /*NOTREACHED*/ break;
case 445:
# line 1701 "fegram.y"
{ yyval.string = downcase(copystring("PROCEDURE")); } /*NOTREACHED*/ break;
case 446:
# line 1702 "fegram.y"
{ yyval.string = downcase(copystring("REAL")); } /*NOTREACHED*/ break;
case 447:
# line 1703 "fegram.y"
{ yyval.string = downcase(copystring("RECEIVE")); } /*NOTREACHED*/ break;
case 448:
# line 1704 "fegram.y"
{ yyval.string = downcase(copystring("RECORD")); } /*NOTREACHED*/ break;
case 449:
# line 1705 "fegram.y"
{ yyval.string = downcase(copystring("REM")); } /*NOTREACHED*/ break;
case 450:
# line 1706 "fegram.y"
{ yyval.string = downcase(copystring("REMOVE")); } /*NOTREACHED*/ break;
case 451:
# line 1707 "fegram.y"
{ yyval.string = downcase(copystring("REPEAT")); } /*NOTREACHED*/ break;
case 452:
# line 1708 "fegram.y"
{ yyval.string = downcase(copystring("RETURN")); } /*NOTREACHED*/ break;
case 453:
# line 1709 "fegram.y"
{ yyval.string = downcase(copystring("REVEAL")); } /*NOTREACHED*/ break;
case 454:
# line 1710 "fegram.y"
{ yyval.string = downcase(copystring("SELECT")); } /*NOTREACHED*/ break;
case 455:
# line 1711 "fegram.y"
{ yyval.string = downcase(copystring("SEND")); } /*NOTREACHED*/ break;
case 456:
# line 1712 "fegram.y"
{ yyval.string = downcase(copystring("SIZE")); } /*NOTREACHED*/ break;
case 457:
# line 1713 "fegram.y"
{ yyval.string = downcase(copystring("TABLE")); } /*NOTREACHED*/ break;
case 458:
# line 1714 "fegram.y"
{ yyval.string = downcase(copystring("TO")); } /*NOTREACHED*/ break;
case 459:
# line 1715 "fegram.y"
{ yyval.string = downcase(copystring("TRUE")); } /*NOTREACHED*/ break;
case 460:
# line 1716 "fegram.y"
{ yyval.string = downcase(copystring("TYPE")); } /*NOTREACHED*/ break;
case 461:
# line 1717 "fegram.y"
{ yyval.string = downcase(copystring("TYPESTATE")); } /*NOTREACHED*/ break;
case 462:
# line 1718 "fegram.y"
{ yyval.string = downcase(copystring("UNITE")); } /*NOTREACHED*/ break;
case 463:
# line 1719 "fegram.y"
{ yyval.string = downcase(copystring("UNWRAP")); } /*NOTREACHED*/ break;
case 464:
# line 1720 "fegram.y"
{ yyval.string = downcase(copystring("USING")); } /*NOTREACHED*/ break;
case 465:
# line 1721 "fegram.y"
{ yyval.string = downcase(copystring("VARIANT")); } /*NOTREACHED*/ break;
case 466:
# line 1722 "fegram.y"
{ yyval.string = downcase(copystring("WHILE")); } /*NOTREACHED*/ break;
case 467:
# line 1723 "fegram.y"
{ yyval.string = downcase(copystring("WRAP")); } /*NOTREACHED*/ break;
}


	goto yystack;		/* reset registers in driver code */
}
