home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD2.bin / bbs / gnu / f2c-1993.04.28-src.lha / f2c-1993.04.28 / src / gram.c < prev    next >
C/C++ Source or Header  |  1993-04-28  |  57KB  |  1,830 lines

  1. # define SEOS 1
  2. # define SCOMMENT 2
  3. # define SLABEL 3
  4. # define SUNKNOWN 4
  5. # define SHOLLERITH 5
  6. # define SICON 6
  7. # define SRCON 7
  8. # define SDCON 8
  9. # define SBITCON 9
  10. # define SOCTCON 10
  11. # define SHEXCON 11
  12. # define STRUE 12
  13. # define SFALSE 13
  14. # define SNAME 14
  15. # define SNAMEEQ 15
  16. # define SFIELD 16
  17. # define SSCALE 17
  18. # define SINCLUDE 18
  19. # define SLET 19
  20. # define SASSIGN 20
  21. # define SAUTOMATIC 21
  22. # define SBACKSPACE 22
  23. # define SBLOCK 23
  24. # define SCALL 24
  25. # define SCHARACTER 25
  26. # define SCLOSE 26
  27. # define SCOMMON 27
  28. # define SCOMPLEX 28
  29. # define SCONTINUE 29
  30. # define SDATA 30
  31. # define SDCOMPLEX 31
  32. # define SDIMENSION 32
  33. # define SDO 33
  34. # define SDOUBLE 34
  35. # define SELSE 35
  36. # define SELSEIF 36
  37. # define SEND 37
  38. # define SENDFILE 38
  39. # define SENDIF 39
  40. # define SENTRY 40
  41. # define SEQUIV 41
  42. # define SEXTERNAL 42
  43. # define SFORMAT 43
  44. # define SFUNCTION 44
  45. # define SGOTO 45
  46. # define SASGOTO 46
  47. # define SCOMPGOTO 47
  48. # define SARITHIF 48
  49. # define SLOGIF 49
  50. # define SIMPLICIT 50
  51. # define SINQUIRE 51
  52. # define SINTEGER 52
  53. # define SINTRINSIC 53
  54. # define SLOGICAL 54
  55. # define SNAMELIST 55
  56. # define SOPEN 56
  57. # define SPARAM 57
  58. # define SPAUSE 58
  59. # define SPRINT 59
  60. # define SPROGRAM 60
  61. # define SPUNCH 61
  62. # define SREAD 62
  63. # define SREAL 63
  64. # define SRETURN 64
  65. # define SREWIND 65
  66. # define SSAVE 66
  67. # define SSTATIC 67
  68. # define SSTOP 68
  69. # define SSUBROUTINE 69
  70. # define STHEN 70
  71. # define STO 71
  72. # define SUNDEFINED 72
  73. # define SWRITE 73
  74. # define SLPAR 74
  75. # define SRPAR 75
  76. # define SEQUALS 76
  77. # define SCOLON 77
  78. # define SCOMMA 78
  79. # define SCURRENCY 79
  80. # define SPLUS 80
  81. # define SMINUS 81
  82. # define SSTAR 82
  83. # define SSLASH 83
  84. # define SPOWER 84
  85. # define SCONCAT 85
  86. # define SAND 86
  87. # define SOR 87
  88. # define SNEQV 88
  89. # define SEQV 89
  90. # define SNOT 90
  91. # define SEQ 91
  92. # define SLT 92
  93. # define SGT 93
  94. # define SLE 94
  95. # define SGE 95
  96. # define SNE 96
  97. # define SENDDO 97
  98. # define SWHILE 98
  99. # define SSLASHD 99
  100.  
  101. /* # line 124 "gram.in" */
  102. #include "defs.h"
  103. #include "p1defs.h"
  104.  
  105. static int nstars;            /* Number of labels in an
  106.                        alternate return CALL */
  107. static int datagripe;
  108. static int ndim;
  109. static int vartype;
  110. int new_dcl;
  111. static ftnint varleng;
  112. static struct Dims dims[MAXDIM+1];
  113. extern struct Labelblock **labarray;    /* Labels in an alternate
  114.                            return CALL */
  115. extern int maxlablist;
  116.  
  117. /* The next two variables are used to verify that each statement might be reached
  118.    during runtime.   lastwasbranch   is tested only in the defintion of the
  119.    stat:   nonterminal. */
  120.  
  121. int lastwasbranch = NO;
  122. static int thiswasbranch = NO;
  123. extern ftnint yystno;
  124. extern flag intonly;
  125. static chainp datastack;
  126. extern long laststfcn, thisstno;
  127. extern int can_include;    /* for netlib */
  128.  
  129. ftnint convci();
  130. Addrp nextdata();
  131. expptr mklogcon(), mkaddcon(), mkrealcon(), mkstrcon(), mkbitcon();
  132. expptr mkcxcon();
  133. struct Listblock *mklist();
  134. struct Listblock *mklist();
  135. struct Impldoblock *mkiodo();
  136. Extsym *comblock();
  137. #define ESNULL (Extsym *)0
  138. #define NPNULL (Namep)0
  139. #define LBNULL (struct Listblock *)0
  140. extern void freetemps(), make_param();
  141.  
  142.  static void
  143. pop_datastack() {
  144.     chainp d0 = datastack;
  145.     if (d0->datap)
  146.         curdtp = (chainp)d0->datap;
  147.     datastack = d0->nextp;
  148.     d0->nextp = 0;
  149.     frchain(&d0);
  150.     }
  151.  
  152.  
  153. /* # line 178 "gram.in" */
  154. typedef union     {
  155.     int ival;
  156.     ftnint lval;
  157.     char *charpval;
  158.     chainp chval;
  159.     tagptr tagval;
  160.     expptr expval;
  161.     struct Labelblock *labval;
  162.     struct Nameblock *namval;
  163.     struct Eqvchain *eqvval;
  164.     Extsym *extval;
  165.     } YYSTYPE;
  166. #define yyclearin yychar = -1
  167. #define yyerrok yyerrflag = 0
  168. extern int yychar;
  169. typedef int yytabelem;
  170. extern yytabelem yyerrflag;
  171. #ifndef YYMAXDEPTH
  172. #define YYMAXDEPTH 150
  173. #endif
  174. YYSTYPE yylval, yyval;
  175. # define YYERRCODE 256
  176. yytabelem yyexca[] ={
  177. -1, 1,
  178.     0, -1,
  179.     -2, 0,
  180. -1, 20,
  181.     1, 38,
  182.     -2, 228,
  183. -1, 24,
  184.     1, 42,
  185.     -2, 228,
  186. -1, 122,
  187.     6, 240,
  188.     -2, 228,
  189. -1, 150,
  190.     1, 244,
  191.     -2, 188,
  192. -1, 174,
  193.     1, 265,
  194.     78, 265,
  195.     -2, 188,
  196. -1, 223,
  197.     77, 173,
  198.     -2, 139,
  199. -1, 245,
  200.     74, 228,
  201.     -2, 225,
  202. -1, 271,
  203.     1, 286,
  204.     -2, 143,
  205. -1, 275,
  206.     1, 295,
  207.     78, 295,
  208.     -2, 145,
  209. -1, 328,
  210.     77, 174,
  211.     -2, 141,
  212. -1, 358,
  213.     1, 267,
  214.     14, 267,
  215.     74, 267,
  216.     78, 267,
  217.     -2, 189,
  218. -1, 436,
  219.     91, 0,
  220.     92, 0,
  221.     93, 0,
  222.     94, 0,
  223.     95, 0,
  224.     96, 0,
  225.     -2, 153,
  226. -1, 453,
  227.     1, 289,
  228.     78, 289,
  229.     -2, 143,
  230. -1, 455,
  231.     1, 291,
  232.     78, 291,
  233.     -2, 143,
  234. -1, 457,
  235.     1, 293,
  236.     78, 293,
  237.     -2, 143,
  238. -1, 459,
  239.     1, 296,
  240.     78, 296,
  241.     -2, 144,
  242. -1, 504,
  243.     78, 289,
  244.     -2, 143,
  245.     };
  246. # define YYNPROD 301
  247. # define YYLAST 1346
  248. yytabelem yyact[]={
  249.  
  250.  237, 274, 471, 317, 316, 412, 420, 297, 470, 399,
  251.  413, 397, 386, 357, 398, 266, 128, 356, 273, 252,
  252.  292,   5, 116, 295, 326, 303, 222,  99, 184, 121,
  253.  195, 229,  17, 203, 270, 304, 313, 199, 201, 118,
  254.   94, 202, 396, 104, 210, 183, 236, 101, 106, 234,
  255.  264, 103, 111, 336, 260,  95,  96,  97, 165, 166,
  256.  334, 335, 336, 395, 105, 311, 309, 190, 130, 131,
  257.  132, 133, 120, 135, 119, 114, 157, 129, 157, 475,
  258.  103, 272, 334, 335, 336, 396, 521, 103, 278, 483,
  259.  535, 165, 166, 334, 335, 336, 342, 341, 340, 339,
  260.  338, 137, 343, 345, 344, 347, 346, 348, 450, 258,
  261.  259, 260, 539, 165, 166, 258, 259, 260, 261, 525,
  262.  102, 522, 155, 409, 155, 186, 187, 103, 408, 117,
  263.  165, 166, 258, 259, 260, 318, 100, 527, 484, 188,
  264.  446, 185, 480, 230, 240, 240, 194, 193, 290, 120,
  265.  211, 119, 462, 481, 157, 294, 482, 257, 157, 243,
  266.  468, 214, 463, 469, 461, 464, 460, 239, 241, 220,
  267.  215, 218, 157, 219, 213, 165, 166, 334, 335, 336,
  268.  342, 341, 340, 157, 371, 452, 343, 345, 344, 347,
  269.  346, 348, 443, 428, 377, 294, 102, 102, 102, 102,
  270.  155, 189, 447, 149, 155, 446, 192, 103,  98, 196,
  271.  197, 198, 277, 376, 320, 321, 206, 288, 155, 289,
  272.  300, 375, 299, 324, 315, 328, 275, 275, 330, 155,
  273.  310, 333, 196, 216, 217, 350, 269, 207, 308, 352,
  274.  353, 333, 100, 177, 354, 349, 323, 112, 245, 257,
  275.  247, 110, 157, 417, 286, 287, 418, 362, 157, 157,
  276.  157, 157, 157, 257, 257, 109, 108, 268, 279, 280,
  277.  281, 265, 107, 355,   4, 333, 427, 465, 378, 370,
  278.  170, 172, 176, 257, 165, 166, 258, 259, 260, 261,
  279.  102, 406, 232, 293, 407, 381, 422, 390, 155, 400,
  280.  391, 223, 419, 422, 155, 155, 155, 155, 155, 117,
  281.  221, 314, 392, 319, 387, 359, 372, 196, 360, 373,
  282.  374, 333, 333, 536, 350, 333, 275, 250, 424, 333,
  283.  405, 333, 410, 532, 230, 432, 433, 434, 435, 436,
  284.  437, 438, 439, 440, 441, 403, 331, 156, 401, 332,
  285.  531, 333, 530, 333, 333, 333, 388, 526, 380, 529,
  286.  524, 157, 257, 333, 431, 492, 257, 257, 257, 257,
  287.  257, 382, 383, 235, 426, 384, 358, 494, 296, 333,
  288.  448, 165, 166, 258, 259, 260, 261, 451, 165, 166,
  289.  258, 259, 260, 261, 103, 445, 472, 400, 421, 191,
  290.  402, 196, 103, 150, 307, 174, 285, 155, 474, 246,
  291.  476, 416, 467, 466, 242, 226, 223, 200, 212, 136,
  292.  209, 486, 171, 488, 490, 275, 275, 275, 141, 240,
  293.  496, 429, 329, 333, 333, 333, 333, 333, 333, 333,
  294.  333, 333, 333, 403, 497, 479, 401, 403, 487, 154,
  295.  257, 154, 495, 493, 306, 485, 502, 454, 456, 458,
  296.  500, 491, 268, 499, 505, 506, 507, 103, 451, 271,
  297.  271, 472,  30, 333, 414, 501, 400, 508, 511, 509,
  298.  387, 244, 208, 510, 516, 514, 515, 333, 517, 333,
  299.  513, 333, 520, 293, 518, 225, 240, 333, 402, 523,
  300.   92, 248, 402, 528,   6, 262, 123, 249,  81,  80,
  301.  275, 275, 275,  79, 534, 533, 479,  78, 173, 263,
  302.  314,  77, 403,  76, 537, 401, 351, 154,  75, 333,
  303.  282, 154,  60,  49,  48, 333,  45,  33, 333, 538,
  304.  113, 205, 454, 456, 458, 154, 267, 165, 166, 334,
  305.  335, 336, 342, 540, 503, 411, 154, 204, 394, 393,
  306.  298, 478, 503, 503, 503, 134, 389, 312, 115, 379,
  307.   26,  25,  24,  23, 302,  22, 305, 402,  21, 385,
  308.  284,   9, 503,   8,   7,   2, 519, 301,  20, 319,
  309.  164,  51, 489, 291, 228, 327, 325, 415,  91, 361,
  310.  255,  53, 337,  19,  55, 365, 366, 367, 368, 369,
  311.   37, 224,   3,   1,   0, 351,   0,   0,   0,   0,
  312.    0,   0,   0,   0,   0, 154,   0,   0,   0,   0,
  313.    0, 154, 154, 154, 154, 154,   0,   0,   0, 267,
  314.    0, 512, 267, 267, 165, 166, 334, 335, 336, 342,
  315.  341, 340, 339, 338,   0, 343, 345, 344, 347, 346,
  316.  348, 165, 166, 334, 335, 336, 342, 341, 453, 455,
  317.  457,   0, 343, 345, 344, 347, 346, 348,   0,   0,
  318.  305,   0, 459,   0,   0,   0,   0, 165, 166, 334,
  319.  335, 336, 342, 341, 340, 339, 338, 351, 343, 345,
  320.  344, 347, 346, 348, 444,   0,   0,   0, 449, 165,
  321.  166, 334, 335, 336, 342, 341, 340, 339, 338,   0,
  322.  343, 345, 344, 347, 346, 348, 165, 166, 334, 335,
  323.  336, 342,   0,   0, 154,   0, 498, 343, 345, 344,
  324.  347, 346, 348,   0,   0, 267,   0,   0