gram.c

Go to the documentation of this file.
00001 #define SEOS    1
00002 #define SCOMMENT        2
00003 #define SLABEL  3
00004 #define SUNKNOWN        4
00005 #define SHOLLERITH      5
00006 #define SICON   6
00007 #define SRCON   7
00008 #define SDCON   8
00009 #define SBITCON 9
00010 #define SOCTCON 10
00011 #define SHEXCON 11
00012 #define STRUE   12
00013 #define SFALSE  13
00014 #define SNAME   14
00015 #define SNAMEEQ 15
00016 #define SFIELD  16
00017 #define SSCALE  17
00018 #define SINCLUDE        18
00019 #define SLET    19
00020 #define SASSIGN 20
00021 #define SAUTOMATIC      21
00022 #define SBACKSPACE      22
00023 #define SBLOCK  23
00024 #define SCALL   24
00025 #define SCHARACTER      25
00026 #define SCLOSE  26
00027 #define SCOMMON 27
00028 #define SCOMPLEX        28
00029 #define SCONTINUE       29
00030 #define SDATA   30
00031 #define SDCOMPLEX       31
00032 #define SDIMENSION      32
00033 #define SDO     33
00034 #define SDOUBLE 34
00035 #define SELSE   35
00036 #define SELSEIF 36
00037 #define SEND    37
00038 #define SENDFILE        38
00039 #define SENDIF  39
00040 #define SENTRY  40
00041 #define SEQUIV  41
00042 #define SEXTERNAL       42
00043 #define SFORMAT 43
00044 #define SFUNCTION       44
00045 #define SGOTO   45
00046 #define SASGOTO 46
00047 #define SCOMPGOTO       47
00048 #define SARITHIF        48
00049 #define SLOGIF  49
00050 #define SIMPLICIT       50
00051 #define SINQUIRE        51
00052 #define SINTEGER        52
00053 #define SINTRINSIC      53
00054 #define SLOGICAL        54
00055 #define SNAMELIST       55
00056 #define SOPEN   56
00057 #define SPARAM  57
00058 #define SPAUSE  58
00059 #define SPRINT  59
00060 #define SPROGRAM        60
00061 #define SPUNCH  61
00062 #define SREAD   62
00063 #define SREAL   63
00064 #define SRETURN 64
00065 #define SREWIND 65
00066 #define SSAVE   66
00067 #define SSTATIC 67
00068 #define SSTOP   68
00069 #define SSUBROUTINE     69
00070 #define STHEN   70
00071 #define STO     71
00072 #define SUNDEFINED      72
00073 #define SWRITE  73
00074 #define SLPAR   74
00075 #define SRPAR   75
00076 #define SEQUALS 76
00077 #define SCOLON  77
00078 #define SCOMMA  78
00079 #define SCURRENCY       79
00080 #define SPLUS   80
00081 #define SMINUS  81
00082 #define SSTAR   82
00083 #define SSLASH  83
00084 #define SPOWER  84
00085 #define SCONCAT 85
00086 #define SAND    86
00087 #define SOR     87
00088 #define SNEQV   88
00089 #define SEQV    89
00090 #define SNOT    90
00091 #define SEQ     91
00092 #define SLT     92
00093 #define SGT     93
00094 #define SLE     94
00095 #define SGE     95
00096 #define SNE     96
00097 #define SENDDO  97
00098 #define SWHILE  98
00099 #define SSLASHD 99
00100 #define SBYTE   100
00101 
00102 /* #line        125     "/n/bopp/v5/dmg/f2c/gram.in" */
00103 #include "defs.h"
00104 #include "p1defs.h"
00105 
00106 static int nstars;                      /* Number of labels in an
00107                                            alternate return CALL */
00108 static int datagripe;
00109 static int ndim;
00110 static int vartype;
00111 int new_dcl;
00112 static ftnint varleng;
00113 static struct Dims dims[MAXDIM+1];
00114 extern struct Labelblock **labarray;    /* Labels in an alternate
00115                                                    return CALL */
00116 extern int maxlablist;
00117 
00118 /* The next two variables are used to verify that each statement might be reached
00119    during runtime.   lastwasbranch   is tested only in the defintion of the
00120    stat:   nonterminal. */
00121 
00122 int lastwasbranch = NO;
00123 static int thiswasbranch = NO;
00124 extern ftnint yystno;
00125 extern flag intonly;
00126 static chainp datastack;
00127 extern long laststfcn, thisstno;
00128 extern int can_include; /* for netlib */
00129 extern void endcheck Argdcl((void));
00130 extern struct Primblock *primchk Argdcl((expptr));
00131 
00132 #define ESNULL (Extsym *)0
00133 #define NPNULL (Namep)0
00134 #define LBNULL (struct Listblock *)0
00135 
00136  static void
00137 pop_datastack(Void) {
00138         chainp d0 = datastack;
00139         if (d0->datap)
00140                 curdtp = (chainp)d0->datap;
00141         datastack = d0->nextp;
00142         d0->nextp = 0;
00143         frchain(&d0);
00144         }
00145 
00146 
00147 /* #line        172     "/n/bopp/v5/dmg/f2c/gram.in" */
00148 typedef union   {
00149         int ival;
00150         ftnint lval;
00151         char *charpval;
00152         chainp chval;
00153         tagptr tagval;
00154         expptr expval;
00155         struct Labelblock *labval;
00156         struct Nameblock *namval;
00157         struct Eqvchain *eqvval;
00158         Extsym *extval;
00159         } YYSTYPE;
00160 extern  int     yyerrflag;
00161 #ifndef YYMAXDEPTH
00162 #define YYMAXDEPTH      150
00163 #endif
00164 YYSTYPE yylval;
00165 YYSTYPE yyval;
00166 #define YYEOFCODE 1
00167 #define YYERRCODE 2
00168 short   yyexca[] =
00169 {-1, 1,
00170         1, -1,
00171         -2, 0,
00172 -1, 20,
00173         4, 38,
00174         -2, 231,
00175 -1, 24,
00176         4, 42,
00177         -2, 231,
00178 -1, 151,
00179         4, 247,
00180         -2, 189,
00181 -1, 175,
00182         4, 269,
00183         81, 269,
00184         -2, 189,
00185 -1, 225,
00186         80, 174,
00187         -2, 140,
00188 -1, 246,
00189         77, 231,
00190         -2, 228,
00191 -1, 273,
00192         4, 290,
00193         -2, 144,
00194 -1, 277,
00195         4, 299,
00196         81, 299,
00197         -2, 146,
00198 -1, 330,
00199         80, 175,
00200         -2, 142,
00201 -1, 360,
00202         4, 271,
00203         17, 271,
00204         77, 271,
00205         81, 271,
00206         -2, 190,
00207 -1, 439,
00208         94, 0,
00209         95, 0,
00210         96, 0,
00211         97, 0,
00212         98, 0,
00213         99, 0,
00214         -2, 154,
00215 -1, 456,
00216         4, 293,
00217         81, 293,
00218         -2, 144,
00219 -1, 458,
00220         4, 295,
00221         81, 295,
00222         -2, 144,
00223 -1, 460,
00224         4, 297,
00225         81, 297,
00226         -2, 144,
00227 -1, 462,
00228         4, 300,
00229         81, 300,
00230         -2, 145,
00231 -1, 506,
00232         81, 293,
00233         -2, 144,
00234 };
00235 #define YYNPROD 305
00236 #define YYPRIVATE 57344
00237 #define YYLAST  1455
00238 short   yyact[] =
00239 {
00240  239, 359, 474, 306, 416, 427, 299, 389, 473, 267,
00241  315, 231, 400, 358, 318, 415, 328, 253, 319, 100,
00242  224, 297, 294, 280, 402, 401, 305, 117, 185, 265,
00243   17, 122, 204, 275, 196, 191, 202, 203, 119, 129,
00244  107, 271, 200, 184, 112, 104, 338, 102, 166, 167,
00245  336, 337, 338, 344, 343, 342, 121, 157, 120, 345,
00246  347, 346, 349, 348, 350, 261, 276, 336, 337, 338,
00247  131, 132, 133, 134, 104, 136, 539, 158, 399, 158,
00248  313, 166, 167, 336, 337, 338, 344, 343, 342, 341,
00249  340, 311, 345, 347, 346, 349, 348, 350, 399, 398,
00250  105, 514, 115, 537, 166, 167, 336, 337, 338, 344,
00251  343, 342, 341, 340, 238, 345, 347, 346, 349, 348,
00252  350, 106, 130, 104, 478, 211, 187, 188, 412, 320,
00253  259, 260, 261, 411,  95, 166, 167, 336, 337, 338,
00254  186, 213, 296, 212, 194, 486, 195, 542, 245,  96,
00255   97,  98, 527, 104, 529, 158, 523, 449, 258, 158,
00256  241, 243, 484, 101, 487, 485, 216, 274, 471, 222,
00257  217, 472, 221, 158, 483, 465, 430, 220, 166, 167,
00258  259, 260, 261, 262, 158, 166, 167, 336, 337, 338,
00259  344, 156, 121, 156, 120, 464, 345, 347, 346, 349,
00260  348, 350, 463, 373, 281, 282, 283, 236, 104, 232,
00261  242, 242, 249, 101, 292, 301, 263, 468, 290, 302,
00262  279, 296, 291, 288, 289, 166, 167, 259, 260, 261,
00263  264, 317, 455, 335, 189, 351, 312, 310, 446, 453,
00264  431, 284, 425, 335, 166, 167, 259, 260, 261, 262,
00265  258, 466, 325, 158, 467, 450, 380,  99, 449, 158,
00266  158, 158, 158, 158, 258, 258, 357, 379, 269, 156,
00267  234, 420, 266, 156, 421, 409, 393, 335, 410, 394,
00268  361, 333, 323, 362, 334, 258, 378, 156, 270, 208,
00269  326, 101, 330, 178, 113, 332, 374, 111, 156, 375,
00270  376, 403, 352, 110, 109, 108, 354, 355, 385, 386,
00271  363, 356, 384, 225, 377, 425, 367, 368, 369, 370,
00272  371, 422, 223, 364, 335, 538, 391, 335, 534, 533,
00273  532, 335, 423, 335, 372, 413, 408, 395, 390, 166,
00274  167, 259, 260, 261, 262, 381, 434, 528, 531, 526,
00275  494, 429, 237, 335, 496, 335, 335, 335, 104, 104,
00276  490, 298, 138, 158, 258, 335, 448, 156, 258, 258,
00277  258, 258, 258, 156, 156, 156, 156, 156, 251, 192,
00278  451, 103, 335, 454, 309, 277, 277, 360, 287, 426,
00279  118, 352, 166, 167, 259, 260, 261, 262, 137, 387,
00280  403, 232, 435, 436, 437, 438, 439, 440, 441, 442,
00281  443, 444, 477, 247, 469, 406, 482, 470, 308, 269,
00282  452, 166, 167, 336, 337, 338, 344, 335, 479, 155,
00283  244, 155, 488, 228, 225, 499, 335, 335, 335, 335,
00284  335, 335, 335, 335, 335, 335, 383, 497, 273, 273,
00285  495, 502, 201, 258, 150, 151, 214, 175, 103, 103,
00286  103, 103, 501, 190, 475, 454, 210, 172, 193, 142,
00287  503, 197, 198, 199, 504, 510, 335, 156, 207, 403,
00288  277, 513, 507, 508, 509, 331, 277, 482, 517, 489,
00289  335, 520, 492, 335, 197, 218, 219, 242, 498, 335,
00290  525, 519, 518, 516, 515, 524, 353, 155, 404, 512,
00291  246, 155, 248, 104, 406, 417,  30, 535, 406, 511,
00292  390, 209, 213, 335, 227, 155, 268,  93,   6, 541,
00293  250, 335, 171, 173, 177,  82, 155, 335,   4, 475,
00294   81, 335,   5, 273, 543,  80, 457, 459, 461, 382,
00295  124,  79, 103, 174, 304, 295, 307, 522,  78,  77,
00296   76,  60,  49, 242,  48,  45, 424, 322,  33, 114,
00297  530, 118, 206, 316, 414, 321, 205, 397, 396, 300,
00298  197, 536, 481, 135, 215, 392, 277, 277, 277, 314,
00299  540, 116,  26, 406,  25, 353,  24,  23,  22,  21,
00300  388, 286,   9,   8,   7, 155,   2, 404, 303,  20,
00301  165, 155, 155, 155, 155, 155,  51, 491, 293, 268,
00302  230, 329, 268, 268, 166, 167, 336, 337, 338, 344,
00303  343, 457, 459, 461, 327, 345, 347, 346, 349, 348,
00304  350, 418,  92, 256,  53, 339,  19,  55,  37, 456,
00305  458, 460, 226,   3,   1,   0,   0,   0,   0,   0,
00306    0, 307,   0, 405, 197,   0,   0,   0,   0,   0,
00307    0, 277, 277, 277, 419,   0,   0,   0, 353,   0,
00308  321,   0,   0,   0,   0,   0, 404,   0,   0,   0,
00309  493,   0,   0,   0, 432, 166, 167, 336, 337, 338,
00310  344, 343, 342, 341, 340,   0, 345, 347, 346, 349,
00311  348, 350,   0,   0,   0, 155,   0, 500,   0,   0,
00312    0,   0,   0,   0,   0,   0, 268,   0,   0,   0,
00313    0,   0, 462,   0, 506, 458, 460, 166, 167, 336,
00314  337, 338, 344, 343, 342, 341, 340,   0, 345, 347,
00315  346, 349, 348, 350,   0,   0,   0, 295,   0,   0,
00316    0,   0, 405, 480,   0, 307, 405,   0,   0, 447,
00317    0,   0,   0,   0, 166, 167, 336, 337, 338, 344,
00318  343, 342, 341, 340, 316, 345, 347, 346, 349, 348,
00319  350,   0,   0, 445,   0,   0,   0,   0, 166, 167,
00320  336, 337, 338, 344, 343, 342, 341, 340, 268, 345,
00321  347, 346, 349, 348, 350,   0,   0,   0, 505,   0,
00322    0,   0,   0,   0,   0,   0, 505, 505, 505,   0,
00323    0,   0,   0,   0,   0,   0, 307,  12,   0,   0,
00324    0, 405,   0,   0,   0,   0, 505,   0,   0,   0,
00325  521,  10,  56,  46,  73,  86,  14,  61,  70,  91,
00326   38,  66,  47,  42,  68,  72,  31,  67,  35,  34,
00327   11,  88,  36,  18,  41,  39,  28,  16,  57,  58,
00328   59,  50,  54,  43,  89,  64,  40,  69,  44,  90,
00329   29,  62,  85,  13,   0,  83,  65,  52,  87,  27,
00330   74,  63,  15, 433,   0,  71,  84,   0, 166, 167,
00331  336, 337, 338, 344, 343, 342, 341, 340,   0, 345,
00332  347, 346, 349, 348, 350,   0,   0,   0,   0,   0,
00333   32,   0,   0,  75, 166, 167, 336, 337, 338, 344,
00334  343, 342, 341, 340,   0, 345, 347, 346, 349, 348,
00335  350,  73,   0,   0,   0,  70,   0,   0,  66,   0,
00336    0,  68,  72,   0,  67, 161, 162, 163, 164, 170,
00337  169, 168, 159, 160, 104,   0,   0,   0,   0,   0,
00338    0,   0,  64,   0,  69,   0,   0,   0,   0,   0,
00339    0,   0,   0,  65,   0,   0,   0,  74,   0,   0,
00340    0,   0,  71, 161, 162, 163, 164, 170, 169, 168,
00341  159, 160, 104,   0, 161, 162, 163, 164, 170, 169,
00342  168, 159, 160, 104,   0,   0,   0,   0,   0,   0,
00343   75,   0,   0,   0, 235,   0,   0,   0,   0,   0,
00344  166, 167, 365,   0, 366,   0,   0,   0,   0,   0,
00345  240, 161, 162, 163, 164, 170, 169, 168, 159, 160,
00346  104,   0, 161, 162, 163, 164, 170, 169, 168, 159,
00347  160, 104, 235, 229,   0,   0,   0,   0, 166, 167,
00348  233,   0,   0, 235,   0,   0,   0,   0, 240, 166,
00349  167, 476,   0,   0,   0,   0,   0,   0,   0, 240,
00350  161, 162, 163, 164, 170, 169, 168, 159, 160, 104,
00351  161, 162, 163, 164, 170, 169, 168, 159, 160, 104,
00352  235,   0,   0,   0,   0,   0, 166, 167, 233,   0,
00353    0, 235,   0,   0,   0,   0, 240, 166, 167, 428,
00354    0,   0,   0,   0,   0,   0,   0, 240, 161, 162,
00355  163, 164, 170, 169, 168, 159, 160, 104,   0, 161,
00356  162, 163, 164, 170, 169, 168, 159, 160, 104, 278,
00357    0,   0,   0, 272,   0, 166, 167,   0,   0,   0,
00358    0,   0,   0,   0,   0, 240, 161, 162, 163, 164,
00359  170, 169, 168, 159, 160, 104,   0,   0,   0,   0,
00360    0,   0,   0,   0,   0,  94, 161, 162, 163, 164,
00361  170, 169, 168, 159, 160, 104, 257, 235,   0,   0,
00362    0,   0,   0, 166, 167,   0,   0,   0, 278,   0,
00363    0,   0,   0, 240, 166, 167,   0, 123,   0,   0,
00364  126, 127, 128,   0, 240,   0,   0,   0,   0,   0,
00365    0,   0, 139, 140,   0, 324, 141,   0, 143, 144,
00366  145, 166, 167, 146, 147, 148,   0, 149,   0,   0,
00367    0, 240,   0,   0,   0, 252,   0,   0,   0,   0,
00368    0, 166, 167, 254,   0, 255,   0, 179, 180, 181,
00369  182, 183, 161, 162, 163, 164, 170, 169, 168, 159,
00370  160, 104,   0, 161, 162, 163, 164, 170, 169, 168,
00371  159, 160, 104, 161, 162, 163, 164, 170, 169, 168,
00372  159, 160, 104, 161, 162, 163, 164, 170, 169, 168,
00373  159, 160, 104, 161, 162, 163, 164, 170, 169, 168,
00374  159, 160, 104,   0,   0,   0,   0,   0,   0,   0,
00375    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
00376    0, 154,   0,   0,   0,   0,   0, 166, 167, 152,
00377    0, 153, 252,   0,   0,   0,   0,   0, 166, 167,
00378  285,   0, 154,   0,   0,   0,   0,   0, 166, 167,
00379  176,   0, 407,   0,   0,   0,   0,   0, 166, 167,
00380   56,  46, 252,  86,   0,  61,   0,  91, 166, 167,
00381   47,   0,   0,   0,   0,   0,   0,   0,   0,  88,
00382    0,   0,   0,   0,   0,   0,  57,  58,  59,  50,
00383    0,   0,  89,   0,   0,   0,   0,  90,   0,  62,
00384   85,   0,   0,  83,   0,  52,  87,   0,   0,  63,
00385    0, 125,   0,   0,  84
00386 };
00387 short   yypact[] =
00388 {
00389 -1000, 536, 524, 830,-1000,-1000,-1000,-1000,-1000,-1000,
00390  519,-1000,-1000,-1000,-1000,-1000,-1000, 210, 496,  19,
00391  224, 223, 222, 216,  82, 213,  16, 106,-1000,-1000,
00392 -1000,-1000,-1000,1378,-1000,-1000,-1000,  37,-1000,-1000,
00393 -1000,-1000,-1000,-1000,-1000, 496,-1000,-1000,-1000,-1000,
00394 -1000, 392,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
00395 -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
00396 -1000,-1000,-1000,-1000,-1000,-1000,1284, 390,1305, 390,
00397  212,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
00398 -1000,-1000,-1000,-1000,-1000, 496, 496, 496, 496,-1000,
00399  496,-1000, 302,-1000,-1000, 496,-1000, -30, 496, 496,
00400  496, 375,-1000,-1000,-1000, 496, 208,-1000,-1000,-1000,
00401 -1000, 504, 389, 132,-1000,-1000, 379,-1000,-1000,-1000,
00402 -1000, 106, 496, 496, 375,-1000,-1000, 243, 357, 515,
00403 -1000, 356, 995,1140,1140, 353, 513, 496, 336, 496,
00404 -1000,-1000,-1000,-1000,1198,-1000,-1000,  95,1325,-1000,
00405 -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
00406 -1000,-1000,1198, 191, 207,-1000,-1000,1092,1151,-1000,
00407 -1000,-1000,-1000,1295, 311,-1000,-1000, 302, 302, 496,
00408 -1000,-1000, 136, 284,-1000,  82,-1000, 284,-1000,-1000,
00409 -1000, 496,-1000, 341,-1000, 307, 927,   5, 106,  -6,
00410  496,  82,  28,-1000,-1000,1178,-1000, 496,-1000,-1000,
00411 -1000,-1000,-1000,1140,-1000,1140, 411,-1000,1140,-1000,
00412  203,-1000, 851, 513,-1000,1140,-1000,-1000,-1000,1140,
00413 1140,-1000, 851,-1000,1140,-1000,  82, 513,-1000, 309,
00414  202,-1000,1325,-1000,-1000,-1000, 957,-1000,1325,1325,
00415 1325,1325,1325, -22, 256, 122, 342,-1000,-1000, 342,
00416  342,-1000,1151, 205, 186, 175, 851,-1000,1151,-1000,
00417 -1000,-1000,-1000,-1000,  95,-1000,-1000, 321,-1000,-1000,
00418  302,-1000,-1000, 198,-1000,-1000,-1000,  37,-1000,  -3,
00419 1315, 496,-1000, 197,-1000,  47,-1000,-1000, 341, 498,
00420 -1000, 496,-1000,-1000, 193,-1000, 242,  28,-1000,-1000,
00421 -1000, 163,1140, 851,1054,-1000, 851, 273,  96, 159,
00422  851, 496, 825,-1000,1043,1140,1140,1140,1140,1140,
00423 1140,1140,1140,1140,1140,-1000,-1000,-1000,-1000,-1000,
00424 -1000,-1000, 715, 157, -41, 102, 691, 289, 177,-1000,
00425 -1000,-1000,1198, 161, 851,-1000,-1000,  45, -22, -22,
00426  -22, 142,-1000, 342, 122, 151, 122,-1000,1151,1151,
00427 1151, 654, 121, 114,  94,-1000,-1000,-1000, 173,-1000,
00428  138,-1000, 284,-1000,  57,-1000,  90,1006,-1000,1315,
00429 -1000,-1000,  39,1102,-1000,-1000,-1000,1140,-1000,-1000,
00430  496,-1000, 341,  93,  84,-1000,  61,-1000,  83,-1000,
00431 -1000, 496,1140,-1000, 283,1140, 612,-1000, 272, 277,
00432 1140,1140,-1000, 513,-1000, -18, -41, -41, -41, 338,
00433  -35, -35, 541, 102,  52,-1000,1140,-1000, 513, 513,
00434   82,-1000,  95,-1000,-1000, 342,-1000,-1000,-1000,-1000,
00435 -1000,-1000,-1000,1151,1151,1151,-1000, 503, 502,  37,
00436 -1000,-1000,1006,-1000,-1000,  21,-1000,-1000,1315,-1000,
00437 -1000,-1000,-1000, 341,-1000, 498, 498, 496,-1000, 851,
00438 1140,  75, 851, 432,-1000,-1000,1140, 271, 851,  71,
00439  269,  76,-1000,1140, 270, 236, 269, 252, 251, 250,
00440 -1000,-1000,-1000,-1000,1006,-1000,-1000,  17, 247,-1000,
00441 -1000,-1000,  -2,1140,-1000,-1000,-1000, 513,-1000,-1000,
00442  851,-1000,-1000,-1000,-1000,-1000, 851,-1000,-1000,-1000,
00443  851,  66, 513,-1000
00444 };
00445 short   yypgo[] =
00446 {
00447    0, 654, 653,   1, 652, 167,   9,  30, 648, 647,
00448  646,   4,   0, 645, 644, 643,  39, 642,   3,  26,
00449  641, 634, 621,  18,  14, 620,  35, 618, 617,  29,
00450   41,  33,  20, 362,  22, 616,  34, 352,  66, 270,
00451   16,  57, 378,   2,  24,  25,  11, 207, 114, 610,
00452  609,  38,  28,  43, 608, 606, 604, 603, 602,1205,
00453  134, 601, 600,   7, 599, 598, 597, 596, 594, 592,
00454  591,  31, 589,  19, 585,  21,  37,   6, 584,   5,
00455   42, 583,  36, 582, 579,  12,  27,  10, 578, 577,
00456    8,  13,  32, 576, 574, 572,  15, 569, 516, 568,
00457  567, 566, 565, 564, 562, 561, 560, 454, 559, 558,
00458  553, 551, 545, 540,  23, 535, 530,  17
00459 };
00460 short   yyr1[] =
00461 {
00462    0,   1,   1,  55,  55,  55,  55,  55,  55,  55,
00463    2,  56,  56,  56,  56,  56,  56,  56,  60,  52,
00464   33,  53,  53,  61,  61,  62,  62,  63,  63,  26,
00465   26,  26,  27,  27,  34,  34,  17,  57,  57,  57,
00466   57,  57,  57,  57,  57,  57,  57,  57,  57,  10,
00467   10,  10,  74,   7,   8,   9,   9,   9,   9,   9,
00468    9,   9,   9,   9,   9,   9,   9,  16,  16,  16,
00469   50,  50,  50,  50,  51,  51,  64,  64,  65,  65,
00470   66,  66,  80,  54,  54,  67,  67,  81,  82,  76,
00471   83,  84,  77,  77,  85,  85,  45,  45,  45,  70,
00472   70,  86,  86,  72,  72,  87,  36,  18,  18,  19,
00473   19,  75,  75,  89,  88,  88,  90,  90,  43,  43,
00474   91,  91,   3,  68,  68,  92,  92,  95,  93,  94,
00475   94,  96,  96,  11,  69,  69,  97,  20,  20,  71,
00476   21,  21,  22,  22,  38,  38,  38,  39,  39,  39,
00477   39,  39,  39,  39,  39,  39,  39,  39,  39,  39,
00478   39,  12,  12,  13,  13,  13,  13,  13,  13,  37,
00479   37,  37,  37,  32,  40,  40,  44,  44,  48,  48,
00480   48,  48,  48,  48,  48,  47,  49,  49,  49,  41,
00481   41,  42,  42,  42,  42,  42,  42,  42,  42,  58,
00482   58,  58,  58,  58,  58, 100,  58,  58,  58,  99,
00483   23,  24, 101,  24,  98,  98,  98,  98,  98,  98,
00484   98,  98,  98,  98,  98,   4, 102, 103, 103, 103,
00485  103,  73,  73,  35,  25,  25,  46,  46,  14,  14,
00486   28,  28,  59,  78,  79, 104, 105, 105, 105, 105,
00487  105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
00488  105, 106, 113, 113, 113, 108, 115, 115, 115, 110,
00489  110, 107, 107, 116, 116, 117, 117, 117, 117, 117,
00490  117,  15, 109, 111, 112, 112,  29,  29,   6,   6,
00491   30,  30,  30,  31,  31,  31,  31,  31,  31,   5,
00492    5,   5,   5,   5, 114
00493 };
00494 short   yyr2[] =
00495 {
00496    0,   0,   3,   2,   2,   2,   3,   3,   2,   1,
00497    1,   3,   4,   3,   4,   4,   5,   3,   0,   1,
00498    1,   0,   1,   2,   3,   1,   3,   1,   3,   0,
00499    2,   3,   1,   3,   1,   1,   1,   1,   1,   1,
00500    1,   1,   1,   1,   1,   1,   2,   1,   5,   7,
00501    5,   5,   0,   2,   1,   1,   1,   1,   1,   1,
00502    1,   1,   1,   1,   1,   1,   1,   0,   4,   6,
00503    3,   4,   5,   3,   1,   3,   3,   3,   3,   3,
00504    3,   3,   3,   1,   3,   3,   3,   0,   6,   0,
00505    0,   0,   2,   3,   1,   3,   1,   2,   1,   1,
00506    3,   1,   1,   1,   3,   3,   2,   1,   5,   1,
00507    3,   0,   3,   0,   2,   3,   1,   3,   1,   1,
00508    1,   3,   1,   3,   3,   4,   1,   0,   2,   1,
00509    3,   1,   3,   1,   1,   2,   4,   1,   3,   0,
00510    0,   1,   1,   3,   1,   3,   1,   1,   1,   3,
00511    3,   3,   3,   2,   3,   3,   3,   3,   3,   2,
00512    3,   1,   1,   1,   1,   1,   1,   1,   1,   1,
00513    2,   4,   5,   5,   0,   1,   1,   1,   1,   1,
00514    1,   1,   1,   1,   1,   5,   1,   1,   1,   1,
00515    3,   1,   1,   3,   3,   3,   3,   2,   3,   1,
00516    5,   4,   1,   2,   2,   0,   7,   2,   2,   5,
00517    3,   1,   0,   5,   4,   5,   2,   1,   1,  10,
00518    1,   3,   4,   3,   3,   1,   1,   3,   3,   7,
00519    7,   0,   1,   3,   1,   3,   1,   2,   1,   1,
00520    1,   3,   0,   0,   0,   1,   2,   2,   2,   2,
00521    2,   2,   2,   3,   4,   4,   2,   3,   4,   1,
00522    3,   3,   1,   1,   1,   3,   1,   1,   1,   1,
00523    1,   3,   3,   1,   3,   1,   1,   1,   2,   2,
00524    2,   1,   3,   3,   4,   4,   1,   3,   1,   5,
00525    1,   1,   1,   3,   3,   3,   3,   3,   3,   1,
00526    3,   5,   5,   5,   0
00527 };
00528 short   yychk[] =
00529 {
00530 -1000,  -1, -55,  -2,   2,   6,   4, -56, -57, -58,
00531   21,  40,   7,  63,  26,  72,  47,  -7,  43, -10,
00532  -50, -64, -65, -66, -67, -68, -69,  69,  46,  60,
00533  -98,  36, 100, -99,  39,  38,  42,  -8,  30,  45,
00534   56,  44,  33,  53,  58,-102,  23,  32,-103,-104,
00535   51, -35,  67, -14,  52,  -9,  22,  48,  49,  50,
00536 -105,  27,  61,  71,  55,  66,  31,  37,  34,  57,
00537   28,  75,  35,  24,  70, 103,-106,-108,-109,-111,
00538 -112,-113,-115,  65,  76,  62,  25,  68,  41,  54,
00539   59,  29, -17,   8, -59, -60, -60, -60, -60,  47,
00540  -73,  81, -52, -33,  17,  81, 102, -73,  81,  81,
00541   81,  81, -73,  81, -97,  86, -70, -86, -33, -51,
00542   88,  86, -71, -59, -98,  73, -59, -59, -59, -16,
00543   85, -71, -71, -71, -71, -81, -71, -37, -33, -59,
00544  -59, -59,  77, -59, -59, -59, -59, -59, -59, -59,
00545 -107, -42,  85,  87,  77, -37, -48, -41, -12,  15,
00546   16,   8,   9,  10,  11, -49,  83,  84,  14,  13,
00547   12,-107,  77,-107,-110, -42,  85,-107,  81, -59,
00548  -59, -59, -59, -59, -53, -52, -53, -52, -52, -60,
00549  -33, -26,  77, -33, -76, -51, -36, -33, -33, -33,
00550  -80,  77, -82, -76, -92, -93, -95, -33,  81,  17,
00551   77,  -3, -73,   9,  77, -78, -36, -51, -33, -33,
00552  -80, -82, -92,  79, -32,  77,  -4,   9,  77,  78,
00553  -25, -46, -38,  85, -39,  77, -47, -37, -48, -12,
00554   93, -40, -38, -40,  77,  -3, -33,  77, -33, -41,
00555 -116, -42,  77,-117,  85,  87, -15,  18, -12,  85,
00556   86,  87,  88, -41, -41, -29,  81,  -6, -37,  77,
00557   81, -30,  81, -39,  -5, -31, -38, -47,  77, -30,
00558 -114,-114,-114,-114, -41,  85, -61,  77, -26, -26,
00559  -52, -71,  78, -27, -34, -33,  85, -75,  77, -77,
00560  -84, -73, -75, -54, -37, -19, -18, -37,  77,  77,
00561   -7,  86, -86,  86, -72, -87, -33, -73, -24, -23,
00562  101, -33,-100, -38,  77, -36, -38, -21, -40, -22,
00563  -38,  74, -38,  78,  81, -12,  85,  86,  87, -13,
00564   92,  91,  90,  89,  88,  94,  96,  95,  98,  97,
00565   99,  -3, -38, -39, -38, -38, -38, -73, -91,  -3,
00566   78,  78,  81, -41, -38,  85,  87, -41, -41, -41,
00567  -41, -41,  78,  81, -29, -29, -29, -30,  81,  81,
00568   81, -38, -39,  -5, -31,-114,-114,  78, -62, -63,
00569   17, -26, -74,  78,  81, -16, -88, -89, 102,  81,
00570  -85, -45, -44, -12, -47, -33, -48,  77, -36,  78,
00571   81,  86,  81, -19, -94, -96, -11,  17, -20, -33,
00572   78,  81,  79, -24,-101,  79, -38, -79,  85,  78,
00573   80,  81, -33,  78, -46, -38, -38, -38, -38, -38,
00574  -38, -38, -38, -38, -38,  78,  81,  78,  77,  81,
00575   78,-117, -41,  78,  -6,  81, -39,  -5, -39,  -5,
00576  -39,  -5,  78,  81,  81,  81,  78,  81,  79, -75,
00577  -34,  78,  81, -90, -43, -38,  85, -85,  85, -44,
00578  -37, -83, -18,  81,  78,  81,  84,  81, -87, -38,
00579   77, -28, -38,  78,  78, -32,  77, -40, -38,  -3,
00580  -39, -91,  -3, -73, -23, -33, -39, -23, -23, -23,
00581  -63,  17, -16, -90,  80, -45, -44, -77, -23, -96,
00582  -11, -33, -38,  81,  73, -79,  78,  81,  78,  78,
00583  -38,  78,  78,  78,  78, -43, -38,  86,  78,  78,
00584  -38,  -3,  81,  -3
00585 };
00586 short   yydef[] =
00587 {
00588    1,  -2,   0,   0,   9,  10,   2,   3,   4,   5,
00589    0, 242,   8,  18,  18,  18,  18, 231,   0,  37,
00590   -2,  39,  40,  41,  -2,  43,  44,  45,  47, 139,
00591  199, 242, 202,   0, 242, 242, 242,  67, 139, 139,
00592  139, 139,  87, 139, 134,   0, 242, 242, 217, 218,
00593  242, 220, 242, 242, 242,  54, 226, 242, 242, 242,
00594  245, 242, 238, 239,  55,  56,  57,  58,  59,  60,
00595   61,  62,  63,  64,  65,  66,   0,   0,   0,   0,
00596  259, 242, 242, 242, 242, 242, 262, 263, 264, 266,
00597  267, 268,   6,  36,   7,  21,  21,   0,   0,  18,
00598    0, 232,  29,  19,  20,   0,  89,   0, 232,   0,
00599    0,   0,  89, 127, 135,   0,  46,  99, 101, 102,
00600   74,   0,   0, 231, 203, 204,   0, 207, 208,  53,
00601  243,   0,   0,   0,   0,  89, 127,   0, 169,   0,
00602  216,   0,   0, 174, 174,   0,   0,   0,   0,   0,
00603  246,  -2, 248, 249,   0, 191, 192,   0,   0, 178,
00604  179, 180, 181, 182, 183, 184, 161, 162, 186, 187,
00605  188, 250,   0, 251, 252,  -2, 270, 256,   0, 304,
00606  304, 304, 304,   0,  11,  22,  13,  29,  29,   0,
00607  139,  17,   0, 111,  91, 231,  73, 111,  77,  79,
00608   81,   0,  86,   0, 124, 126,   0,   0,   0,   0,
00609    0, 231,   0, 122, 205,   0,  70,   0,  76,  78,
00610   80,  85, 123,   0, 170,  -2,   0, 225,   0, 221,
00611    0, 234, 236,   0, 144,   0, 146, 147, 148,   0,
00612    0, 223, 175, 224,   0, 227,  -2,   0, 233, 275,
00613    0, 189,   0, 273, 276, 277,   0, 281,   0,   0,
00614    0,   0,   0, 197, 275, 253,   0, 286, 288,   0,
00615    0, 257,   0,  -2, 291, 292,   0,  -2,   0, 260,
00616  261, 265, 282, 283, 304, 304,  12,   0,  14,  15,
00617   29,  52,  30,   0,  32,  34,  35,  67, 113,   0,
00618    0,   0, 106,   0,  83,   0, 109, 107,   0,   0,
00619  128,   0, 100,  75,   0, 103,   0,   0, 201, 211,
00620  212,   0,   0, 244,   0,  71, 214,   0,   0, 141,
00621   -2,   0,   0, 222,   0,   0,   0,   0,   0,   0,
00622    0,   0,   0,   0,   0, 163, 164, 165, 166, 167,
00623  168, 237,   0, 144, 153, 159,   0,   0,   0, 120,
00624   -2, 272,   0,   0, 278, 279, 280, 193, 194, 195,
00625  196, 198, 271,   0, 255,   0, 254, 258,   0,   0,
00626    0,   0, 144,   0,   0, 284, 285,  23,   0,  25,
00627   27,  16, 111,  31,   0,  50,   0,   0,  51,   0,
00628   92,  94,  96,   0,  98, 176, 177,   0,  72,  82,
00629    0,  90,   0,   0,   0, 129, 131, 133, 136, 137,
00630   48,   0,   0, 200,   0,   0,   0,  68,   0, 171,
00631  174,   0, 215,   0, 235, 149, 150, 151, 152,  -2,
00632  155, 156, 157, 158, 160, 145,   0, 209,   0,   0,
00633  231, 274, 275, 190, 287,   0,  -2, 294,  -2, 296,
00634   -2, 298,  -2,   0,   0,   0,  24,   0,   0,  67,
00635   33, 112,   0, 114, 116, 119, 118,  93,   0,  97,
00636   84,  91, 110,   0, 125,   0,   0,   0, 104, 105,
00637    0, 210, 240,   0, 244, 172, 174,   0, 143,   0,
00638  144,   0, 121,   0,   0, 169,  -2,   0,   0,   0,
00639   26,  28,  49, 115,   0,  95,  96,   0,   0, 130,
00640  132, 138,   0,   0, 206,  69, 173,   0, 185, 229,
00641  230, 289, 301, 302, 303, 117, 119,  88, 108, 213,
00642  241,   0,   0, 219
00643 };
00644 short   yytok1[] =
00645 {
00646    1,   4,   5,   6,   7,   8,   9,  10,  11,  12,
00647   13,  14,  15,  16,  17,  18,  19,  20,  21,  22,
00648   23,  24,  25,  26,  27,  28,  29,  30,  31,  32,
00649   33,  34,  35,  36,  37,  38,  39,  40,  41,  42,
00650   43,  44,  45,  46,  47,  48,  49,  50,  51,  52,
00651   53,  54,  55,  56,  57,  58,  59,  60,  61,  62,
00652   63,  64,  65,  66,  67,  68,  69,  70,  71,  72,
00653   73,  74,  75,  76,  77,  78,  79,  80,  81,  82,
00654   83,  84,  85,  86,  87,  88,  89,  90,  91,  92,
00655   93,  94,  95,  96,  97,  98,  99, 100, 101, 102,
00656  103
00657 };
00658 short   yytok2[] =
00659 {
00660    2,   3
00661 };
00662 long    yytok3[] =
00663 {
00664    0
00665 };
00666 #define YYFLAG          -1000
00667 #define YYERROR         goto yyerrlab
00668 #define YYACCEPT        return(0)
00669 #define YYABORT         return(1)
00670 #define yyclearin       yychar = -1
00671 #define yyerrok         yyerrflag = 0
00672 
00673 #ifdef  yydebug
00674 #include        "y.debug"
00675 #else
00676 #define yydebug         0
00677 char*   yytoknames[1];          /* for debugging */
00678 char*   yystates[1];            /* for debugging */
00679 #endif
00680 
00681 /*      parser for yacc output  */
00682 
00683 int     yynerrs = 0;            /* number of errors */
00684 int     yyerrflag = 0;          /* error recovery flag */
00685 
00686 extern  int     fprint(int, char*, ...);
00687 extern  int     sprint(char*, char*, ...);
00688 
00689 char*
00690 yytokname(int yyc)
00691 {
00692         static char x[10];
00693 
00694         if(yyc > 0 && yyc <= sizeof(yytoknames)/sizeof(yytoknames[0]))
00695         if(yytoknames[yyc-1])
00696                 return yytoknames[yyc-1];
00697         sprintf(x, "<%d>", yyc);
00698         return x;
00699 }
00700 
00701 char*
00702 yystatname(int yys)
00703 {
00704         static char x[10];
00705 
00706         if(yys >= 0 && yys < sizeof(yystates)/sizeof(yystates[0]))
00707         if(yystates[yys])
00708                 return yystates[yys];
00709         sprintf(x, "<%d>\n", yys);
00710         return x;
00711 }
00712 
00713 long
00714 yylex1(void)
00715 {
00716         long yychar;
00717         long *t3p;
00718         int c;
00719 
00720         yychar = yylex();
00721         if(yychar <= 0) {
00722                 c = yytok1[0];
00723                 goto out;
00724         }
00725         if(yychar < sizeof(yytok1)/sizeof(yytok1[0])) {
00726                 c = yytok1[yychar];
00727                 goto out;
00728         }
00729         if(yychar >= YYPRIVATE)
00730                 if(yychar < YYPRIVATE+sizeof(yytok2)/sizeof(yytok2[0])) {
00731                         c = yytok2[yychar-YYPRIVATE];
00732                         goto out;
00733                 }
00734         for(t3p=yytok3;; t3p+=2) {
00735                 c = t3p[0];
00736                 if(c == yychar) {
00737                         c = t3p[1];
00738                         goto out;
00739                 }
00740                 if(c == 0)
00741                         break;
00742         }
00743         c = 0;
00744 
00745 out:
00746         if(c == 0)
00747                 c = yytok2[1];  /* unknown char */
00748         if(yydebug >= 3)
00749                 printf("lex %.4lX %s\n", yychar, yytokname(c));
00750         return c;
00751 }
00752 
00753 int
00754 yyparse(void)
00755 {
00756         struct
00757         {
00758                 YYSTYPE yyv;
00759                 int     yys;
00760         } yys[YYMAXDEPTH], *yyp, *yypt;
00761         short *yyxi;
00762         int yyj, yym, yystate, yyn, yyg;
00763         YYSTYPE save1, save2;
00764         int save3, save4;
00765         long yychar;
00766 
00767         save1 = yylval;
00768         save2 = yyval;
00769         save3 = yynerrs;
00770         save4 = yyerrflag;
00771 
00772         yystate = 0;
00773         yychar = -1;
00774         yynerrs = 0;
00775         yyerrflag = 0;
00776         yyp = &yys[-1];
00777         goto yystack;
00778 
00779 ret0:
00780         yyn = 0;
00781         goto ret;
00782 
00783 ret1:
00784         yyn = 1;
00785         goto ret;
00786 
00787 ret:
00788         yylval = save1;
00789         yyval = save2;
00790         yynerrs = save3;
00791         yyerrflag = save4;
00792         return yyn;
00793 
00794 yystack:
00795         /* put a state and value onto the stack */
00796         if(yydebug >= 4)
00797                 printf("char %s in %s", yytokname(yychar), yystatname(yystate));
00798 
00799         yyp++;
00800         if(yyp >= &yys[YYMAXDEPTH]) { 
00801                 yyerror("yacc stack overflow"); 
00802                 goto ret1; 
00803         }
00804         yyp->yys = yystate;
00805         yyp->yyv = yyval;
00806 
00807 yynewstate:
00808         yyn = yypact[yystate];
00809         if(yyn <= YYFLAG)
00810                 goto yydefault; /* simple state */
00811         if(yychar < 0)
00812                 yychar = yylex1();
00813         yyn += yychar;
00814         if(yyn < 0 || yyn >= YYLAST)
00815                 goto yydefault;
00816         yyn = yyact[yyn];
00817         if(yychk[yyn] == yychar) { /* valid shift */
00818                 yychar = -1;
00819                 yyval = yylval;
00820                 yystate = yyn;
00821                 if(yyerrflag > 0)
00822                         yyerrflag--;
00823                 goto yystack;
00824         }
00825 
00826 yydefault:
00827         /* default state action */
00828         yyn = yydef[yystate];
00829         if(yyn == -2) {
00830                 if(yychar < 0)
00831                         yychar = yylex1();
00832 
00833                 /* look through exception table */
00834                 for(yyxi=yyexca;; yyxi+=2)
00835                         if(yyxi[0] == -1 && yyxi[1] == yystate)
00836                                 break;
00837                 for(yyxi += 2;; yyxi += 2) {
00838                         yyn = yyxi[0];
00839                         if(yyn < 0 || yyn == yychar)
00840                                 break;
00841                 }
00842                 yyn = yyxi[1];
00843                 if(yyn < 0)
00844                         goto ret0;
00845         }
00846         if(yyn == 0) {
00847                 /* error ... attempt to resume parsing */
00848                 switch(yyerrflag) {
00849                 case 0:   /* brand new error */
00850                         yyerror("syntax error");
00851                         if(yydebug >= 1) {
00852                                 printf("%s", yystatname(yystate));
00853                                 printf("saw %s\n", yytokname(yychar));
00854                         }
00855                         yynerrs++;
00856 
00857                 case 1:
00858                 case 2: /* incompletely recovered error ... try again */
00859                         yyerrflag = 3;
00860 
00861                         /* find a state where "error" is a legal shift action */
00862                         while(yyp >= yys) {
00863                                 yyn = yypact[yyp->yys] + YYERRCODE;
00864                                 if(yyn >= 0 && yyn < YYLAST) {
00865                                         yystate = yyact[yyn];  /* simulate a shift of "error" */
00866                                         if(yychk[yystate] == YYERRCODE)
00867                                                 goto yystack;
00868                                 }
00869 
00870                                 /* the current yyp has no shift onn "error", pop stack */
00871                                 if(yydebug >= 2)
00872                                         printf("error recovery pops state %d, uncovers %d\n",
00873                                                 yyp->yys, (yyp-1)->yys );
00874                                 yyp--;
00875                         }
00876                         /* there is no state on the stack with an error shift ... abort */
00877                         goto ret1;
00878 
00879                 case 3:  /* no shift yet; clobber input char */
00880                         if(yydebug >= YYEOFCODE)
00881                                 printf("error recovery discards %s\n", yytokname(yychar));
00882                         if(yychar == YYEOFCODE)
00883                                 goto ret1;
00884                         yychar = -1;
00885                         goto yynewstate;   /* try again in the same state */
00886                 }
00887         }
00888 
00889         /* reduction by production yyn */
00890         if(yydebug >= 2)
00891                 printf("reduce %d in:\n\t%s", yyn, yystatname(yystate));
00892 
00893         yypt = yyp;
00894         yyp -= yyr2[yyn];
00895         yyval = (yyp+1)->yyv;
00896         yym = yyn;
00897 
00898         /* consult goto table to find next state */
00899         yyn = yyr1[yyn];
00900         yyg = yypgo[yyn];
00901         yyj = yyg + yyp->yys + 1;
00902 
00903         if(yyj >= YYLAST || yychk[yystate=yyact[yyj]] != -yyn)
00904                 yystate = yyact[yyg];
00905         switch(yym) {
00906                 
00907 case 3:
00908 /* #line        220     "/n/bopp/v5/dmg/f2c/gram.in" */
00909 {
00910 /* stat:   is the nonterminal for Fortran statements */
00911 
00912                   lastwasbranch = NO; } break;
00913 case 5:
00914 /* #line        226     "/n/bopp/v5/dmg/f2c/gram.in" */
00915 { /* forbid further statement function definitions... */
00916                   if (parstate == INDATA && laststfcn != thisstno)
00917                         parstate = INEXEC;
00918                   thisstno++;
00919                   if(yypt[-1].yyv.labval && (yypt[-1].yyv.labval->labelno==dorange))
00920                         enddo(yypt[-1].yyv.labval->labelno);
00921                   if(lastwasbranch && thislabel==NULL)
00922                         warn("statement cannot be reached");
00923                   lastwasbranch = thiswasbranch;
00924                   thiswasbranch = NO;
00925                   if(yypt[-1].yyv.labval)
00926                         {
00927                         if(yypt[-1].yyv.labval->labtype == LABFORMAT)
00928                                 err("label already that of a format");
00929                         else
00930                                 yypt[-1].yyv.labval->labtype = LABEXEC;
00931                         }
00932                   freetemps();
00933                 } break;
00934 case 6:
00935 /* #line        246     "/n/bopp/v5/dmg/f2c/gram.in" */
00936 { if (can_include)
00937                         doinclude( yypt[-0].yyv.charpval );
00938                   else {
00939                         fprintf(diagfile, "Cannot open file %s\n", yypt[-0].yyv.charpval);
00940                         done(1);
00941                         }
00942                 } break;
00943 case 7:
00944 /* #line        254     "/n/bopp/v5/dmg/f2c/gram.in" */
00945 { if (yypt[-2].yyv.labval)
00946                         lastwasbranch = NO;
00947                   endcheck();
00948                   endproc(); /* lastwasbranch = NO; -- set in endproc() */
00949                 } break;
00950 case 8:
00951 /* #line        260     "/n/bopp/v5/dmg/f2c/gram.in" */
00952 { unclassifiable();
00953 
00954 /* flline flushes the current line, ignoring the rest of the text there */
00955 
00956                   flline(); } break;
00957 case 9:
00958 /* #line        266     "/n/bopp/v5/dmg/f2c/gram.in" */
00959 { flline();  needkwd = NO;  inioctl = NO;
00960                   yyerrok; yyclearin; } break;
00961 case 10:
00962 /* #line        271     "/n/bopp/v5/dmg/f2c/gram.in" */
00963 {
00964                 if(yystno != 0)
00965                         {
00966                         yyval.labval = thislabel =  mklabel(yystno);
00967                         if( ! headerdone ) {
00968                                 if (procclass == CLUNKNOWN)
00969                                         procclass = CLMAIN;
00970                                 puthead(CNULL, procclass);
00971                                 }
00972                         if(thislabel->labdefined)
00973                                 execerr("label %s already defined",
00974                                         convic(thislabel->stateno) );
00975                         else    {
00976                                 if(thislabel->blklevel!=0 && (thislabel->blklevel)<(unsigned int)(blklevel)
00977                                     && thislabel->labtype!=LABFORMAT)
00978                                         warn1("there is a branch to label %s from outside block",
00979                                               convic( (ftnint) (thislabel->stateno) ) );
00980                                 thislabel->blklevel = blklevel;
00981                                 thislabel->labdefined = YES;
00982                                 if(thislabel->labtype != LABFORMAT)
00983                                         p1_label((long)(thislabel - labeltab));
00984                                 }
00985                         }
00986                 else    yyval.labval = thislabel = NULL;
00987                 } break;
00988 case 11:
00989 /* #line        299     "/n/bopp/v5/dmg/f2c/gram.in" */
00990 {startproc(yypt[-0].yyv.extval, CLMAIN); } break;
00991 case 12:
00992 /* #line        301     "/n/bopp/v5/dmg/f2c/gram.in" */
00993 {       warn("ignoring arguments to main program");
00994                         /* hashclear(); */
00995                         startproc(yypt[-1].yyv.extval, CLMAIN); } break;
00996 case 13:
00997 /* #line        305     "/n/bopp/v5/dmg/f2c/gram.in" */
00998 { if(yypt[-0].yyv.extval) NO66("named BLOCKDATA");
00999                   startproc(yypt[-0].yyv.extval, CLBLOCK); } break;
01000 case 14:
01001 /* #line        308     "/n/bopp/v5/dmg/f2c/gram.in" */
01002 { entrypt(CLPROC, TYSUBR, (ftnint) 0,  yypt[-1].yyv.extval, yypt[-0].yyv.chval); } break;
01003 case 15:
01004 /* #line        310     "/n/bopp/v5/dmg/f2c/gram.in" */
01005 { entrypt(CLPROC, TYUNKNOWN, (ftnint) 0, yypt[-1].yyv.extval, yypt[-0].yyv.chval); } break;
01006 case 16:
01007 /* #line        312     "/n/bopp/v5/dmg/f2c/gram.in" */
01008 { entrypt(CLPROC, yypt[-4].yyv.ival, varleng, yypt[-1].yyv.extval, yypt[-0].yyv.chval); } break;
01009 case 17:
01010 /* #line        314     "/n/bopp/v5/dmg/f2c/gram.in" */
01011 { if(parstate==OUTSIDE || procclass==CLMAIN
01012                         || procclass==CLBLOCK)
01013                                 execerr("misplaced entry statement", CNULL);
01014                   entrypt(CLENTRY, 0, (ftnint) 0, yypt[-1].yyv.extval, yypt[-0].yyv.chval);
01015                 } break;
01016 case 18:
01017 /* #line        322     "/n/bopp/v5/dmg/f2c/gram.in" */
01018 { newproc(); } break;
01019 case 19:
01020 /* #line        326     "/n/bopp/v5/dmg/f2c/gram.in" */
01021 { yyval.extval = newentry(yypt[-0].yyv.namval, 1); } break;
01022 case 20:
01023 /* #line        330     "/n/bopp/v5/dmg/f2c/gram.in" */
01024 { yyval.namval = mkname(token); } break;
01025 case 21:
01026 /* #line        333     "/n/bopp/v5/dmg/f2c/gram.in" */
01027 { yyval.extval = NULL; } break;
01028 case 29:
01029 /* #line        351     "/n/bopp/v5/dmg/f2c/gram.in" */
01030 { yyval.chval = 0; } break;
01031 case 30:
01032 /* #line        353     "/n/bopp/v5/dmg/f2c/gram.in" */
01033 { NO66(" () argument list");
01034                   yyval.chval = 0; } break;
01035 case 31:
01036 /* #line        356     "/n/bopp/v5/dmg/f2c/gram.in" */
01037 {yyval.chval = yypt[-1].yyv.chval; } break;
01038 case 32:
01039 /* #line        360     "/n/bopp/v5/dmg/f2c/gram.in" */
01040 { yyval.chval = (yypt[-0].yyv.namval ? mkchain((char *)yypt[-0].yyv.namval,CHNULL) : CHNULL ); } break;
01041 case 33:
01042 /* #line        362     "/n/bopp/v5/dmg/f2c/gram.in" */
01043 { if(yypt[-0].yyv.namval) yypt[-2].yyv.chval = yyval.chval = mkchain((char *)yypt[-0].yyv.namval, yypt[-2].yyv.chval); } break;
01044 case 34:
01045 /* #line        366     "/n/bopp/v5/dmg/f2c/gram.in" */
01046 { if(yypt[-0].yyv.namval->vstg!=STGUNKNOWN && yypt[-0].yyv.namval->vstg!=STGARG)
01047                         dclerr("name declared as argument after use", yypt[-0].yyv.namval);
01048                   yypt[-0].yyv.namval->vstg = STGARG;
01049                 } break;
01050 case 35:
01051 /* #line        371     "/n/bopp/v5/dmg/f2c/gram.in" */
01052 { NO66("altenate return argument");
01053 
01054 /* substars   means that '*'ed formal parameters should be replaced.
01055    This is used to specify alternate return labels; in theory, only
01056    parameter slots which have '*' should accept the statement labels.
01057    This compiler chooses to ignore the '*'s in the formal declaration, and
01058    always return the proper value anyway.
01059 
01060    This variable is only referred to in   proc.c   */
01061 
01062                   yyval.namval = 0;  substars = YES; } break;
01063 case 36:
01064 /* #line        387     "/n/bopp/v5/dmg/f2c/gram.in" */
01065 {
01066                 char *s;
01067                 s = copyn(toklen+1, token);
01068                 s[toklen] = '\0';
01069                 yyval.charpval = s;
01070                 } break;
01071 case 45:
01072 /* #line        403     "/n/bopp/v5/dmg/f2c/gram.in" */
01073 { NO66("SAVE statement");
01074                   saveall = YES; } break;
01075 case 46:
01076 /* #line        406     "/n/bopp/v5/dmg/f2c/gram.in" */
01077 { NO66("SAVE statement"); } break;
01078 case 47:
01079 /* #line        408     "/n/bopp/v5/dmg/f2c/gram.in" */
01080 { fmtstmt(thislabel); setfmt(thislabel); } break;
01081 case 48:
01082 /* #line        410     "/n/bopp/v5/dmg/f2c/gram.in" */
01083 { NO66("PARAMETER statement"); } break;
01084 case 49:
01085 /* #line        414     "/n/bopp/v5/dmg/f2c/gram.in" */
01086 { settype(yypt[-4].yyv.namval, yypt[-6].yyv.ival, yypt[-0].yyv.lval);
01087                   if(ndim>0) setbound(yypt[-4].yyv.namval,ndim,dims);
01088                 } break;
01089 case 50:
01090 /* #line        418     "/n/bopp/v5/dmg/f2c/gram.in" */
01091 { settype(yypt[-2].yyv.namval, yypt[-4].yyv.ival, yypt[-0].yyv.lval);
01092                   if(ndim>0) setbound(yypt[-2].yyv.namval,ndim,dims);
01093                 } break;
01094 case 51:
01095 /* #line        422     "/n/bopp/v5/dmg/f2c/gram.in" */
01096 { if (new_dcl == 2) {
01097                         err("attempt to give DATA in type-declaration");
01098                         new_dcl = 1;
01099                         }
01100                 } break;
01101 case 52:
01102 /* #line        429     "/n/bopp/v5/dmg/f2c/gram.in" */
01103 { new_dcl = 2; } break;
01104 case 53:
01105 /* #line        432     "/n/bopp/v5/dmg/f2c/gram.in" */
01106 { varleng = yypt[-0].yyv.lval; } break;
01107 case 54:
01108 /* #line        436     "/n/bopp/v5/dmg/f2c/gram.in" */
01109 { varleng = (yypt[-0].yyv.ival<0 || ONEOF(yypt[-0].yyv.ival,M(TYLOGICAL)|M(TYLONG))
01110                                 ? 0 : typesize[yypt[-0].yyv.ival]);
01111                   vartype = yypt[-0].yyv.ival; } break;
01112 case 55:
01113 /* #line        441     "/n/bopp/v5/dmg/f2c/gram.in" */
01114 { yyval.ival = TYLONG; } break;
01115 case 56:
01116 /* #line        442     "/n/bopp/v5/dmg/f2c/gram.in" */
01117 { yyval.ival = tyreal; } break;
01118 case 57:
01119 /* #line        443     "/n/bopp/v5/dmg/f2c/gram.in" */
01120 { ++complex_seen; yyval.ival = tycomplex; } break;
01121 case 58:
01122 /* #line        444     "/n/bopp/v5/dmg/f2c/gram.in" */
01123 { yyval.ival = TYDREAL; } break;
01124 case 59:
01125 /* #line        445     "/n/bopp/v5/dmg/f2c/gram.in" */
01126 { ++dcomplex_seen; NOEXT("DOUBLE COMPLEX statement"); yyval.ival = TYDCOMPLEX; } break;
01127 case 60:
01128 /* #line        446     "/n/bopp/v5/dmg/f2c/gram.in" */
01129 { yyval.ival = TYLOGICAL; } break;
01130 case 61:
01131 /* #line        447     "/n/bopp/v5/dmg/f2c/gram.in" */
01132 { NO66("CHARACTER statement"); yyval.ival = TYCHAR; } break;
01133 case 62:
01134 /* #line        448     "/n/bopp/v5/dmg/f2c/gram.in" */
01135 { yyval.ival = TYUNKNOWN; } break;
01136 case 63:
01137 /* #line        449     "/n/bopp/v5/dmg/f2c/gram.in" */
01138 { yyval.ival = TYUNKNOWN; } break;
01139 case 64:
01140 /* #line        450     "/n/bopp/v5/dmg/f2c/gram.in" */
01141 { NOEXT("AUTOMATIC statement"); yyval.ival = - STGAUTO; } break;
01142 case 65:
01143 /* #line        451     "/n/bopp/v5/dmg/f2c/gram.in" */
01144 { NOEXT("STATIC statement"); yyval.ival = - STGBSS; } break;
01145 case 66:
01146 /* #line        452     "/n/bopp/v5/dmg/f2c/gram.in" */
01147 { yyval.ival = TYINT1; } break;
01148 case 67:
01149 /* #line        456     "/n/bopp/v5/dmg/f2c/gram.in" */
01150 { yyval.lval = varleng; } break;
01151 case 68:
01152 /* #line        458     "/n/bopp/v5/dmg/f2c/gram.in" */
01153 {
01154                 expptr p;
01155                 p = yypt[-1].yyv.expval;
01156                 NO66("length specification *n");
01157                 if( ! ISICON(p) || p->constblock.Const.ci <= 0 )
01158                         {
01159                         yyval.lval = 0;
01160                         dclerr("length must be a positive integer constant",
01161                                 NPNULL);
01162                         }
01163                 else {
01164                         if (vartype == TYCHAR)
01165                                 yyval.lval = p->constblock.Const.ci;
01166                         else switch((int)p->constblock.Const.ci) {
01167                                 case 1: yyval.lval = 1; break;
01168                                 case 2: yyval.lval = typesize[TYSHORT]; break;
01169                                 case 4: yyval.lval = typesize[TYLONG];  break;
01170                                 case 8: yyval.lval = typesize[TYDREAL]; break;
01171                                 case 16: yyval.lval = typesize[TYDCOMPLEX]; break;
01172                                 default:
01173                                         dclerr("invalid length",NPNULL);
01174                                         yyval.lval = varleng;
01175                                 }
01176                         }
01177                 } break;
01178 case 69:
01179 /* #line        484     "/n/bopp/v5/dmg/f2c/gram.in" */
01180 { NO66("length specification *(*)"); yyval.lval = -1; } break;
01181 case 70:
01182 /* #line        488     "/n/bopp/v5/dmg/f2c/gram.in" */
01183 { incomm( yyval.extval = comblock("") , yypt[-0].yyv.namval ); } break;
01184 case 71:
01185 /* #line        490     "/n/bopp/v5/dmg/f2c/gram.in" */
01186 { yyval.extval = yypt[-1].yyv.extval;  incomm(yypt[-1].yyv.extval, yypt[-0].yyv.namval); } break;
01187 case 72:
01188 /* #line        492     "/n/bopp/v5/dmg/f2c/gram.in" */
01189 { yyval.extval = yypt[-2].yyv.extval;  incomm(yypt[-2].yyv.extval, yypt[-0].yyv.namval); } break;
01190 case 73:
01191 /* #line        494     "/n/bopp/v5/dmg/f2c/gram.in" */
01192 { incomm(yypt[-2].yyv.extval, yypt[-0].yyv.namval); } break;
01193 case 74:
01194 /* #line        498     "/n/bopp/v5/dmg/f2c/gram.in" */
01195 { yyval.extval = comblock(""); } break;
01196 case 75:
01197 /* #line        500     "/n/bopp/v5/dmg/f2c/gram.in" */
01198 { yyval.extval = comblock(token); } break;
01199 case 76:
01200 /* #line        504     "/n/bopp/v5/dmg/f2c/gram.in" */
01201 { setext(yypt[-0].yyv.namval); } break;
01202 case 77:
01203 /* #line        506     "/n/bopp/v5/dmg/f2c/gram.in" */
01204 { setext(yypt[-0].yyv.namval); } break;
01205 case 78:
01206 /* #line        510     "/n/bopp/v5/dmg/f2c/gram.in" */
01207 { NO66("INTRINSIC statement"); setintr(yypt[-0].yyv.namval); } break;
01208 case 79:
01209 /* #line        512     "/n/bopp/v5/dmg/f2c/gram.in" */
01210 { setintr(yypt[-0].yyv.namval); } break;
01211 case 82:
01212 /* #line        520     "/n/bopp/v5/dmg/f2c/gram.in" */
01213 {
01214                 struct Equivblock *p;
01215                 if(nequiv >= maxequiv)
01216                         many("equivalences", 'q', maxequiv);
01217                 p  =  & eqvclass[nequiv++];
01218                 p->eqvinit = NO;
01219                 p->eqvbottom = 0;
01220                 p->eqvtop = 0;
01221                 p->equivs = yypt[-1].yyv.eqvval;
01222                 } break;
01223 case 83:
01224 /* #line        533     "/n/bopp/v5/dmg/f2c/gram.in" */
01225 { yyval.eqvval=ALLOC(Eqvchain);
01226                   yyval.eqvval->eqvitem.eqvlhs = primchk(yypt[-0].yyv.expval);
01227                 } break;
01228 case 84:
01229 /* #line        537     "/n/bopp/v5/dmg/f2c/gram.in" */
01230 { yyval.eqvval=ALLOC(Eqvchain);
01231                   yyval.eqvval->eqvitem.eqvlhs = primchk(yypt[-0].yyv.expval);
01232                   yyval.eqvval->eqvnextp = yypt[-2].yyv.eqvval;
01233                 } break;
01234 case 87:
01235 /* #line        548     "/n/bopp/v5/dmg/f2c/gram.in" */
01236 { if(parstate == OUTSIDE)
01237                         {
01238                         newproc();
01239                         startproc(ESNULL, CLMAIN);
01240                         }
01241                   if(parstate < INDATA)
01242                         {
01243                         enddcl();
01244                         parstate = INDATA;
01245                         datagripe = 1;
01246                         }
01247                 } break;
01248 case 88:
01249 /* #line        563     "/n/bopp/v5/dmg/f2c/gram.in" */
01250 { ftnint junk;
01251                   if(nextdata(&junk) != NULL)
01252                         err("too few initializers");
01253                   frdata(yypt[-4].yyv.chval);
01254                   frrpl();
01255                 } break;
01256 case 89:
01257 /* #line        571     "/n/bopp/v5/dmg/f2c/gram.in" */
01258 { frchain(&datastack); curdtp = 0; } break;
01259 case 90:
01260 /* #line        573     "/n/bopp/v5/dmg/f2c/gram.in" */
01261 { pop_datastack(); } break;
01262 case 91:
01263 /* #line        575     "/n/bopp/v5/dmg/f2c/gram.in" */
01264 { toomanyinit = NO; } break;
01265 case 94:
01266 /* #line        580     "/n/bopp/v5/dmg/f2c/gram.in" */
01267 { dataval(ENULL, yypt[-0].yyv.expval); } break;
01268 case 95:
01269 /* #line        582     "/n/bopp/v5/dmg/f2c/gram.in" */
01270 { dataval(yypt[-2].yyv.expval, yypt[-0].yyv.expval); } break;
01271 case 97:
01272 /* #line        587     "/n/bopp/v5/dmg/f2c/gram.in" */
01273 { if( yypt[-1].yyv.ival==OPMINUS && ISCONST(yypt[-0].yyv.expval) )
01274                         consnegop((Constp)yypt[-0].yyv.expval);
01275                   yyval.expval = yypt[-0].yyv.expval;
01276                 } break;
01277 case 101:
01278 /* #line        599     "/n/bopp/v5/dmg/f2c/gram.in" */
01279 { int k;
01280                   yypt[-0].yyv.namval->vsave = YES;
01281                   k = yypt[-0].yyv.namval->vstg;
01282                 if( ! ONEOF(k, M(STGUNKNOWN)|M(STGBSS)|M(STGINIT)) )
01283                         dclerr("can only save static variables", yypt[-0].yyv.namval);
01284                 } break;
01285 case 105:
01286 /* #line        613     "/n/bopp/v5/dmg/f2c/gram.in" */
01287 { if(yypt[-2].yyv.namval->vclass == CLUNKNOWN)
01288                         make_param((struct Paramblock *)yypt[-2].yyv.namval, yypt[-0].yyv.expval);
01289                   else dclerr("cannot make into parameter", yypt[-2].yyv.namval);
01290                 } break;
01291 case 106:
01292 /* #line        620     "/n/bopp/v5/dmg/f2c/gram.in" */
01293 { if(ndim>0) setbound(yypt[-1].yyv.namval, ndim, dims); } break;
01294 case 107:
01295 /* #line        624     "/n/bopp/v5/dmg/f2c/gram.in" */
01296 { Namep np;
01297                   struct Primblock *pp = (struct Primblock *)yypt[-0].yyv.expval;
01298                   int tt = yypt[-0].yyv.expval->tag;
01299                   if (tt != TPRIM) {
01300                         if (tt == TCONST)
01301                                 err("parameter in data statement");
01302                         else
01303                                 erri("tag %d in data statement",tt);
01304                         yyval.chval = 0;
01305                         err_lineno = lineno;
01306                         break;
01307                         }
01308                   np = pp -> namep;
01309                   vardcl(np);
01310                   if ((pp->fcharp || pp->lcharp)
01311                    && (np->vtype != TYCHAR || np->vdim && !pp->argsp))
01312                         sserr(np);
01313                   if(np->vstg == STGCOMMON)
01314                         extsymtab[np->vardesc.varno].extinit = YES;
01315                   else if(np->vstg==STGEQUIV)
01316                         eqvclass[np->vardesc.varno].eqvinit = YES;
01317                   else if(np->vstg!=STGINIT && np->vstg!=STGBSS) {
01318                         errstr(np->vstg == STGARG
01319                                 ? "Dummy argument \"%.60s\" in data statement."
01320                                 : "Cannot give data to \"%.75s\"",
01321                                 np->fvarname);
01322                         yyval.chval = 0;
01323                         err_lineno = lineno;
01324                         break;
01325                         }
01326                   yyval.chval = mkchain((char *)yypt[-0].yyv.expval, CHNULL);
01327                 } break;
01328 case 108:
01329 /* #line        657     "/n/bopp/v5/dmg/f2c/gram.in" */
01330 { chainp p; struct Impldoblock *q;
01331                 pop_datastack();
01332                 q = ALLOC(Impldoblock);
01333                 q->tag = TIMPLDO;
01334                 (q->varnp = (Namep) (yypt[-1].yyv.chval->datap))->vimpldovar = 1;
01335                 p = yypt[-1].yyv.chval->nextp;
01336                 if(p)  { q->implb = (expptr)(p->datap); p = p->nextp; }
01337                 if(p)  { q->impub = (expptr)(p->datap); p = p->nextp; }
01338                 if(p)  { q->impstep = (expptr)(p->datap); }
01339                 frchain( & (yypt[-1].yyv.chval) );
01340                 yyval.chval = mkchain((char *)q, CHNULL);
01341                 q->datalist = hookup(yypt[-3].yyv.chval, yyval.chval);
01342                 } break;
01343 case 109:
01344 /* #line        673     "/n/bopp/v5/dmg/f2c/gram.in" */
01345 { if (!datastack)
01346                         curdtp = 0;
01347                   datastack = mkchain((char *)curdtp, datastack);
01348                   curdtp = yypt[-0].yyv.chval; curdtelt = 0;
01349                   } break;
01350 case 110:
01351 /* #line        679     "/n/bopp/v5/dmg/f2c/gram.in" */
01352 { yyval.chval = hookup(yypt[-2].yyv.chval, yypt[-0].yyv.chval); } break;
01353 case 111:
01354 /* #line        683     "/n/bopp/v5/dmg/f2c/gram.in" */
01355 { ndim = 0; } break;
01356 case 113:
01357 /* #line        687     "/n/bopp/v5/dmg/f2c/gram.in" */
01358 { ndim = 0; } break;
01359 case 116:
01360 /* #line        692     "/n/bopp/v5/dmg/f2c/gram.in" */
01361 {
01362                   if(ndim == maxdim)
01363                         err("too many dimensions");
01364                   else if(ndim < maxdim)
01365                         { dims[ndim].lb = 0;
01366                           dims[ndim].ub = yypt[-0].yyv.expval;
01367                         }
01368                   ++ndim;
01369                 } break;
01370 case 117:
01371 /* #line        702     "/n/bopp/v5/dmg/f2c/gram.in" */
01372 {
01373                   if(ndim == maxdim)
01374                         err("too many dimensions");
01375                   else if(ndim < maxdim)
01376                         { dims[ndim].lb = yypt[-2].yyv.expval;
01377                           dims[ndim].ub = yypt[-0].yyv.expval;
01378                         }
01379                   ++ndim;
01380                 } break;
01381 case 118:
01382 /* #line        714     "/n/bopp/v5/dmg/f2c/gram.in" */
01383 { yyval.expval = 0; } break;
01384 case 120:
01385 /* #line        719     "/n/bopp/v5/dmg/f2c/gram.in" */
01386 { nstars = 1; labarray[0] = yypt[-0].yyv.labval; } break;
01387 case 121:
01388 /* #line        721     "/n/bopp/v5/dmg/f2c/gram.in" */
01389 { if(nstars < maxlablist)  labarray[nstars++] = yypt[-0].yyv.labval; } break;
01390 case 122:
01391 /* #line        725     "/n/bopp/v5/dmg/f2c/gram.in" */
01392 { yyval.labval = execlab( convci(toklen, token) ); } break;
01393 case 123:
01394 /* #line        729     "/n/bopp/v5/dmg/f2c/gram.in" */
01395 { NO66("IMPLICIT statement"); } break;
01396 case 126:
01397 /* #line        735     "/n/bopp/v5/dmg/f2c/gram.in" */
01398 { if (vartype != TYUNKNOWN)
01399                         dclerr("-- expected letter range",NPNULL);
01400                   setimpl(vartype, varleng, 'a', 'z'); } break;
01401 case 127:
01402 /* #line        740     "/n/bopp/v5/dmg/f2c/gram.in" */
01403 { needkwd = 1; } break;
01404 case 131:
01405 /* #line        749     "/n/bopp/v5/dmg/f2c/gram.in" */
01406 { setimpl(vartype, varleng, yypt[-0].yyv.ival, yypt[-0].yyv.ival); } break;
01407 case 132:
01408 /* #line        751     "/n/bopp/v5/dmg/f2c/gram.in" */
01409 { setimpl(vartype, varleng, yypt[-2].yyv.ival, yypt[-0].yyv.ival); } break;
01410 case 133:
01411 /* #line        755     "/n/bopp/v5/dmg/f2c/gram.in" */
01412 { if(toklen!=1 || token[0]<'a' || token[0]>'z')
01413                         {
01414                         dclerr("implicit item must be single letter", NPNULL);
01415                         yyval.ival = 0;
01416                         }
01417                   else yyval.ival = token[0];
01418                 } break;
01419 case 136:
01420 /* #line        769     "/n/bopp/v5/dmg/f2c/gram.in" */
01421 {
01422                 if(yypt[-2].yyv.namval->vclass == CLUNKNOWN)
01423                         {
01424                         yypt[-2].yyv.namval->vclass = CLNAMELIST;
01425                         yypt[-2].yyv.namval->vtype = TYINT;
01426                         yypt[-2].yyv.namval->vstg = STGBSS;
01427                         yypt[-2].yyv.namval->varxptr.namelist = yypt[-0].yyv.chval;
01428                         yypt[-2].yyv.namval->vardesc.varno = ++lastvarno;
01429                         }
01430                 else dclerr("cannot be a namelist name", yypt[-2].yyv.namval);
01431                 } break;
01432 case 137:
01433 /* #line        783     "/n/bopp/v5/dmg/f2c/gram.in" */
01434 { yyval.chval = mkchain((char *)yypt[-0].yyv.namval, CHNULL); } break;
01435 case 138:
01436 /* #line        785     "/n/bopp/v5/dmg/f2c/gram.in" */
01437 { yyval.chval = hookup(yypt[-2].yyv.chval, mkchain((char *)yypt[-0].yyv.namval, CHNULL)); } break;
01438 case 139:
01439 /* #line        789     "/n/bopp/v5/dmg/f2c/gram.in" */
01440 { switch(parstate)
01441                         {
01442                         case OUTSIDE:   newproc();
01443                                         startproc(ESNULL, CLMAIN);
01444                         case INSIDE:    parstate = INDCL;
01445                         case INDCL:     break;
01446 
01447                         case INDATA:
01448                                 if (datagripe) {
01449                                         errstr(
01450                                 "Statement order error: declaration after DATA",
01451                                                 CNULL);
01452                                         datagripe = 0;
01453                                         }
01454                                 break;
01455 
01456                         default:
01457                                 dclerr("declaration among executables", NPNULL);
01458                         }
01459                 } break;
01460 case 140:
01461 /* #line        811     "/n/bopp/v5/dmg/f2c/gram.in" */
01462 { yyval.chval = 0; } break;
01463 case 141:
01464 /* #line        813     "/n/bopp/v5/dmg/f2c/gram.in" */
01465 { yyval.chval = revchain(yypt[-0].yyv.chval); } break;
01466 case 142:
01467 /* #line        817     "/n/bopp/v5/dmg/f2c/gram.in" */
01468 { yyval.chval = mkchain((char *)yypt[-0].yyv.expval, CHNULL); } break;
01469 case 143:
01470 /* #line        819     "/n/bopp/v5/dmg/f2c/gram.in" */
01471 { yyval.chval = mkchain((char *)yypt[-0].yyv.expval, yypt[-2].yyv.chval); } break;
01472 case 145:
01473 /* #line        824     "/n/bopp/v5/dmg/f2c/gram.in" */
01474 { yyval.expval = yypt[-1].yyv.expval; if (yyval.expval->tag == TPRIM)
01475                                         paren_used(&yyval.expval->primblock); } break;
01476 case 149:
01477 /* #line        832     "/n/bopp/v5/dmg/f2c/gram.in" */
01478 { yyval.expval = mkexpr(yypt[-1].yyv.ival, yypt[-2].yyv.expval, yypt[-0].yyv.expval); } break;
01479 case 150:
01480 /* #line        834     "/n/bopp/v5/dmg/f2c/gram.in" */
01481 { yyval.expval = mkexpr(OPSTAR, yypt[-2].yyv.expval, yypt[-0].yyv.expval); } break;
01482 case 151:
01483 /* #line        836     "/n/bopp/v5/dmg/f2c/gram.in" */
01484 { yyval.expval = mkexpr(OPSLASH, yypt[-2].yyv.expval, yypt[-0].yyv.expval); } break;
01485 case 152:
01486 /* #line        838     "/n/bopp/v5/dmg/f2c/gram.in" */
01487 { yyval.expval = mkexpr(OPPOWER, yypt[-2].yyv.expval, yypt[-0].yyv.expval); } break;
01488 case 153:
01489 /* #line        840     "/n/bopp/v5/dmg/f2c/gram.in" */
01490 { if(yypt[-1].yyv.ival == OPMINUS)
01491                         yyval.expval = mkexpr(OPNEG, yypt[-0].yyv.expval, ENULL);
01492                   else {
01493                         yyval.expval = yypt[-0].yyv.expval;
01494                         if (yyval.expval->tag == TPRIM)
01495                                 paren_used(&yyval.expval->primblock);
01496                         }
01497                 } break;
01498 case 154:
01499 /* #line        849     "/n/bopp/v5/dmg/f2c/gram.in" */
01500 { yyval.expval = mkexpr(yypt[-1].yyv.ival, yypt[-2].yyv.expval, yypt[-0].yyv.expval); } break;
01501 case 155:
01502 /* #line        851     "/n/bopp/v5/dmg/f2c/gram.in" */
01503 { NO66(".EQV. operator");
01504                   yyval.expval = mkexpr(OPEQV, yypt[-2].yyv.expval,yypt[-0].yyv.expval); } break;
01505 case 156:
01506 /* #line        854     "/n/bopp/v5/dmg/f2c/gram.in" */
01507 { NO66(".NEQV. operator");
01508                   yyval.expval = mkexpr(OPNEQV, yypt[-2].yyv.expval, yypt[-0].yyv.expval); } break;
01509 case 157:
01510 /* #line        857     "/n/bopp/v5/dmg/f2c/gram.in" */
01511 { yyval.expval = mkexpr(OPOR, yypt[-2].yyv.expval, yypt[-0].yyv.expval); } break;
01512 case 158:
01513 /* #line        859     "/n/bopp/v5/dmg/f2c/gram.in" */
01514 { yyval.expval = mkexpr(OPAND, yypt[-2].yyv.expval, yypt[-0].yyv.expval); } break;
01515 case 159:
01516 /* #line        861     "/n/bopp/v5/dmg/f2c/gram.in" */
01517 { yyval.expval = mkexpr(OPNOT, yypt[-0].yyv.expval, ENULL); } break;
01518 case 160:
01519 /* #line        863     "/n/bopp/v5/dmg/f2c/gram.in" */
01520 { NO66("concatenation operator //");
01521                   yyval.expval = mkexpr(OPCONCAT, yypt[-2].yyv.expval, yypt[-0].yyv.expval); } break;
01522 case 161:
01523 /* #line        867     "/n/bopp/v5/dmg/f2c/gram.in" */
01524 { yyval.ival = OPPLUS; } break;
01525 case 162:
01526 /* #line        868     "/n/bopp/v5/dmg/f2c/gram.in" */
01527 { yyval.ival = OPMINUS; } break;
01528 case 163:
01529 /* #line        871     "/n/bopp/v5/dmg/f2c/gram.in" */
01530 { yyval.ival = OPEQ; } break;
01531 case 164:
01532 /* #line        872     "/n/bopp/v5/dmg/f2c/gram.in" */
01533 { yyval.ival = OPGT; } break;
01534 case 165:
01535 /* #line        873     "/n/bopp/v5/dmg/f2c/gram.in" */
01536 { yyval.ival = OPLT; } break;
01537 case 166:
01538 /* #line        874     "/n/bopp/v5/dmg/f2c/gram.in" */
01539 { yyval.ival = OPGE; } break;
01540 case 167:
01541 /* #line        875     "/n/bopp/v5/dmg/f2c/gram.in" */
01542 { yyval.ival = OPLE; } break;
01543 case 168:
01544 /* #line        876     "/n/bopp/v5/dmg/f2c/gram.in" */
01545 { yyval.ival = OPNE; } break;
01546 case 169:
01547 /* #line        880     "/n/bopp/v5/dmg/f2c/gram.in" */
01548 { yyval.expval = mkprim(yypt[-0].yyv.namval, LBNULL, CHNULL); } break;
01549 case 170:
01550 /* #line        882     "/n/bopp/v5/dmg/f2c/gram.in" */
01551 { NO66("substring operator :");
01552                   yyval.expval = mkprim(yypt[-1].yyv.namval, LBNULL, yypt[-0].yyv.chval); } break;
01553 case 171:
01554 /* #line        885     "/n/bopp/v5/dmg/f2c/gram.in" */
01555 { yyval.expval = mkprim(yypt[-3].yyv.namval, mklist(yypt[-1].yyv.chval), CHNULL); } break;
01556 case 172:
01557 /* #line        887     "/n/bopp/v5/dmg/f2c/gram.in" */
01558 { NO66("substring operator :");
01559                   yyval.expval = mkprim(yypt[-4].yyv.namval, mklist(yypt[-2].yyv.chval), yypt[-0].yyv.chval); } break;
01560 case 173:
01561 /* #line        892     "/n/bopp/v5/dmg/f2c/gram.in" */
01562 { yyval.chval = mkchain((char *)yypt[-3].yyv.expval, mkchain((char *)yypt[-1].yyv.expval,CHNULL)); } break;
01563 case 174:
01564 /* #line        896     "/n/bopp/v5/dmg/f2c/gram.in" */
01565 { yyval.expval = 0; } break;
01566 case 176:
01567 /* #line        901     "/n/bopp/v5/dmg/f2c/gram.in" */
01568 { if(yypt[-0].yyv.namval->vclass == CLPARAM)
01569                         yyval.expval = (expptr) cpexpr(
01570                                 ( (struct Paramblock *) (yypt[-0].yyv.namval) ) -> paramval);
01571                 } break;
01572 case 178:
01573 /* #line        908     "/n/bopp/v5/dmg/f2c/gram.in" */
01574 { yyval.expval = mklogcon(1); } break;
01575 case 179:
01576 /* #line        909     "/n/bopp/v5/dmg/f2c/gram.in" */
01577 { yyval.expval = mklogcon(0); } break;
01578 case 180:
01579 /* #line        910     "/n/bopp/v5/dmg/f2c/gram.in" */
01580 { yyval.expval = mkstrcon(toklen, token); } break;
01581 case 181:
01582 /* #line        911     "/n/bopp/v5/dmg/f2c/gram.in" */
01583  { yyval.expval = mkintqcon(toklen, token); } break;
01584 case 182:
01585 /* #line        912     "/n/bopp/v5/dmg/f2c/gram.in" */
01586  { yyval.expval = mkrealcon(tyreal, token); } break;
01587 case 183:
01588 /* #line        913     "/n/bopp/v5/dmg/f2c/gram.in" */
01589  { yyval.expval = mkrealcon(TYDREAL, token); } break;
01590 case 185:
01591 /* #line        918     "/n/bopp/v5/dmg/f2c/gram.in" */
01592 { yyval.expval = mkcxcon(yypt[-3].yyv.expval,yypt[-1].yyv.expval); } break;
01593 case 186:
01594 /* #line        922     "/n/bopp/v5/dmg/f2c/gram.in" */
01595 { NOEXT("hex constant");
01596                   yyval.expval = mkbitcon(4, toklen, token); } break;
01597 case 187:
01598 /* #line        925     "/n/bopp/v5/dmg/f2c/gram.in" */
01599 { NOEXT("octal constant");
01600                   yyval.expval = mkbitcon(3, toklen, token); } break;
01601 case 188:
01602 /* #line        928     "/n/bopp/v5/dmg/f2c/gram.in" */
01603 { NOEXT("binary constant");
01604                   yyval.expval = mkbitcon(1, toklen, token); } break;
01605 case 190:
01606 /* #line        934     "/n/bopp/v5/dmg/f2c/gram.in" */
01607 { yyval.expval = yypt[-1].yyv.expval; } break;
01608 case 193:
01609 /* #line        940     "/n/bopp/v5/dmg/f2c/gram.in" */
01610 { yyval.expval = mkexpr(yypt[-1].yyv.ival, yypt[-2].yyv.expval, yypt[-0].yyv.expval); } break;
01611 case 194:
01612 /* #line        942     "/n/bopp/v5/dmg/f2c/gram.in" */
01613 { yyval.expval = mkexpr(OPSTAR, yypt[-2].yyv.expval, yypt[-0].yyv.expval); } break;
01614 case 195:
01615 /* #line        944     "/n/bopp/v5/dmg/f2c/gram.in" */
01616 { yyval.expval = mkexpr(OPSLASH, yypt[-2].yyv.expval, yypt[-0].yyv.expval); } break;
01617 case 196:
01618 /* #line        946     "/n/bopp/v5/dmg/f2c/gram.in" */
01619 { yyval.expval = mkexpr(OPPOWER, yypt[-2].yyv.expval, yypt[-0].yyv.expval); } break;
01620 case 197:
01621 /* #line        948     "/n/bopp/v5/dmg/f2c/gram.in" */
01622 { if(yypt[-1].yyv.ival == OPMINUS)
01623                         yyval.expval = mkexpr(OPNEG, yypt[-0].yyv.expval, ENULL);
01624                   else yyval.expval = yypt[-0].yyv.expval;
01625                 } break;
01626 case 198:
01627 /* #line        953     "/n/bopp/v5/dmg/f2c/gram.in" */
01628 { NO66("concatenation operator //");
01629                   yyval.expval = mkexpr(OPCONCAT, yypt[-2].yyv.expval, yypt[-0].yyv.expval); } break;
01630 case 200:
01631 /* #line        958     "/n/bopp/v5/dmg/f2c/gram.in" */
01632 {
01633                 if(yypt[-2].yyv.labval->labdefined)
01634                         execerr("no backward DO loops", CNULL);
01635                 yypt[-2].yyv.labval->blklevel = blklevel+1;
01636                 exdo(yypt[-2].yyv.labval->labelno, NPNULL, yypt[-0].yyv.chval);
01637                 } break;
01638 case 201:
01639 /* #line        965     "/n/bopp/v5/dmg/f2c/gram.in" */
01640 {
01641                 exdo((int)(ctls - ctlstack - 2), NPNULL, yypt[-0].yyv.chval);
01642                 NOEXT("DO without label");
01643                 } break;
01644 case 202:
01645 /* #line        970     "/n/bopp/v5/dmg/f2c/gram.in" */
01646 { exenddo(NPNULL); } break;
01647 case 203:
01648 /* #line        972     "/n/bopp/v5/dmg/f2c/gram.in" */
01649 { exendif();  thiswasbranch = NO; } break;
01650 case 205:
01651 /* #line        974     "/n/bopp/v5/dmg/f2c/gram.in" */
01652 {westart(1);} break;
01653 case 206:
01654 /* #line        975     "/n/bopp/v5/dmg/f2c/gram.in" */
01655 { exelif(yypt[-2].yyv.expval); lastwasbranch = NO; } break;
01656 case 207:
01657 /* #line        977     "/n/bopp/v5/dmg/f2c/gram.in" */
01658 { exelse(); lastwasbranch = NO; } break;
01659 case 208:
01660 /* #line        979     "/n/bopp/v5/dmg/f2c/gram.in" */
01661 { exendif(); lastwasbranch = NO; } break;
01662 case 209:
01663 /* #line        983     "/n/bopp/v5/dmg/f2c/gram.in" */
01664 { exif(yypt[-1].yyv.expval); } break;
01665 case 210:
01666 /* #line        987     "/n/bopp/v5/dmg/f2c/gram.in" */
01667 { yyval.chval = mkchain((char *)yypt[-2].yyv.namval, yypt[-0].yyv.chval); } break;
01668 case 212:
01669 /* #line        991     "/n/bopp/v5/dmg/f2c/gram.in" */
01670 {westart(0);} break;
01671 case 213:
01672 /* #line        992     "/n/bopp/v5/dmg/f2c/gram.in" */
01673 { yyval.chval = mkchain(CNULL, (chainp)yypt[-1].yyv.expval); } break;
01674 case 214:
01675 /* #line        996     "/n/bopp/v5/dmg/f2c/gram.in" */
01676 { exequals((struct Primblock *)yypt[-2].yyv.expval, yypt[-0].yyv.expval); } break;
01677 case 215:
01678 /* #line        998     "/n/bopp/v5/dmg/f2c/gram.in" */
01679 { exassign(yypt[-0].yyv.namval, yypt[-2].yyv.labval); } break;
01680 case 218:
01681 /* #line        1002    "/n/bopp/v5/dmg/f2c/gram.in" */
01682 { inioctl = NO; } break;
01683 case 219:
01684 /* #line        1004    "/n/bopp/v5/dmg/f2c/gram.in" */
01685 { exarif(yypt[-6].yyv.expval, yypt[-4].yyv.labval, yypt[-2].yyv.labval, yypt[-0].yyv.labval);  thiswasbranch = YES; } break;
01686 case 220:
01687 /* #line        1006    "/n/bopp/v5/dmg/f2c/gram.in" */
01688 { excall(yypt[-0].yyv.namval, LBNULL, 0, labarray); } break;
01689 case 221:
01690 /* #line        1008    "/n/bopp/v5/dmg/f2c/gram.in" */
01691 { excall(yypt[-2].yyv.namval, LBNULL, 0, labarray); } break;
01692 case 222:
01693 /* #line        1010    "/n/bopp/v5/dmg/f2c/gram.in" */
01694 { if(nstars < maxlablist)
01695                         excall(yypt[-3].yyv.namval, mklist(revchain(yypt[-1].yyv.chval)), nstars, labarray);
01696                   else
01697                         many("alternate returns", 'l', maxlablist);
01698                 } break;
01699 case 223:
01700 /* #line        1016    "/n/bopp/v5/dmg/f2c/gram.in" */
01701 { exreturn(yypt[-0].yyv.expval);  thiswasbranch = YES; } break;
01702 case 224:
01703 /* #line        1018    "/n/bopp/v5/dmg/f2c/gram.in" */
01704 { exstop(yypt[-2].yyv.ival, yypt[-0].yyv.expval);  thiswasbranch = yypt[-2].yyv.ival; } break;
01705 case 225:
01706 /* #line        1022    "/n/bopp/v5/dmg/f2c/gram.in" */
01707 { yyval.labval = mklabel( convci(toklen, token) ); } break;
01708 case 226:
01709 /* #line        1026    "/n/bopp/v5/dmg/f2c/gram.in" */
01710 { if(parstate == OUTSIDE)
01711                         {
01712                         newproc();
01713                         startproc(ESNULL, CLMAIN);
01714                         }
01715                 } break;
01716 case 227:
01717 /* #line        1035    "/n/bopp/v5/dmg/f2c/gram.in" */
01718 { exgoto(yypt[-0].yyv.labval);  thiswasbranch = YES; } break;
01719 case 228:
01720 /* #line        1037    "/n/bopp/v5/dmg/f2c/gram.in" */
01721 { exasgoto(yypt[-0].yyv.namval);  thiswasbranch = YES; } break;
01722 case 229:
01723 /* #line        1039    "/n/bopp/v5/dmg/f2c/gram.in" */
01724 { exasgoto(yypt[-4].yyv.namval);  thiswasbranch = YES; } break;
01725 case 230:
01726 /* #line        1041    "/n/bopp/v5/dmg/f2c/gram.in" */
01727 { if(nstars < maxlablist)
01728                         putcmgo(putx(fixtype(yypt[-0].yyv.expval)), nstars, labarray);
01729                   else
01730                         many("labels in computed GOTO list", 'l', maxlablist);
01731                 } break;
01732 case 233:
01733 /* #line        1053    "/n/bopp/v5/dmg/f2c/gram.in" */
01734 { nstars = 0; yyval.namval = yypt[-0].yyv.namval; } break;
01735 case 234:
01736 /* #line        1057    "/n/bopp/v5/dmg/f2c/gram.in" */
01737 { yyval.chval = yypt[-0].yyv.expval ? mkchain((char *)yypt[-0].yyv.expval,CHNULL) : CHNULL; } break;
01738 case 235:
01739 /* #line        1059    "/n/bopp/v5/dmg/f2c/gram.in" */
01740 { yyval.chval = yypt[-0].yyv.expval ? mkchain((char *)yypt[-0].yyv.expval, yypt[-2].yyv.chval) : yypt[-2].yyv.chval; } break;
01741 case 237:
01742 /* #line        1064    "/n/bopp/v5/dmg/f2c/gram.in" */
01743 { if(nstars < maxlablist) labarray[nstars++] = yypt[-0].yyv.labval; yyval.expval = 0; } break;
01744 case 238:
01745 /* #line        1068    "/n/bopp/v5/dmg/f2c/gram.in" */
01746 { yyval.ival = 0; } break;
01747 case 239:
01748 /* #line        1070    "/n/bopp/v5/dmg/f2c/gram.in" */
01749 { yyval.ival = 2; } break;
01750 case 240:
01751 /* #line        1074    "/n/bopp/v5/dmg/f2c/gram.in" */
01752 { yyval.chval = mkchain((char *)yypt[-0].yyv.expval, CHNULL); } break;
01753 case 241:
01754 /* #line        1076    "/n/bopp/v5/dmg/f2c/gram.in" */
01755 { yyval.chval = hookup(yypt[-2].yyv.chval, mkchain((char *)yypt[-0].yyv.expval,CHNULL) ); } break;
01756 case 242:
01757 /* #line        1080    "/n/bopp/v5/dmg/f2c/gram.in" */
01758 { if(parstate == OUTSIDE)
01759                         {
01760                         newproc();
01761                         startproc(ESNULL, CLMAIN);
01762                         }
01763 
01764 /* This next statement depends on the ordering of the state table encoding */
01765 
01766                   if(parstate < INDATA) enddcl();
01767                 } break;
01768 case 243:
01769 /* #line        1093    "/n/bopp/v5/dmg/f2c/gram.in" */
01770 { intonly = YES; } break;
01771 case 244:
01772 /* #line        1097    "/n/bopp/v5/dmg/f2c/gram.in" */
01773 { intonly = NO; } break;
01774 case 245:
01775 /* #line        1102    "/n/bopp/v5/dmg/f2c/gram.in" */
01776 { endio(); } break;
01777 case 247:
01778 /* #line        1107    "/n/bopp/v5/dmg/f2c/gram.in" */
01779 { ioclause(IOSUNIT, yypt[-0].yyv.expval); endioctl(); } break;
01780 case 248:
01781 /* #line        1109    "/n/bopp/v5/dmg/f2c/gram.in" */
01782 { ioclause(IOSUNIT, ENULL); endioctl(); } break;
01783 case 249:
01784 /* #line        1111    "/n/bopp/v5/dmg/f2c/gram.in" */
01785 { ioclause(IOSUNIT, IOSTDERR); endioctl(); } break;
01786 case 251:
01787 /* #line        1114    "/n/bopp/v5/dmg/f2c/gram.in" */
01788 { doio(CHNULL); } break;
01789 case 252:
01790 /* #line        1116    "/n/bopp/v5/dmg/f2c/gram.in" */
01791 { doio(CHNULL); } break;
01792 case 253:
01793 /* #line        1118    "/n/bopp/v5/dmg/f2c/gram.in" */
01794 { doio(revchain(yypt[-0].yyv.chval)); } break;
01795 case 254:
01796 /* #line        1120    "/n/bopp/v5/dmg/f2c/gram.in" */
01797 { doio(revchain(yypt[-0].yyv.chval)); } break;
01798 case 255:
01799 /* #line        1122    "/n/bopp/v5/dmg/f2c/gram.in" */
01800 { doio(revchain(yypt[-0].yyv.chval)); } break;
01801 case 256:
01802 /* #line        1124    "/n/bopp/v5/dmg/f2c/gram.in" */
01803 { doio(CHNULL); } break;
01804 case 257:
01805 /* #line        1126    "/n/bopp/v5/dmg/f2c/gram.in" */
01806 { doio(revchain(yypt[-0].yyv.chval)); } break;
01807 case 258:
01808 /* #line        1128    "/n/bopp/v5/dmg/f2c/gram.in" */
01809 { doio(revchain(yypt[-0].yyv.chval)); } break;
01810 case 259:
01811 /* #line        1130    "/n/bopp/v5/dmg/f2c/gram.in" */
01812 { doio(CHNULL); } break;
01813 case 260:
01814 /* #line        1132    "/n/bopp/v5/dmg/f2c/gram.in" */
01815 { doio(revchain(yypt[-0].yyv.chval)); } break;
01816 case 262:
01817 /* #line        1139    "/n/bopp/v5/dmg/f2c/gram.in" */
01818 { iostmt = IOBACKSPACE; } break;
01819 case 263:
01820 /* #line        1141    "/n/bopp/v5/dmg/f2c/gram.in" */
01821 { iostmt = IOREWIND; } break;
01822 case 264:
01823 /* #line        1143    "/n/bopp/v5/dmg/f2c/gram.in" */
01824 { iostmt = IOENDFILE; } break;
01825 case 266:
01826 /* #line        1150    "/n/bopp/v5/dmg/f2c/gram.in" */
01827 { iostmt = IOINQUIRE; } break;
01828 case 267:
01829 /* #line        1152    "/n/bopp/v5/dmg/f2c/gram.in" */
01830 { iostmt = IOOPEN; } break;
01831 case 268:
01832 /* #line        1154    "/n/bopp/v5/dmg/f2c/gram.in" */
01833 { iostmt = IOCLOSE; } break;
01834 case 269:
01835 /* #line        1158    "/n/bopp/v5/dmg/f2c/gram.in" */
01836 {
01837                 ioclause(IOSUNIT, ENULL);
01838                 ioclause(IOSFMT, yypt[-0].yyv.expval);
01839                 endioctl();
01840                 } break;
01841 case 270:
01842 /* #line        1164    "/n/bopp/v5/dmg/f2c/gram.in" */
01843 {
01844                 ioclause(IOSUNIT, ENULL);
01845                 ioclause(IOSFMT, ENULL);
01846                 endioctl();
01847                 } break;
01848 case 271:
01849 /* #line        1172    "/n/bopp/v5/dmg/f2c/gram.in" */
01850 {
01851                   ioclause(IOSUNIT, yypt[-1].yyv.expval);
01852                   endioctl();
01853                 } break;
01854 case 272:
01855 /* #line        1177    "/n/bopp/v5/dmg/f2c/gram.in" */
01856 { endioctl(); } break;
01857 case 275:
01858 /* #line        1185    "/n/bopp/v5/dmg/f2c/gram.in" */
01859 { ioclause(IOSPOSITIONAL, yypt[-0].yyv.expval); } break;
01860 case 276:
01861 /* #line        1187    "/n/bopp/v5/dmg/f2c/gram.in" */
01862 { ioclause(IOSPOSITIONAL, ENULL); } break;
01863 case 277:
01864 /* #line        1189    "/n/bopp/v5/dmg/f2c/gram.in" */
01865 { ioclause(IOSPOSITIONAL, IOSTDERR); } break;
01866 case 278:
01867 /* #line        1191    "/n/bopp/v5/dmg/f2c/gram.in" */
01868 { ioclause(yypt[-1].yyv.ival, yypt[-0].yyv.expval); } break;
01869 case 279:
01870 /* #line        1193    "/n/bopp/v5/dmg/f2c/gram.in" */
01871 { ioclause(yypt[-1].yyv.ival, ENULL); } break;
01872 case 280:
01873 /* #line        1195    "/n/bopp/v5/dmg/f2c/gram.in" */
01874 { ioclause(yypt[-1].yyv.ival, IOSTDERR); } break;
01875 case 281:
01876 /* #line        1199    "/n/bopp/v5/dmg/f2c/gram.in" */
01877 { yyval.ival = iocname(); } break;
01878 case 282:
01879 /* #line        1203    "/n/bopp/v5/dmg/f2c/gram.in" */
01880 { iostmt = IOREAD; } break;
01881 case 283:
01882 /* #line        1207    "/n/bopp/v5/dmg/f2c/gram.in" */
01883 { iostmt = IOWRITE; } break;
01884 case 284:
01885 /* #line        1211    "/n/bopp/v5/dmg/f2c/gram.in" */
01886 {
01887                 iostmt = IOWRITE;
01888                 ioclause(IOSUNIT, ENULL);
01889                 ioclause(IOSFMT, yypt[-1].yyv.expval);
01890                 endioctl();
01891                 } break;
01892 case 285:
01893 /* #line        1218    "/n/bopp/v5/dmg/f2c/gram.in" */
01894 {
01895                 iostmt = IOWRITE;
01896                 ioclause(IOSUNIT, ENULL);
01897                 ioclause(IOSFMT, ENULL);
01898                 endioctl();
01899                 } break;
01900 case 286:
01901 /* #line        1227    "/n/bopp/v5/dmg/f2c/gram.in" */
01902 { yyval.chval = mkchain((char *)yypt[-0].yyv.tagval, CHNULL); } break;
01903 case 287:
01904 /* #line        1229    "/n/bopp/v5/dmg/f2c/gram.in" */
01905 { yyval.chval = mkchain((char *)yypt[-0].yyv.tagval, yypt[-2].yyv.chval); } break;
01906 case 288:
01907 /* #line        1233    "/n/bopp/v5/dmg/f2c/gram.in" */
01908 { yyval.tagval = (tagptr) yypt[-0].yyv.expval; } break;
01909 case 289:
01910 /* #line        1235    "/n/bopp/v5/dmg/f2c/gram.in" */
01911 { yyval.tagval = (tagptr) mkiodo(yypt[-1].yyv.chval,revchain(yypt[-3].yyv.chval)); } break;
01912 case 290:
01913 /* #line        1239    "/n/bopp/v5/dmg/f2c/gram.in" */
01914 { yyval.chval = mkchain((char *)yypt[-0].yyv.expval, CHNULL); } break;
01915 case 291:
01916 /* #line        1241    "/n/bopp/v5/dmg/f2c/gram.in" */
01917 { yyval.chval = mkchain((char *)yypt[-0].yyv.tagval, CHNULL); } break;
01918 case 293:
01919 /* #line        1246    "/n/bopp/v5/dmg/f2c/gram.in" */
01920 { yyval.chval = mkchain((char *)yypt[-0].yyv.expval, mkchain((char *)yypt[-2].yyv.expval, CHNULL) ); } break;
01921 case 294:
01922 /* #line        1248    "/n/bopp/v5/dmg/f2c/gram.in" */
01923 { yyval.chval = mkchain((char *)yypt[-0].yyv.tagval, mkchain((char *)yypt[-2].yyv.expval, CHNULL) ); } break;
01924 case 295:
01925 /* #line        1250    "/n/bopp/v5/dmg/f2c/gram.in" */
01926 { yyval.chval = mkchain((char *)yypt[-0].yyv.expval, mkchain((char *)yypt[-2].yyv.tagval, CHNULL) ); } break;
01927 case 296:
01928 /* #line        1252    "/n/bopp/v5/dmg/f2c/gram.in" */
01929 { yyval.chval = mkchain((char *)yypt[-0].yyv.tagval, mkchain((char *)yypt[-2].yyv.tagval, CHNULL) ); } break;
01930 case 297:
01931 /* #line        1254    "/n/bopp/v5/dmg/f2c/gram.in" */
01932 { yyval.chval = mkchain((char *)yypt[-0].yyv.expval, yypt[-2].yyv.chval); } break;
01933 case 298:
01934 /* #line        1256    "/n/bopp/v5/dmg/f2c/gram.in" */
01935 { yyval.chval = mkchain((char *)yypt[-0].yyv.tagval, yypt[-2].yyv.chval); } break;
01936 case 299:
01937 /* #line        1260    "/n/bopp/v5/dmg/f2c/gram.in" */
01938 { yyval.tagval = (tagptr) yypt[-0].yyv.expval; } break;
01939 case 300:
01940 /* #line        1262    "/n/bopp/v5/dmg/f2c/gram.in" */
01941 { yyval.tagval = (tagptr) yypt[-1].yyv.expval; } break;
01942 case 301:
01943 /* #line        1264    "/n/bopp/v5/dmg/f2c/gram.in" */
01944 { yyval.tagval = (tagptr) mkiodo(yypt[-1].yyv.chval, mkchain((char *)yypt[-3].yyv.expval, CHNULL) ); } break;
01945 case 302:
01946 /* #line        1266    "/n/bopp/v5/dmg/f2c/gram.in" */
01947 { yyval.tagval = (tagptr) mkiodo(yypt[-1].yyv.chval, mkchain((char *)yypt[-3].yyv.tagval, CHNULL) ); } break;
01948 case 303:
01949 /* #line        1268    "/n/bopp/v5/dmg/f2c/gram.in" */
01950 { yyval.tagval = (tagptr) mkiodo(yypt[-1].yyv.chval, revchain(yypt[-3].yyv.chval)); } break;
01951 case 304:
01952 /* #line        1272    "/n/bopp/v5/dmg/f2c/gram.in" */
01953 { startioctl(); } break;
01954         }
01955         goto yystack;  /* stack new state and value */
01956 }

Generated on Sun Mar 4 15:03:44 2007 for Scilab [trunk] by  doxygen 1.5.1