diff -c ORIG-src/gram.c src/gram.c *** ORIG-src/gram.c Wed Apr 28 07:07:31 1993 --- src/gram.c Wed Nov 17 11:44:08 1993 *************** *** 1,104 **** - # define SEOS 1 - # define SCOMMENT 2 - # define SLABEL 3 - # define SUNKNOWN 4 - # define SHOLLERITH 5 - # define SICON 6 - # define SRCON 7 - # define SDCON 8 - # define SBITCON 9 - # define SOCTCON 10 - # define SHEXCON 11 - # define STRUE 12 - # define SFALSE 13 - # define SNAME 14 - # define SNAMEEQ 15 - # define SFIELD 16 - # define SSCALE 17 - # define SINCLUDE 18 - # define SLET 19 - # define SASSIGN 20 - # define SAUTOMATIC 21 - # define SBACKSPACE 22 - # define SBLOCK 23 - # define SCALL 24 - # define SCHARACTER 25 - # define SCLOSE 26 - # define SCOMMON 27 - # define SCOMPLEX 28 - # define SCONTINUE 29 - # define SDATA 30 - # define SDCOMPLEX 31 - # define SDIMENSION 32 - # define SDO 33 - # define SDOUBLE 34 - # define SELSE 35 - # define SELSEIF 36 - # define SEND 37 - # define SENDFILE 38 - # define SENDIF 39 - # define SENTRY 40 - # define SEQUIV 41 - # define SEXTERNAL 42 - # define SFORMAT 43 - # define SFUNCTION 44 - # define SGOTO 45 - # define SASGOTO 46 - # define SCOMPGOTO 47 - # define SARITHIF 48 - # define SLOGIF 49 - # define SIMPLICIT 50 - # define SINQUIRE 51 - # define SINTEGER 52 - # define SINTRINSIC 53 - # define SLOGICAL 54 - # define SNAMELIST 55 - # define SOPEN 56 - # define SPARAM 57 - # define SPAUSE 58 - # define SPRINT 59 - # define SPROGRAM 60 - # define SPUNCH 61 - # define SREAD 62 - # define SREAL 63 - # define SRETURN 64 - # define SREWIND 65 - # define SSAVE 66 - # define SSTATIC 67 - # define SSTOP 68 - # define SSUBROUTINE 69 - # define STHEN 70 - # define STO 71 - # define SUNDEFINED 72 - # define SWRITE 73 - # define SLPAR 74 - # define SRPAR 75 - # define SEQUALS 76 - # define SCOLON 77 - # define SCOMMA 78 - # define SCURRENCY 79 - # define SPLUS 80 - # define SMINUS 81 - # define SSTAR 82 - # define SSLASH 83 - # define SPOWER 84 - # define SCONCAT 85 - # define SAND 86 - # define SOR 87 - # define SNEQV 88 - # define SEQV 89 - # define SNOT 90 - # define SEQ 91 - # define SLT 92 - # define SGT 93 - # define SLE 94 - # define SGE 95 - # define SNE 96 - # define SENDDO 97 - # define SWHILE 98 - # define SSLASHD 99 ! /* # line 124 "gram.in" */ #include "defs.h" #include "p1defs.h" --- 1,111 ---- ! /* A Bison parser, made from gram.y with Bison version GNU Bison version 1.21 ! */ ! ! #define YYBISON 1 /* Identify Bison output. */ ! ! #define SEOS 1 ! #define SCOMMENT 2 ! #define SLABEL 3 ! #define SUNKNOWN 4 ! #define SHOLLERITH 5 ! #define SICON 6 ! #define SRCON 7 ! #define SDCON 8 ! #define SBITCON 9 ! #define SOCTCON 10 ! #define SHEXCON 11 ! #define STRUE 12 ! #define SFALSE 13 ! #define SNAME 14 ! #define SNAMEEQ 15 ! #define SFIELD 16 ! #define SSCALE 17 ! #define SINCLUDE 18 ! #define SLET 19 ! #define SASSIGN 20 ! #define SAUTOMATIC 21 ! #define SBACKSPACE 22 ! #define SBLOCK 23 ! #define SCALL 24 ! #define SCHARACTER 25 ! #define SCLOSE 26 ! #define SCOMMON 27 ! #define SCOMPLEX 28 ! #define SCONTINUE 29 ! #define SDATA 30 ! #define SDCOMPLEX 31 ! #define SDIMENSION 32 ! #define SDO 33 ! #define SDOUBLE 34 ! #define SELSE 35 ! #define SELSEIF 36 ! #define SEND 37 ! #define SENDFILE 38 ! #define SENDIF 39 ! #define SENTRY 40 ! #define SEQUIV 41 ! #define SEXTERNAL 42 ! #define SFORMAT 43 ! #define SFUNCTION 44 ! #define SGOTO 45 ! #define SASGOTO 46 ! #define SCOMPGOTO 47 ! #define SARITHIF 48 ! #define SLOGIF 49 ! #define SIMPLICIT 50 ! #define SINQUIRE 51 ! #define SINTEGER 52 ! #define SINTRINSIC 53 ! #define SLOGICAL 54 ! #define SNAMELIST 55 ! #define SOPEN 56 ! #define SPARAM 57 ! #define SPAUSE 58 ! #define SPRINT 59 ! #define SPROGRAM 60 ! #define SPUNCH 61 ! #define SREAD 62 ! #define SREAL 63 ! #define SRETURN 64 ! #define SREWIND 65 ! #define SSAVE 66 ! #define SSTATIC 67 ! #define SSTOP 68 ! #define SSUBROUTINE 69 ! #define STHEN 70 ! #define STO 71 ! #define SUNDEFINED 72 ! #define SWRITE 73 ! #define SLPAR 74 ! #define SRPAR 75 ! #define SEQUALS 76 ! #define SCOLON 77 ! #define SCOMMA 78 ! #define SCURRENCY 79 ! #define SPLUS 80 ! #define SMINUS 81 ! #define SSTAR 82 ! #define SSLASH 83 ! #define SPOWER 84 ! #define SCONCAT 85 ! #define SAND 86 ! #define SOR 87 ! #define SNEQV 88 ! #define SEQV 89 ! #define SNOT 90 ! #define SEQ 91 ! #define SLT 92 ! #define SGT 93 ! #define SLE 94 ! #define SGE 95 ! #define SNE 96 ! #define SENDDO 97 ! #define SWHILE 98 ! #define SSLASHD 99 ! ! #line 123 "gram.y" ! #include "defs.h" #include "p1defs.h" *************** *** 150,157 **** } ! /* # line 178 "gram.in" */ ! typedef union { int ival; ftnint lval; char *charpval; --- 157,164 ---- } ! #line 178 "gram.y" ! typedef union { int ival; ftnint lval; char *charpval; *************** *** 163,875 **** struct Eqvchain *eqvval; Extsym *extval; } YYSTYPE; ! #define yyclearin yychar = -1 ! #define yyerrok yyerrflag = 0 ! extern int yychar; ! typedef int yytabelem; ! extern yytabelem yyerrflag; ! #ifndef YYMAXDEPTH ! #define YYMAXDEPTH 150 #endif - YYSTYPE yylval, yyval; - # define YYERRCODE 256 - yytabelem yyexca[] ={ - -1, 1, - 0, -1, - -2, 0, - -1, 20, - 1, 38, - -2, 228, - -1, 24, - 1, 42, - -2, 228, - -1, 122, - 6, 240, - -2, 228, - -1, 150, - 1, 244, - -2, 188, - -1, 174, - 1, 265, - 78, 265, - -2, 188, - -1, 223, - 77, 173, - -2, 139, - -1, 245, - 74, 228, - -2, 225, - -1, 271, - 1, 286, - -2, 143, - -1, 275, - 1, 295, - 78, 295, - -2, 145, - -1, 328, - 77, 174, - -2, 141, - -1, 358, - 1, 267, - 14, 267, - 74, 267, - 78, 267, - -2, 189, - -1, 436, - 91, 0, - 92, 0, - 93, 0, - 94, 0, - 95, 0, - 96, 0, - -2, 153, - -1, 453, - 1, 289, - 78, 289, - -2, 143, - -1, 455, - 1, 291, - 78, 291, - -2, 143, - -1, 457, - 1, 293, - 78, 293, - -2, 143, - -1, 459, - 1, 296, - 78, 296, - -2, 144, - -1, 504, - 78, 289, - -2, 143, - }; - # define YYNPROD 301 - # define YYLAST 1346 - yytabelem yyact[]={ - - 237, 274, 471, 317, 316, 412, 420, 297, 470, 399, - 413, 397, 386, 357, 398, 266, 128, 356, 273, 252, - 292, 5, 116, 295, 326, 303, 222, 99, 184, 121, - 195, 229, 17, 203, 270, 304, 313, 199, 201, 118, - 94, 202, 396, 104, 210, 183, 236, 101, 106, 234, - 264, 103, 111, 336, 260, 95, 96, 97, 165, 166, - 334, 335, 336, 395, 105, 311, 309, 190, 130, 131, - 132, 133, 120, 135, 119, 114, 157, 129, 157, 475, - 103, 272, 334, 335, 336, 396, 521, 103, 278, 483, - 535, 165, 166, 334, 335, 336, 342, 341, 340, 339, - 338, 137, 343, 345, 344, 347, 346, 348, 450, 258, - 259, 260, 539, 165, 166, 258, 259, 260, 261, 525, - 102, 522, 155, 409, 155, 186, 187, 103, 408, 117, - 165, 166, 258, 259, 260, 318, 100, 527, 484, 188, - 446, 185, 480, 230, 240, 240, 194, 193, 290, 120, - 211, 119, 462, 481, 157, 294, 482, 257, 157, 243, - 468, 214, 463, 469, 461, 464, 460, 239, 241, 220, - 215, 218, 157, 219, 213, 165, 166, 334, 335, 336, - 342, 341, 340, 157, 371, 452, 343, 345, 344, 347, - 346, 348, 443, 428, 377, 294, 102, 102, 102, 102, - 155, 189, 447, 149, 155, 446, 192, 103, 98, 196, - 197, 198, 277, 376, 320, 321, 206, 288, 155, 289, - 300, 375, 299, 324, 315, 328, 275, 275, 330, 155, - 310, 333, 196, 216, 217, 350, 269, 207, 308, 352, - 353, 333, 100, 177, 354, 349, 323, 112, 245, 257, - 247, 110, 157, 417, 286, 287, 418, 362, 157, 157, - 157, 157, 157, 257, 257, 109, 108, 268, 279, 280, - 281, 265, 107, 355, 4, 333, 427, 465, 378, 370, - 170, 172, 176, 257, 165, 166, 258, 259, 260, 261, - 102, 406, 232, 293, 407, 381, 422, 390, 155, 400, - 391, 223, 419, 422, 155, 155, 155, 155, 155, 117, - 221, 314, 392, 319, 387, 359, 372, 196, 360, 373, - 374, 333, 333, 536, 350, 333, 275, 250, 424, 333, - 405, 333, 410, 532, 230, 432, 433, 434, 435, 436, - 437, 438, 439, 440, 441, 403, 331, 156, 401, 332, - 531, 333, 530, 333, 333, 333, 388, 526, 380, 529, - 524, 157, 257, 333, 431, 492, 257, 257, 257, 257, - 257, 382, 383, 235, 426, 384, 358, 494, 296, 333, - 448, 165, 166, 258, 259, 260, 261, 451, 165, 166, - 258, 259, 260, 261, 103, 445, 472, 400, 421, 191, - 402, 196, 103, 150, 307, 174, 285, 155, 474, 246, - 476, 416, 467, 466, 242, 226, 223, 200, 212, 136, - 209, 486, 171, 488, 490, 275, 275, 275, 141, 240, - 496, 429, 329, 333, 333, 333, 333, 333, 333, 333, - 333, 333, 333, 403, 497, 479, 401, 403, 487, 154, - 257, 154, 495, 493, 306, 485, 502, 454, 456, 458, - 500, 491, 268, 499, 505, 506, 507, 103, 451, 271, - 271, 472, 30, 333, 414, 501, 400, 508, 511, 509, - 387, 244, 208, 510, 516, 514, 515, 333, 517, 333, - 513, 333, 520, 293, 518, 225, 240, 333, 402, 523, - 92, 248, 402, 528, 6, 262, 123, 249, 81, 80, - 275, 275, 275, 79, 534, 533, 479, 78, 173, 263, - 314, 77, 403, 76, 537, 401, 351, 154, 75, 333, - 282, 154, 60, 49, 48, 333, 45, 33, 333, 538, - 113, 205, 454, 456, 458, 154, 267, 165, 166, 334, - 335, 336, 342, 540, 503, 411, 154, 204, 394, 393, - 298, 478, 503, 503, 503, 134, 389, 312, 115, 379, - 26, 25, 24, 23, 302, 22, 305, 402, 21, 385, - 284, 9, 503, 8, 7, 2, 519, 301, 20, 319, - 164, 51, 489, 291, 228, 327, 325, 415, 91, 361, - 255, 53, 337, 19, 55, 365, 366, 367, 368, 369, - 37, 224, 3, 1, 0, 351, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 154, 0, 0, 0, 0, - 0, 154, 154, 154, 154, 154, 0, 0, 0, 267, - 0, 512, 267, 267, 165, 166, 334, 335, 336, 342, - 341, 340, 339, 338, 0, 343, 345, 344, 347, 346, - 348, 165, 166, 334, 335, 336, 342, 341, 453, 455, - 457, 0, 343, 345, 344, 347, 346, 348, 0, 0, - 305, 0, 459, 0, 0, 0, 0, 165, 166, 334, - 335, 336, 342, 341, 340, 339, 338, 351, 343, 345, - 344, 347, 346, 348, 444, 0, 0, 0, 449, 165, - 166, 334, 335, 336, 342, 341, 340, 339, 338, 0, - 343, 345, 344, 347, 346, 348, 165, 166, 334, 335, - 336, 342, 0, 0, 154, 0, 498, 343, 345, 344, - 347, 346, 348, 0, 0, 267, 0, 0, 0, 0, - 0, 442, 0, 504, 455, 457, 165, 166, 334, 335, - 336, 342, 341, 340, 339, 338, 0, 343, 345, 344, - 347, 346, 348, 0, 0, 0, 0, 0, 0, 430, - 0, 477, 0, 305, 165, 166, 334, 335, 336, 342, - 341, 340, 339, 338, 0, 343, 345, 344, 347, 346, - 348, 423, 0, 0, 0, 0, 165, 166, 334, 335, - 336, 342, 341, 340, 339, 338, 0, 343, 345, 344, - 347, 346, 348, 0, 0, 0, 267, 0, 0, 0, - 0, 165, 166, 334, 335, 336, 342, 341, 340, 339, - 338, 12, 343, 345, 344, 347, 346, 348, 0, 0, - 0, 0, 0, 0, 305, 10, 56, 46, 73, 85, - 14, 61, 70, 90, 38, 66, 47, 42, 68, 72, - 31, 67, 35, 34, 11, 87, 36, 18, 41, 39, - 28, 16, 57, 58, 59, 50, 54, 43, 88, 64, - 40, 69, 44, 89, 29, 62, 84, 13, 0, 82, - 65, 52, 86, 27, 74, 63, 15, 0, 0, 71, - 83, 160, 161, 162, 163, 169, 168, 167, 158, 159, - 103, 0, 160, 161, 162, 163, 169, 168, 167, 158, - 159, 103, 0, 0, 32, 160, 161, 162, 163, 169, - 168, 167, 158, 159, 103, 0, 160, 161, 162, 163, - 169, 168, 167, 158, 159, 103, 0, 160, 161, 162, - 163, 169, 168, 167, 158, 159, 103, 0, 160, 161, - 162, 163, 169, 168, 167, 158, 159, 103, 0, 0, - 233, 0, 0, 0, 0, 0, 165, 166, 363, 0, - 364, 233, 227, 0, 0, 0, 238, 165, 166, 231, - 0, 0, 0, 0, 233, 0, 0, 238, 0, 0, - 165, 166, 473, 0, 0, 233, 0, 0, 0, 0, - 238, 165, 166, 231, 0, 0, 233, 0, 0, 0, - 0, 238, 165, 166, 425, 0, 0, 233, 0, 0, - 0, 0, 238, 165, 166, 0, 0, 0, 0, 0, - 0, 0, 0, 238, 160, 161, 162, 163, 169, 168, - 167, 158, 159, 103, 0, 160, 161, 162, 163, 169, - 168, 167, 158, 159, 103, 160, 161, 162, 163, 169, - 168, 167, 158, 159, 103, 0, 0, 0, 160, 161, - 162, 163, 169, 168, 167, 158, 159, 103, 256, 0, - 93, 160, 161, 162, 163, 169, 168, 167, 158, 159, - 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 276, 0, 0, 0, 0, 0, 165, - 166, 0, 122, 0, 322, 125, 126, 127, 0, 238, - 165, 166, 0, 0, 0, 0, 0, 138, 139, 0, - 238, 140, 0, 142, 143, 144, 0, 251, 145, 146, - 147, 0, 148, 165, 166, 253, 0, 254, 0, 0, - 153, 0, 0, 0, 0, 0, 165, 166, 151, 0, - 152, 178, 179, 180, 181, 182, 160, 161, 162, 163, - 169, 168, 167, 158, 159, 103, 160, 161, 162, 163, - 169, 168, 167, 158, 159, 103, 160, 161, 162, 163, - 169, 168, 167, 158, 159, 103, 160, 161, 162, 163, - 169, 168, 167, 158, 159, 103, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 251, 0, 0, 0, 0, - 0, 165, 166, 283, 0, 153, 0, 0, 0, 0, - 0, 165, 166, 175, 0, 404, 0, 0, 0, 0, - 0, 165, 166, 56, 46, 251, 85, 0, 61, 0, - 90, 165, 166, 47, 73, 0, 0, 0, 70, 0, - 0, 66, 87, 0, 68, 72, 0, 67, 0, 57, - 58, 59, 50, 0, 0, 88, 0, 0, 0, 0, - 89, 0, 62, 84, 0, 64, 82, 69, 52, 86, - 0, 0, 63, 0, 124, 0, 65, 83, 0, 0, - 74, 0, 0, 0, 0, 71 }; - yytabelem yypact[]={ - - -1000, 18, 503, 837,-1000,-1000,-1000,-1000,-1000,-1000, - 495,-1000,-1000,-1000,-1000,-1000,-1000, 164, 453, -35, - 194, 188, 187, 173, 58, 169, -8, 66,-1000,-1000, - -1000,-1000,-1000,1264,-1000,-1000,-1000, -5,-1000,-1000, - -1000,-1000,-1000,-1000,-1000, 453,-1000,-1000,-1000,-1000, - -1000, 354,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, - -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, - -1000,-1000,-1000,-1000,-1000,1096, 348,1191, 348, 165, - -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, - -1000,-1000,-1000,-1000, 453, 453, 453, 453,-1000, 453, - -1000, 325,-1000,-1000, 453,-1000, -11, 453, 453, 453, - 343,-1000,-1000,-1000, 453, 159,-1000,-1000,-1000,-1000, - 468, 346, 58,-1000,-1000, 344,-1000,-1000,-1000,-1000, - 66, 453, 453, 343,-1000,-1000, 234, 342, 489,-1000, - 341, 917, 963, 963, 340, 475, 453, 335, 453,-1000, - -1000,-1000,-1000,1083,-1000,-1000, 308,1211,-1000,-1000, - -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, - -1000,1083, 193, 158,-1000,-1000,1049,1049,-1000,-1000, - -1000,-1000,1181, 332,-1000,-1000, 325, 325, 453,-1000, - -1000, 73, 304,-1000, 58,-1000, 304,-1000,-1000,-1000, - 453,-1000, 380,-1000, 330,1273, -17, 66, -18, 453, - 475, 37, 963,1060,-1000, 453,-1000,-1000,-1000,-1000, - -1000, 963,-1000, 963, 361,-1000, 963,-1000, 271,-1000, - 751, 475,-1000, 963,-1000,-1000,-1000, 963, 963,-1000, - 751,-1000, 963,-1000,-1000, 58, 475,-1000, 301, 240, - -1000,1211,-1000,-1000,-1000, 906,-1000,1211,1211,1211, - 1211,1211, -30, 204, 106, 388,-1000,-1000, 388, 388, - -1000, 143, 135, 116, 751,-1000,1049,-1000,-1000,-1000, - -1000,-1000, 308,-1000,-1000, 300,-1000,-1000, 325,-1000, - -1000, 222,-1000,-1000,-1000, -5,-1000, -36,1201, 453, - -1000, 216,-1000, 45,-1000,-1000, 380, 460,-1000, 453, - -1000,-1000, 178,-1000, 226,-1000,-1000,-1000, 324, 220, - 726, 751, 952,-1000, 751, 299, 199, 115, 751, 453, - 704,-1000, 941, 963, 963, 963, 963, 963, 963, 963, - 963, 963, 963,-1000,-1000,-1000,-1000,-1000,-1000,-1000, - 676, 114, -31, 646, 629, 321, 127,-1000,-1000,-1000, - 1083, 33, 751,-1000,-1000, 27, -30, -30, -30, 50, - -1000, 388, 106, 107, 106,1049,1049,1049, 607, 88, - 86, 74,-1000,-1000,-1000, 87,-1000, 201,-1000, 304, - -1000, 113,-1000, 85, 930,-1000,1201,-1000,-1000, -3, - 1070,-1000,-1000,-1000, 963,-1000,-1000, 453,-1000, 380, - 64, 78,-1000, 8,-1000, 60,-1000,-1000, 453, 963, - 58, 963, 963, 391,-1000, 290, 303, 963, 963,-1000, - 475,-1000, 0, -31, -31, -31, 467, 95, 95, 581, - 646, -22,-1000, 963,-1000, 475, 475, 58,-1000, 308, - -1000,-1000, 388,-1000,-1000,-1000,-1000,-1000,-1000,-1000, - 1049,1049,1049,-1000, 466, 465, -5,-1000,-1000, 930, - -1000,-1000, 564,-1000,-1000,1201,-1000,-1000,-1000,-1000, - 380,-1000, 460, 460, 453,-1000, 751, 37, 11, 43, - 751,-1000,-1000,-1000, 963, 285, 751, 41, 282, 62, - -1000, 963, 284, 227, 282, 277, 275, 258,-1000,-1000, - -1000,-1000, 930,-1000,-1000, 7, 248,-1000,-1000,-1000, - -1000,-1000, 963,-1000,-1000, 475,-1000,-1000, 751,-1000, - -1000,-1000,-1000,-1000, 751,-1000,-1000, 751, 34, 475, - -1000 }; - yytabelem yypgo[]={ - - 0, 613, 612, 13, 611, 81, 15, 32, 610, 604, - 603, 10, 0, 602, 601, 600, 16, 598, 35, 25, - 597, 596, 595, 3, 4, 594, 67, 593, 592, 50, - 34, 18, 26, 101, 20, 591, 30, 373, 1, 292, - 24, 347, 327, 2, 9, 14, 31, 49, 46, 590, - 588, 39, 28, 45, 587, 585, 584, 583, 581,1100, - 40, 580, 579, 12, 578, 575, 573, 572, 571, 570, - 568, 29, 567, 27, 566, 23, 41, 7, 44, 6, - 37, 565, 38, 561, 560, 11, 22, 36, 559, 558, - 8, 17, 33, 557, 555, 541, 5, 540, 472, 537, - 536, 534, 533, 532, 528, 203, 523, 521, 518, 517, - 513, 509, 88, 508, 507, 19 }; - yytabelem yyr1[]={ - - 0, 1, 1, 55, 55, 55, 55, 55, 55, 55, - 2, 56, 56, 56, 56, 56, 56, 56, 60, 52, - 33, 53, 53, 61, 61, 62, 62, 63, 63, 26, - 26, 26, 27, 27, 34, 34, 17, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, 57, 10, - 10, 10, 74, 7, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 16, 16, 16, 50, - 50, 50, 50, 51, 51, 64, 64, 65, 65, 66, - 66, 80, 54, 54, 67, 67, 81, 82, 76, 83, - 84, 77, 77, 85, 85, 45, 45, 45, 70, 70, - 86, 86, 72, 72, 87, 36, 18, 18, 19, 19, - 75, 75, 89, 88, 88, 90, 90, 43, 43, 91, - 91, 3, 68, 68, 92, 92, 95, 93, 94, 94, - 96, 96, 11, 69, 69, 97, 20, 20, 71, 21, - 21, 22, 22, 38, 38, 38, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 12, 12, 13, 13, 13, 13, 13, 13, 37, 37, - 37, 37, 32, 40, 40, 44, 44, 48, 48, 48, - 48, 48, 48, 48, 47, 49, 49, 49, 41, 41, - 42, 42, 42, 42, 42, 42, 42, 42, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 99, 23, 24, - 24, 98, 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 4, 100, 101, 101, 101, 101, 73, 73, - 35, 25, 25, 46, 46, 14, 14, 28, 28, 59, - 78, 79, 102, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 104, 111, 111, - 111, 106, 113, 113, 113, 108, 108, 105, 105, 114, - 114, 115, 115, 115, 115, 115, 115, 15, 107, 109, - 110, 110, 29, 29, 6, 6, 30, 30, 30, 31, - 31, 31, 31, 31, 31, 5, 5, 5, 5, 5, - 112 }; - yytabelem yyr2[]={ - - 0, 0, 3, 2, 2, 2, 3, 3, 2, 1, - 1, 3, 4, 3, 4, 4, 5, 3, 0, 1, - 1, 0, 1, 2, 3, 1, 3, 1, 3, 0, - 2, 3, 1, 3, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 1, 5, 7, - 5, 5, 0, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 4, 6, 3, - 4, 5, 3, 1, 3, 3, 3, 3, 3, 3, - 3, 3, 1, 3, 3, 3, 0, 6, 0, 0, - 0, 2, 3, 1, 3, 1, 2, 1, 1, 3, - 1, 1, 1, 3, 3, 2, 1, 5, 1, 3, - 0, 3, 0, 2, 3, 1, 3, 1, 1, 1, - 3, 1, 3, 3, 4, 1, 0, 2, 1, 3, - 1, 3, 1, 1, 2, 4, 1, 3, 0, 0, - 1, 1, 3, 1, 3, 1, 1, 1, 3, 3, - 3, 3, 2, 3, 3, 3, 3, 3, 2, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 4, 5, 5, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 5, 1, 1, 1, 1, 3, - 1, 1, 3, 3, 3, 3, 2, 3, 1, 7, - 4, 1, 2, 2, 6, 2, 2, 5, 3, 1, - 4, 4, 5, 2, 1, 1, 10, 1, 3, 4, - 3, 3, 1, 1, 3, 3, 7, 7, 0, 1, - 3, 1, 3, 1, 2, 1, 1, 1, 3, 0, - 0, 0, 1, 2, 2, 2, 2, 2, 2, 2, - 3, 4, 4, 2, 3, 1, 3, 3, 1, 1, - 1, 3, 1, 1, 1, 1, 1, 3, 3, 1, - 3, 1, 1, 1, 2, 2, 2, 1, 3, 3, - 4, 4, 1, 3, 1, 5, 1, 1, 1, 3, - 3, 3, 3, 3, 3, 1, 3, 5, 5, 5, - 0 }; - yytabelem yychk[]={ - - -1000, -1, -55, -2, 256, 3, 1, -56, -57, -58, - 18, 37, 4, 60, 23, 69, 44, -7, 40, -10, - -50, -64, -65, -66, -67, -68, -69, 66, 43, 57, - -98, 33, 97, -99, 36, 35, 39, -8, 27, 42, - 53, 41, 30, 50, 55,-100, 20, 29,-101,-102, - 48, -35, 64, -14, 49, -9, 19, 45, 46, 47, - -103, 24, 58, 68, 52, 63, 28, 34, 31, 54, - 25, 72, 32, 21, 67,-104,-106,-107,-109,-110, - -111,-113, 62, 73, 59, 22, 65, 38, 51, 56, - 26, -17, 5, -59, -60, -60, -60, -60, 44, -73, - 78, -52, -33, 14, 78, 99, -73, 78, 78, 78, - 78, -73, 78, -97, 83, -70, -86, -33, -51, 85, - 83, -71, -59, -98, 70, -59, -59, -59, -16, 82, - -71, -71, -71, -71, -81, -71, -37, -33, -59, -59, - -59, 74, -59, -59, -59, -59, -59, -59, -59,-105, - -42, 82, 84, 74, -37, -48, -41, -12, 12, 13, - 5, 6, 7, 8, -49, 80, 81, 11, 10, 9, - -105, 74,-105,-108, -42, 82,-105, 78, -59, -59, - -59, -59, -59, -53, -52, -53, -52, -52, -60, -33, - -26, 74, -33, -76, -51, -36, -33, -33, -33, -80, - 74, -82, -76, -92, -93, -95, -33, 78, 14, 74, - -78, -73, 74, -78, -36, -51, -33, -33, -80, -82, - -92, 76, -32, 74, -4, 6, 74, 75, -25, -46, - -38, 82, -39, 74, -47, -37, -48, -12, 90, -40, - -38, -40, 74, -3, 6, -33, 74, -33, -41,-114, - -42, 74,-115, 82, 84, -15, 15, -12, 82, 83, - 84, 85, -41, -41, -29, 78, -6, -37, 74, 78, - -30, -39, -5, -31, -38, -47, 74, -30,-112,-112, - -112,-112, -41, 82, -61, 74, -26, -26, -52, -71, - 75, -27, -34, -33, 82, -75, 74, -77, -84, -73, - -75, -54, -37, -19, -18, -37, 74, 74, -7, 83, - -86, 83, -72, -87, -33, -3, -24, -23, 98, -33, - -38, -38, 74, -36, -38, -21, -40, -22, -38, 71, - -38, 75, 78, -12, 82, 83, 84, -13, 89, 88, - 87, 86, 85, 91, 93, 92, 95, 94, 96, -3, - -38, -39, -38, -38, -38, -73, -91, -3, 75, 75, - 78, -41, -38, 82, 84, -41, -41, -41, -41, -41, - 75, 78, -29, -29, -29, 78, 78, 78, -38, -39, - -5, -31,-112,-112, 75, -62, -63, 14, -26, -74, - 75, 78, -16, -88, -89, 99, 78, -85, -45, -44, - -12, -47, -33, -48, 74, -36, 75, 78, 83, 78, - -19, -94, -96, -11, 14, -20, -33, 75, 78, 76, - -79, 74, 76, 75, -79, 82, 75, 77, 78, -33, - 75, -46, -38, -38, -38, -38, -38, -38, -38, -38, - -38, -38, 75, 78, 75, 74, 78, 75,-115, -41, - 75, -6, 78, -39, -5, -39, -5, -39, -5, 75, - 78, 78, 78, 75, 78, 76, -75, -34, 75, 78, - -90, -43, -38, 82, -85, 82, -44, -37, -83, -18, - 78, 75, 78, 81, 78, -87, -38, -73, -38, -28, - -38, 70, 75, -32, 74, -40, -38, -3, -39, -91, - -3, -73, -23, -33, -39, -23, -23, -23, -63, 14, - -16, -90, 77, -45, -44, -77, -23, -96, -11, -33, - -24, 75, 78, -79, 75, 78, 75, 75, -38, 75, - 75, 75, 75, -43, -38, 83, 75, -38, -3, 78, - -3 }; - yytabelem yydef[]={ - - 1, -2, 0, 0, 9, 10, 2, 3, 4, 5, - 0, 239, 8, 18, 18, 18, 18, 228, 0, 37, - -2, 39, 40, 41, -2, 43, 44, 45, 47, 138, - 198, 239, 201, 0, 239, 239, 239, 66, 138, 138, - 138, 138, 86, 138, 133, 0, 239, 239, 214, 215, - 239, 217, 239, 239, 239, 54, 223, 239, 239, 239, - 242, 239, 235, 236, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 0, 0, 0, 0, 255, - 239, 239, 239, 239, 239, 258, 259, 260, 262, 263, - 264, 6, 36, 7, 21, 21, 0, 0, 18, 0, - 229, 29, 19, 20, 0, 88, 0, 229, 0, 0, - 0, 88, 126, 134, 0, 46, 98, 100, 101, 73, - 0, 0, -2, 202, 203, 0, 205, 206, 53, 240, - 0, 0, 0, 0, 88, 126, 0, 168, 0, 213, - 0, 0, 173, 173, 0, 0, 0, 0, 0, 243, - -2, 245, 246, 0, 190, 191, 0, 0, 177, 178, - 179, 180, 181, 182, 183, 160, 161, 185, 186, 187, - 247, 0, 248, 249, -2, 266, 253, 0, 300, 300, - 300, 300, 0, 11, 22, 13, 29, 29, 0, 138, - 17, 0, 110, 90, 228, 72, 110, 76, 78, 80, - 0, 85, 0, 123, 125, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 69, 0, 75, 77, 79, 84, - 122, 0, 169, -2, 0, 222, 0, 218, 0, 231, - 233, 0, 143, 0, 145, 146, 147, 0, 0, 220, - 174, 221, 0, 224, 121, -2, 0, 230, 271, 0, - 188, 0, 269, 272, 273, 0, 277, 0, 0, 0, - 0, 0, 196, 271, 250, 0, 282, 284, 0, 0, - 254, -2, 287, 288, 0, -2, 0, 256, 257, 261, - 278, 279, 300, 300, 12, 0, 14, 15, 29, 52, - 30, 0, 32, 34, 35, 66, 112, 0, 0, 0, - 105, 0, 82, 0, 108, 106, 0, 0, 127, 0, - 99, 74, 0, 102, 0, 241, 200, 209, 0, 0, - 0, 241, 0, 70, 211, 0, 0, 140, -2, 0, - 0, 219, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 162, 163, 164, 165, 166, 167, 234, - 0, 143, 152, 158, 0, 0, 0, 119, -2, 268, - 0, 0, 274, 275, 276, 192, 193, 194, 195, 197, - 267, 0, 252, 0, 251, 0, 0, 0, 0, 143, - 0, 0, 280, 281, 23, 0, 25, 27, 16, 110, - 31, 0, 50, 0, 0, 51, 0, 91, 93, 95, - 0, 97, 175, 176, 0, 71, 81, 0, 89, 0, - 0, 0, 128, 130, 132, 135, 136, 48, 0, 0, - 228, 0, 0, 0, 67, 0, 170, 173, 0, 212, - 0, 232, 148, 149, 150, 151, -2, 154, 155, 156, - 157, 159, 144, 0, 207, 0, 0, 228, 270, 271, - 189, 283, 0, -2, 290, -2, 292, -2, 294, -2, - 0, 0, 0, 24, 0, 0, 66, 33, 111, 0, - 113, 115, 118, 117, 92, 0, 96, 83, 90, 109, - 0, 124, 0, 0, 0, 103, 104, 0, 0, 208, - 237, 204, 241, 171, 173, 0, 142, 0, 143, 0, - 120, 0, 0, 168, -2, 0, 0, 0, 26, 28, - 49, 114, 0, 94, 95, 0, 0, 129, 131, 137, - 199, 210, 0, 68, 172, 0, 184, 226, 227, 285, - 297, 298, 299, 116, 118, 87, 107, 238, 0, 0, - 216 }; - # ifdef YYDEBUG - # include "y.debug" - # endif - - # define YYFLAG -1000 - # define YYERROR goto yyerrlab - # define YYACCEPT return(0) - # define YYABORT return(1) - - /* parser for yacc output */ - - #ifdef YYDEBUG - int yydebug = 0; /* 1 for debugging */ - #endif - YYSTYPE yyv[YYMAXDEPTH]; /* where the values are stored */ - int yychar = -1; /* current input token number */ - int yynerrs = 0; /* number of errors */ - yytabelem yyerrflag = 0; /* error recovery flag */ ! yyparse() ! { yytabelem yys[YYMAXDEPTH]; ! int yyj, yym; ! register YYSTYPE *yypvt; ! register int yystate, yyn; ! register yytabelem *yyps; ! register YYSTYPE *yypv; ! register yytabelem *yyxi; ! ! yystate = 0; ! yychar = -1; ! yynerrs = 0; ! yyerrflag = 0; ! yyps= &yys[-1]; ! yypv= &yyv[-1]; ! ! yystack: /* put a state and value onto the stack */ ! #ifdef YYDEBUG ! if(yydebug >= 3) ! if(yychar < 0 || yytoknames[yychar] == 0) ! printf("char %d in %s", yychar, yystates[yystate]); ! else ! printf("%s in %s", yytoknames[yychar], yystates[yystate]); #endif - if( ++yyps >= &yys[YYMAXDEPTH] ) { - yyerror( "yacc stack overflow" ); - return(1); - } - *yyps = yystate; - ++yypv; - *yypv = yyval; - yynewstate: - yyn = yypact[yystate]; - if(yyn <= YYFLAG) goto yydefault; /* simple state */ - if(yychar<0) { - yychar = yylex(); - #ifdef YYDEBUG - if(yydebug >= 2) { - if(yychar <= 0) - printf("lex EOF\n"); - else if(yytoknames[yychar]) - printf("lex %s\n", yytoknames[yychar]); - else - printf("lex (%c)\n", yychar); - } #endif ! if(yychar < 0) ! yychar = 0; ! } ! if((yyn += yychar) < 0 || yyn >= YYLAST) ! goto yydefault; ! if( yychk[ yyn=yyact[ yyn ] ] == yychar ){ /* valid shift */ ! yychar = -1; ! yyval = yylval; ! yystate = yyn; ! if( yyerrflag > 0 ) --yyerrflag; ! goto yystack; ! } ! yydefault: ! /* default state action */ ! if( (yyn=yydef[yystate]) == -2 ) { ! if(yychar < 0) { ! yychar = yylex(); ! #ifdef YYDEBUG ! if(yydebug >= 2) ! if(yychar < 0) ! printf("lex EOF\n"); ! else ! printf("lex %s\n", yytoknames[yychar]); #endif ! if(yychar < 0) ! yychar = 0; ! } ! /* look through exception table */ ! for(yyxi=yyexca; (*yyxi!= (-1)) || (yyxi[1]!=yystate); ! yyxi += 2 ) ; /* VOID */ ! while( *(yyxi+=2) >= 0 ){ ! if( *yyxi == yychar ) break; ! } ! if( (yyn = yyxi[1]) < 0 ) return(0); /* accept */ ! } ! if( yyn == 0 ){ /* error */ ! /* error ... attempt to resume parsing */ ! switch( yyerrflag ){ ! case 0: /* brand new error */ ! #ifdef YYDEBUG ! yyerror("syntax error\n%s", yystates[yystate]); ! if(yytoknames[yychar]) ! yyerror("saw %s\n", yytoknames[yychar]); ! else if(yychar >= ' ' && yychar < '\177') ! yyerror("saw `%c'\n", yychar); ! else if(yychar == 0) ! yyerror("saw EOF\n"); ! else ! yyerror("saw char 0%o\n", yychar); ! #else ! yyerror( "syntax error" ); #endif ! yyerrlab: ! ++yynerrs; ! case 1: ! case 2: /* incompletely recovered error ... try again */ ! yyerrflag = 3; ! /* find a state where "error" is a legal shift action */ ! while ( yyps >= yys ) { ! yyn = yypact[*yyps] + YYERRCODE; ! if( yyn>= 0 && yyn < YYLAST && yychk[yyact[yyn]] == YYERRCODE ){ ! yystate = yyact[yyn]; /* simulate a shift of "error" */ ! goto yystack; ! } ! yyn = yypact[*yyps]; ! /* the current yyps has no shift onn "error", pop stack */ ! #ifdef YYDEBUG ! if( yydebug ) printf( "error recovery pops state %d, uncovers %d\n", *yyps, yyps[-1] ); #endif - --yyps; - --yypv; - } - /* there is no state on the stack with an error shift ... abort */ - yyabort: - return(1); - case 3: /* no shift yet; clobber input char */ - #ifdef YYDEBUG - if( yydebug ) { - printf("error recovery discards "); - if(yytoknames[yychar]) - printf("%s\n", yytoknames[yychar]); - else if(yychar >= ' ' && yychar < '\177') - printf("`%c'\n", yychar); - else if(yychar == 0) - printf("EOF\n"); - else - printf("char 0%o\n", yychar); - } #endif ! if( yychar == 0 ) goto yyabort; /* don't discard EOF, quit */ ! yychar = -1; ! goto yynewstate; /* try again in the same state */ ! } ! } ! /* reduction by production yyn */ ! #ifdef YYDEBUG ! if(yydebug) { char *s; ! printf("reduce %d in:\n\t", yyn); ! for(s = yystates[yystate]; *s; s++) { ! putchar(*s); ! if(*s == '\n' && *(s+1)) ! putchar('\t'); ! } ! } #endif - yyps -= yyr2[yyn]; - yypvt = yypv; - yypv -= yyr2[yyn]; - yyval = yypv[1]; - yym=yyn; - /* consult goto table to find next state */ - yyn = yyr1[yyn]; - yyj = yypgo[yyn] + *yyps + 1; - if( yyj>=YYLAST || yychk[ yystate = yyact[yyj] ] != -yyn ) yystate = yyact[yypgo[yyn]]; - switch(yym){ case 3: ! /* # line 226 "gram.in" */ { /* stat: is the nonterminal for Fortran statements */ ! lastwasbranch = NO; } break; case 5: ! /* # line 232 "gram.in" */ { /* forbid further statement function definitions... */ if (parstate == INDATA && laststfcn != thisstno) parstate = INEXEC; thisstno++; ! if(yypvt[-1].labval && (yypvt[-1].labval->labelno==dorange)) ! enddo(yypvt[-1].labval->labelno); if(lastwasbranch && thislabel==NULL) warn("statement cannot be reached"); lastwasbranch = thiswasbranch; thiswasbranch = NO; ! if(yypvt[-1].labval) { ! if(yypvt[-1].labval->labtype == LABFORMAT) err("label already that of a format"); else ! yypvt[-1].labval->labtype = LABEXEC; } freetemps(); ! } break; case 6: ! /* # line 252 "gram.in" */ { if (can_include) ! doinclude( yypvt[-0].charpval ); else { ! fprintf(diagfile, "Cannot open file %s\n", yypvt[-0].charpval); done(1); } ! } break; case 7: ! /* # line 260 "gram.in" */ ! { if (yypvt[-2].labval) lastwasbranch = NO; endproc(); /* lastwasbranch = NO; -- set in endproc() */ ! } break; case 8: ! /* # line 265 "gram.in" */ { extern void unclassifiable(); unclassifiable(); /* flline flushes the current line, ignoring the rest of the text there */ ! flline(); } break; case 9: ! /* # line 272 "gram.in" */ { flline(); needkwd = NO; inioctl = NO; ! yyerrok; yyclearin; } break; case 10: ! /* # line 277 "gram.in" */ { if(yystno != 0) { --- 170,1454 ---- struct Eqvchain *eqvval; Extsym *extval; } YYSTYPE; ! ! #ifndef YYLTYPE ! typedef ! struct yyltype ! { ! int timestamp; ! int first_line; ! int first_column; ! int last_line; ! int last_column; ! char *text; ! } ! yyltype; ! ! #define YYLTYPE yyltype ! #endif ! ! #include ! ! #ifndef __cplusplus ! #ifndef __STDC__ ! #define const ! #endif ! #endif ! ! ! ! #define YYFINAL 542 ! #define YYFLAG -32768 ! #define YYNTBASE 102 ! ! #define YYTRANSLATE(x) ((unsigned)(x) <= 257 ? yytranslate[x] : 217) ! ! static const char yytranslate[] = { 0, ! 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ! 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, ! 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, ! 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, ! 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, ! 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, ! 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, ! 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, ! 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, ! 93, 94, 95, 96, 97, 98, 99, 100, 101, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 1, 2 ! }; ! ! #if YYDEBUG != 0 ! static const short yyprhs[] = { 0, ! 0, 1, 5, 8, 11, 14, 18, 22, 25, 27, ! 29, 33, 38, 42, 47, 52, 58, 62, 63, 65, ! 67, 68, 70, 73, 77, 79, 83, 85, 89, 90, ! 93, 97, 99, 103, 105, 107, 109, 111, 113, 115, ! 117, 119, 121, 123, 125, 127, 130, 132, 138, 146, ! 152, 158, 159, 162, 164, 166, 168, 170, 172, 174, ! 176, 178, 180, 182, 184, 186, 187, 192, 199, 203, ! 208, 214, 218, 220, 224, 228, 232, 236, 240, 244, ! 248, 252, 254, 258, 262, 266, 267, 274, 275, 276, ! 277, 280, 284, 286, 290, 292, 295, 297, 299, 303, ! 305, 307, 309, 313, 317, 320, 322, 328, 330, 334, ! 335, 339, 340, 343, 347, 349, 353, 355, 357, 359, ! 363, 365, 369, 373, 378, 380, 381, 384, 386, 390, ! 392, 396, 398, 400, 403, 408, 410, 414, 415, 416, ! 418, 420, 424, 426, 430, 432, 434, 436, 440, 444, ! 448, 452, 455, 459, 463, 467, 471, 475, 478, 482, ! 484, 486, 488, 490, 492, 494, 496, 498, 500, 503, ! 508, 514, 520, 521, 523, 525, 527, 529, 531, 533, ! 535, 537, 539, 541, 547, 549, 551, 553, 555, 559, ! 561, 563, 567, 571, 575, 579, 582, 586, 588, 596, ! 601, 603, 606, 609, 616, 619, 622, 628, 632, 634, ! 639, 644, 650, 653, 655, 657, 668, 670, 674, 679, ! 683, 687, 689, 691, 695, 699, 707, 715, 716, 718, ! 722, 724, 728, 730, 733, 735, 737, 739, 743, 744, ! 745, 746, 748, 751, 754, 757, 760, 763, 766, 769, ! 773, 778, 783, 786, 790, 792, 796, 800, 802, 804, ! 806, 810, 812, 814, 816, 818, 820, 824, 828, 830, ! 834, 836, 838, 840, 843, 846, 849, 851, 855, 859, ! 864, 869, 871, 875, 877, 883, 885, 887, 889, 893, ! 897, 901, 905, 909, 913, 915, 919, 925, 931, 937 ! }; ! ! static const short yyrhs[] = { -1, ! 102, 103, 3, 0, 104, 105, 0, 104, 117, 0, ! 104, 180, 0, 104, 20, 116, 0, 104, 39, 194, ! 0, 104, 6, 0, 1, 0, 5, 0, 62, 106, ! 109, 0, 62, 106, 109, 110, 0, 25, 106, 109, ! 0, 71, 106, 107, 113, 0, 46, 106, 107, 113, ! 0, 120, 46, 106, 107, 113, 0, 42, 107, 113, ! 0, 0, 108, 0, 16, 0, 0, 107, 0, 76, ! 77, 0, 76, 111, 77, 0, 112, 0, 111, 80, ! 112, 0, 16, 0, 16, 78, 16, 0, 0, 76, ! 77, 0, 76, 114, 77, 0, 115, 0, 114, 80, ! 115, 0, 108, 0, 84, 0, 7, 0, 118, 0, ! 124, 0, 126, 0, 127, 0, 128, 0, 131, 0, ! 154, 0, 161, 0, 68, 0, 68, 140, 0, 45, ! 0, 59, 164, 76, 142, 77, 0, 120, 188, 108, ! 164, 119, 147, 123, 0, 118, 80, 108, 147, 123, ! 0, 118, 101, 134, 136, 101, 0, 0, 121, 123, ! 0, 122, 0, 54, 0, 65, 0, 30, 0, 36, ! 0, 33, 0, 56, 0, 27, 0, 74, 0, 34, ! 0, 23, 0, 69, 0, 0, 84, 195, 167, 196, ! 0, 84, 195, 76, 84, 77, 196, 0, 29, 164, ! 144, 0, 29, 164, 125, 144, 0, 124, 188, 125, ! 188, 144, 0, 124, 80, 144, 0, 87, 0, 85, ! 16, 85, 0, 44, 164, 108, 0, 126, 80, 108, ! 0, 55, 164, 108, 0, 127, 80, 108, 0, 43, ! 164, 129, 0, 128, 80, 129, 0, 76, 130, 77, ! 0, 171, 0, 130, 80, 171, 0, 32, 132, 133, ! 0, 131, 188, 133, 0, 0, 134, 146, 85, 135, ! 136, 85, 0, 0, 0, 0, 137, 138, 0, 136, ! 80, 138, 0, 139, 0, 174, 84, 139, 0, 174, ! 0, 169, 174, 0, 176, 0, 141, 0, 140, 80, ! 141, 0, 108, 0, 125, 0, 143, 0, 142, 80, ! 143, 0, 108, 78, 167, 0, 108, 147, 0, 171, ! 0, 76, 146, 80, 182, 77, 0, 145, 0, 146, ! 80, 145, 0, 0, 76, 148, 77, 0, 0, 149, ! 150, 0, 148, 80, 150, 0, 151, 0, 167, 79, ! 151, 0, 84, 0, 167, 0, 153, 0, 152, 80, ! 153, 0, 8, 0, 52, 164, 155, 0, 154, 80, ! 155, 0, 156, 76, 158, 77, 0, 156, 0, 0, ! 157, 120, 0, 159, 0, 158, 80, 159, 0, 160, ! 0, 160, 83, 160, 0, 16, 0, 57, 0, 161, ! 162, 0, 85, 108, 85, 163, 0, 108, 0, 163, ! 80, 108, 0, 0, 0, 166, 0, 167, 0, 166, ! 80, 167, 0, 168, 0, 76, 167, 77, 0, 176, ! 0, 171, 0, 175, 0, 167, 169, 167, 0, 167, ! 84, 167, 0, 167, 85, 167, 0, 167, 86, 167, ! 0, 169, 167, 0, 167, 170, 167, 0, 167, 91, ! 167, 0, 167, 90, 167, 0, 167, 89, 167, 0, ! 167, 88, 167, 0, 92, 167, 0, 167, 87, 167, ! 0, 82, 0, 83, 0, 93, 0, 95, 0, 94, ! 0, 97, 0, 96, 0, 98, 0, 108, 0, 108, ! 172, 0, 108, 76, 165, 77, 0, 108, 76, 165, ! 77, 172, 0, 76, 173, 79, 173, 77, 0, 0, ! 167, 0, 108, 0, 175, 0, 14, 0, 15, 0, ! 7, 0, 8, 0, 9, 0, 10, 0, 177, 0, ! 76, 168, 80, 168, 77, 0, 13, 0, 12, 0, ! 11, 0, 179, 0, 76, 178, 77, 0, 171, 0, ! 175, 0, 178, 169, 178, 0, 178, 84, 178, 0, ! 178, 85, 178, 0, 178, 86, 178, 0, 169, 178, ! 0, 178, 87, 178, 0, 184, 0, 35, 194, 195, ! 153, 196, 188, 183, 0, 35, 194, 188, 183, 0, ! 99, 0, 181, 184, 0, 181, 72, 0, 38, 194, ! 76, 167, 77, 72, 0, 37, 194, 0, 41, 194, ! 0, 51, 194, 76, 167, 77, 0, 108, 78, 193, ! 0, 182, 0, 100, 76, 167, 77, 0, 186, 171, ! 78, 167, 0, 22, 194, 185, 73, 108, 0, 31, ! 194, 0, 187, 0, 197, 0, 50, 194, 76, 167, ! 77, 153, 80, 153, 80, 153, 0, 189, 0, 189, ! 76, 77, 0, 189, 76, 190, 77, 0, 66, 194, ! 173, 0, 192, 194, 173, 0, 8, 0, 21, 0, ! 47, 194, 153, 0, 48, 194, 108, 0, 48, 194, ! 108, 188, 76, 152, 77, 0, 49, 194, 76, 152, ! 77, 188, 167, 0, 0, 80, 0, 26, 194, 108, ! 0, 191, 0, 190, 80, 191, 0, 167, 0, 84, ! 153, 0, 60, 0, 70, 0, 167, 0, 193, 80, ! 167, 0, 0, 0, 0, 198, 0, 199, 204, 0, ! 199, 179, 0, 199, 84, 0, 199, 86, 0, 201, ! 204, 0, 208, 204, 0, 208, 203, 0, 208, 204, ! 211, 0, 208, 203, 80, 211, 0, 208, 204, 80, ! 211, 0, 209, 204, 0, 209, 204, 213, 0, 210, ! 0, 210, 80, 213, 0, 200, 194, 216, 0, 24, ! 0, 67, 0, 40, 0, 202, 194, 216, 0, 53, ! 0, 58, 0, 28, 0, 179, 0, 84, 0, 76, ! 178, 77, 0, 76, 205, 77, 0, 206, 0, 205, ! 80, 206, 0, 178, 0, 84, 0, 86, 0, 207, ! 167, 0, 207, 84, 0, 207, 86, 0, 17, 0, ! 64, 194, 216, 0, 75, 194, 216, 0, 61, 194, ! 178, 216, 0, 61, 194, 84, 216, 0, 212, 0, ! 211, 80, 212, 0, 171, 0, 76, 211, 80, 182, ! 77, 0, 168, 0, 215, 0, 214, 0, 168, 80, ! 168, 0, 168, 80, 215, 0, 215, 80, 168, 0, ! 215, 80, 215, 0, 214, 80, 168, 0, 214, 80, ! 215, 0, 176, 0, 76, 167, 77, 0, 76, 168, ! 80, 182, 77, 0, 76, 215, 80, 182, 77, 0, ! 76, 214, 80, 182, 77, 0, 0 ! }; ! ! #endif ! ! #if YYDEBUG != 0 ! static const short yyrline[] = { 0, ! 221, 222, 225, 230, 231, 251, 259, 264, 271, 276, ! 304, 306, 310, 313, 315, 317, 319, 327, 331, 335, ! 339, 340, 343, 345, 348, 349, 352, 353, 356, 358, ! 361, 365, 367, 371, 376, 392, 400, 401, 402, 403, ! 404, 405, 406, 407, 408, 411, 413, 415, 419, 423, ! 427, 435, 437, 441, 447, 448, 449, 450, 451, 452, ! 453, 454, 455, 456, 457, 460, 462, 488, 492, 494, ! 496, 498, 502, 504, 508, 510, 514, 516, 520, 521, ! 524, 537, 541, 548, 549, 552, 567, 576, 578, 580, ! 581, 581, 584, 586, 590, 591, 596, 599, 600, 603, ! 610, 613, 614, 617, 624, 628, 640, 656, 662, 666, ! 668, 671, 672, 672, 675, 685, 697, 699, 702, 704, ! 708, 712, 714, 717, 718, 724, 726, 728, 729, 732, ! 734, 738, 748, 749, 752, 766, 768, 772, 794, 796, ! 800, 802, 807, 808, 810, 813, 814, 815, 817, 819, ! 821, 823, 828, 830, 833, 836, 838, 840, 842, 847, ! 848, 851, 852, 853, 854, 855, 856, 859, 861, 864, ! 866, 871, 875, 877, 880, 885, 888, 889, 890, 891, ! 892, 893, 894, 897, 901, 904, 907, 912, 913, 917, ! 918, 919, 921, 923, 925, 927, 932, 936, 937, 944, ! 949, 951, 953, 954, 956, 958, 962, 966, 970, 971, ! 975, 977, 979, 980, 981, 983, 985, 987, 989, 995, ! 997, 1001, 1005, 1014, 1016, 1018, 1020, 1028, 1029, 1032, ! 1036, 1038, 1042, 1043, 1047, 1049, 1053, 1055, 1059, 1072, ! 1076, 1081, 1085, 1086, 1088, 1090, 1092, 1093, 1095, 1097, ! 1099, 1101, 1103, 1105, 1107, 1109, 1113, 1116, 1118, 1120, ! 1124, 1127, 1129, 1131, 1135, 1141, 1149, 1154, 1158, 1159, ! 1162, 1164, 1166, 1168, 1170, 1172, 1176, 1180, 1184, 1188, ! 1195, 1204, 1206, 1210, 1212, 1216, 1218, 1220, 1223, 1225, ! 1227, 1229, 1231, 1233, 1237, 1239, 1241, 1243, 1245, 1249 ! }; ! ! static const char * const yytname[] = { "$","error","$illegal.","SEOS","SCOMMENT", ! "SLABEL","SUNKNOWN","SHOLLERITH","SICON","SRCON","SDCON","SBITCON","SOCTCON", ! "SHEXCON","STRUE","SFALSE","SNAME","SNAMEEQ","SFIELD","SSCALE","SINCLUDE","SLET", ! "SASSIGN","SAUTOMATIC","SBACKSPACE","SBLOCK","SCALL","SCHARACTER","SCLOSE","SCOMMON", ! "SCOMPLEX","SCONTINUE","SDATA","SDCOMPLEX","SDIMENSION","SDO","SDOUBLE","SELSE", ! "SELSEIF","SEND","SENDFILE","SENDIF","SENTRY","SEQUIV","SEXTERNAL","SFORMAT", ! "SFUNCTION","SGOTO","SASGOTO","SCOMPGOTO","SARITHIF","SLOGIF","SIMPLICIT","SINQUIRE", ! "SINTEGER","SINTRINSIC","SLOGICAL","SNAMELIST","SOPEN","SPARAM","SPAUSE","SPRINT", ! "SPROGRAM","SPUNCH","SREAD","SREAL","SRETURN","SREWIND","SSAVE","SSTATIC","SSTOP", ! "SSUBROUTINE","STHEN","STO","SUNDEFINED","SWRITE","SLPAR","SRPAR","SEQUALS", ! "SCOLON","SCOMMA","SCURRENCY","SPLUS","SMINUS","SSTAR","SSLASH","SPOWER","SCONCAT", ! "SAND","SOR","SNEQV","SEQV","SNOT","SEQ","SLT","SGT","SLE","SGE","SNE","SENDDO", ! "SWHILE","SSLASHD","program","stat","thislabel","entry","new_proc","entryname", ! "name","progname","progarglist","progargs","progarg","arglist","args","arg", ! "filename","spec","dcl","new_dcl","type","typespec","typename","lengspec","common", ! "comblock","external","intrinsic","equivalence","equivset","equivlist","data", ! "in_data","datalist","datainit","datapop","vallist","@1","val","value","savelist", ! "saveitem","paramlist","paramitem","var","datavar","datavarlist","dims","dimlist", ! "@2","dim","ubound","labellist","label","implicit","implist","imptype","@3", ! "letgroups","letgroup","letter","namelist","namelistentry","namelistlist","in_dcl", ! "funarglist","funargs","expr","uexpr","addop","relop","lhs","substring","opt_expr", ! "simple","simple_const","complex_const","bit_const","fexpr","unpar_fexpr","exec", ! "logif","dospec","dospecw","iffable","assignlabel","let","goto","opt_comma", ! "call","callarglist","callarg","stop","exprlist","end_spec","intonlyon","intonlyoff", ! "io","io1","iofmove","fmkwd","iofctl","ctlkwd","infmt","ioctl","ctllist","ioclause", ! "nameeq","read","write","print","inlist","inelt","outlist","out2","other","in_ioctl", ! "" ! }; ! #endif ! ! static const short yyr1[] = { 0, ! 102, 102, 103, 103, 103, 103, 103, 103, 103, 104, ! 105, 105, 105, 105, 105, 105, 105, 106, 107, 108, ! 109, 109, 110, 110, 111, 111, 112, 112, 113, 113, ! 113, 114, 114, 115, 115, 116, 117, 117, 117, 117, ! 117, 117, 117, 117, 117, 117, 117, 117, 118, 118, ! 118, 119, 120, 121, 122, 122, 122, 122, 122, 122, ! 122, 122, 122, 122, 122, 123, 123, 123, 124, 124, ! 124, 124, 125, 125, 126, 126, 127, 127, 128, 128, ! 129, 130, 130, 131, 131, 132, 133, 134, 135, 137, ! 136, 136, 138, 138, 139, 139, 139, 140, 140, 141, ! 141, 142, 142, 143, 144, 145, 145, 146, 146, 147, ! 147, 149, 148, 148, 150, 150, 151, 151, 152, 152, ! 153, 154, 154, 155, 155, 157, 156, 158, 158, 159, ! 159, 160, 161, 161, 162, 163, 163, 164, 165, 165, ! 166, 166, 167, 167, 167, 168, 168, 168, 168, 168, ! 168, 168, 168, 168, 168, 168, 168, 168, 168, 169, ! 169, 170, 170, 170, 170, 170, 170, 171, 171, 171, ! 171, 172, 173, 173, 174, 174, 175, 175, 175, 175, ! 175, 175, 175, 176, 177, 177, 177, 178, 178, 179, ! 179, 179, 179, 179, 179, 179, 179, 180, 180, 180, ! 180, 180, 180, 180, 180, 180, 181, 182, 183, 183, ! 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, ! 184, 185, 186, 187, 187, 187, 187, 188, 188, 189, ! 190, 190, 191, 191, 192, 192, 193, 193, 194, 195, ! 196, 197, 198, 198, 198, 198, 198, 198, 198, 198, ! 198, 198, 198, 198, 198, 198, 199, 200, 200, 200, ! 201, 202, 202, 202, 203, 203, 204, 204, 205, 205, ! 206, 206, 206, 206, 206, 206, 207, 208, 209, 210, ! 210, 211, 211, 212, 212, 213, 213, 213, 214, 214, ! 214, 214, 214, 214, 215, 215, 215, 215, 215, 216 ! }; ! ! static const short yyr2[] = { 0, ! 0, 3, 2, 2, 2, 3, 3, 2, 1, 1, ! 3, 4, 3, 4, 4, 5, 3, 0, 1, 1, ! 0, 1, 2, 3, 1, 3, 1, 3, 0, 2, ! 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, ! 1, 1, 1, 1, 1, 2, 1, 5, 7, 5, ! 5, 0, 2, 1, 1, 1, 1, 1, 1, 1, ! 1, 1, 1, 1, 1, 0, 4, 6, 3, 4, ! 5, 3, 1, 3, 3, 3, 3, 3, 3, 3, ! 3, 1, 3, 3, 3, 0, 6, 0, 0, 0, ! 2, 3, 1, 3, 1, 2, 1, 1, 3, 1, ! 1, 1, 3, 3, 2, 1, 5, 1, 3, 0, ! 3, 0, 2, 3, 1, 3, 1, 1, 1, 3, ! 1, 3, 3, 4, 1, 0, 2, 1, 3, 1, ! 3, 1, 1, 2, 4, 1, 3, 0, 0, 1, ! 1, 3, 1, 3, 1, 1, 1, 3, 3, 3, ! 3, 2, 3, 3, 3, 3, 3, 2, 3, 1, ! 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, ! 5, 5, 0, 1, 1, 1, 1, 1, 1, 1, ! 1, 1, 1, 5, 1, 1, 1, 1, 3, 1, ! 1, 3, 3, 3, 3, 2, 3, 1, 7, 4, ! 1, 2, 2, 6, 2, 2, 5, 3, 1, 4, ! 4, 5, 2, 1, 1, 10, 1, 3, 4, 3, ! 3, 1, 1, 3, 3, 7, 7, 0, 1, 3, ! 1, 3, 1, 2, 1, 1, 1, 3, 0, 0, ! 0, 1, 2, 2, 2, 2, 2, 2, 2, 3, ! 4, 4, 2, 3, 1, 3, 3, 1, 1, 1, ! 3, 1, 1, 1, 1, 1, 3, 3, 1, 3, ! 1, 1, 1, 2, 2, 2, 1, 3, 3, 4, ! 4, 1, 3, 1, 5, 1, 1, 1, 3, 3, ! 3, 3, 3, 3, 1, 3, 5, 5, 5, 0 ! }; ! ! static const short yydefact[] = { 1, ! 0, 9, 10, 0, 0, 2, 8, 0, 223, 239, ! 64, 258, 18, 239, 61, 264, 138, 57, 239, 86, ! 59, 63, 239, 58, 239, 239, 239, 260, 239, 0, ! 138, 138, 47, 18, 239, 239, 239, 239, 239, 138, ! 262, 55, 138, 60, 133, 263, 138, 235, 239, 18, ! 239, 56, 239, 259, 45, 65, 236, 18, 62, 239, ! 201, 3, 4, 37, 228, 66, 54, 228, 39, 40, ! 41, 228, 43, 44, 5, 0, 198, 0, 214, 217, ! 239, 215, 242, 0, 239, 0, 239, 0, 0, 255, ! 36, 6, 0, 21, 0, 0, 213, 88, 228, 205, ! 0, 7, 206, 20, 29, 19, 0, 0, 0, 0, ! 0, 0, 0, 0, 126, 0, 0, 0, 21, 300, ! 173, 0, 73, 100, 101, 46, 98, 0, 300, 0, ! 88, 18, 229, 0, 240, 53, 229, 0, 0, 0, ! 0, 88, 126, 0, 134, 203, 202, 168, 0, 0, ! 173, 179, 180, 181, 182, 187, 186, 185, 177, 178, ! 0, 160, 161, 245, 246, 0, 190, 191, 183, 0, ! 188, 243, 300, 0, 247, 300, 266, 188, 249, 248, ! 253, 0, 222, 0, 22, 13, 230, 110, 0, 69, ! 84, 0, 0, 0, 0, 0, 17, 0, 79, 75, ! 29, 121, 224, 225, 0, 0, 0, 122, 125, 0, ! 77, 0, 0, 300, 300, 188, 11, 278, 0, 0, ! 174, 143, 0, 146, 220, 147, 145, 0, 0, 29, ! 279, 110, 90, 0, 138, 0, 72, 228, 76, 78, ! 80, 85, 123, 0, 139, 169, 0, 218, 0, 233, ! 0, 231, 221, 277, 272, 273, 271, 0, 269, 0, ! 196, 0, 0, 0, 0, 0, 257, 271, 261, 0, ! 0, 0, 284, 250, 282, 0, 0, 143, 145, 254, ! 288, 287, 256, 0, 112, 105, 70, 0, 108, 0, ! 106, 0, 0, 209, 200, 241, 0, 30, 35, 34, ! 0, 32, 0, 82, 15, 0, 0, 119, 0, 0, ! 0, 127, 0, 0, 102, 0, 281, 280, 0, 12, ! 0, 143, 158, 0, 0, 0, 0, 0, 0, 0, ! 0, 162, 164, 163, 166, 165, 167, 0, 0, 152, ! 74, 99, 14, 66, 0, 0, 29, 52, 0, 241, ! 0, 0, 0, 140, 141, 0, 211, 234, 219, 0, ! 189, 268, 0, 275, 276, 274, 193, 194, 195, 197, ! 192, 267, 251, 0, 252, 0, 0, 143, 0, 0, ! 0, 0, 0, 212, 0, 0, 0, 0, 89, 0, ! 0, 228, 0, 31, 0, 81, 0, 0, 228, 0, ! 0, 207, 132, 0, 128, 130, 0, 48, 0, 189, ! 27, 23, 0, 25, 144, 0, 149, 150, 151, 159, ! 157, 156, 155, 154, 148, 153, 50, 0, 51, 0, ! 175, 91, 93, 0, 95, 176, 97, 16, 110, 0, ! 67, 71, 136, 135, 170, 0, 173, 232, 271, 270, ! 0, 283, 144, 0, 0, 0, 143, 290, 143, 294, ! 143, 292, 111, 0, 117, 113, 115, 118, 0, 109, ! 90, 0, 237, 208, 0, 204, 33, 83, 0, 0, ! 120, 0, 124, 0, 0, 104, 103, 0, 24, 0, ! 143, 92, 96, 0, 66, 241, 0, 173, 171, 142, ! 0, 168, 0, 143, 0, 0, 0, 114, 0, 0, ! 0, 210, 0, 199, 226, 227, 0, 129, 131, 28, ! 26, 184, 94, 95, 49, 68, 137, 172, 285, 297, ! 299, 298, 116, 118, 107, 87, 238, 0, 0, 216, ! 0, 0 ! }; ! ! static const short yydefgoto[] = { 1, ! 4, 5, 62, 94, 185, 148, 186, 320, 413, 414, ! 197, 301, 302, 92, 63, 64, 439, 65, 66, 67, ! 136, 68, 125, 69, 70, 71, 199, 303, 72, 98, ! 191, 192, 471, 345, 346, 432, 433, 126, 127, 314, ! 315, 190, 289, 290, 286, 385, 386, 466, 467, 307, ! 308, 73, 208, 209, 210, 404, 405, 406, 74, 145, ! 444, 96, 353, 354, 277, 222, 223, 339, 224, 246, ! 356, 435, 226, 227, 169, 170, 216, 75, 76, 294, ! 295, 77, 184, 78, 79, 134, 80, 251, 252, 81, ! 474, 93, 194, 392, 82, 83, 84, 85, 86, 87, ! 179, 172, 258, 259, 260, 88, 89, 90, 274, 275, ! 280, 281, 282, 218 ! }; ! ! static const short yypact[] = {-32768, ! 58,-32768,-32768, 15, 833,-32768,-32768, 40,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 45, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768, 52,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768, -29, 2, -22,-32768, 11, -25, 47, ! 93, 13, 110, 3,-32768, 1083,-32768, 45,-32768, 105, ! -32768,-32768,-32768, 948,-32768, 115,-32768, 959, 115, 122, ! -32768,-32768, 200, 45, 45, 52,-32768,-32768, 44,-32768, ! 148,-32768,-32768,-32768, 149,-32768, 161, 45, 45, 241, ! 45, 175, 186, 212,-32768, 45, 217, 1037, 45,-32768, ! 743, 239,-32768,-32768,-32768, 209,-32768, 45,-32768, 45, ! -32768,-32768,-32768, 45,-32768,-32768, 45, 56, 45, 45, ! 161,-32768,-32768, 45,-32768,-32768,-32768, 219, 222, 473, ! 743,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! 937,-32768,-32768,-32768,-32768, 220,-32768,-32768,-32768, 333, ! 306,-32768,-32768, 937,-32768,-32768,-32768, 23, 227, 7, ! 902, 902,-32768, 237,-32768,-32768,-32768, 235, 45,-32768, ! -32768, 8, -1, 241, 743, 51,-32768, 45,-32768,-32768, ! 149,-32768,-32768, 78, 241, 743, 743,-32768, 244, 304, ! -32768, 45, 220,-32768, 333,-32768, 247,-32768, 743, 743, ! 1244,-32768, 743,-32768,-32768,-32768,-32768, 228, 52, 149, ! -32768, 235,-32768, 45,-32768, 926,-32768, 245,-32768,-32768, ! -32768,-32768,-32768, 243, 590,-32768, 743,-32768, 241, 1244, ! 94,-32768,-32768,-32768,-32768,-32768, 101, 100,-32768, 486, ! 231, 220, 220, 220, 220, 220,-32768, 191,-32768, 60, ! 60, 60,-32768, 249,-32768, 902, 1244, 35, 37,-32768, ! 252, 255,-32768, 45,-32768,-32768,-32768, 8,-32768, -5, ! -32768, 260, 261,-32768,-32768,-32768, 1077,-32768,-32768,-32768, ! 112,-32768, 121,-32768,-32768, 266, 123,-32768, 1099, 1121, ! 330,-32768, 269, 173,-32768, 308,-32768,-32768, 53,-32768, ! 1143, 281, 1002, 743, 743, 743, 743, 743, 743, 743, ! 743,-32768,-32768,-32768,-32768,-32768,-32768, 743, 743, 276, ! -32768,-32768,-32768, -22, -24, 232, 149,-32768, 685, 1244, ! 45, 45, 286, 287, 1207, 285, 1244,-32768,-32768, 696, ! 14,-32768, 937,-32768,-32768, 1244, 231, 231, 231, 66, ! 130,-32768, 249, 290, 249, 60, 1165, 291, 292, 294, ! 902, 902, 902,-32768, 179, 725, 295, 8,-32768, 743, ! 743, 245, 305,-32768, 28,-32768, 45, 241, 245, 241, ! 241,-32768,-32768, 183,-32768, 283, 743,-32768, 45,-32768, ! 298,-32768, 187,-32768,-32768, 743, 276, 276, 276, 197, ! 1002, 1278, 1261, 1261, 213, 1295,-32768, 232,-32768, 743, ! -32768,-32768,-32768, 462, 296,-32768,-32768,-32768, 235, 307, ! -32768,-32768,-32768, 301, 310, 743, 743,-32768, 333,-32768, ! 60,-32768, 38, 902, 902, 902, 39,-32768, 42,-32768, ! 43,-32768,-32768, 725,-32768,-32768,-32768, 1227, 8,-32768, ! -32768, 1187, 1244, 302, -1,-32768,-32768,-32768, 189, 743, ! -32768, 316,-32768, 330, 330, 1244,-32768, 371,-32768, 381, ! 322,-32768,-32768, 232, -22,-32768, 45, 743,-32768, 1244, ! 325, 86, 326, 210, 329, 332, 334,-32768, 725, 336, ! 46,-32768, 743,-32768,-32768, 1244, 241,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768, 1244,-32768,-32768, 1244, 342, 241,-32768, ! 410,-32768 ! }; ! ! static const short yypgoto[] = {-32768, ! -32768,-32768,-32768, -21, -8, -30, 309,-32768,-32768, -67, ! -194,-32768, 32,-32768,-32768,-32768,-32768, 223,-32768,-32768, ! -339,-32768, -64,-32768,-32768,-32768, 288,-32768,-32768,-32768, ! 300, 312,-32768, -39,-32768, 10, -58,-32768, 211,-32768, ! 41, -129, -367, 156, -229,-32768,-32768, -17, -57, 55, ! -109,-32768, 313,-32768,-32768,-32768, -33, -20,-32768,-32768, ! -32768, -12,-32768,-32768, 284, -111, 91,-32768, 455, 18, ! -117, -381, -45, -170,-32768, -69, 73,-32768,-32768, -309, ! -9, 379,-32768,-32768,-32768, -66,-32768,-32768, 132,-32768, ! -32768, 1041, 370, -341,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768, 81,-32768, 143,-32768,-32768,-32768,-32768, 79, -326, ! 339, 242, -249, -119 ! }; ! ! ! #define YYLAST 1393 ! ! ! static const short yytable[] = { 106, ! 203, 138, 344, 225, 427, 142, 305, 237, 441, 231, ! 279, 279, 109, -38, 104, -42, -267, 6, 107, 108, ! 470, 105, 104, 104, 124, -265, 380, 115, 119, -267, ! 116, 189, 193, 253, 117, 343, 128, -286, 168, -295, ! -296, -289, 168, 104, -293, -291, 91, 132, 215, 452, ! 130, -240, 493, 267, 139, 428, 269, 541, 2, 287, ! 104, 135, 3, 106, 187, 188, 104, 104, 411, 278, ! 278, 131, 168, 238, 388, 104, 429, 200, 106, 389, ! 204, 133, 271, 288, 296, 211, 272, 144, 106, -267, ! 137, 257, 133, -267, 317, 318, 261, 106, 292, 232, ! 201, 470, -265, 235, 268, 279, 188, 322, 239, 240, ! 234, 299, 524, 244, 381, 168, -295, -296, -289, 230, ! 168, -293, -291, 133, 452, 428, 140, 298, 168, 412, ! 536, 458, 460, 462, 299, 271, 122, 306, 123, 358, ! 122, 503, 123, 316, 505, 506, 507, 162, 163, 262, ! 263, 264, 438, -228, 526, 525, 171, 133, 188, 510, ! 178, 245, 293, 391, 378, 300, 175, 168, 180, 181, ! 359, 351, 141, 360, 166, 437, 362, 361, 166, 363, ! 150, 313, 162, 163, 262, 263, 264, 265, 394, 143, ! 174, 395, 367, 368, 369, 370, 371, 396, 124, 399, ! 397, 182, 400, 106, 458, 460, 462, 183, 166, 495, ! 279, 279, 279, 262, 263, 264, 168, 168, 168, 168, ! 168, 442, 348, 195, 196, 347, 152, 153, 154, 155, ! 156, 157, 158, 159, 160, 104, 198, 322, 152, 153, ! 154, 155, 156, 157, 158, 159, 160, 104, 202, 408, ! 205, 166, 409, 384, 228, 463, 166, 437, 464, 483, ! 266, 206, 484, 489, 166, 515, 490, 372, 400, 457, ! 459, 461, 162, 163, 262, 263, 264, 265, 162, 163, ! 324, 325, 326, 279, 279, 279, 522, 207, 229, -289, ! 481, 482, 212, 449, 245, 213, 324, 325, 326, 247, ! 436, 162, 163, 166, 491, 266, 270, 430, -244, 284, ! 285, 338, 341, 162, 163, 431, 264, 168, 322, 311, ! 188, 443, 319, 437, 133, 475, 11, 352, 376, 501, ! 15, 382, 480, 18, 383, 390, 21, 22, 391, 24, ! 338, 398, 504, 459, 461, 403, 407, 266, 373, 374, ! 375, 266, 166, 166, 166, 166, 166, 42, 266, 44, ! 416, 326, 445, 447, 300, 485, 446, 338, 52, 451, ! 454, 455, 56, 456, 469, 488, 476, 59, 313, 494, ! 497, 513, 436, 496, 410, 498, 520, 338, 436, 162, ! 163, 262, 263, 264, 265, 517, 411, 431, 522, 338, ! 338, 528, 529, 431, 221, 530, 266, 538, 531, 542, ! 532, 338, 535, 338, 162, 163, 262, 263, 264, 265, ! 502, 539, 521, 502, 502, 502, 477, 217, 241, 540, ! 338, 511, 312, 250, 221, 523, 434, 492, 502, 342, ! 338, 242, 233, 387, 293, 338, 508, 338, 436, 487, ! 518, 533, 479, 166, 147, 243, 338, 266, 266, 266, ! 266, 266, 499, 431, 519, 514, 527, 338, 152, 153, ! 154, 155, 156, 157, 158, 159, 160, 104, 297, 152, ! 153, 154, 155, 156, 157, 158, 159, 160, 104, 309, ! 310, 448, 152, 153, 154, 155, 156, 157, 158, 159, ! 160, 104, 321, 323, 236, 450, 340, 338, 338, 338, ! 338, 338, 338, 338, 338, 338, 338, 379, 434, 350, ! 283, 0, 0, 0, 0, 0, 0, 0, 355, 0, ! 357, 0, 149, 0, 0, 0, 0, 0, 167, 266, ! 0, 0, 167, 366, 0, 0, 0, 0, 219, 248, ! 0, 0, 0, 0, 162, 163, 249, 0, 338, 377, ! 0, 219, 338, 338, 220, 0, 0, 162, 163, 364, ! 0, 365, 167, 0, 0, 0, 338, 220, 0, 0, ! 0, 0, 0, 0, 434, 0, 0, 0, 0, 0, ! 338, 0, 0, 0, 0, 0, 152, 153, 154, 155, ! 156, 157, 158, 159, 160, 104, 338, 417, 418, 419, ! 420, 421, 422, 423, 424, 167, 0, 0, 0, 0, ! 167, 425, 426, 0, 338, 0, 0, 338, 167, 0, ! 0, 0, 321, 0, 273, 0, 0, 0, 0, 0, ! 0, 0, 0, 250, 0, 0, 291, 0, 0, 0, ! 0, 0, 304, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 219, 0, 167, -173, 468, ! 0, 162, 163, 472, 473, 0, 0, 0, 0, 0, ! 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, ! 486, 152, 153, 154, 155, 156, 157, 158, 159, 160, ! 104, 0, 152, 153, 154, 155, 156, 157, 158, 159, ! 160, 104, 0, 0, 0, 0, 167, 167, 167, 167, ! 167, 0, 0, 0, 273, 273, 273, 0, 0, 500, ! 221, 152, 153, 154, 155, 156, 157, 158, 159, 160, ! 104, 0, 291, 0, 0, 0, 0, 468, 0, 152, ! 153, 154, 155, 156, 157, 158, 159, 160, 104, 0, ! 219, 0, 0, 516, 0, 0, 162, 163, 440, 0, ! 0, 219, 0, 0, 0, 0, 220, 162, 163, 249, ! 0, 221, 0, 0, 0, 0, 0, 220, 0, 0, ! 0, 0, 534, 0, 0, 0, 537, 0, 0, 0, ! 219, 0, 0, 0, 0, 0, 162, 163, 465, 0, ! 0, 0, 0, 0, 0, 0, 220, 167, 219, 0, ! 0, 0, 0, 0, 162, 163, 0, 0, 0, 0, ! 273, 0, 0, 0, 220, 0, 0, 0, 7, 0, ! 0, 0, 291, 0, 0, 0, 0, 0, 0, 0, ! 0, 478, 8, 9, 10, 11, 12, 13, 14, 15, ! 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, ! 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, ! 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, ! 46, 47, 48, 49, 50, 0, 51, 52, 53, 54, ! 55, 56, 57, 58, 0, 273, 59, 60, 152, 153, ! 154, 155, 156, 157, 158, 159, 160, 104, 0, 0, ! 0, 0, 0, 291, 0, 0, 0, 0, 0, 0, ! 0, 61, 152, 153, 154, 155, 156, 157, 158, 159, ! 160, 104, 0, 152, 153, 154, 155, 156, 157, 158, ! 159, 160, 104, 254, 152, 153, 154, 155, 156, 157, ! 158, 159, 160, 104, 0, 152, 153, 154, 155, 156, ! 157, 158, 159, 160, 104, 0, 0, 276, 0, 0, ! 0, 0, 0, 162, 163, 0, 0, 0, 0, 0, ! 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, ! 0, 349, 0, 0, 0, 0, 0, 162, 163, 0, ! 0, 0, 213, 0, 0, 0, 0, 220, 162, 163, ! 255, 0, 256, 161, 0, 0, 0, 0, 0, 162, ! 163, 164, 0, 165, 161, 0, 0, 0, 0, 0, ! 162, 163, 177, 152, 153, 154, 155, 156, 157, 158, ! 159, 160, 104, 0, 95, 0, 0, 0, 0, 97, ! 0, 0, 0, 99, 0, 100, 101, 102, 0, 103, ! 0, 0, 0, 0, 0, 110, 111, 112, 113, 114, ! 0, 0, 0, 162, 163, 324, 325, 326, 327, 118, ! 0, 120, 0, 121, 332, 333, 334, 335, 336, 337, ! 129, 0, 0, 9, 10, 0, 12, 0, 14, 0, ! 16, 0, 213, 19, 0, 0, 0, 0, 162, 163, ! 214, 151, 28, 0, 0, 173, 0, 176, 0, 35, ! 36, 37, 38, 0, 0, 41, 0, 0, 0, 0, ! 46, 0, 48, 49, 0, 0, 51, 0, 53, 54, ! 0, 0, 57, 393, 146, 0, 0, 60, 162, 163, ! 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, ! 333, 334, 335, 336, 337, 401, 0, 0, 0, 0, ! 162, 163, 324, 325, 326, 327, 328, 329, 330, 331, ! 0, 332, 333, 334, 335, 336, 337, 402, 0, 0, ! 0, 0, 162, 163, 324, 325, 326, 327, 328, 329, ! 330, 331, 0, 332, 333, 334, 335, 336, 337, 415, ! 0, 0, 0, 0, 162, 163, 324, 325, 326, 327, ! 328, 329, 330, 331, 0, 332, 333, 334, 335, 336, ! 337, 453, 0, 0, 0, 0, 162, 163, 324, 325, ! 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, ! 335, 336, 337, 512, 0, 0, 0, 0, 162, 163, ! 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, ! 333, 334, 335, 336, 337, -174, 0, 0, 162, 163, ! 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, ! 333, 334, 335, 336, 337, 509, 0, 0, 162, 163, ! 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, ! 333, 334, 335, 336, 337, 162, 163, 324, 325, 326, ! 327, 328, 329, 330, 331, 0, 332, 333, 334, 335, ! 336, 337, 162, 163, 324, 325, 326, 327, 328, 329, ! 0, 0, 0, 332, 333, 334, 335, 336, 337, 162, ! 163, 324, 325, 326, 327, 328, 0, 0, 0, 0, ! 332, 333, 334, 335, 336, 337, 162, 163, 324, 325, ! 326, 327, 0, 0, 0, 0, 0,-32768,-32768,-32768, ! -32768,-32768,-32768 ! }; ! ! static const short yycheck[] = { 30, ! 110, 68, 232, 121, 344, 72, 201, 137, 350, 129, ! 181, 182, 34, 3, 16, 3, 3, 3, 31, 32, ! 388, 30, 16, 16, 55, 3, 276, 40, 50, 16, ! 43, 96, 99, 151, 47, 230, 58, 3, 84, 3, ! 3, 3, 88, 16, 3, 3, 7, 46, 118, 376, ! 80, 8, 434, 173, 80, 80, 176, 0, 1, 189, ! 16, 84, 5, 94, 95, 96, 16, 16, 16, 181, ! 182, 101, 118, 138, 80, 16, 101, 108, 109, 85, ! 111, 80, 76, 76, 194, 116, 80, 85, 119, 76, ! 80, 161, 80, 80, 214, 215, 166, 128, 100, 130, ! 109, 469, 80, 134, 174, 276, 137, 219, 139, 140, ! 132, 84, 494, 144, 80, 161, 80, 80, 80, 128, ! 166, 80, 80, 80, 451, 80, 80, 77, 174, 77, ! 85, 381, 382, 383, 84, 76, 85, 204, 87, 249, ! 85, 451, 87, 213, 454, 455, 456, 82, 83, 84, ! 85, 86, 347, 76, 496, 495, 84, 80, 189, 469, ! 88, 76, 193, 78, 276, 196, 86, 213, 88, 89, ! 77, 238, 80, 80, 84, 346, 77, 77, 88, 80, ! 76, 212, 82, 83, 84, 85, 86, 87, 77, 80, ! 76, 80, 262, 263, 264, 265, 266, 77, 229, 77, ! 80, 80, 80, 234, 454, 455, 456, 8, 118, 439, ! 381, 382, 383, 84, 85, 86, 262, 263, 264, 265, ! 266, 351, 235, 76, 76, 234, 7, 8, 9, 10, ! 11, 12, 13, 14, 15, 16, 76, 349, 7, 8, ! 9, 10, 11, 12, 13, 14, 15, 16, 8, 77, ! 76, 161, 80, 284, 16, 77, 166, 428, 80, 77, ! 170, 76, 80, 77, 174, 77, 80, 77, 80, 381, ! 382, 383, 82, 83, 84, 85, 86, 87, 82, 83, ! 84, 85, 86, 454, 455, 456, 77, 76, 80, 80, ! 400, 401, 76, 363, 76, 76, 84, 85, 86, 78, ! 346, 82, 83, 213, 416, 215, 80, 76, 3, 73, ! 76, 221, 85, 82, 83, 346, 86, 363, 430, 76, ! 351, 352, 76, 494, 80, 392, 23, 85, 80, 447, ! 27, 80, 399, 30, 80, 76, 33, 34, 78, 36, ! 250, 76, 454, 455, 456, 16, 78, 257, 270, 271, ! 272, 261, 262, 263, 264, 265, 266, 54, 268, 56, ! 80, 86, 77, 79, 395, 83, 80, 277, 65, 80, ! 80, 80, 69, 80, 80, 78, 72, 74, 409, 84, ! 80, 80, 428, 77, 77, 76, 16, 297, 434, 82, ! 83, 84, 85, 86, 87, 80, 16, 428, 77, 309, ! 310, 77, 77, 434, 121, 77, 316, 517, 77, 0, ! 77, 321, 77, 323, 82, 83, 84, 85, 86, 87, ! 451, 80, 490, 454, 455, 456, 395, 119, 141, 539, ! 340, 471, 210, 150, 151, 494, 346, 428, 469, 229, ! 350, 142, 131, 288, 475, 355, 464, 357, 494, 409, ! 484, 509, 398, 363, 76, 143, 366, 367, 368, 369, ! 370, 371, 445, 494, 485, 475, 497, 377, 7, 8, ! 9, 10, 11, 12, 13, 14, 15, 16, 195, 7, ! 8, 9, 10, 11, 12, 13, 14, 15, 16, 206, ! 207, 360, 7, 8, 9, 10, 11, 12, 13, 14, ! 15, 16, 219, 220, 135, 363, 223, 417, 418, 419, ! 420, 421, 422, 423, 424, 425, 426, 276, 428, 236, ! 182, -1, -1, -1, -1, -1, -1, -1, 245, -1, ! 247, -1, 78, -1, -1, -1, -1, -1, 84, 449, ! -1, -1, 88, 260, -1, -1, -1, -1, 76, 77, ! -1, -1, -1, -1, 82, 83, 84, -1, 468, 276, ! -1, 76, 472, 473, 92, -1, -1, 82, 83, 84, ! -1, 86, 118, -1, -1, -1, 486, 92, -1, -1, ! -1, -1, -1, -1, 494, -1, -1, -1, -1, -1, ! 500, -1, -1, -1, -1, -1, 7, 8, 9, 10, ! 11, 12, 13, 14, 15, 16, 516, 324, 325, 326, ! 327, 328, 329, 330, 331, 161, -1, -1, -1, -1, ! 166, 338, 339, -1, 534, -1, -1, 537, 174, -1, ! -1, -1, 349, -1, 180, -1, -1, -1, -1, -1, ! -1, -1, -1, 360, -1, -1, 192, -1, -1, -1, ! -1, -1, 198, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, 76, -1, 213, 79, 386, ! -1, 82, 83, 390, 391, -1, -1, -1, -1, -1, ! -1, 92, -1, -1, -1, -1, -1, -1, -1, -1, ! 407, 7, 8, 9, 10, 11, 12, 13, 14, 15, ! 16, -1, 7, 8, 9, 10, 11, 12, 13, 14, ! 15, 16, -1, -1, -1, -1, 262, 263, 264, 265, ! 266, -1, -1, -1, 270, 271, 272, -1, -1, 446, ! 447, 7, 8, 9, 10, 11, 12, 13, 14, 15, ! 16, -1, 288, -1, -1, -1, -1, 464, -1, 7, ! 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, ! 76, -1, -1, 480, -1, -1, 82, 83, 84, -1, ! -1, 76, -1, -1, -1, -1, 92, 82, 83, 84, ! -1, 498, -1, -1, -1, -1, -1, 92, -1, -1, ! -1, -1, 509, -1, -1, -1, 513, -1, -1, -1, ! 76, -1, -1, -1, -1, -1, 82, 83, 84, -1, ! -1, -1, -1, -1, -1, -1, 92, 363, 76, -1, ! -1, -1, -1, -1, 82, 83, -1, -1, -1, -1, ! 376, -1, -1, -1, 92, -1, -1, -1, 6, -1, ! -1, -1, 388, -1, -1, -1, -1, -1, -1, -1, ! -1, 397, 20, 21, 22, 23, 24, 25, 26, 27, ! 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, ! 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, ! 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, ! 58, 59, 60, 61, 62, -1, 64, 65, 66, 67, ! 68, 69, 70, 71, -1, 451, 74, 75, 7, 8, ! 9, 10, 11, 12, 13, 14, 15, 16, -1, -1, ! -1, -1, -1, 469, -1, -1, -1, -1, -1, -1, ! -1, 99, 7, 8, 9, 10, 11, 12, 13, 14, ! 15, 16, -1, 7, 8, 9, 10, 11, 12, 13, ! 14, 15, 16, 17, 7, 8, 9, 10, 11, 12, ! 13, 14, 15, 16, -1, 7, 8, 9, 10, 11, ! 12, 13, 14, 15, 16, -1, -1, 76, -1, -1, ! -1, -1, -1, 82, 83, -1, -1, -1, -1, -1, ! -1, -1, -1, 92, -1, -1, -1, -1, -1, -1, ! -1, 76, -1, -1, -1, -1, -1, 82, 83, -1, ! -1, -1, 76, -1, -1, -1, -1, 92, 82, 83, ! 84, -1, 86, 76, -1, -1, -1, -1, -1, 82, ! 83, 84, -1, 86, 76, -1, -1, -1, -1, -1, ! 82, 83, 84, 7, 8, 9, 10, 11, 12, 13, ! 14, 15, 16, -1, 14, -1, -1, -1, -1, 19, ! -1, -1, -1, 23, -1, 25, 26, 27, -1, 29, ! -1, -1, -1, -1, -1, 35, 36, 37, 38, 39, ! -1, -1, -1, 82, 83, 84, 85, 86, 87, 49, ! -1, 51, -1, 53, 93, 94, 95, 96, 97, 98, ! 60, -1, -1, 21, 22, -1, 24, -1, 26, -1, ! 28, -1, 76, 31, -1, -1, -1, -1, 82, 83, ! 84, 81, 40, -1, -1, 85, -1, 87, -1, 47, ! 48, 49, 50, -1, -1, 53, -1, -1, -1, -1, ! 58, -1, 60, 61, -1, -1, 64, -1, 66, 67, ! -1, -1, 70, 77, 72, -1, -1, 75, 82, 83, ! 84, 85, 86, 87, 88, 89, 90, 91, -1, 93, ! 94, 95, 96, 97, 98, 77, -1, -1, -1, -1, ! 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, ! -1, 93, 94, 95, 96, 97, 98, 77, -1, -1, ! -1, -1, 82, 83, 84, 85, 86, 87, 88, 89, ! 90, 91, -1, 93, 94, 95, 96, 97, 98, 77, ! -1, -1, -1, -1, 82, 83, 84, 85, 86, 87, ! 88, 89, 90, 91, -1, 93, 94, 95, 96, 97, ! 98, 77, -1, -1, -1, -1, 82, 83, 84, 85, ! 86, 87, 88, 89, 90, 91, -1, 93, 94, 95, ! 96, 97, 98, 77, -1, -1, -1, -1, 82, 83, ! 84, 85, 86, 87, 88, 89, 90, 91, -1, 93, ! 94, 95, 96, 97, 98, 79, -1, -1, 82, 83, ! 84, 85, 86, 87, 88, 89, 90, 91, -1, 93, ! 94, 95, 96, 97, 98, 79, -1, -1, 82, 83, ! 84, 85, 86, 87, 88, 89, 90, 91, -1, 93, ! 94, 95, 96, 97, 98, 82, 83, 84, 85, 86, ! 87, 88, 89, 90, 91, -1, 93, 94, 95, 96, ! 97, 98, 82, 83, 84, 85, 86, 87, 88, 89, ! -1, -1, -1, 93, 94, 95, 96, 97, 98, 82, ! 83, 84, 85, 86, 87, 88, -1, -1, -1, -1, ! 93, 94, 95, 96, 97, 98, 82, 83, 84, 85, ! 86, 87, -1, -1, -1, -1, -1, 93, 94, 95, ! 96, 97, 98 ! }; ! /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ ! #line 3 "/s/bison.simple" ! ! /* Skeleton output parser for bison, ! Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman ! ! This program is free software; you can redistribute it and/or modify ! it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 1, or (at your option) ! any later version. ! ! This program is distributed in the hope that it will be useful, ! but WITHOUT ANY WARRANTY; without even the implied warranty of ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! GNU General Public License for more details. ! ! You should have received a copy of the GNU General Public License ! along with this program; if not, write to the Free Software ! Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ ! ! ! #ifndef alloca ! #ifdef __GNUC__ ! #define alloca __builtin_alloca ! #else /* not GNU C. */ ! #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) ! #include ! #else /* not sparc */ ! #if defined (MSDOS) && !defined (__TURBOC__) ! #include ! #else /* not MSDOS, or __TURBOC__ */ ! #if defined(_AIX) ! #include ! #pragma alloca ! #else /* not MSDOS, __TURBOC__, or _AIX */ ! #ifdef __hpux ! #ifdef __cplusplus ! extern "C" { ! void *alloca (unsigned int); ! }; ! #else /* not __cplusplus */ ! void *alloca (unsigned int); ! #endif /* not __cplusplus */ ! #endif /* __hpux */ ! #endif /* not _AIX */ ! #endif /* not MSDOS, or __TURBOC__ */ ! #endif /* not sparc. */ ! #endif /* not GNU C. */ ! #endif /* alloca not defined. */ ! ! /* This is the parser code that is written into each bison parser ! when the %semantic_parser declaration is not specified in the grammar. ! It was written by Richard Stallman by simplifying the hairy parser ! used when %semantic_parser is specified. */ ! ! /* Note: there must be only one dollar sign in this file. ! It is replaced by the list of actions, each action ! as one case of the switch. */ ! ! #define yyerrok (yyerrstatus = 0) ! #define yyclearin (yychar = YYEMPTY) ! #define YYEMPTY -2 ! #define YYEOF 0 ! #define YYACCEPT return(0) ! #define YYABORT return(1) ! #define YYERROR goto yyerrlab1 ! /* Like YYERROR except do call yyerror. ! This remains here temporarily to ease the ! transition to the new meaning of YYERROR, for GCC. ! Once GCC version 2 has supplanted version 1, this can go. */ ! #define YYFAIL goto yyerrlab ! #define YYRECOVERING() (!!yyerrstatus) ! #define YYBACKUP(token, value) \ ! do \ ! if (yychar == YYEMPTY && yylen == 1) \ ! { yychar = (token), yylval = (value); \ ! yychar1 = YYTRANSLATE (yychar); \ ! YYPOPSTACK; \ ! goto yybackup; \ ! } \ ! else \ ! { yyerror ("syntax error: cannot back up"); YYERROR; } \ ! while (0) ! ! #define YYTERROR 1 ! #define YYERRCODE 256 ! ! #ifndef YYPURE ! #define YYLEX yylex() #endif ! #ifdef YYPURE ! #ifdef YYLSP_NEEDED ! #define YYLEX yylex(&yylval, &yylloc) ! #else ! #define YYLEX yylex(&yylval) #endif #endif ! ! /* If nonreentrant, generate the variables here */ ! ! #ifndef YYPURE ! ! int yychar; /* the lookahead symbol */ ! YYSTYPE yylval; /* the semantic value of the */ ! /* lookahead symbol */ ! ! #ifdef YYLSP_NEEDED ! YYLTYPE yylloc; /* location data for the lookahead */ ! /* symbol */ ! #endif ! ! int yynerrs; /* number of parse errors so far */ ! #endif /* not YYPURE */ ! ! #if YYDEBUG != 0 ! int yydebug; /* nonzero means print parse trace */ ! /* Since this is uninitialized, it does not stop multiple parsers ! from coexisting. */ ! #endif ! ! /* YYINITDEPTH indicates the initial size of the parser's stacks */ ! ! #ifndef YYINITDEPTH ! #define YYINITDEPTH 200 ! #endif ! ! /* YYMAXDEPTH is the maximum size the stacks can grow to ! (effective only if the built-in stack extension method is used). */ ! ! #if YYMAXDEPTH == 0 ! #undef YYMAXDEPTH #endif ! ! #ifndef YYMAXDEPTH ! #define YYMAXDEPTH 10000 #endif ! ! /* Prevent warning if -Wstrict-prototypes. */ ! #ifdef __GNUC__ ! int yyparse (void); ! #endif ! ! #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ ! #define __yy_bcopy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT) ! #else /* not GNU C or C++ */ ! #ifndef __cplusplus ! ! /* This is the most reliable way to avoid incompatibilities ! in available built-in functions on various systems. */ ! static void ! __yy_bcopy (from, to, count) ! char *from; ! char *to; ! int count; ! { ! register char *f = from; ! register char *t = to; ! register int i = count; ! ! while (i-- > 0) ! *t++ = *f++; ! } ! ! #else /* __cplusplus */ ! ! /* This is the most reliable way to avoid incompatibilities ! in available built-in functions on various systems. */ ! static void ! __yy_bcopy (char *from, char *to, int count) ! { ! register char *f = from; ! register char *t = to; ! register int i = count; ! ! while (i-- > 0) ! *t++ = *f++; ! } ! #endif #endif ! ! #line 184 "/usr/local/lib/bison.simple" ! int ! yyparse() ! { ! register int yystate; ! register int yyn; ! register short *yyssp; ! register YYSTYPE *yyvsp; ! int yyerrstatus; /* number of tokens to shift before error messages enabled */ ! int yychar1; /* lookahead token as an internal (translated) token number */ ! ! short yyssa[YYINITDEPTH]; /* the state stack */ ! YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ ! ! short *yyss = yyssa; /* refer to the stacks thru separate pointers */ ! YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ ! ! #ifdef YYLSP_NEEDED ! YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ ! YYLTYPE *yyls = yylsa; ! YYLTYPE *yylsp; ! ! #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) ! #else ! #define YYPOPSTACK (yyvsp--, yyssp--) ! #endif ! ! int yystacksize = YYINITDEPTH; ! ! #ifdef YYPURE ! int yychar; ! YYSTYPE yylval; ! int yynerrs; ! #ifdef YYLSP_NEEDED ! YYLTYPE yylloc; ! #endif ! #endif ! ! YYSTYPE yyval; /* the variable used to return */ ! /* semantic values from the action */ ! /* routines */ ! ! int yylen; ! ! #if YYDEBUG != 0 ! if (yydebug) ! fprintf(stderr, "Starting parse\n"); ! #endif ! ! yystate = 0; ! yyerrstatus = 0; ! yynerrs = 0; ! yychar = YYEMPTY; /* Cause a token to be read. */ ! ! /* Initialize stack pointers. ! Waste one element of value and location stack ! so that they stay on the same level as the state stack. ! The wasted elements are never initialized. */ ! ! yyssp = yyss - 1; ! yyvsp = yyvs; ! #ifdef YYLSP_NEEDED ! yylsp = yyls; ! #endif ! ! /* Push a new state, which is found in yystate . */ ! /* In all cases, when you get here, the value and location stacks ! have just been pushed. so pushing a state here evens the stacks. */ ! yynewstate: ! ! *++yyssp = yystate; ! ! if (yyssp >= yyss + yystacksize - 1) ! { ! /* Give user a chance to reallocate the stack */ ! /* Use copies of these so that the &'s don't force the real ones into memory. */ ! YYSTYPE *yyvs1 = yyvs; ! short *yyss1 = yyss; ! #ifdef YYLSP_NEEDED ! YYLTYPE *yyls1 = yyls; ! #endif ! ! /* Get the current used size of the three stacks, in elements. */ ! int size = yyssp - yyss + 1; ! ! #ifdef yyoverflow ! /* Each stack pointer address is followed by the size of ! the data in use in that stack, in bytes. */ ! yyoverflow("parser stack overflow", ! &yyss1, size * sizeof (*yyssp), ! &yyvs1, size * sizeof (*yyvsp), ! #ifdef YYLSP_NEEDED ! &yyls1, size * sizeof (*yylsp), ! #endif ! &yystacksize); ! ! yyss = yyss1; yyvs = yyvs1; ! #ifdef YYLSP_NEEDED ! yyls = yyls1; ! #endif ! #else /* no yyoverflow */ ! /* Extend the stack our own way. */ ! if (yystacksize >= YYMAXDEPTH) ! { ! yyerror("parser stack overflow"); ! return 2; ! } ! yystacksize *= 2; ! if (yystacksize > YYMAXDEPTH) ! yystacksize = YYMAXDEPTH; ! yyss = (short *) alloca (yystacksize * sizeof (*yyssp)); ! __yy_bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp)); ! yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp)); ! __yy_bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp)); ! #ifdef YYLSP_NEEDED ! yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp)); ! __yy_bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp)); ! #endif ! #endif /* no yyoverflow */ ! ! yyssp = yyss + size - 1; ! yyvsp = yyvs + size - 1; ! #ifdef YYLSP_NEEDED ! yylsp = yyls + size - 1; ! #endif ! ! #if YYDEBUG != 0 ! if (yydebug) ! fprintf(stderr, "Stack size increased to %d\n", yystacksize); ! #endif ! ! if (yyssp >= yyss + yystacksize - 1) ! YYABORT; ! } ! ! #if YYDEBUG != 0 ! if (yydebug) ! fprintf(stderr, "Entering state %d\n", yystate); ! #endif ! ! goto yybackup; ! yybackup: ! ! /* Do appropriate processing given the current state. */ ! /* Read a lookahead token if we need one and don't already have one. */ ! /* yyresume: */ ! ! /* First try to decide what to do without reference to lookahead token. */ ! ! yyn = yypact[yystate]; ! if (yyn == YYFLAG) ! goto yydefault; ! ! /* Not known => get a lookahead token if don't already have one. */ ! ! /* yychar is either YYEMPTY or YYEOF ! or a valid token in external form. */ ! ! if (yychar == YYEMPTY) ! { ! #if YYDEBUG != 0 ! if (yydebug) ! fprintf(stderr, "Reading a token: "); ! #endif ! yychar = YYLEX; ! } ! ! /* Convert token to internal form (in yychar1) for indexing tables with */ ! ! if (yychar <= 0) /* This means end of input. */ ! { ! yychar1 = 0; ! yychar = YYEOF; /* Don't call YYLEX any more */ ! ! #if YYDEBUG != 0 ! if (yydebug) ! fprintf(stderr, "Now at end of input.\n"); ! #endif ! } ! else ! { ! yychar1 = YYTRANSLATE(yychar); ! ! #if YYDEBUG != 0 ! if (yydebug) ! { ! fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); ! /* Give the individual parser a way to print the precise meaning ! of a token, for further debugging info. */ ! #ifdef YYPRINT ! YYPRINT (stderr, yychar, yylval); ! #endif ! fprintf (stderr, ")\n"); ! } ! #endif ! } ! ! yyn += yychar1; ! if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) ! goto yydefault; ! ! yyn = yytable[yyn]; ! ! /* yyn is what to do for this token type in this state. ! Negative => reduce, -yyn is rule number. ! Positive => shift, yyn is new state. ! New state is final state => don't bother to shift, ! just return success. ! 0, or most negative number => error. */ ! ! if (yyn < 0) ! { ! if (yyn == YYFLAG) ! goto yyerrlab; ! yyn = -yyn; ! goto yyreduce; ! } ! else if (yyn == 0) ! goto yyerrlab; ! ! if (yyn == YYFINAL) ! YYACCEPT; ! ! /* Shift the lookahead token. */ ! ! #if YYDEBUG != 0 ! if (yydebug) ! fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); ! #endif ! ! /* Discard the token being shifted unless it is eof. */ ! if (yychar != YYEOF) ! yychar = YYEMPTY; ! ! *++yyvsp = yylval; ! #ifdef YYLSP_NEEDED ! *++yylsp = yylloc; ! #endif ! ! /* count tokens shifted since error; after three, turn off error status. */ ! if (yyerrstatus) yyerrstatus--; ! ! yystate = yyn; ! goto yynewstate; ! ! /* Do the default action for the current state. */ ! yydefault: ! ! yyn = yydefact[yystate]; ! if (yyn == 0) ! goto yyerrlab; ! ! /* Do a reduction. yyn is the number of a rule to reduce with. */ ! yyreduce: ! yylen = yyr2[yyn]; ! yyval = yyvsp[1-yylen]; /* implement default value of the action */ ! ! #if YYDEBUG != 0 ! if (yydebug) ! { ! int i; ! ! fprintf (stderr, "Reducing via rule %d (line %d), ", ! yyn, yyrline[yyn]); ! ! /* Print the symbols being reduced, and their result. */ ! for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) ! fprintf (stderr, "%s ", yytname[yyrhs[i]]); ! fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); ! } #endif + + switch (yyn) { + case 3: ! #line 226 "gram.y" { /* stat: is the nonterminal for Fortran statements */ ! lastwasbranch = NO; ; ! break;} case 5: ! #line 232 "gram.y" { /* forbid further statement function definitions... */ if (parstate == INDATA && laststfcn != thisstno) parstate = INEXEC; thisstno++; ! if(yyvsp[-1].labval && (yyvsp[-1].labval->labelno==dorange)) ! enddo(yyvsp[-1].labval->labelno); if(lastwasbranch && thislabel==NULL) warn("statement cannot be reached"); lastwasbranch = thiswasbranch; thiswasbranch = NO; ! if(yyvsp[-1].labval) { ! if(yyvsp[-1].labval->labtype == LABFORMAT) err("label already that of a format"); else ! yyvsp[-1].labval->labtype = LABEXEC; } freetemps(); ! ; ! break;} case 6: ! #line 252 "gram.y" { if (can_include) ! doinclude( yyvsp[0].charpval ); else { ! fprintf(diagfile, "Cannot open file %s\n", yyvsp[0].charpval); done(1); } ! ; ! break;} case 7: ! #line 260 "gram.y" ! { if (yyvsp[-2].labval) lastwasbranch = NO; endproc(); /* lastwasbranch = NO; -- set in endproc() */ ! ; ! break;} case 8: ! #line 265 "gram.y" { extern void unclassifiable(); unclassifiable(); /* flline flushes the current line, ignoring the rest of the text there */ ! flline(); ; ! break;} case 9: ! #line 272 "gram.y" { flline(); needkwd = NO; inioctl = NO; ! yyerrok; yyclearin; ; ! break;} case 10: ! #line 277 "gram.y" { if(yystno != 0) { *************** *** 894,964 **** } } else yyval.labval = thislabel = NULL; ! } break; case 11: ! /* # line 305 "gram.in" */ ! {startproc(yypvt[-0].extval, CLMAIN); } break; case 12: ! /* # line 307 "gram.in" */ { warn("ignoring arguments to main program"); /* hashclear(); */ ! startproc(yypvt[-1].extval, CLMAIN); } break; case 13: ! /* # line 311 "gram.in" */ ! { if(yypvt[-0].extval) NO66("named BLOCKDATA"); ! startproc(yypvt[-0].extval, CLBLOCK); } break; case 14: ! /* # line 314 "gram.in" */ ! { entrypt(CLPROC, TYSUBR, (ftnint) 0, yypvt[-1].extval, yypvt[-0].chval); } break; case 15: ! /* # line 316 "gram.in" */ ! { entrypt(CLPROC, TYUNKNOWN, (ftnint) 0, yypvt[-1].extval, yypvt[-0].chval); } break; case 16: ! /* # line 318 "gram.in" */ ! { entrypt(CLPROC, yypvt[-4].ival, varleng, yypvt[-1].extval, yypvt[-0].chval); } break; case 17: ! /* # line 320 "gram.in" */ { if(parstate==OUTSIDE || procclass==CLMAIN || procclass==CLBLOCK) execerr("misplaced entry statement", CNULL); ! entrypt(CLENTRY, 0, (ftnint) 0, yypvt[-1].extval, yypvt[-0].chval); ! } break; case 18: ! /* # line 328 "gram.in" */ ! { newproc(); } break; case 19: ! /* # line 332 "gram.in" */ ! { yyval.extval = newentry(yypvt[-0].namval, 1); } break; case 20: ! /* # line 336 "gram.in" */ ! { yyval.namval = mkname(token); } break; case 21: ! /* # line 339 "gram.in" */ ! { yyval.extval = NULL; } break; case 29: ! /* # line 357 "gram.in" */ ! { yyval.chval = 0; } break; case 30: ! /* # line 359 "gram.in" */ { NO66(" () argument list"); ! yyval.chval = 0; } break; case 31: ! /* # line 362 "gram.in" */ ! {yyval.chval = yypvt[-1].chval; } break; case 32: ! /* # line 366 "gram.in" */ ! { yyval.chval = (yypvt[-0].namval ? mkchain((char *)yypvt[-0].namval,CHNULL) : CHNULL ); } break; case 33: ! /* # line 368 "gram.in" */ ! { if(yypvt[-0].namval) yypvt[-2].chval = yyval.chval = mkchain((char *)yypvt[-0].namval, yypvt[-2].chval); } break; case 34: ! /* # line 372 "gram.in" */ ! { if(yypvt[-0].namval->vstg!=STGUNKNOWN && yypvt[-0].namval->vstg!=STGARG) ! dclerr("name declared as argument after use", yypvt[-0].namval); ! yypvt[-0].namval->vstg = STGARG; ! } break; case 35: ! /* # line 377 "gram.in" */ { NO66("altenate return argument"); /* substars means that '*'ed formal parameters should be replaced. --- 1473,1561 ---- } } else yyval.labval = thislabel = NULL; ! ; ! break;} case 11: ! #line 305 "gram.y" ! {startproc(yyvsp[0].extval, CLMAIN); ; ! break;} case 12: ! #line 307 "gram.y" { warn("ignoring arguments to main program"); /* hashclear(); */ ! startproc(yyvsp[-1].extval, CLMAIN); ; ! break;} case 13: ! #line 311 "gram.y" ! { if(yyvsp[0].extval) NO66("named BLOCKDATA"); ! startproc(yyvsp[0].extval, CLBLOCK); ; ! break;} case 14: ! #line 314 "gram.y" ! { entrypt(CLPROC, TYSUBR, (ftnint) 0, yyvsp[-1].extval, yyvsp[0].chval); ; ! break;} case 15: ! #line 316 "gram.y" ! { entrypt(CLPROC, TYUNKNOWN, (ftnint) 0, yyvsp[-1].extval, yyvsp[0].chval); ; ! break;} case 16: ! #line 318 "gram.y" ! { entrypt(CLPROC, yyvsp[-4].ival, varleng, yyvsp[-1].extval, yyvsp[0].chval); ; ! break;} case 17: ! #line 320 "gram.y" { if(parstate==OUTSIDE || procclass==CLMAIN || procclass==CLBLOCK) execerr("misplaced entry statement", CNULL); ! entrypt(CLENTRY, 0, (ftnint) 0, yyvsp[-1].extval, yyvsp[0].chval); ! ; ! break;} case 18: ! #line 328 "gram.y" ! { newproc(); ; ! break;} case 19: ! #line 332 "gram.y" ! { yyval.extval = newentry(yyvsp[0].namval, 1); ; ! break;} case 20: ! #line 336 "gram.y" ! { yyval.namval = mkname(token); ; ! break;} case 21: ! #line 339 "gram.y" ! { yyval.extval = NULL; ; ! break;} case 29: ! #line 357 "gram.y" ! { yyval.chval = 0; ; ! break;} case 30: ! #line 359 "gram.y" { NO66(" () argument list"); ! yyval.chval = 0; ; ! break;} case 31: ! #line 362 "gram.y" ! {yyval.chval = yyvsp[-1].chval; ; ! break;} case 32: ! #line 366 "gram.y" ! { yyval.chval = (yyvsp[0].namval ? mkchain((char *)yyvsp[0].namval,CHNULL) : CHNULL ); ; ! break;} case 33: ! #line 368 "gram.y" ! { if(yyvsp[0].namval) yyvsp[-2].chval = yyval.chval = mkchain((char *)yyvsp[0].namval, yyvsp[-2].chval); ; ! break;} case 34: ! #line 372 "gram.y" ! { if(yyvsp[0].namval->vstg!=STGUNKNOWN && yyvsp[0].namval->vstg!=STGARG) ! dclerr("name declared as argument after use", yyvsp[0].namval); ! yyvsp[0].namval->vstg = STGARG; ! ; ! break;} case 35: ! #line 377 "gram.y" { NO66("altenate return argument"); /* substars means that '*'ed formal parameters should be replaced. *************** *** 969,1065 **** This variable is only referred to in proc.c */ ! yyval.namval = 0; substars = YES; } break; case 36: ! /* # line 393 "gram.in" */ { char *s; s = copyn(toklen+1, token); s[toklen] = '\0'; yyval.charpval = s; ! } break; case 45: ! /* # line 409 "gram.in" */ { NO66("SAVE statement"); ! saveall = YES; } break; case 46: ! /* # line 412 "gram.in" */ ! { NO66("SAVE statement"); } break; case 47: ! /* # line 414 "gram.in" */ ! { fmtstmt(thislabel); setfmt(thislabel); } break; case 48: ! /* # line 416 "gram.in" */ ! { NO66("PARAMETER statement"); } break; case 49: ! /* # line 420 "gram.in" */ ! { settype(yypvt[-4].namval, yypvt[-6].ival, yypvt[-0].lval); ! if(ndim>0) setbound(yypvt[-4].namval,ndim,dims); ! } break; case 50: ! /* # line 424 "gram.in" */ ! { settype(yypvt[-2].namval, yypvt[-4].ival, yypvt[-0].lval); ! if(ndim>0) setbound(yypvt[-2].namval,ndim,dims); ! } break; case 51: ! /* # line 428 "gram.in" */ { if (new_dcl == 2) { err("attempt to give DATA in type-declaration"); new_dcl = 1; } ! } break; case 52: ! /* # line 435 "gram.in" */ ! { new_dcl = 2; } break; case 53: ! /* # line 438 "gram.in" */ ! { varleng = yypvt[-0].lval; } break; case 54: ! /* # line 442 "gram.in" */ ! { varleng = (yypvt[-0].ival<0 || ONEOF(yypvt[-0].ival,M(TYLOGICAL)|M(TYLONG)) ! ? 0 : typesize[yypvt[-0].ival]); ! vartype = yypvt[-0].ival; } break; case 55: ! /* # line 447 "gram.in" */ ! { yyval.ival = TYLONG; } break; case 56: ! /* # line 448 "gram.in" */ ! { yyval.ival = tyreal; } break; case 57: ! /* # line 449 "gram.in" */ ! { ++complex_seen; yyval.ival = tycomplex; } break; case 58: ! /* # line 450 "gram.in" */ ! { yyval.ival = TYDREAL; } break; case 59: ! /* # line 451 "gram.in" */ ! { ++dcomplex_seen; NOEXT("DOUBLE COMPLEX statement"); yyval.ival = TYDCOMPLEX; } break; case 60: ! /* # line 452 "gram.in" */ ! { yyval.ival = TYLOGICAL; } break; case 61: ! /* # line 453 "gram.in" */ ! { NO66("CHARACTER statement"); yyval.ival = TYCHAR; } break; case 62: ! /* # line 454 "gram.in" */ ! { yyval.ival = TYUNKNOWN; } break; case 63: ! /* # line 455 "gram.in" */ ! { yyval.ival = TYUNKNOWN; } break; case 64: ! /* # line 456 "gram.in" */ ! { NOEXT("AUTOMATIC statement"); yyval.ival = - STGAUTO; } break; case 65: ! /* # line 457 "gram.in" */ ! { NOEXT("STATIC statement"); yyval.ival = - STGBSS; } break; case 66: ! /* # line 461 "gram.in" */ ! { yyval.lval = varleng; } break; case 67: ! /* # line 463 "gram.in" */ { expptr p; ! p = yypvt[-1].expval; NO66("length specification *n"); if( ! ISICON(p) || p->constblock.Const.ci <= 0 ) { --- 1566,1686 ---- This variable is only referred to in proc.c */ ! yyval.namval = 0; substars = YES; ; ! break;} case 36: ! #line 393 "gram.y" { char *s; s = copyn(toklen+1, token); s[toklen] = '\0'; yyval.charpval = s; ! ; ! break;} case 45: ! #line 409 "gram.y" { NO66("SAVE statement"); ! saveall = YES; ; ! break;} case 46: ! #line 412 "gram.y" ! { NO66("SAVE statement"); ; ! break;} case 47: ! #line 414 "gram.y" ! { fmtstmt(thislabel); setfmt(thislabel); ; ! break;} case 48: ! #line 416 "gram.y" ! { NO66("PARAMETER statement"); ; ! break;} case 49: ! #line 420 "gram.y" ! { settype(yyvsp[-4].namval, yyvsp[-6].ival, yyvsp[0].lval); ! if(ndim>0) setbound(yyvsp[-4].namval,ndim,dims); ! ; ! break;} case 50: ! #line 424 "gram.y" ! { settype(yyvsp[-2].namval, yyvsp[-4].ival, yyvsp[0].lval); ! if(ndim>0) setbound(yyvsp[-2].namval,ndim,dims); ! ; ! break;} case 51: ! #line 428 "gram.y" { if (new_dcl == 2) { err("attempt to give DATA in type-declaration"); new_dcl = 1; } ! ; ! break;} case 52: ! #line 435 "gram.y" ! { new_dcl = 2; ; ! break;} case 53: ! #line 438 "gram.y" ! { varleng = yyvsp[0].lval; ; ! break;} case 54: ! #line 442 "gram.y" ! { varleng = (yyvsp[0].ival<0 || ONEOF(yyvsp[0].ival,M(TYLOGICAL)|M(TYLONG)) ! ? 0 : typesize[yyvsp[0].ival]); ! vartype = yyvsp[0].ival; ; ! break;} case 55: ! #line 447 "gram.y" ! { yyval.ival = TYLONG; ; ! break;} case 56: ! #line 448 "gram.y" ! { yyval.ival = tyreal; ; ! break;} case 57: ! #line 449 "gram.y" ! { ++complex_seen; yyval.ival = tycomplex; ; ! break;} case 58: ! #line 450 "gram.y" ! { yyval.ival = TYDREAL; ; ! break;} case 59: ! #line 451 "gram.y" ! { ++dcomplex_seen; NOEXT("DOUBLE COMPLEX statement"); yyval.ival = TYDCOMPLEX; ; ! break;} case 60: ! #line 452 "gram.y" ! { yyval.ival = TYLOGICAL; ; ! break;} case 61: ! #line 453 "gram.y" ! { NO66("CHARACTER statement"); yyval.ival = TYCHAR; ; ! break;} case 62: ! #line 454 "gram.y" ! { yyval.ival = TYUNKNOWN; ; ! break;} case 63: ! #line 455 "gram.y" ! { yyval.ival = TYUNKNOWN; ; ! break;} case 64: ! #line 456 "gram.y" ! { NOEXT("AUTOMATIC statement"); yyval.ival = - STGAUTO; ; ! break;} case 65: ! #line 457 "gram.y" ! { NOEXT("STATIC statement"); yyval.ival = - STGBSS; ; ! break;} case 66: ! #line 461 "gram.y" ! { yyval.lval = varleng; ; ! break;} case 67: ! #line 463 "gram.y" { expptr p; ! p = yyvsp[-1].expval; NO66("length specification *n"); if( ! ISICON(p) || p->constblock.Const.ci <= 0 ) { *************** *** 1081,1122 **** yyval.lval = varleng; } } ! } break; case 68: ! /* # line 489 "gram.in" */ ! { NO66("length specification *(*)"); yyval.lval = -1; } break; case 69: ! /* # line 493 "gram.in" */ ! { incomm( yyval.extval = comblock("") , yypvt[-0].namval ); } break; case 70: ! /* # line 495 "gram.in" */ ! { yyval.extval = yypvt[-1].extval; incomm(yypvt[-1].extval, yypvt[-0].namval); } break; case 71: ! /* # line 497 "gram.in" */ ! { yyval.extval = yypvt[-2].extval; incomm(yypvt[-2].extval, yypvt[-0].namval); } break; case 72: ! /* # line 499 "gram.in" */ ! { incomm(yypvt[-2].extval, yypvt[-0].namval); } break; case 73: ! /* # line 503 "gram.in" */ ! { yyval.extval = comblock(""); } break; case 74: ! /* # line 505 "gram.in" */ ! { yyval.extval = comblock(token); } break; case 75: ! /* # line 509 "gram.in" */ ! { setext(yypvt[-0].namval); } break; case 76: ! /* # line 511 "gram.in" */ ! { setext(yypvt[-0].namval); } break; case 77: ! /* # line 515 "gram.in" */ ! { NO66("INTRINSIC statement"); setintr(yypvt[-0].namval); } break; case 78: ! /* # line 517 "gram.in" */ ! { setintr(yypvt[-0].namval); } break; case 81: ! /* # line 525 "gram.in" */ { struct Equivblock *p; if(nequiv >= maxequiv) --- 1702,1755 ---- yyval.lval = varleng; } } ! ; ! break;} case 68: ! #line 489 "gram.y" ! { NO66("length specification *(*)"); yyval.lval = -1; ; ! break;} case 69: ! #line 493 "gram.y" ! { incomm( yyval.extval = comblock("") , yyvsp[0].namval ); ; ! break;} case 70: ! #line 495 "gram.y" ! { yyval.extval = yyvsp[-1].extval; incomm(yyvsp[-1].extval, yyvsp[0].namval); ; ! break;} case 71: ! #line 497 "gram.y" ! { yyval.extval = yyvsp[-2].extval; incomm(yyvsp[-2].extval, yyvsp[0].namval); ; ! break;} case 72: ! #line 499 "gram.y" ! { incomm(yyvsp[-2].extval, yyvsp[0].namval); ; ! break;} case 73: ! #line 503 "gram.y" ! { yyval.extval = comblock(""); ; ! break;} case 74: ! #line 505 "gram.y" ! { yyval.extval = comblock(token); ; ! break;} case 75: ! #line 509 "gram.y" ! { setext(yyvsp[0].namval); ; ! break;} case 76: ! #line 511 "gram.y" ! { setext(yyvsp[0].namval); ; ! break;} case 77: ! #line 515 "gram.y" ! { NO66("INTRINSIC statement"); setintr(yyvsp[0].namval); ; ! break;} case 78: ! #line 517 "gram.y" ! { setintr(yyvsp[0].namval); ; ! break;} case 81: ! #line 525 "gram.y" { struct Equivblock *p; if(nequiv >= maxequiv) *************** *** 1125,1145 **** p->eqvinit = NO; p->eqvbottom = 0; p->eqvtop = 0; ! p->equivs = yypvt[-1].eqvval; ! } break; case 82: ! /* # line 538 "gram.in" */ { yyval.eqvval=ALLOC(Eqvchain); ! yyval.eqvval->eqvitem.eqvlhs = (struct Primblock *)yypvt[-0].expval; ! } break; case 83: ! /* # line 542 "gram.in" */ { yyval.eqvval=ALLOC(Eqvchain); ! yyval.eqvval->eqvitem.eqvlhs = (struct Primblock *) yypvt[-0].expval; ! yyval.eqvval->eqvnextp = yypvt[-2].eqvval; ! } break; case 86: ! /* # line 553 "gram.in" */ { if(parstate == OUTSIDE) { newproc(); --- 1758,1781 ---- p->eqvinit = NO; p->eqvbottom = 0; p->eqvtop = 0; ! p->equivs = yyvsp[-1].eqvval; ! ; ! break;} case 82: ! #line 538 "gram.y" { yyval.eqvval=ALLOC(Eqvchain); ! yyval.eqvval->eqvitem.eqvlhs = (struct Primblock *)yyvsp[0].expval; ! ; ! break;} case 83: ! #line 542 "gram.y" { yyval.eqvval=ALLOC(Eqvchain); ! yyval.eqvval->eqvitem.eqvlhs = (struct Primblock *) yyvsp[0].expval; ! yyval.eqvval->eqvnextp = yyvsp[-2].eqvval; ! ; ! break;} case 86: ! #line 553 "gram.y" { if(parstate == OUTSIDE) { newproc(); *************** *** 1151,1207 **** parstate = INDATA; datagripe = 1; } ! } break; case 87: ! /* # line 568 "gram.in" */ { ftnint junk; if(nextdata(&junk) != NULL) err("too few initializers"); ! frdata(yypvt[-4].chval); frrpl(); ! } break; case 88: ! /* # line 576 "gram.in" */ ! { frchain(&datastack); curdtp = 0; } break; case 89: ! /* # line 578 "gram.in" */ ! { pop_datastack(); } break; case 90: ! /* # line 580 "gram.in" */ ! { toomanyinit = NO; } break; case 93: ! /* # line 585 "gram.in" */ ! { dataval(ENULL, yypvt[-0].expval); } break; case 94: ! /* # line 587 "gram.in" */ ! { dataval(yypvt[-2].expval, yypvt[-0].expval); } break; case 96: ! /* # line 592 "gram.in" */ ! { if( yypvt[-1].ival==OPMINUS && ISCONST(yypvt[-0].expval) ) ! consnegop((Constp)yypvt[-0].expval); ! yyval.expval = yypvt[-0].expval; ! } break; case 100: ! /* # line 604 "gram.in" */ { int k; ! yypvt[-0].namval->vsave = YES; ! k = yypvt[-0].namval->vstg; if( ! ONEOF(k, M(STGUNKNOWN)|M(STGBSS)|M(STGINIT)) ) ! dclerr("can only save static variables", yypvt[-0].namval); ! } break; case 104: ! /* # line 618 "gram.in" */ ! { if(yypvt[-2].namval->vclass == CLUNKNOWN) ! make_param((struct Paramblock *)yypvt[-2].namval, yypvt[-0].expval); ! else dclerr("cannot make into parameter", yypvt[-2].namval); ! } break; case 105: ! /* # line 625 "gram.in" */ ! { if(ndim>0) setbound(yypvt[-1].namval, ndim, dims); } break; case 106: ! /* # line 629 "gram.in" */ { Namep np; ! np = ( (struct Primblock *) yypvt[-0].expval) -> namep; vardcl(np); if(np->vstg == STGCOMMON) extsymtab[np->vardesc.varno].extinit = YES; --- 1787,1854 ---- parstate = INDATA; datagripe = 1; } ! ; ! break;} case 87: ! #line 568 "gram.y" { ftnint junk; if(nextdata(&junk) != NULL) err("too few initializers"); ! frdata(yyvsp[-4].chval); frrpl(); ! ; ! break;} case 88: ! #line 576 "gram.y" ! { frchain(&datastack); curdtp = 0; ; ! break;} case 89: ! #line 578 "gram.y" ! { pop_datastack(); ; ! break;} case 90: ! #line 580 "gram.y" ! { toomanyinit = NO; ; ! break;} case 93: ! #line 585 "gram.y" ! { dataval(ENULL, yyvsp[0].expval); ; ! break;} case 94: ! #line 587 "gram.y" ! { dataval(yyvsp[-2].expval, yyvsp[0].expval); ; ! break;} case 96: ! #line 592 "gram.y" ! { if( yyvsp[-1].ival==OPMINUS && ISCONST(yyvsp[0].expval) ) ! consnegop((Constp)yyvsp[0].expval); ! yyval.expval = yyvsp[0].expval; ! ; ! break;} case 100: ! #line 604 "gram.y" { int k; ! yyvsp[0].namval->vsave = YES; ! k = yyvsp[0].namval->vstg; if( ! ONEOF(k, M(STGUNKNOWN)|M(STGBSS)|M(STGINIT)) ) ! dclerr("can only save static variables", yyvsp[0].namval); ! ; ! break;} case 104: ! #line 618 "gram.y" ! { if(yyvsp[-2].namval->vclass == CLUNKNOWN) ! make_param((struct Paramblock *)yyvsp[-2].namval, yyvsp[0].expval); ! else dclerr("cannot make into parameter", yyvsp[-2].namval); ! ; ! break;} case 105: ! #line 625 "gram.y" ! { if(ndim>0) setbound(yyvsp[-1].namval, ndim, dims); ; ! break;} case 106: ! #line 629 "gram.y" { Namep np; ! np = ( (struct Primblock *) yyvsp[0].expval) -> namep; vardcl(np); if(np->vstg == STGCOMMON) extsymtab[np->vardesc.varno].extinit = YES; *************** *** 1209,1300 **** eqvclass[np->vardesc.varno].eqvinit = YES; else if(np->vstg!=STGINIT && np->vstg!=STGBSS) dclerr("inconsistent storage classes", np); ! yyval.chval = mkchain((char *)yypvt[-0].expval, CHNULL); ! } break; case 107: ! /* # line 641 "gram.in" */ { chainp p; struct Impldoblock *q; pop_datastack(); q = ALLOC(Impldoblock); q->tag = TIMPLDO; ! (q->varnp = (Namep) (yypvt[-1].chval->datap))->vimpldovar = 1; ! p = yypvt[-1].chval->nextp; if(p) { q->implb = (expptr)(p->datap); p = p->nextp; } if(p) { q->impub = (expptr)(p->datap); p = p->nextp; } if(p) { q->impstep = (expptr)(p->datap); } ! frchain( & (yypvt[-1].chval) ); yyval.chval = mkchain((char *)q, CHNULL); ! q->datalist = hookup(yypvt[-3].chval, yyval.chval); ! } break; case 108: ! /* # line 657 "gram.in" */ { if (!datastack) curdtp = 0; datastack = mkchain((char *)curdtp, datastack); ! curdtp = yypvt[-0].chval; curdtelt = 0; ! } break; case 109: ! /* # line 663 "gram.in" */ ! { yyval.chval = hookup(yypvt[-2].chval, yypvt[-0].chval); } break; case 110: ! /* # line 667 "gram.in" */ ! { ndim = 0; } break; case 112: ! /* # line 671 "gram.in" */ ! { ndim = 0; } break; case 115: ! /* # line 676 "gram.in" */ { if(ndim == maxdim) err("too many dimensions"); else if(ndim < maxdim) { dims[ndim].lb = 0; ! dims[ndim].ub = yypvt[-0].expval; } ++ndim; ! } break; case 116: ! /* # line 686 "gram.in" */ { if(ndim == maxdim) err("too many dimensions"); else if(ndim < maxdim) ! { dims[ndim].lb = yypvt[-2].expval; ! dims[ndim].ub = yypvt[-0].expval; } ++ndim; ! } break; case 117: ! /* # line 698 "gram.in" */ ! { yyval.expval = 0; } break; case 119: ! /* # line 703 "gram.in" */ ! { nstars = 1; labarray[0] = yypvt[-0].labval; } break; case 120: ! /* # line 705 "gram.in" */ ! { if(nstars < maxlablist) labarray[nstars++] = yypvt[-0].labval; } break; case 121: ! /* # line 709 "gram.in" */ ! { yyval.labval = execlab( convci(toklen, token) ); } break; case 122: ! /* # line 713 "gram.in" */ ! { NO66("IMPLICIT statement"); } break; case 125: ! /* # line 719 "gram.in" */ { if (vartype != TYUNKNOWN) dclerr("-- expected letter range",NPNULL); ! setimpl(vartype, varleng, 'a', 'z'); } break; case 126: ! /* # line 724 "gram.in" */ ! { needkwd = 1; } break; case 130: ! /* # line 733 "gram.in" */ ! { setimpl(vartype, varleng, yypvt[-0].ival, yypvt[-0].ival); } break; case 131: ! /* # line 735 "gram.in" */ ! { setimpl(vartype, varleng, yypvt[-2].ival, yypvt[-0].ival); } break; case 132: ! /* # line 739 "gram.in" */ { if(toklen!=1 || token[0]<'a' || token[0]>'z') { dclerr("implicit item must be single letter", NPNULL); --- 1856,1964 ---- eqvclass[np->vardesc.varno].eqvinit = YES; else if(np->vstg!=STGINIT && np->vstg!=STGBSS) dclerr("inconsistent storage classes", np); ! yyval.chval = mkchain((char *)yyvsp[0].expval, CHNULL); ! ; ! break;} case 107: ! #line 641 "gram.y" { chainp p; struct Impldoblock *q; pop_datastack(); q = ALLOC(Impldoblock); q->tag = TIMPLDO; ! (q->varnp = (Namep) (yyvsp[-1].chval->datap))->vimpldovar = 1; ! p = yyvsp[-1].chval->nextp; if(p) { q->implb = (expptr)(p->datap); p = p->nextp; } if(p) { q->impub = (expptr)(p->datap); p = p->nextp; } if(p) { q->impstep = (expptr)(p->datap); } ! frchain( & (yyvsp[-1].chval) ); yyval.chval = mkchain((char *)q, CHNULL); ! q->datalist = hookup(yyvsp[-3].chval, yyval.chval); ! ; ! break;} case 108: ! #line 657 "gram.y" { if (!datastack) curdtp = 0; datastack = mkchain((char *)curdtp, datastack); ! curdtp = yyvsp[0].chval; curdtelt = 0; ! ; ! break;} case 109: ! #line 663 "gram.y" ! { yyval.chval = hookup(yyvsp[-2].chval, yyvsp[0].chval); ; ! break;} case 110: ! #line 667 "gram.y" ! { ndim = 0; ; ! break;} case 112: ! #line 671 "gram.y" ! { ndim = 0; ; ! break;} case 115: ! #line 676 "gram.y" { if(ndim == maxdim) err("too many dimensions"); else if(ndim < maxdim) { dims[ndim].lb = 0; ! dims[ndim].ub = yyvsp[0].expval; } ++ndim; ! ; ! break;} case 116: ! #line 686 "gram.y" { if(ndim == maxdim) err("too many dimensions"); else if(ndim < maxdim) ! { dims[ndim].lb = yyvsp[-2].expval; ! dims[ndim].ub = yyvsp[0].expval; } ++ndim; ! ; ! break;} case 117: ! #line 698 "gram.y" ! { yyval.expval = 0; ; ! break;} case 119: ! #line 703 "gram.y" ! { nstars = 1; labarray[0] = yyvsp[0].labval; ; ! break;} case 120: ! #line 705 "gram.y" ! { if(nstars < maxlablist) labarray[nstars++] = yyvsp[0].labval; ; ! break;} case 121: ! #line 709 "gram.y" ! { yyval.labval = execlab( convci(toklen, token) ); ; ! break;} case 122: ! #line 713 "gram.y" ! { NO66("IMPLICIT statement"); ; ! break;} case 125: ! #line 719 "gram.y" { if (vartype != TYUNKNOWN) dclerr("-- expected letter range",NPNULL); ! setimpl(vartype, varleng, 'a', 'z'); ; ! break;} case 126: ! #line 724 "gram.y" ! { needkwd = 1; ; ! break;} case 130: ! #line 733 "gram.y" ! { setimpl(vartype, varleng, yyvsp[0].ival, yyvsp[0].ival); ; ! break;} case 131: ! #line 735 "gram.y" ! { setimpl(vartype, varleng, yyvsp[-2].ival, yyvsp[0].ival); ; ! break;} case 132: ! #line 739 "gram.y" { if(toklen!=1 || token[0]<'a' || token[0]>'z') { dclerr("implicit item must be single letter", NPNULL); *************** *** 1301,1328 **** yyval.ival = 0; } else yyval.ival = token[0]; ! } break; case 135: ! /* # line 753 "gram.in" */ { ! if(yypvt[-2].namval->vclass == CLUNKNOWN) { ! yypvt[-2].namval->vclass = CLNAMELIST; ! yypvt[-2].namval->vtype = TYINT; ! yypvt[-2].namval->vstg = STGBSS; ! yypvt[-2].namval->varxptr.namelist = yypvt[-0].chval; ! yypvt[-2].namval->vardesc.varno = ++lastvarno; } ! else dclerr("cannot be a namelist name", yypvt[-2].namval); ! } break; case 136: ! /* # line 767 "gram.in" */ ! { yyval.chval = mkchain((char *)yypvt[-0].namval, CHNULL); } break; case 137: ! /* # line 769 "gram.in" */ ! { yyval.chval = hookup(yypvt[-2].chval, mkchain((char *)yypvt[-0].namval, CHNULL)); } break; case 138: ! /* # line 773 "gram.in" */ { switch(parstate) { case OUTSIDE: newproc(); --- 1965,1996 ---- yyval.ival = 0; } else yyval.ival = token[0]; ! ; ! break;} case 135: ! #line 753 "gram.y" { ! if(yyvsp[-2].namval->vclass == CLUNKNOWN) { ! yyvsp[-2].namval->vclass = CLNAMELIST; ! yyvsp[-2].namval->vtype = TYINT; ! yyvsp[-2].namval->vstg = STGBSS; ! yyvsp[-2].namval->varxptr.namelist = yyvsp[0].chval; ! yyvsp[-2].namval->vardesc.varno = ++lastvarno; } ! else dclerr("cannot be a namelist name", yyvsp[-2].namval); ! ; ! break;} case 136: ! #line 767 "gram.y" ! { yyval.chval = mkchain((char *)yyvsp[0].namval, CHNULL); ; ! break;} case 137: ! #line 769 "gram.y" ! { yyval.chval = hookup(yyvsp[-2].chval, mkchain((char *)yyvsp[0].namval, CHNULL)); ; ! break;} case 138: ! #line 773 "gram.y" { switch(parstate) { case OUTSIDE: newproc(); *************** *** 1342,1636 **** default: dclerr("declaration among executables", NPNULL); } ! } break; case 139: ! /* # line 795 "gram.in" */ ! { yyval.chval = 0; } break; case 140: ! /* # line 797 "gram.in" */ ! { yyval.chval = revchain(yypvt[-0].chval); } break; case 141: ! /* # line 801 "gram.in" */ ! { yyval.chval = mkchain((char *)yypvt[-0].expval, CHNULL); } break; case 142: ! /* # line 803 "gram.in" */ ! { yyval.chval = mkchain((char *)yypvt[-0].expval, yypvt[-2].chval); } break; case 144: ! /* # line 808 "gram.in" */ ! { yyval.expval = yypvt[-1].expval; if (yyval.expval->tag == TPRIM) ! yyval.expval->primblock.parenused = 1; } break; case 148: ! /* # line 816 "gram.in" */ ! { yyval.expval = mkexpr(yypvt[-1].ival, yypvt[-2].expval, yypvt[-0].expval); } break; case 149: ! /* # line 818 "gram.in" */ ! { yyval.expval = mkexpr(OPSTAR, yypvt[-2].expval, yypvt[-0].expval); } break; case 150: ! /* # line 820 "gram.in" */ ! { yyval.expval = mkexpr(OPSLASH, yypvt[-2].expval, yypvt[-0].expval); } break; case 151: ! /* # line 822 "gram.in" */ ! { yyval.expval = mkexpr(OPPOWER, yypvt[-2].expval, yypvt[-0].expval); } break; case 152: ! /* # line 824 "gram.in" */ ! { if(yypvt[-1].ival == OPMINUS) ! yyval.expval = mkexpr(OPNEG, yypvt[-0].expval, ENULL); ! else yyval.expval = yypvt[-0].expval; ! } break; case 153: ! /* # line 829 "gram.in" */ ! { yyval.expval = mkexpr(yypvt[-1].ival, yypvt[-2].expval, yypvt[-0].expval); } break; case 154: ! /* # line 831 "gram.in" */ { NO66(".EQV. operator"); ! yyval.expval = mkexpr(OPEQV, yypvt[-2].expval,yypvt[-0].expval); } break; case 155: ! /* # line 834 "gram.in" */ { NO66(".NEQV. operator"); ! yyval.expval = mkexpr(OPNEQV, yypvt[-2].expval, yypvt[-0].expval); } break; case 156: ! /* # line 837 "gram.in" */ ! { yyval.expval = mkexpr(OPOR, yypvt[-2].expval, yypvt[-0].expval); } break; case 157: ! /* # line 839 "gram.in" */ ! { yyval.expval = mkexpr(OPAND, yypvt[-2].expval, yypvt[-0].expval); } break; case 158: ! /* # line 841 "gram.in" */ ! { yyval.expval = mkexpr(OPNOT, yypvt[-0].expval, ENULL); } break; case 159: ! /* # line 843 "gram.in" */ { NO66("concatenation operator //"); ! yyval.expval = mkexpr(OPCONCAT, yypvt[-2].expval, yypvt[-0].expval); } break; case 160: ! /* # line 847 "gram.in" */ ! { yyval.ival = OPPLUS; } break; case 161: ! /* # line 848 "gram.in" */ ! { yyval.ival = OPMINUS; } break; case 162: ! /* # line 851 "gram.in" */ ! { yyval.ival = OPEQ; } break; case 163: ! /* # line 852 "gram.in" */ ! { yyval.ival = OPGT; } break; case 164: ! /* # line 853 "gram.in" */ ! { yyval.ival = OPLT; } break; case 165: ! /* # line 854 "gram.in" */ ! { yyval.ival = OPGE; } break; case 166: ! /* # line 855 "gram.in" */ ! { yyval.ival = OPLE; } break; case 167: ! /* # line 856 "gram.in" */ ! { yyval.ival = OPNE; } break; case 168: ! /* # line 860 "gram.in" */ ! { yyval.expval = mkprim(yypvt[-0].namval, LBNULL, CHNULL); } break; case 169: ! /* # line 862 "gram.in" */ { NO66("substring operator :"); ! yyval.expval = mkprim(yypvt[-1].namval, LBNULL, yypvt[-0].chval); } break; case 170: ! /* # line 865 "gram.in" */ ! { yyval.expval = mkprim(yypvt[-3].namval, mklist(yypvt[-1].chval), CHNULL); } break; case 171: ! /* # line 867 "gram.in" */ { NO66("substring operator :"); ! yyval.expval = mkprim(yypvt[-4].namval, mklist(yypvt[-2].chval), yypvt[-0].chval); } break; case 172: ! /* # line 872 "gram.in" */ ! { yyval.chval = mkchain((char *)yypvt[-3].expval, mkchain((char *)yypvt[-1].expval,CHNULL)); } break; case 173: ! /* # line 876 "gram.in" */ ! { yyval.expval = 0; } break; case 175: ! /* # line 881 "gram.in" */ ! { if(yypvt[-0].namval->vclass == CLPARAM) yyval.expval = (expptr) cpexpr( ! ( (struct Paramblock *) (yypvt[-0].namval) ) -> paramval); ! } break; case 177: ! /* # line 888 "gram.in" */ ! { yyval.expval = mklogcon(1); } break; case 178: ! /* # line 889 "gram.in" */ ! { yyval.expval = mklogcon(0); } break; case 179: ! /* # line 890 "gram.in" */ ! { yyval.expval = mkstrcon(toklen, token); } break; case 180: ! /* # line 891 "gram.in" */ ! { yyval.expval = mkintcon( convci(toklen, token) ); } break; case 181: ! /* # line 892 "gram.in" */ ! { yyval.expval = mkrealcon(tyreal, token); } break; case 182: ! /* # line 893 "gram.in" */ ! { yyval.expval = mkrealcon(TYDREAL, token); } break; case 184: ! /* # line 898 "gram.in" */ ! { yyval.expval = mkcxcon(yypvt[-3].expval,yypvt[-1].expval); } break; case 185: ! /* # line 902 "gram.in" */ { NOEXT("hex constant"); ! yyval.expval = mkbitcon(4, toklen, token); } break; case 186: ! /* # line 905 "gram.in" */ { NOEXT("octal constant"); ! yyval.expval = mkbitcon(3, toklen, token); } break; case 187: ! /* # line 908 "gram.in" */ { NOEXT("binary constant"); ! yyval.expval = mkbitcon(1, toklen, token); } break; case 189: ! /* # line 914 "gram.in" */ ! { yyval.expval = yypvt[-1].expval; } break; case 192: ! /* # line 920 "gram.in" */ ! { yyval.expval = mkexpr(yypvt[-1].ival, yypvt[-2].expval, yypvt[-0].expval); } break; case 193: ! /* # line 922 "gram.in" */ ! { yyval.expval = mkexpr(OPSTAR, yypvt[-2].expval, yypvt[-0].expval); } break; case 194: ! /* # line 924 "gram.in" */ ! { yyval.expval = mkexpr(OPSLASH, yypvt[-2].expval, yypvt[-0].expval); } break; case 195: ! /* # line 926 "gram.in" */ ! { yyval.expval = mkexpr(OPPOWER, yypvt[-2].expval, yypvt[-0].expval); } break; case 196: ! /* # line 928 "gram.in" */ ! { if(yypvt[-1].ival == OPMINUS) ! yyval.expval = mkexpr(OPNEG, yypvt[-0].expval, ENULL); ! else yyval.expval = yypvt[-0].expval; ! } break; case 197: ! /* # line 933 "gram.in" */ { NO66("concatenation operator //"); ! yyval.expval = mkexpr(OPCONCAT, yypvt[-2].expval, yypvt[-0].expval); } break; case 199: ! /* # line 938 "gram.in" */ { ! if(yypvt[-3].labval->labdefined) execerr("no backward DO loops", CNULL); ! yypvt[-3].labval->blklevel = blklevel+1; ! exdo(yypvt[-3].labval->labelno, NPNULL, yypvt[-0].chval); ! } break; case 200: ! /* # line 945 "gram.in" */ { ! exdo((int)(ctls - ctlstack - 2), NPNULL, yypvt[-0].chval); NOEXT("DO without label"); ! } break; case 201: ! /* # line 950 "gram.in" */ ! { exenddo(NPNULL); } break; case 202: ! /* # line 952 "gram.in" */ ! { exendif(); thiswasbranch = NO; } break; case 204: ! /* # line 955 "gram.in" */ ! { exelif(yypvt[-2].expval); lastwasbranch = NO; } break; case 205: ! /* # line 957 "gram.in" */ ! { exelse(); lastwasbranch = NO; } break; case 206: ! /* # line 959 "gram.in" */ ! { exendif(); lastwasbranch = NO; } break; case 207: ! /* # line 963 "gram.in" */ ! { exif(yypvt[-1].expval); } break; case 208: ! /* # line 967 "gram.in" */ ! { yyval.chval = mkchain((char *)yypvt[-2].namval, yypvt[-0].chval); } break; case 210: ! /* # line 972 "gram.in" */ ! { yyval.chval = mkchain(CNULL, (chainp)yypvt[-1].expval); } break; case 211: ! /* # line 976 "gram.in" */ ! { exequals((struct Primblock *)yypvt[-2].expval, yypvt[-0].expval); } break; case 212: ! /* # line 978 "gram.in" */ ! { exassign(yypvt[-0].namval, yypvt[-2].labval); } break; case 215: ! /* # line 982 "gram.in" */ ! { inioctl = NO; } break; case 216: ! /* # line 984 "gram.in" */ ! { exarif(yypvt[-6].expval, yypvt[-4].labval, yypvt[-2].labval, yypvt[-0].labval); thiswasbranch = YES; } break; case 217: ! /* # line 986 "gram.in" */ ! { excall(yypvt[-0].namval, LBNULL, 0, labarray); } break; case 218: ! /* # line 988 "gram.in" */ ! { excall(yypvt[-2].namval, LBNULL, 0, labarray); } break; case 219: ! /* # line 990 "gram.in" */ { if(nstars < maxlablist) ! excall(yypvt[-3].namval, mklist(revchain(yypvt[-1].chval)), nstars, labarray); else many("alternate returns", 'l', maxlablist); ! } break; case 220: ! /* # line 996 "gram.in" */ ! { exreturn(yypvt[-0].expval); thiswasbranch = YES; } break; case 221: ! /* # line 998 "gram.in" */ ! { exstop(yypvt[-2].ival, yypvt[-0].expval); thiswasbranch = yypvt[-2].ival; } break; case 222: ! /* # line 1002 "gram.in" */ ! { yyval.labval = mklabel( convci(toklen, token) ); } break; case 223: ! /* # line 1006 "gram.in" */ { if(parstate == OUTSIDE) { newproc(); startproc(ESNULL, CLMAIN); } ! } break; case 224: ! /* # line 1015 "gram.in" */ ! { exgoto(yypvt[-0].labval); thiswasbranch = YES; } break; case 225: ! /* # line 1017 "gram.in" */ ! { exasgoto(yypvt[-0].namval); thiswasbranch = YES; } break; case 226: ! /* # line 1019 "gram.in" */ ! { exasgoto(yypvt[-4].namval); thiswasbranch = YES; } break; case 227: ! /* # line 1021 "gram.in" */ { if(nstars < maxlablist) ! putcmgo(putx(fixtype(yypvt[-0].expval)), nstars, labarray); else many("labels in computed GOTO list", 'l', maxlablist); ! } break; case 230: ! /* # line 1033 "gram.in" */ ! { nstars = 0; yyval.namval = yypvt[-0].namval; } break; case 231: ! /* # line 1037 "gram.in" */ ! { yyval.chval = yypvt[-0].expval ? mkchain((char *)yypvt[-0].expval,CHNULL) : CHNULL; } break; case 232: ! /* # line 1039 "gram.in" */ ! { yyval.chval = yypvt[-0].expval ? mkchain((char *)yypvt[-0].expval, yypvt[-2].chval) : yypvt[-2].chval; } break; case 234: ! /* # line 1044 "gram.in" */ ! { if(nstars < maxlablist) labarray[nstars++] = yypvt[-0].labval; yyval.expval = 0; } break; case 235: ! /* # line 1048 "gram.in" */ ! { yyval.ival = 0; } break; case 236: ! /* # line 1050 "gram.in" */ ! { yyval.ival = 2; } break; case 237: ! /* # line 1054 "gram.in" */ ! { yyval.chval = mkchain((char *)yypvt[-0].expval, CHNULL); } break; case 238: ! /* # line 1056 "gram.in" */ ! { yyval.chval = hookup(yypvt[-2].chval, mkchain((char *)yypvt[-0].expval,CHNULL) ); } break; case 239: ! /* # line 1060 "gram.in" */ { if(parstate == OUTSIDE) { newproc(); --- 2010,2387 ---- default: dclerr("declaration among executables", NPNULL); } ! ; ! break;} case 139: ! #line 795 "gram.y" ! { yyval.chval = 0; ; ! break;} case 140: ! #line 797 "gram.y" ! { yyval.chval = revchain(yyvsp[0].chval); ; ! break;} case 141: ! #line 801 "gram.y" ! { yyval.chval = mkchain((char *)yyvsp[0].expval, CHNULL); ; ! break;} case 142: ! #line 803 "gram.y" ! { yyval.chval = mkchain((char *)yyvsp[0].expval, yyvsp[-2].chval); ; ! break;} case 144: ! #line 808 "gram.y" ! { yyval.expval = yyvsp[-1].expval; if (yyval.expval->tag == TPRIM) ! yyval.expval->primblock.parenused = 1; ; ! break;} case 148: ! #line 816 "gram.y" ! { yyval.expval = mkexpr(yyvsp[-1].ival, yyvsp[-2].expval, yyvsp[0].expval); ; ! break;} case 149: ! #line 818 "gram.y" ! { yyval.expval = mkexpr(OPSTAR, yyvsp[-2].expval, yyvsp[0].expval); ; ! break;} case 150: ! #line 820 "gram.y" ! { yyval.expval = mkexpr(OPSLASH, yyvsp[-2].expval, yyvsp[0].expval); ; ! break;} case 151: ! #line 822 "gram.y" ! { yyval.expval = mkexpr(OPPOWER, yyvsp[-2].expval, yyvsp[0].expval); ; ! break;} case 152: ! #line 824 "gram.y" ! { if(yyvsp[-1].ival == OPMINUS) ! yyval.expval = mkexpr(OPNEG, yyvsp[0].expval, ENULL); ! else yyval.expval = yyvsp[0].expval; ! ; ! break;} case 153: ! #line 829 "gram.y" ! { yyval.expval = mkexpr(yyvsp[-1].ival, yyvsp[-2].expval, yyvsp[0].expval); ; ! break;} case 154: ! #line 831 "gram.y" { NO66(".EQV. operator"); ! yyval.expval = mkexpr(OPEQV, yyvsp[-2].expval,yyvsp[0].expval); ; ! break;} case 155: ! #line 834 "gram.y" { NO66(".NEQV. operator"); ! yyval.expval = mkexpr(OPNEQV, yyvsp[-2].expval, yyvsp[0].expval); ; ! break;} case 156: ! #line 837 "gram.y" ! { yyval.expval = mkexpr(OPOR, yyvsp[-2].expval, yyvsp[0].expval); ; ! break;} case 157: ! #line 839 "gram.y" ! { yyval.expval = mkexpr(OPAND, yyvsp[-2].expval, yyvsp[0].expval); ; ! break;} case 158: ! #line 841 "gram.y" ! { yyval.expval = mkexpr(OPNOT, yyvsp[0].expval, ENULL); ; ! break;} case 159: ! #line 843 "gram.y" { NO66("concatenation operator //"); ! yyval.expval = mkexpr(OPCONCAT, yyvsp[-2].expval, yyvsp[0].expval); ; ! break;} case 160: ! #line 847 "gram.y" ! { yyval.ival = OPPLUS; ; ! break;} case 161: ! #line 848 "gram.y" ! { yyval.ival = OPMINUS; ; ! break;} case 162: ! #line 851 "gram.y" ! { yyval.ival = OPEQ; ; ! break;} case 163: ! #line 852 "gram.y" ! { yyval.ival = OPGT; ; ! break;} case 164: ! #line 853 "gram.y" ! { yyval.ival = OPLT; ; ! break;} case 165: ! #line 854 "gram.y" ! { yyval.ival = OPGE; ; ! break;} case 166: ! #line 855 "gram.y" ! { yyval.ival = OPLE; ; ! break;} case 167: ! #line 856 "gram.y" ! { yyval.ival = OPNE; ; ! break;} case 168: ! #line 860 "gram.y" ! { yyval.expval = mkprim(yyvsp[0].namval, LBNULL, CHNULL); ; ! break;} case 169: ! #line 862 "gram.y" { NO66("substring operator :"); ! yyval.expval = mkprim(yyvsp[-1].namval, LBNULL, yyvsp[0].chval); ; ! break;} case 170: ! #line 865 "gram.y" ! { yyval.expval = mkprim(yyvsp[-3].namval, mklist(yyvsp[-1].chval), CHNULL); ; ! break;} case 171: ! #line 867 "gram.y" { NO66("substring operator :"); ! yyval.expval = mkprim(yyvsp[-4].namval, mklist(yyvsp[-2].chval), yyvsp[0].chval); ; ! break;} case 172: ! #line 872 "gram.y" ! { yyval.chval = mkchain((char *)yyvsp[-3].expval, mkchain((char *)yyvsp[-1].expval,CHNULL)); ; ! break;} case 173: ! #line 876 "gram.y" ! { yyval.expval = 0; ; ! break;} case 175: ! #line 881 "gram.y" ! { if(yyvsp[0].namval->vclass == CLPARAM) yyval.expval = (expptr) cpexpr( ! ( (struct Paramblock *) (yyvsp[0].namval) ) -> paramval); ! ; ! break;} case 177: ! #line 888 "gram.y" ! { yyval.expval = mklogcon(1); ; ! break;} case 178: ! #line 889 "gram.y" ! { yyval.expval = mklogcon(0); ; ! break;} case 179: ! #line 890 "gram.y" ! { yyval.expval = mkstrcon(toklen, token); ; ! break;} case 180: ! #line 891 "gram.y" ! { yyval.expval = mkintcon( convci(toklen, token) ); ; ! break;} case 181: ! #line 892 "gram.y" ! { yyval.expval = mkrealcon(tyreal, token); ; ! break;} case 182: ! #line 893 "gram.y" ! { yyval.expval = mkrealcon(TYDREAL, token); ; ! break;} case 184: ! #line 898 "gram.y" ! { yyval.expval = mkcxcon(yyvsp[-3].expval,yyvsp[-1].expval); ; ! break;} case 185: ! #line 902 "gram.y" { NOEXT("hex constant"); ! yyval.expval = mkbitcon(4, toklen, token); ; ! break;} case 186: ! #line 905 "gram.y" { NOEXT("octal constant"); ! yyval.expval = mkbitcon(3, toklen, token); ; ! break;} case 187: ! #line 908 "gram.y" { NOEXT("binary constant"); ! yyval.expval = mkbitcon(1, toklen, token); ; ! break;} case 189: ! #line 914 "gram.y" ! { yyval.expval = yyvsp[-1].expval; ; ! break;} case 192: ! #line 920 "gram.y" ! { yyval.expval = mkexpr(yyvsp[-1].ival, yyvsp[-2].expval, yyvsp[0].expval); ; ! break;} case 193: ! #line 922 "gram.y" ! { yyval.expval = mkexpr(OPSTAR, yyvsp[-2].expval, yyvsp[0].expval); ; ! break;} case 194: ! #line 924 "gram.y" ! { yyval.expval = mkexpr(OPSLASH, yyvsp[-2].expval, yyvsp[0].expval); ; ! break;} case 195: ! #line 926 "gram.y" ! { yyval.expval = mkexpr(OPPOWER, yyvsp[-2].expval, yyvsp[0].expval); ; ! break;} case 196: ! #line 928 "gram.y" ! { if(yyvsp[-1].ival == OPMINUS) ! yyval.expval = mkexpr(OPNEG, yyvsp[0].expval, ENULL); ! else yyval.expval = yyvsp[0].expval; ! ; ! break;} case 197: ! #line 933 "gram.y" { NO66("concatenation operator //"); ! yyval.expval = mkexpr(OPCONCAT, yyvsp[-2].expval, yyvsp[0].expval); ; ! break;} case 199: ! #line 938 "gram.y" { ! if(yyvsp[-3].labval->labdefined) execerr("no backward DO loops", CNULL); ! yyvsp[-3].labval->blklevel = blklevel+1; ! exdo(yyvsp[-3].labval->labelno, NPNULL, yyvsp[0].chval); ! ; ! break;} case 200: ! #line 945 "gram.y" { ! exdo((int)(ctls - ctlstack - 2), NPNULL, yyvsp[0].chval); NOEXT("DO without label"); ! ; ! break;} case 201: ! #line 950 "gram.y" ! { exenddo(NPNULL); ; ! break;} case 202: ! #line 952 "gram.y" ! { exendif(); thiswasbranch = NO; ; ! break;} case 204: ! #line 955 "gram.y" ! { exelif(yyvsp[-2].expval); lastwasbranch = NO; ; ! break;} case 205: ! #line 957 "gram.y" ! { exelse(); lastwasbranch = NO; ; ! break;} case 206: ! #line 959 "gram.y" ! { exendif(); lastwasbranch = NO; ; ! break;} case 207: ! #line 963 "gram.y" ! { exif(yyvsp[-1].expval); ; ! break;} case 208: ! #line 967 "gram.y" ! { yyval.chval = mkchain((char *)yyvsp[-2].namval, yyvsp[0].chval); ; ! break;} case 210: ! #line 972 "gram.y" ! { yyval.chval = mkchain(CNULL, (chainp)yyvsp[-1].expval); ; ! break;} case 211: ! #line 976 "gram.y" ! { exequals((struct Primblock *)yyvsp[-2].expval, yyvsp[0].expval); ; ! break;} case 212: ! #line 978 "gram.y" ! { exassign(yyvsp[0].namval, yyvsp[-2].labval); ; ! break;} case 215: ! #line 982 "gram.y" ! { inioctl = NO; ; ! break;} case 216: ! #line 984 "gram.y" ! { exarif(yyvsp[-6].expval, yyvsp[-4].labval, yyvsp[-2].labval, yyvsp[0].labval); thiswasbranch = YES; ; ! break;} case 217: ! #line 986 "gram.y" ! { excall(yyvsp[0].namval, LBNULL, 0, labarray); ; ! break;} case 218: ! #line 988 "gram.y" ! { excall(yyvsp[-2].namval, LBNULL, 0, labarray); ; ! break;} case 219: ! #line 990 "gram.y" { if(nstars < maxlablist) ! excall(yyvsp[-3].namval, mklist(revchain(yyvsp[-1].chval)), nstars, labarray); else many("alternate returns", 'l', maxlablist); ! ; ! break;} case 220: ! #line 996 "gram.y" ! { exreturn(yyvsp[0].expval); thiswasbranch = YES; ; ! break;} case 221: ! #line 998 "gram.y" ! { exstop(yyvsp[-2].ival, yyvsp[0].expval); thiswasbranch = yyvsp[-2].ival; ; ! break;} case 222: ! #line 1002 "gram.y" ! { yyval.labval = mklabel( convci(toklen, token) ); ; ! break;} case 223: ! #line 1006 "gram.y" { if(parstate == OUTSIDE) { newproc(); startproc(ESNULL, CLMAIN); } ! ; ! break;} case 224: ! #line 1015 "gram.y" ! { exgoto(yyvsp[0].labval); thiswasbranch = YES; ; ! break;} case 225: ! #line 1017 "gram.y" ! { exasgoto(yyvsp[0].namval); thiswasbranch = YES; ; ! break;} case 226: ! #line 1019 "gram.y" ! { exasgoto(yyvsp[-4].namval); thiswasbranch = YES; ; ! break;} case 227: ! #line 1021 "gram.y" { if(nstars < maxlablist) ! putcmgo(putx(fixtype(yyvsp[0].expval)), nstars, labarray); else many("labels in computed GOTO list", 'l', maxlablist); ! ; ! break;} case 230: ! #line 1033 "gram.y" ! { nstars = 0; yyval.namval = yyvsp[0].namval; ; ! break;} case 231: ! #line 1037 "gram.y" ! { yyval.chval = yyvsp[0].expval ? mkchain((char *)yyvsp[0].expval,CHNULL) : CHNULL; ; ! break;} case 232: ! #line 1039 "gram.y" ! { yyval.chval = yyvsp[0].expval ? mkchain((char *)yyvsp[0].expval, yyvsp[-2].chval) : yyvsp[-2].chval; ; ! break;} case 234: ! #line 1044 "gram.y" ! { if(nstars < maxlablist) labarray[nstars++] = yyvsp[0].labval; yyval.expval = 0; ; ! break;} case 235: ! #line 1048 "gram.y" ! { yyval.ival = 0; ; ! break;} case 236: ! #line 1050 "gram.y" ! { yyval.ival = 2; ; ! break;} case 237: ! #line 1054 "gram.y" ! { yyval.chval = mkchain((char *)yyvsp[0].expval, CHNULL); ; ! break;} case 238: ! #line 1056 "gram.y" ! { yyval.chval = hookup(yyvsp[-2].chval, mkchain((char *)yyvsp[0].expval,CHNULL) ); ; ! break;} case 239: ! #line 1060 "gram.y" { if(parstate == OUTSIDE) { newproc(); *************** *** 1640,1829 **** /* This next statement depends on the ordering of the state table encoding */ if(parstate < INDATA) enddcl(); ! } break; case 240: ! /* # line 1073 "gram.in" */ ! { intonly = YES; } break; case 241: ! /* # line 1077 "gram.in" */ ! { intonly = NO; } break; case 242: ! /* # line 1082 "gram.in" */ ! { endio(); } break; case 244: ! /* # line 1087 "gram.in" */ ! { ioclause(IOSUNIT, yypvt[-0].expval); endioctl(); } break; case 245: ! /* # line 1089 "gram.in" */ ! { ioclause(IOSUNIT, ENULL); endioctl(); } break; case 246: ! /* # line 1091 "gram.in" */ ! { ioclause(IOSUNIT, IOSTDERR); endioctl(); } break; case 248: ! /* # line 1094 "gram.in" */ ! { doio(CHNULL); } break; case 249: ! /* # line 1096 "gram.in" */ ! { doio(CHNULL); } break; case 250: ! /* # line 1098 "gram.in" */ ! { doio(revchain(yypvt[-0].chval)); } break; case 251: ! /* # line 1100 "gram.in" */ ! { doio(revchain(yypvt[-0].chval)); } break; case 252: ! /* # line 1102 "gram.in" */ ! { doio(revchain(yypvt[-0].chval)); } break; case 253: ! /* # line 1104 "gram.in" */ ! { doio(CHNULL); } break; case 254: ! /* # line 1106 "gram.in" */ ! { doio(revchain(yypvt[-0].chval)); } break; case 255: ! /* # line 1108 "gram.in" */ ! { doio(CHNULL); } break; case 256: ! /* # line 1110 "gram.in" */ ! { doio(revchain(yypvt[-0].chval)); } break; case 258: ! /* # line 1117 "gram.in" */ ! { iostmt = IOBACKSPACE; } break; case 259: ! /* # line 1119 "gram.in" */ ! { iostmt = IOREWIND; } break; case 260: ! /* # line 1121 "gram.in" */ ! { iostmt = IOENDFILE; } break; case 262: ! /* # line 1128 "gram.in" */ ! { iostmt = IOINQUIRE; } break; case 263: ! /* # line 1130 "gram.in" */ ! { iostmt = IOOPEN; } break; case 264: ! /* # line 1132 "gram.in" */ ! { iostmt = IOCLOSE; } break; case 265: ! /* # line 1136 "gram.in" */ { ioclause(IOSUNIT, ENULL); ! ioclause(IOSFMT, yypvt[-0].expval); endioctl(); ! } break; case 266: ! /* # line 1142 "gram.in" */ { ioclause(IOSUNIT, ENULL); ioclause(IOSFMT, ENULL); endioctl(); ! } break; case 267: ! /* # line 1150 "gram.in" */ { ! ioclause(IOSUNIT, yypvt[-1].expval); endioctl(); ! } break; case 268: ! /* # line 1155 "gram.in" */ ! { endioctl(); } break; case 271: ! /* # line 1163 "gram.in" */ ! { ioclause(IOSPOSITIONAL, yypvt[-0].expval); } break; case 272: ! /* # line 1165 "gram.in" */ ! { ioclause(IOSPOSITIONAL, ENULL); } break; case 273: ! /* # line 1167 "gram.in" */ ! { ioclause(IOSPOSITIONAL, IOSTDERR); } break; case 274: ! /* # line 1169 "gram.in" */ ! { ioclause(yypvt[-1].ival, yypvt[-0].expval); } break; case 275: ! /* # line 1171 "gram.in" */ ! { ioclause(yypvt[-1].ival, ENULL); } break; case 276: ! /* # line 1173 "gram.in" */ ! { ioclause(yypvt[-1].ival, IOSTDERR); } break; case 277: ! /* # line 1177 "gram.in" */ ! { yyval.ival = iocname(); } break; case 278: ! /* # line 1181 "gram.in" */ ! { iostmt = IOREAD; } break; case 279: ! /* # line 1185 "gram.in" */ ! { iostmt = IOWRITE; } break; case 280: ! /* # line 1189 "gram.in" */ { iostmt = IOWRITE; ioclause(IOSUNIT, ENULL); ! ioclause(IOSFMT, yypvt[-1].expval); endioctl(); ! } break; case 281: ! /* # line 1196 "gram.in" */ { iostmt = IOWRITE; ioclause(IOSUNIT, ENULL); ioclause(IOSFMT, ENULL); endioctl(); ! } break; case 282: ! /* # line 1205 "gram.in" */ ! { yyval.chval = mkchain((char *)yypvt[-0].tagval, CHNULL); } break; case 283: ! /* # line 1207 "gram.in" */ ! { yyval.chval = mkchain((char *)yypvt[-0].tagval, yypvt[-2].chval); } break; case 284: ! /* # line 1211 "gram.in" */ ! { yyval.tagval = (tagptr) yypvt[-0].expval; } break; case 285: ! /* # line 1213 "gram.in" */ ! { yyval.tagval = (tagptr) mkiodo(yypvt[-1].chval,revchain(yypvt[-3].chval)); } break; case 286: ! /* # line 1217 "gram.in" */ ! { yyval.chval = mkchain((char *)yypvt[-0].expval, CHNULL); } break; case 287: ! /* # line 1219 "gram.in" */ ! { yyval.chval = mkchain((char *)yypvt[-0].tagval, CHNULL); } break; case 289: ! /* # line 1224 "gram.in" */ ! { yyval.chval = mkchain((char *)yypvt[-0].expval, mkchain((char *)yypvt[-2].expval, CHNULL) ); } break; case 290: ! /* # line 1226 "gram.in" */ ! { yyval.chval = mkchain((char *)yypvt[-0].tagval, mkchain((char *)yypvt[-2].expval, CHNULL) ); } break; case 291: ! /* # line 1228 "gram.in" */ ! { yyval.chval = mkchain((char *)yypvt[-0].expval, mkchain((char *)yypvt[-2].tagval, CHNULL) ); } break; case 292: ! /* # line 1230 "gram.in" */ ! { yyval.chval = mkchain((char *)yypvt[-0].tagval, mkchain((char *)yypvt[-2].tagval, CHNULL) ); } break; case 293: ! /* # line 1232 "gram.in" */ ! { yyval.chval = mkchain((char *)yypvt[-0].expval, yypvt[-2].chval); } break; case 294: ! /* # line 1234 "gram.in" */ ! { yyval.chval = mkchain((char *)yypvt[-0].tagval, yypvt[-2].chval); } break; case 295: ! /* # line 1238 "gram.in" */ ! { yyval.tagval = (tagptr) yypvt[-0].expval; } break; case 296: ! /* # line 1240 "gram.in" */ ! { yyval.tagval = (tagptr) yypvt[-1].expval; } break; case 297: ! /* # line 1242 "gram.in" */ ! { yyval.tagval = (tagptr) mkiodo(yypvt[-1].chval, mkchain((char *)yypvt[-3].expval, CHNULL) ); } break; case 298: ! /* # line 1244 "gram.in" */ ! { yyval.tagval = (tagptr) mkiodo(yypvt[-1].chval, mkchain((char *)yypvt[-3].tagval, CHNULL) ); } break; case 299: ! /* # line 1246 "gram.in" */ ! { yyval.tagval = (tagptr) mkiodo(yypvt[-1].chval, revchain(yypvt[-3].chval)); } break; case 300: ! /* # line 1250 "gram.in" */ ! { startioctl(); } break; ! } ! goto yystack; /* stack new state and value */ } --- 2391,2831 ---- /* This next statement depends on the ordering of the state table encoding */ if(parstate < INDATA) enddcl(); ! ; ! break;} case 240: ! #line 1073 "gram.y" ! { intonly = YES; ; ! break;} case 241: ! #line 1077 "gram.y" ! { intonly = NO; ; ! break;} case 242: ! #line 1082 "gram.y" ! { endio(); ; ! break;} case 244: ! #line 1087 "gram.y" ! { ioclause(IOSUNIT, yyvsp[0].expval); endioctl(); ; ! break;} case 245: ! #line 1089 "gram.y" ! { ioclause(IOSUNIT, ENULL); endioctl(); ; ! break;} case 246: ! #line 1091 "gram.y" ! { ioclause(IOSUNIT, IOSTDERR); endioctl(); ; ! break;} case 248: ! #line 1094 "gram.y" ! { doio(CHNULL); ; ! break;} case 249: ! #line 1096 "gram.y" ! { doio(CHNULL); ; ! break;} case 250: ! #line 1098 "gram.y" ! { doio(revchain(yyvsp[0].chval)); ; ! break;} case 251: ! #line 1100 "gram.y" ! { doio(revchain(yyvsp[0].chval)); ; ! break;} case 252: ! #line 1102 "gram.y" ! { doio(revchain(yyvsp[0].chval)); ; ! break;} case 253: ! #line 1104 "gram.y" ! { doio(CHNULL); ; ! break;} case 254: ! #line 1106 "gram.y" ! { doio(revchain(yyvsp[0].chval)); ; ! break;} case 255: ! #line 1108 "gram.y" ! { doio(CHNULL); ; ! break;} case 256: ! #line 1110 "gram.y" ! { doio(revchain(yyvsp[0].chval)); ; ! break;} case 258: ! #line 1117 "gram.y" ! { iostmt = IOBACKSPACE; ; ! break;} case 259: ! #line 1119 "gram.y" ! { iostmt = IOREWIND; ; ! break;} case 260: ! #line 1121 "gram.y" ! { iostmt = IOENDFILE; ; ! break;} case 262: ! #line 1128 "gram.y" ! { iostmt = IOINQUIRE; ; ! break;} case 263: ! #line 1130 "gram.y" ! { iostmt = IOOPEN; ; ! break;} case 264: ! #line 1132 "gram.y" ! { iostmt = IOCLOSE; ; ! break;} case 265: ! #line 1136 "gram.y" { ioclause(IOSUNIT, ENULL); ! ioclause(IOSFMT, yyvsp[0].expval); endioctl(); ! ; ! break;} case 266: ! #line 1142 "gram.y" { ioclause(IOSUNIT, ENULL); ioclause(IOSFMT, ENULL); endioctl(); ! ; ! break;} case 267: ! #line 1150 "gram.y" { ! ioclause(IOSUNIT, yyvsp[-1].expval); endioctl(); ! ; ! break;} case 268: ! #line 1155 "gram.y" ! { endioctl(); ; ! break;} case 271: ! #line 1163 "gram.y" ! { ioclause(IOSPOSITIONAL, yyvsp[0].expval); ; ! break;} case 272: ! #line 1165 "gram.y" ! { ioclause(IOSPOSITIONAL, ENULL); ; ! break;} case 273: ! #line 1167 "gram.y" ! { ioclause(IOSPOSITIONAL, IOSTDERR); ; ! break;} case 274: ! #line 1169 "gram.y" ! { ioclause(yyvsp[-1].ival, yyvsp[0].expval); ; ! break;} case 275: ! #line 1171 "gram.y" ! { ioclause(yyvsp[-1].ival, ENULL); ; ! break;} case 276: ! #line 1173 "gram.y" ! { ioclause(yyvsp[-1].ival, IOSTDERR); ; ! break;} case 277: ! #line 1177 "gram.y" ! { yyval.ival = iocname(); ; ! break;} case 278: ! #line 1181 "gram.y" ! { iostmt = IOREAD; ; ! break;} case 279: ! #line 1185 "gram.y" ! { iostmt = IOWRITE; ; ! break;} case 280: ! #line 1189 "gram.y" { iostmt = IOWRITE; ioclause(IOSUNIT, ENULL); ! ioclause(IOSFMT, yyvsp[-1].expval); endioctl(); ! ; ! break;} case 281: ! #line 1196 "gram.y" { iostmt = IOWRITE; ioclause(IOSUNIT, ENULL); ioclause(IOSFMT, ENULL); endioctl(); ! ; ! break;} case 282: ! #line 1205 "gram.y" ! { yyval.chval = mkchain((char *)yyvsp[0].tagval, CHNULL); ; ! break;} case 283: ! #line 1207 "gram.y" ! { yyval.chval = mkchain((char *)yyvsp[0].tagval, yyvsp[-2].chval); ; ! break;} case 284: ! #line 1211 "gram.y" ! { yyval.tagval = (tagptr) yyvsp[0].expval; ; ! break;} case 285: ! #line 1213 "gram.y" ! { yyval.tagval = (tagptr) mkiodo(yyvsp[-1].chval,revchain(yyvsp[-3].chval)); ; ! break;} case 286: ! #line 1217 "gram.y" ! { yyval.chval = mkchain((char *)yyvsp[0].expval, CHNULL); ; ! break;} case 287: ! #line 1219 "gram.y" ! { yyval.chval = mkchain((char *)yyvsp[0].tagval, CHNULL); ; ! break;} case 289: ! #line 1224 "gram.y" ! { yyval.chval = mkchain((char *)yyvsp[0].expval, mkchain((char *)yyvsp[-2].expval, CHNULL) ); ; ! break;} case 290: ! #line 1226 "gram.y" ! { yyval.chval = mkchain((char *)yyvsp[0].tagval, mkchain((char *)yyvsp[-2].expval, CHNULL) ); ; ! break;} case 291: ! #line 1228 "gram.y" ! { yyval.chval = mkchain((char *)yyvsp[0].expval, mkchain((char *)yyvsp[-2].tagval, CHNULL) ); ; ! break;} case 292: ! #line 1230 "gram.y" ! { yyval.chval = mkchain((char *)yyvsp[0].tagval, mkchain((char *)yyvsp[-2].tagval, CHNULL) ); ; ! break;} case 293: ! #line 1232 "gram.y" ! { yyval.chval = mkchain((char *)yyvsp[0].expval, yyvsp[-2].chval); ; ! break;} case 294: ! #line 1234 "gram.y" ! { yyval.chval = mkchain((char *)yyvsp[0].tagval, yyvsp[-2].chval); ; ! break;} case 295: ! #line 1238 "gram.y" ! { yyval.tagval = (tagptr) yyvsp[0].expval; ; ! break;} case 296: ! #line 1240 "gram.y" ! { yyval.tagval = (tagptr) yyvsp[-1].expval; ; ! break;} case 297: ! #line 1242 "gram.y" ! { yyval.tagval = (tagptr) mkiodo(yyvsp[-1].chval, mkchain((char *)yyvsp[-3].expval, CHNULL) ); ; ! break;} case 298: ! #line 1244 "gram.y" ! { yyval.tagval = (tagptr) mkiodo(yyvsp[-1].chval, mkchain((char *)yyvsp[-3].tagval, CHNULL) ); ; ! break;} case 299: ! #line 1246 "gram.y" ! { yyval.tagval = (tagptr) mkiodo(yyvsp[-1].chval, revchain(yyvsp[-3].chval)); ; ! break;} case 300: ! #line 1250 "gram.y" ! { startioctl(); ; ! break;} ! } ! /* the action file gets copied in in place of this dollarsign */ ! #line 457 "/usr/local/lib/bison.simple" ! ! yyvsp -= yylen; ! yyssp -= yylen; ! #ifdef YYLSP_NEEDED ! yylsp -= yylen; ! #endif ! ! #if YYDEBUG != 0 ! if (yydebug) ! { ! short *ssp1 = yyss - 1; ! fprintf (stderr, "state stack now"); ! while (ssp1 != yyssp) ! fprintf (stderr, " %d", *++ssp1); ! fprintf (stderr, "\n"); ! } ! #endif ! ! *++yyvsp = yyval; ! ! #ifdef YYLSP_NEEDED ! yylsp++; ! if (yylen == 0) ! { ! yylsp->first_line = yylloc.first_line; ! yylsp->first_column = yylloc.first_column; ! yylsp->last_line = (yylsp-1)->last_line; ! yylsp->last_column = (yylsp-1)->last_column; ! yylsp->text = 0; ! } ! else ! { ! yylsp->last_line = (yylsp+yylen-1)->last_line; ! yylsp->last_column = (yylsp+yylen-1)->last_column; ! } ! #endif ! ! /* Now "shift" the result of the reduction. ! Determine what state that goes to, ! based on the state we popped back to ! and the rule number reduced by. */ ! ! yyn = yyr1[yyn]; ! ! yystate = yypgoto[yyn - YYNTBASE] + *yyssp; ! if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) ! yystate = yytable[yystate]; ! else ! yystate = yydefgoto[yyn - YYNTBASE]; ! ! goto yynewstate; ! ! yyerrlab: /* here on detecting error */ ! ! if (! yyerrstatus) ! /* If not already recovering from an error, report this error. */ ! { ! ++yynerrs; ! ! #ifdef YYERROR_VERBOSE ! yyn = yypact[yystate]; ! ! if (yyn > YYFLAG && yyn < YYLAST) ! { ! int size = 0; ! char *msg; ! int x, count; ! ! count = 0; ! /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ ! for (x = (yyn < 0 ? -yyn : 0); ! x < (sizeof(yytname) / sizeof(char *)); x++) ! if (yycheck[x + yyn] == x) ! size += strlen(yytname[x]) + 15, count++; ! msg = (char *) malloc(size + 15); ! if (msg != 0) ! { ! strcpy(msg, "parse error"); ! ! if (count < 5) ! { ! count = 0; ! for (x = (yyn < 0 ? -yyn : 0); ! x < (sizeof(yytname) / sizeof(char *)); x++) ! if (yycheck[x + yyn] == x) ! { ! strcat(msg, count == 0 ? ", expecting `" : " or `"); ! strcat(msg, yytname[x]); ! strcat(msg, "'"); ! count++; ! } ! } ! yyerror(msg); ! free(msg); ! } ! else ! yyerror ("parse error; also virtual memory exceeded"); ! } ! else ! #endif /* YYERROR_VERBOSE */ ! yyerror("parse error"); ! } ! ! goto yyerrlab1; ! yyerrlab1: /* here on error raised explicitly by an action */ ! ! if (yyerrstatus == 3) ! { ! /* if just tried and failed to reuse lookahead token after an error, discard it. */ ! ! /* return failure if at end of input */ ! if (yychar == YYEOF) ! YYABORT; ! ! #if YYDEBUG != 0 ! if (yydebug) ! fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); ! #endif ! ! yychar = YYEMPTY; ! } ! ! /* Else will try to reuse lookahead token ! after shifting the error token. */ ! ! yyerrstatus = 3; /* Each real token shifted decrements this */ ! ! goto yyerrhandle; ! ! yyerrdefault: /* current state does not do anything special for the error token. */ ! ! #if 0 ! /* This is wrong; only states that explicitly want error tokens ! should shift them. */ ! yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ ! if (yyn) goto yydefault; ! #endif ! ! yyerrpop: /* pop the current state because it cannot handle the error token */ ! ! if (yyssp == yyss) YYABORT; ! yyvsp--; ! yystate = *--yyssp; ! #ifdef YYLSP_NEEDED ! yylsp--; ! #endif ! ! #if YYDEBUG != 0 ! if (yydebug) ! { ! short *ssp1 = yyss - 1; ! fprintf (stderr, "Error: state stack now"); ! while (ssp1 != yyssp) ! fprintf (stderr, " %d", *++ssp1); ! fprintf (stderr, "\n"); ! } ! #endif ! ! yyerrhandle: ! ! yyn = yypact[yystate]; ! if (yyn == YYFLAG) ! goto yyerrdefault; ! ! yyn += YYTERROR; ! if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) ! goto yyerrdefault; ! ! yyn = yytable[yyn]; ! if (yyn < 0) ! { ! if (yyn == YYFLAG) ! goto yyerrpop; ! yyn = -yyn; ! goto yyreduce; ! } ! else if (yyn == 0) ! goto yyerrpop; ! ! if (yyn == YYFINAL) ! YYACCEPT; ! ! #if YYDEBUG != 0 ! if (yydebug) ! fprintf(stderr, "Shifting error token, "); ! #endif ! ! *++yyvsp = yylval; ! #ifdef YYLSP_NEEDED ! *++yylsp = yylloc; ! #endif ! ! yystate = yyn; ! goto yynewstate; } + #line 1252 "gram.y" diff -c ORIG-src/makefile src/makefile *** ORIG-src/makefile Wed Apr 28 07:08:42 1993 --- src/makefile Thu Nov 18 03:07:40 1993 *************** *** 1,6 **** # Makefile for f2c, a Fortran 77 to C converter ! g = -g CFLAGS = $g SHELL = /bin/sh --- 1,9 ---- # Makefile for f2c, a Fortran 77 to C converter ! CC = gcc ! YACC = bison -y ! ! g = -O2 CFLAGS = $g SHELL = /bin/sh *************** *** 8,16 **** expr.o exec.o intr.o io.o misc.o error.o mem.o names.o \ output.o p1output.o pread.o put.o putpcc.o vax.o formatdata.o \ parse_args.o niceprintf.o cds.o sysdep.o version.o ! OBJECTS = $(OBJECTSd) malloc.o ! all: xsum.out f2c f2c: $(OBJECTS) $(CC) $(LDFLAGS) $(OBJECTS) -o f2c --- 11,23 ---- expr.o exec.o intr.o io.o misc.o error.o mem.o names.o \ output.o p1output.o pread.o put.o putpcc.o vax.o formatdata.o \ parse_args.o niceprintf.o cds.o sysdep.o version.o ! OBJECTS = $(OBJECTSd) ! #malloc.o ! ! .c.o: ! $(CC) -c $(CFLAGS) $*.c ! all: f2c f2c: $(OBJECTS) $(CC) $(LDFLAGS) $(OBJECTS) -o f2c *************** *** 17,27 **** gram.c: gram.head gram.dcl gram.expr gram.exec gram.io defs.h tokdefs.h ( sed gram.in ! $(YACC) $(YFLAGS) gram.in echo "(expect 4 shift/reduce)" sed 's/^# line.*/\/* & *\//' y.tab.c >gram.c ! rm -f gram.in y.tab.c $(OBJECTSd): defs.h ftypes.h defines.h machdefs.h sysdep.h --- 24,38 ---- gram.c: gram.head gram.dcl gram.expr gram.exec gram.io defs.h tokdefs.h ( sed gram.y ! $(YACC) $(YFLAGS) gram.y echo "(expect 4 shift/reduce)" sed 's/^# line.*/\/* & *\//' y.tab.c >gram.c ! rm -f gram.y y.tab.c ! ! # -O2 is too much for my 4 meg Amiga :-( ! gram.o: gram.c ! $(CC) -c -O gram.c $(OBJECTSd): defs.h ftypes.h defines.h machdefs.h sysdep.h diff -c ORIG-src/sysdep.c src/sysdep.c *** ORIG-src/sysdep.c Wed Apr 28 07:10:00 1993 --- src/sysdep.c Wed Nov 17 12:16:04 1993 *************** *** 40,45 **** --- 40,48 ---- #ifndef TMPDIR #ifdef MSDOS #define TMPDIR "" + #endif + #ifdef AMIGA + #define TMPDIR "T:" #else #define TMPDIR "/tmp" #endif *************** *** 99,106 **** sprintf(p1_file, "%sf2c_p1f", t); sprintf(p1_bakfile, "%sf2c_p1fb", t); sprintf(sortfname, "%sf2c_sort", t); #else ! int pid = getpid(); sprintf(c_functions, "%s/f2c%d_func", tmpdir, pid); sprintf(initfname, "%s/f2c%d_rd", tmpdir, pid); sprintf(blkdfname, "%s/f2c%d_blkd", tmpdir, pid); --- 102,118 ---- sprintf(p1_file, "%sf2c_p1f", t); sprintf(p1_bakfile, "%sf2c_p1fb", t); sprintf(sortfname, "%sf2c_sort", t); + #endif + #ifdef AMIGA + int pid = getpid(); + sprintf(c_functions, "%sf2c%d_func", tmpdir, pid); + sprintf(initfname, "%sf2c%d_rd", tmpdir, pid); + sprintf(blkdfname, "%sf2c%d_blkd", tmpdir, pid); + sprintf(p1_file, "%sf2c%d_p1f", tmpdir, pid); + sprintf(p1_bakfile, "%sf2c%d_p1fb", tmpdir, pid); + sprintf(sortfname, "%sf2c%d_sort", tmpdir, pid); #else ! int pid = getpid(); sprintf(c_functions, "%s/f2c%d_func", tmpdir, pid); sprintf(initfname, "%s/f2c%d_rd", tmpdir, pid); sprintf(blkdfname, "%s/f2c%d_blkd", tmpdir, pid);