|
|
1.1 ! root 1: ! 2: #line 19 "awk.y" ! 3: ! 4: #include "awk.h" ! 5: ! 6: ! 7: #include "y.tab.h" ! 8: #define YYCLEARIN yychar = -1000 ! 9: #define YYERROK yyerrflag = 0 ! 10: extern int yychar; ! 11: extern short yyerrflag; ! 12: #ifndef YYMAXDEPTH ! 13: #define YYMAXDEPTH 150 ! 14: #endif ! 15: YYSTYPE yyval, yylval; ! 16: #ifdef YYTNAMES ! 17: struct yytname yytnames[68] = ! 18: { ! 19: "$end", -1, ! 20: "error", -2, ! 21: "IF_", 256, ! 22: "WHILE_", 257, ! 23: "FOR_", 258, ! 24: "ELSE_", 259, ! 25: "BREAK_", 260, ! 26: "CONTINUE_", 261, ! 27: "NEXT_", 262, ! 28: "EXIT_", 263, ! 29: "IN_", 264, ! 30: "PRINT_", 265, ! 31: "PRINTF_", 266, ! 32: "BEGIN_", 267, ! 33: "END_", 268, ! 34: "FAPPEND_", 269, ! 35: "FOUT_", 270, ! 36: "ID_", 271, ! 37: "STRING_", 272, ! 38: "NUMBER_", 273, ! 39: "FUNCTION_", 274, ! 40: "SCON_", 295, ! 41: "ASADD_", 296, ! 42: "ASSUB_", 297, ! 43: "ASMUL_", 298, ! 44: "ASDIV_", 299, ! 45: "'='", 61, ! 46: "ASMOD_", 300, ! 47: "OROR_", 301, ! 48: "ANDAND_", 302, ! 49: "'~'", 126, ! 50: "NMATCH_", 303, ! 51: "EQ_", 304, ! 52: "NE_", 305, ! 53: "GE_", 306, ! 54: "'>'", 62, ! 55: "LE_", 307, ! 56: "'<'", 60, ! 57: "'+'", 43, ! 58: "'-'", 45, ! 59: "'*'", 42, ! 60: "'/'", 47, ! 61: "'%'", 37, ! 62: "'!'", 33, ! 63: "INC_", 308, ! 64: "DEC_", 309, ! 65: "'$'", 36, ! 66: "'('", 40, ! 67: "'['", 91, ! 68: "REEOL_", 310, ! 69: "REBOL_", 311, ! 70: "REANY_", 312, ! 71: "RECLASS_", 313, ! 72: "RECHAR_", 314, ! 73: "REOR_", 315, ! 74: "RECON_", 316, ! 75: "RECLOS_", 317, ! 76: "RENECL_", 318, ! 77: "REZOCL_", 319, ! 78: "'\\n'", 10, ! 79: "','", 44, ! 80: "')'", 41, ! 81: "'{'", 123, ! 82: "'}'", 125, ! 83: "';'", 59, ! 84: "']'", 93, ! 85: "'|'", 124, ! 86: NULL ! 87: } ; ! 88: #endif ! 89: #include <action.h> ! 90: unsigned char yypdnt[102] = { ! 91: 0, 1, 2, 2, 3, 3, 3, 5, ! 92: 5, 5, 5, 8, 7, 10, 7, 9, ! 93: 9, 9, 9, 9, 9, 9, 9, 9, ! 94: 11, 11, 11, 4, 13, 15, 13, 13, ! 95: 13, 13, 13, 13, 13, 13, 17, 13, ! 96: 20, 13, 21, 13, 13, 13, 13, 12, ! 97: 12, 14, 22, 22, 22, 22, 22, 22, ! 98: 24, 24, 24, 24, 24, 16, 16, 16, ! 99: 16, 26, 26, 25, 25, 23, 23, 6, ! 100: 6, 6, 6, 6, 6, 6, 6, 6, ! 101: 6, 6, 6, 6, 6, 6, 6, 6, ! 102: 6, 6, 6, 6, 6, 6, 19, 19, ! 103: 19, 19, 18, 18, 27, 27 ! 104: }; ! 105: unsigned char yypn[102] = { ! 106: 2, 1, 2, 1, 2, 2, 3, 1, ! 107: 1, 1, 3, 0, 4, 0, 4, 2, ! 108: 3, 3, 2, 1, 1, 1, 1, 1, ! 109: 1, 1, 1, 3, 5, 0, 8, 5, ! 110: 7, 9, 2, 2, 1, 2, 0, 4, ! 111: 0, 3, 0, 4, 2, 2, 1, 1, ! 112: 2, 1, 3, 3, 2, 2, 2, 2, ! 113: 1, 1, 1, 1, 1, 4, 2, 4, ! 114: 1, 1, 1, 1, 1, 1, 2, 3, ! 115: 3, 3, 2, 2, 1, 1, 3, 3, ! 116: 3, 3, 3, 3, 3, 3, 3, 3, ! 117: 3, 3, 3, 1, 4, 1, 3, 3, ! 118: 3, 1, 3, 1, 1, 3 ! 119: }; ! 120: unsigned char yypgo[28] = { ! 121: 0, 0, 2, 6, 8, 16, 18, 94, ! 122: 102, 104, 112, 114, 116, 120, 132, 140, ! 123: 142, 160, 162, 166, 172, 174, 176, 178, ! 124: 190, 192, 202, 204 ! 125: }; ! 126: unsigned int yygo[212] = { ! 127: -1000, 16, 18, 55, -1000, 17, -1000, 18, ! 128: 0, 19, 18, 19, 20, 58, -1000, 50, ! 129: -1000, 20, 0, 21, 8, 30, 10, 32, ! 130: 15, 51, 18, 21, 35, 95, 39, 97, ! 131: 53, 51, 59, 112, 60, 113, 63, 116, ! 132: 64, 117, 65, 118, 66, 119, 67, 120, ! 133: 68, 121, 69, 122, 70, 123, 71, 124, ! 134: 72, 125, 73, 126, 74, 127, 85, 97, ! 135: 86, 97, 98, 143, 99, 144, 100, 145, ! 136: 128, 97, 129, 97, 160, 51, 161, 51, ! 137: 162, 173, 164, 97, 180, 183, 181, 51, ! 138: 182, 51, 186, 51, -1000, 38, 61, 114, ! 139: 62, 115, 84, 130, -1000, 22, -1000, 31, ! 140: 31, 94, 88, 134, 136, 158, -1000, 140, ! 141: -1000, 84, -1000, 141, 53, 110, -1000, 52, ! 142: 160, 171, 161, 172, 181, 184, 182, 185, ! 143: 186, 187, -1000, 53, 144, 161, 174, 181, ! 144: 183, 186, -1000, 160, -1000, 182, 11, 33, ! 145: 12, 34, 13, 36, 100, 146, 150, 36, ! 146: 151, 36, 153, 36, 163, 174, -1000, 23, ! 147: -1000, 105, 107, 155, -1000, 148, 148, 166, ! 148: 155, 170, -1000, 154, -1000, 106, -1000, 107, ! 149: -1000, 24, 14, 39, 28, 85, 79, 128, ! 150: 83, 129, 147, 164, -1000, 86, -1000, 83, ! 151: 13, 37, 150, 167, 151, 168, 153, 169, ! 152: -1000, 25, -1000, 26, 29, 87, 132, 156, ! 153: 147, 165, -1000, 149 ! 154: }; ! 155: unsigned short yypa[188] = { ! 156: 0, 30, 34, 36, 38, 42, 44, 46, ! 157: 50, 74, 50, 76, 76, 82, 50, 94, ! 158: 140, 144, 146, 178, 182, 188, 222, 224, ! 159: 242, 244, 246, 248, 50, 50, 250, 252, ! 160: 266, 268, 270, 50, 272, 274, 276, 308, ! 161: 334, 338, 342, 346, 350, 354, 358, 362, ! 162: 372, 374, 376, 378, 412, 416, 464, 468, ! 163: 470, 472, 474, 50, 50, 478, 478, 50, ! 164: 50, 50, 50, 50, 50, 50, 50, 50, ! 165: 50, 50, 50, 482, 484, 486, 488, 50, ! 166: 490, 492, 494, 50, 496, 500, 526, 562, ! 167: 252, 566, 568, 570, 572, 574, 576, 600, ! 168: 634, 636, 50, 50, 50, 668, 670, 672, ! 169: 674, 676, 700, 676, 710, 712, 714, 716, ! 170: 718, 748, 776, 778, 780, 804, 828, 848, ! 171: 868, 888, 908, 916, 924, 926, 928, 930, ! 172: 962, 1030, 1098, 1100, 50, 1102, 1104, 1128, ! 173: 252, 1130, 1132, 1134, 1136, 1154, 1156, 1158, ! 174: 1158, 1192, 1226, 50, 1246, 1256, 1258, 1258, ! 175: 1268, 1258, 1270, 1246, 1272, 1274, 1276, 1294, ! 176: 94, 94, 50, 76, 1296, 1324, 1328, 1330, ! 177: 1334, 1338, 1342, 1344, 1348, 1350, 1384, 1388, ! 178: 1390, 1392, 1394, 1396, 50, 94, 94, 1158, ! 179: 1398, 1400, 94, 1402 ! 180: }; ! 181: unsigned int yyact[1404] = { ! 182: 2, 267, 3, 268, 4, 271, 5, 272, ! 183: 6, 273, 7, 274, 8, 45, 9, 47, ! 184: 10, 33, 11, 308, 12, 309, 13, 36, ! 185: 14, 40, 15, 123, 1, -1000, 27, 10, ! 186: 24576, -1000, 8199, -1000, 8200, -1000, 28, 91, ! 187: 8256, -1000, 8257, -1000, 8258, -1000, 29, 40, ! 188: 8285, -1000, 4, 271, 5, 272, 6, 273, ! 189: 7, 274, 8, 45, 9, 47, 10, 33, ! 190: 11, 308, 12, 309, 13, 36, 14, 40, ! 191: 1, -1000, 8203, -1000, 4, 271, 13, 36, ! 192: 24576, -1000, 4, 271, 5, 272, 6, 273, ! 193: 13, 36, 35, 40, 24576, -1000, 40, 256, ! 194: 41, 257, 42, 258, 43, 260, 44, 261, ! 195: 45, 262, 46, 263, 47, 265, 48, 266, ! 196: 4, 271, 5, 272, 6, 273, 7, 274, ! 197: 8, 45, 9, 47, 10, 33, 11, 308, ! 198: 12, 309, 13, 36, 14, 40, 15, 123, ! 199: 49, 59, 1, -1000, 54, -1, 24576, -1000, ! 200: 8193, -1000, 2, 267, 3, 268, 4, 271, ! 201: 5, 272, 6, 273, 7, 274, 8, 45, ! 202: 9, 47, 10, 33, 11, 308, 12, 309, ! 203: 13, 36, 14, 40, 15, 123, 8195, -1, ! 204: 1, -1000, 56, 10, 24576, -1000, 57, 10, ! 205: 15, 123, 24576, -1000, 59, 301, 60, 302, ! 206: 61, 126, 62, 303, 63, 304, 64, 305, ! 207: 65, 306, 66, 62, 67, 307, 68, 60, ! 208: 69, 43, 70, 45, 71, 42, 72, 47, ! 209: 73, 37, 74, 44, 8201, -1000, 8283, -1000, ! 210: 75, 296, 76, 297, 77, 298, 78, 299, ! 211: 79, 61, 80, 300, 81, 308, 82, 309, ! 212: 8259, -1000, 8269, -1000, 8268, -1000, 8260, -1000, ! 213: 8205, -1000, 8267, -1000, 88, 40, 89, 310, ! 214: 90, 311, 91, 312, 92, 313, 93, 314, ! 215: 24576, -1000, 8266, -1000, 8244, -1000, 8246, -1000, ! 216: 8259, -1000, 8254, -1000, 59, 301, 60, 302, ! 217: 61, 126, 62, 303, 63, 304, 64, 305, ! 218: 65, 306, 66, 62, 67, 307, 68, 60, ! 219: 69, 43, 70, 45, 71, 42, 72, 47, ! 220: 73, 37, 8261, -1000, 4, 271, 5, 272, ! 221: 6, 273, 7, 274, 8, 45, 9, 47, ! 222: 10, 33, 11, 308, 12, 309, 13, 36, ! 223: 14, 40, 96, 41, 1, -1000, 98, 40, ! 224: 24576, -1000, 99, 40, 24576, -1000, 100, 40, ! 225: 24576, -1000, 101, 59, 24576, -1000, 102, 59, ! 226: 24576, -1000, 103, 59, 24576, -1000, 104, 59, ! 227: 24576, -1000, 8232, 269, 8232, 270, 8232, 59, ! 228: 8232, 124, 8230, -1000, 8234, -1000, 8238, -1000, ! 229: 8228, -1000, 59, 301, 60, 302, 61, 126, ! 230: 62, 303, 63, 304, 64, 305, 65, 306, ! 231: 66, 62, 67, 307, 68, 60, 69, 43, ! 232: 70, 45, 71, 42, 72, 47, 73, 37, ! 233: 108, 59, 24576, -1000, 109, 125, 24576, -1000, ! 234: 40, 256, 41, 257, 42, 258, 43, 260, ! 235: 44, 261, 45, 262, 46, 263, 47, 265, ! 236: 48, 266, 4, 271, 5, 272, 6, 273, ! 237: 7, 274, 8, 45, 9, 47, 10, 33, ! 238: 11, 308, 12, 309, 13, 36, 14, 40, ! 239: 15, 123, 49, 59, 8239, 125, 1, -1000, ! 240: 16384, -1, 24576, -1000, 8194, -1000, 8196, -1000, ! 241: 8197, -1000, 111, 10, 24576, -1000, 9, 47, ! 242: 1, -1000, 8248, -1000, 8249, -1000, 8250, -1000, ! 243: 8251, -1000, 8252, -1000, 8245, -1000, 8247, -1000, ! 244: 9, 47, 1, -1000, 4, 271, 5, 272, ! 245: 6, 273, 7, 274, 8, 45, 9, 47, ! 246: 10, 33, 11, 308, 12, 309, 13, 36, ! 247: 14, 40, 131, 93, 1, -1000, 4, 271, ! 248: 5, 272, 6, 273, 7, 274, 8, 45, ! 249: 9, 47, 10, 33, 11, 308, 12, 309, ! 250: 13, 36, 14, 40, 132, 44, 8292, 269, ! 251: 8292, 270, 8292, 41, 8292, 59, 8292, 124, ! 252: 1, -1000, 133, 41, 24576, -1000, 8214, -1000, ! 253: 8213, -1000, 8212, -1000, 8211, -1000, 8215, -1000, ! 254: 135, 47, 88, 40, 89, 310, 90, 311, ! 255: 91, 312, 92, 313, 93, 314, 136, 315, ! 256: 137, 317, 138, 318, 139, 319, 24576, -1000, ! 257: 59, 301, 60, 302, 61, 126, 62, 303, ! 258: 63, 304, 64, 305, 65, 306, 66, 62, ! 259: 67, 307, 68, 60, 69, 43, 70, 45, ! 260: 71, 42, 72, 47, 73, 37, 142, 41, ! 261: 24576, -1000, 8263, -1000, 59, 301, 60, 302, ! 262: 61, 126, 62, 303, 63, 304, 64, 305, ! 263: 65, 306, 66, 62, 67, 307, 68, 60, ! 264: 69, 43, 70, 45, 71, 42, 72, 47, ! 265: 73, 37, 8262, -1000, 8226, -1000, 8227, -1000, ! 266: 8236, -1000, 8237, -1000, 4, 271, 5, 272, ! 267: 6, 273, 7, 274, 8, 45, 9, 47, ! 268: 10, 33, 11, 308, 12, 309, 13, 36, ! 269: 147, 40, 1, -1000, 150, 269, 151, 270, ! 270: 152, 59, 153, 124, 24576, -1000, 8229, -1000, ! 271: 8219, -1000, 8240, -1000, 8198, -1000, 60, 302, ! 272: 61, 126, 62, 303, 63, 304, 64, 305, ! 273: 65, 306, 66, 62, 67, 307, 68, 60, ! 274: 69, 43, 70, 45, 71, 42, 72, 47, ! 275: 73, 37, 8265, -1000, 61, 126, 62, 303, ! 276: 63, 304, 64, 305, 65, 306, 66, 62, ! 277: 67, 307, 68, 60, 69, 43, 70, 45, ! 278: 71, 42, 72, 47, 73, 37, 8264, -1000, ! 279: 8281, -1000, 8282, -1000, 63, 304, 64, 305, ! 280: 65, 306, 66, 62, 67, 307, 68, 60, ! 281: 69, 43, 70, 45, 71, 42, 72, 47, ! 282: 73, 37, 8277, -1000, 63, 304, 64, 305, ! 283: 65, 306, 66, 62, 67, 307, 68, 60, ! 284: 69, 43, 70, 45, 71, 42, 72, 47, ! 285: 73, 37, 8278, -1000, 65, 306, 66, 62, ! 286: 67, 307, 68, 60, 69, 43, 70, 45, ! 287: 71, 42, 72, 47, 73, 37, 8279, -1000, ! 288: 65, 306, 66, 62, 67, 307, 68, 60, ! 289: 69, 43, 70, 45, 71, 42, 72, 47, ! 290: 73, 37, 8275, -1000, 65, 306, 66, 62, ! 291: 67, 307, 68, 60, 69, 43, 70, 45, ! 292: 71, 42, 72, 47, 73, 37, 8280, -1000, ! 293: 65, 306, 66, 62, 67, 307, 68, 60, ! 294: 69, 43, 70, 45, 71, 42, 72, 47, ! 295: 73, 37, 8276, -1000, 71, 42, 72, 47, ! 296: 73, 37, 8270, -1000, 71, 42, 72, 47, ! 297: 73, 37, 8271, -1000, 8272, -1000, 8273, -1000, ! 298: 8274, -1000, 59, 301, 60, 302, 61, 126, ! 299: 62, 303, 63, 304, 64, 305, 65, 306, ! 300: 66, 62, 67, 307, 68, 60, 69, 43, ! 301: 70, 45, 71, 42, 72, 47, 73, 37, ! 302: 8202, -1000, 4, 271, 5, 272, 6, 273, ! 303: 7, 274, 8, 45, 9, 47, 10, 33, ! 304: 11, 308, 12, 309, 13, 36, 14, 40, ! 305: 8242, 269, 8242, 270, 8242, 301, 8242, 302, ! 306: 8242, 126, 8242, 303, 8242, 304, 8242, 305, ! 307: 8242, 306, 8242, 62, 8242, 307, 8242, 60, ! 308: 8242, 43, 8242, 42, 8242, 37, 8242, 10, ! 309: 8242, 44, 8242, 41, 8242, 123, 8242, 59, ! 310: 8242, 93, 8242, 124, 1, -1000, 4, 271, ! 311: 5, 272, 6, 273, 7, 274, 8, 45, ! 312: 9, 47, 10, 33, 11, 308, 12, 309, ! 313: 13, 36, 14, 40, 8243, 269, 8243, 270, ! 314: 8243, 301, 8243, 302, 8243, 126, 8243, 303, ! 315: 8243, 304, 8243, 305, 8243, 306, 8243, 62, ! 316: 8243, 307, 8243, 60, 8243, 43, 8243, 42, ! 317: 8243, 37, 8243, 10, 8243, 44, 8243, 41, ! 318: 8243, 123, 8243, 59, 8243, 93, 8243, 124, ! 319: 1, -1000, 8206, -1000, 8255, -1000, 8284, -1000, ! 320: 88, 40, 89, 310, 90, 311, 91, 312, ! 321: 92, 313, 93, 314, 136, 315, 137, 317, ! 322: 138, 318, 139, 319, 157, 41, 24576, -1000, ! 323: 8204, -1000, 8216, -1000, 8218, -1000, 8217, -1000, ! 324: 89, 310, 90, 311, 91, 312, 92, 313, ! 325: 93, 314, 137, 317, 138, 318, 139, 319, ! 326: 8207, -1000, 8210, -1000, 8253, -1000, 59, 301, ! 327: 60, 302, 61, 126, 62, 303, 63, 304, ! 328: 64, 305, 65, 306, 66, 62, 67, 307, ! 329: 68, 60, 69, 43, 70, 45, 71, 42, ! 330: 72, 47, 73, 37, 159, 41, 24576, -1000, ! 331: 59, 301, 60, 302, 61, 126, 62, 303, ! 332: 63, 304, 64, 305, 65, 306, 66, 62, ! 333: 67, 307, 68, 60, 69, 43, 70, 45, ! 334: 71, 42, 72, 47, 73, 37, 162, 59, ! 335: 24576, -1000, 163, 264, 75, 296, 76, 297, ! 336: 77, 298, 78, 299, 79, 61, 80, 300, ! 337: 81, 308, 82, 309, 8259, -1000, 150, 269, ! 338: 151, 270, 152, 59, 153, 124, 24576, -1000, ! 339: 8291, -1000, 4, 271, 5, 272, 6, 273, ! 340: 13, 36, 24576, -1000, 8289, -1000, 8233, -1000, ! 341: 8293, -1000, 8208, -1000, 89, 310, 90, 311, ! 342: 91, 312, 92, 313, 93, 314, 137, 317, ! 343: 138, 318, 139, 319, 8209, -1000, 8241, -1000, ! 344: 4, 271, 5, 272, 6, 273, 7, 274, ! 345: 8, 45, 9, 47, 10, 33, 11, 308, ! 346: 12, 309, 13, 36, 14, 40, 132, 44, ! 347: 96, 41, 1, -1000, 175, 41, 24576, -1000, ! 348: 8231, -1000, 176, 59, 24576, -1000, 177, 59, ! 349: 24576, -1000, 178, 59, 24576, -1000, 8235, -1000, ! 350: 179, 259, 8220, -1000, 8223, -1000, 59, 301, ! 351: 60, 302, 61, 126, 62, 303, 63, 304, ! 352: 64, 305, 65, 306, 66, 62, 67, 307, ! 353: 68, 60, 69, 43, 70, 45, 71, 42, ! 354: 72, 47, 73, 37, 180, 59, 24576, -1000, ! 355: 159, 41, 24576, -1000, 8290, -1000, 8286, -1000, ! 356: 8287, -1000, 8288, -1000, 8221, -1000, 8224, -1000, ! 357: 8222, -1000, 8225, -1000 ! 358: }; ! 359: /* (-lgl ! 360: * COHERENT Version 3.0 ! 361: * Copyright (c) 1982, 1990 by Mark Williams Company. ! 362: * All rights reserved. May not be copied without permission. ! 363: -lgl) */ ! 364: #include "action.h" ! 365: #define YYNOCHAR (-1000) ! 366: #define yyerrok yyerrflag=0 ! 367: #define yyclearin yylval=YYNOCHAR ! 368: int yystack[YYMAXDEPTH]; ! 369: YYSTYPE yyvstack[YYMAXDEPTH], *yyv; ! 370: int yychar; ! 371: ! 372: #ifdef YYDEBUG ! 373: int yydebug = 1; /* No sir, not in the BSS */ ! 374: #include <stdio.h> ! 375: #endif ! 376: ! 377: short yyerrflag; ! 378: int *yys; ! 379: ! 380: yyparse() ! 381: { ! 382: register YYSTYPE *yypvt; ! 383: int act; ! 384: register unsigned *ip, yystate; ! 385: int pno; ! 386: yystate = 0; ! 387: yychar = YYNOCHAR; ! 388: yyv = &yyvstack[-1]; ! 389: yys = &yystack[-1]; ! 390: ! 391: stack: ! 392: if( ++yys >= &yystack[YYMAXDEPTH] ) { ! 393: write(2, "Stack overflow\n", 15); ! 394: exit(1); ! 395: } ! 396: *yys = yystate; ! 397: *++yyv = yyval; ! 398: #ifdef YYDEBUG ! 399: if( yydebug ) ! 400: fprintf(stdout, "Stack state %d, char %d\n", yystate, yychar); ! 401: #endif ! 402: ! 403: read: ! 404: ip = &yyact[yypa[yystate]]; ! 405: if( ip[1] != YYNOCHAR ) { ! 406: if( yychar == YYNOCHAR ) { ! 407: yychar = yylex(); ! 408: #ifdef YYDEBUG ! 409: if( yydebug ) ! 410: fprintf(stdout, "lex read char %d, val %d\n", yychar, yylval); ! 411: #endif ! 412: } ! 413: while (ip[1]!=YYNOCHAR) { ! 414: if (ip[1]==yychar) ! 415: break; ! 416: ip += 2; ! 417: } ! 418: } ! 419: act = ip[0]; ! 420: switch( act>>YYACTSH ) { ! 421: case YYSHIFTACT: ! 422: if( ip[1]==YYNOCHAR ) ! 423: goto YYerract; ! 424: if( yychar != -1 ) ! 425: yychar = YYNOCHAR; /* dont throw away EOF */ ! 426: yystate = act&YYAMASK; ! 427: yyval = yylval; ! 428: #ifdef YYDEBUG ! 429: if( yydebug ) ! 430: fprintf(stdout, "shift %d\n", yystate); ! 431: #endif ! 432: if( yyerrflag ) ! 433: --yyerrflag; ! 434: goto stack; ! 435: ! 436: case YYACCEPTACT: ! 437: #ifdef YYDEBUG ! 438: if( yydebug ) ! 439: fprintf(stdout, "accept\n"); ! 440: #endif ! 441: return(0); ! 442: ! 443: case YYERRACT: ! 444: YYerract: ! 445: switch (yyerrflag) { ! 446: case 0: ! 447: yyerror("Syntax error"); ! 448: ! 449: case 1: ! 450: case 2: ! 451: ! 452: yyerrflag = 3; ! 453: while( yys >= & yystack[0] ) { ! 454: ip = &yyact[yypa[*yys]]; ! 455: while( ip[1]!=YYNOCHAR ) ! 456: ip += 2; ! 457: if( (*ip&~YYAMASK) == (YYSHIFTACT<<YYACTSH) ) { ! 458: yystate = *ip&YYAMASK; ! 459: goto stack; ! 460: } ! 461: #ifdef YYDEBUG ! 462: if( yydebug ) ! 463: fprintf(stderr, "error recovery leaves state %d, uncovers %d\n", *yys, yys[-1]); ! 464: #endif ! 465: yys--; ! 466: yyv--; ! 467: } ! 468: #ifdef YYDEBUG ! 469: if( yydebug ) ! 470: fprintf(stderr, "no shift on error; abort\n"); ! 471: #endif ! 472: return(1); ! 473: ! 474: case 3: ! 475: #ifdef YYDEBUG ! 476: if( yydebug ) ! 477: fprintf(stderr, "Error recovery clobbers char %o\n", yychar); ! 478: #endif ! 479: if( yychar==YYEOFVAL ) ! 480: return(1); ! 481: yychar = YYNOCHAR; ! 482: goto read; ! 483: } ! 484: ! 485: case YYREDACT: ! 486: pno = act&YYAMASK; ! 487: #ifdef YYDEBUG ! 488: if( yydebug ) ! 489: fprintf(stdout, "reduce %d\n", pno); ! 490: #endif ! 491: yypvt = yyv; ! 492: yyv -= yypn[pno]; ! 493: yys -= yypn[pno]; ! 494: yyval = yyv[1]; ! 495: switch(pno) { ! 496: ! 497: case 1: { ! 498: ! 499: #line 72 "awk.y" ! 500: ! 501: codep = yypvt[0].u_node; ! 502: }break; ! 503: ! 504: case 2: { ! 505: ! 506: #line 78 "awk.y" ! 507: ! 508: yyval.u_node = node(ALIST, yypvt[-1].u_node, yypvt[0].u_node); ! 509: }break; ! 510: ! 511: case 4: { ! 512: ! 513: #line 85 "awk.y" ! 514: ! 515: yyval.u_node = node(AROOT, NULL, yypvt[-1].u_node); ! 516: }break; ! 517: ! 518: case 5: { ! 519: ! 520: #line 88 "awk.y" ! 521: ! 522: yyval.u_node = node(AROOT, yypvt[-1].u_node, NULL); ! 523: }break; ! 524: ! 525: case 6: { ! 526: ! 527: #line 91 "awk.y" ! 528: ! 529: yyval.u_node = node(AROOT, yypvt[-2].u_node, yypvt[-1].u_node); ! 530: }break; ! 531: ! 532: case 7: { ! 533: ! 534: #line 97 "awk.y" ! 535: ! 536: yyval.u_node = node(ABEGIN); ! 537: }break; ! 538: ! 539: case 8: { ! 540: ! 541: #line 100 "awk.y" ! 542: ! 543: yyval.u_node = node(AEND); ! 544: }break; ! 545: ! 546: case 10: { ! 547: ! 548: #line 104 "awk.y" ! 549: ! 550: yyval.u_node = node(ARANGE, yypvt[-2].u_node, yypvt[0].u_node); ! 551: }break; ! 552: ! 553: case 11: { ! 554: ! 555: #line 110 "awk.y" ! 556: lexre=1; }break; ! 557: ! 558: case 12: { ! 559: ! 560: #line 110 "awk.y" ! 561: ! 562: lexre = 0; ! 563: yyval.u_node = yypvt[-1].u_node; ! 564: }break; ! 565: ! 566: case 13: { ! 567: ! 568: #line 114 "awk.y" ! 569: ! 570: yyerrok; ! 571: yyerror("Badly formed regular expression"); ! 572: }break; ! 573: ! 574: case 14: { ! 575: ! 576: #line 117 "awk.y" ! 577: ! 578: yyval.u_node = yypvt[0].u_node; ! 579: }break; ! 580: ! 581: case 15: { ! 582: ! 583: #line 123 "awk.y" ! 584: ! 585: register NODE *np; ! 586: ! 587: for (np = yypvt[-1].u_node; np->n_O3!=NULL; np = np->n_O3) ! 588: ; ! 589: np->n_O3 = yypvt[0].u_node; ! 590: yyval.u_node = yypvt[-1].u_node; ! 591: }break; ! 592: ! 593: case 16: { ! 594: ! 595: #line 131 "awk.y" ! 596: ! 597: yyval.u_node = yypvt[-1].u_node; ! 598: }break; ! 599: ! 600: case 17: { ! 601: ! 602: #line 134 "awk.y" ! 603: ! 604: yyval.u_node = node(AROR, yypvt[-2].u_node, yypvt[0].u_node, NULL); ! 605: }break; ! 606: ! 607: case 18: { ! 608: ! 609: #line 137 "awk.y" ! 610: ! 611: yyval.u_node = node(yypvt[0].u_char, yypvt[-1].u_node, NULL, NULL); ! 612: }break; ! 613: ! 614: case 19: { ! 615: ! 616: #line 140 "awk.y" ! 617: ! 618: yyval.u_node = node(yflag?ARDCLASS:ARCLASS, NULL, NULL, NULL); ! 619: yyval.u_node->n_o1.n_charp = yypvt[0].u_charp; ! 620: }break; ! 621: ! 622: case 20: { ! 623: ! 624: #line 144 "awk.y" ! 625: ! 626: yyval.u_node = node(ARANY, NULL, NULL, NULL); ! 627: }break; ! 628: ! 629: case 21: { ! 630: ! 631: #line 147 "awk.y" ! 632: ! 633: yyval.u_node = node(ARBOL, NULL, NULL, NULL); ! 634: }break; ! 635: ! 636: case 22: { ! 637: ! 638: #line 150 "awk.y" ! 639: ! 640: yyval.u_node = node(AREOL, NULL, NULL, NULL); ! 641: }break; ! 642: ! 643: case 23: { ! 644: ! 645: #line 153 "awk.y" ! 646: ! 647: yyval.u_node = cnode(yflag?ARDCHAR:ARCHAR, yypvt[0].u_char); ! 648: }break; ! 649: ! 650: case 24: { ! 651: ! 652: #line 159 "awk.y" ! 653: ! 654: yyval.u_char = ARCLOS; ! 655: }break; ! 656: ! 657: case 25: { ! 658: ! 659: #line 162 "awk.y" ! 660: ! 661: yyval.u_char = ARZOCL; ! 662: }break; ! 663: ! 664: case 26: { ! 665: ! 666: #line 165 "awk.y" ! 667: ! 668: yyval.u_char = ARNECL; ! 669: }break; ! 670: ! 671: case 27: { ! 672: ! 673: #line 171 "awk.y" ! 674: ! 675: yyval.u_node = yypvt[-1].u_node; ! 676: }break; ! 677: ! 678: case 28: { ! 679: ! 680: #line 177 "awk.y" ! 681: ! 682: yyval.u_node = node(AIF, yypvt[-2].u_node, yypvt[0].u_node, NULL); ! 683: }break; ! 684: ! 685: case 29: { ! 686: ! 687: #line 180 "awk.y" ! 688: nlskip = 1;}break; ! 689: ! 690: case 30: { ! 691: ! 692: #line 180 "awk.y" ! 693: ! 694: yyval.u_node = node(AIF, yypvt[-5].u_node, yypvt[-3].u_node, yypvt[0].u_node); ! 695: }break; ! 696: ! 697: case 31: { ! 698: ! 699: #line 183 "awk.y" ! 700: ! 701: yyval.u_node = node(AWHILE, yypvt[-2].u_node, yypvt[0].u_node); ! 702: }break; ! 703: ! 704: case 32: { ! 705: ! 706: #line 186 "awk.y" ! 707: ! 708: yyval.u_node = node(AFORIN, yypvt[-4].u_node, yypvt[-2].u_node, yypvt[0].u_node); ! 709: }break; ! 710: ! 711: case 33: { ! 712: ! 713: #line 189 "awk.y" ! 714: ! 715: yyval.u_node = node(AFOR, yypvt[-6].u_node, yypvt[-4].u_node, yypvt[-2].u_node, yypvt[0].u_node); ! 716: }break; ! 717: ! 718: case 34: { ! 719: ! 720: #line 192 "awk.y" ! 721: ! 722: yyval.u_node = node(ABREAK); ! 723: }break; ! 724: ! 725: case 35: { ! 726: ! 727: #line 195 "awk.y" ! 728: ! 729: yyval.u_node = node(ACONTIN); ! 730: }break; ! 731: ! 732: case 38: { ! 733: ! 734: #line 200 "awk.y" ! 735: outflag++;}break; ! 736: ! 737: case 39: { ! 738: ! 739: #line 200 "awk.y" ! 740: ! 741: yyval.u_node = node(APRINT, yypvt[-1].u_node, yypvt[0].u_node); ! 742: }break; ! 743: ! 744: case 40: { ! 745: ! 746: #line 203 "awk.y" ! 747: outflag++;}break; ! 748: ! 749: case 41: { ! 750: ! 751: #line 203 "awk.y" ! 752: ! 753: yyval.u_node = node(APRINT, &xfield0, yypvt[0].u_node); ! 754: }break; ! 755: ! 756: case 42: { ! 757: ! 758: #line 206 "awk.y" ! 759: outflag++;}break; ! 760: ! 761: case 43: { ! 762: ! 763: #line 206 "awk.y" ! 764: ! 765: yyval.u_node = node(APRINTF, yypvt[-1].u_node, yypvt[0].u_node); ! 766: }break; ! 767: ! 768: case 44: { ! 769: ! 770: #line 209 "awk.y" ! 771: ! 772: yyval.u_node = node(ANEXT); ! 773: }break; ! 774: ! 775: case 45: { ! 776: ! 777: #line 212 "awk.y" ! 778: ! 779: yyval.u_node = node(AEXIT); ! 780: }break; ! 781: ! 782: case 46: { ! 783: ! 784: #line 215 "awk.y" ! 785: ! 786: yyval.u_node = NULL; ! 787: }break; ! 788: ! 789: case 48: { ! 790: ! 791: #line 222 "awk.y" ! 792: ! 793: if (yypvt[-1].u_node!=NULL && yypvt[0].u_node!=NULL) ! 794: yyval.u_node = node(ALIST, yypvt[-1].u_node, yypvt[0].u_node); ! 795: else if (yypvt[-1].u_node != NULL) ! 796: yyval.u_node = yypvt[-1].u_node; ! 797: else ! 798: yyval.u_node = yypvt[0].u_node; ! 799: }break; ! 800: ! 801: case 49: { ! 802: ! 803: #line 233 "awk.y" ! 804: ! 805: nlskip = 1; ! 806: }break; ! 807: ! 808: case 50: { ! 809: ! 810: #line 239 "awk.y" ! 811: ! 812: yyval.u_node = node(AASGN, yypvt[-2].u_node, yypvt[0].u_node); ! 813: }break; ! 814: ! 815: case 51: { ! 816: ! 817: #line 242 "awk.y" ! 818: ! 819: yyval.u_node = node(AASGN, yypvt[-2].u_node, node(yypvt[-1].u_char, yypvt[-2].u_node, yypvt[0].u_node)); ! 820: }break; ! 821: ! 822: case 52: { ! 823: ! 824: #line 245 "awk.y" ! 825: ! 826: yyval.u_node = node(AASGN, yypvt[0].u_node, node(AADD, yypvt[0].u_node, &xone)); ! 827: }break; ! 828: ! 829: case 53: { ! 830: ! 831: #line 248 "awk.y" ! 832: ! 833: yyval.u_node = node(AINCA, yypvt[-1].u_node); ! 834: }break; ! 835: ! 836: case 54: { ! 837: ! 838: #line 251 "awk.y" ! 839: ! 840: yyval.u_node = node(AASGN, yypvt[0].u_node, node(ASUB, yypvt[0].u_node, &xone)); ! 841: }break; ! 842: ! 843: case 55: { ! 844: ! 845: #line 254 "awk.y" ! 846: ! 847: yyval.u_node = node(ADECA, yypvt[-1].u_node); ! 848: }break; ! 849: ! 850: case 56: { ! 851: ! 852: #line 260 "awk.y" ! 853: ! 854: yyval.u_char = AADD; ! 855: }break; ! 856: ! 857: case 57: { ! 858: ! 859: #line 263 "awk.y" ! 860: ! 861: yyval.u_char = ASUB; ! 862: }break; ! 863: ! 864: case 58: { ! 865: ! 866: #line 266 "awk.y" ! 867: ! 868: yyval.u_char = AMUL; ! 869: }break; ! 870: ! 871: case 59: { ! 872: ! 873: #line 269 "awk.y" ! 874: ! 875: yyval.u_char = ADIV; ! 876: }break; ! 877: ! 878: case 60: { ! 879: ! 880: #line 272 "awk.y" ! 881: ! 882: yyval.u_char = AMOD; ! 883: }break; ! 884: ! 885: case 61: { ! 886: ! 887: #line 278 "awk.y" ! 888: ! 889: yyval.u_node = node(AFIELD, yypvt[-1].u_node); ! 890: }break; ! 891: ! 892: case 62: { ! 893: ! 894: #line 281 "awk.y" ! 895: ! 896: yyval.u_node = node(AFIELD, yypvt[0].u_node); ! 897: }break; ! 898: ! 899: case 63: { ! 900: ! 901: #line 284 "awk.y" ! 902: ! 903: yyval.u_node = node(AARRAY, yypvt[-3].u_node, yypvt[-1].u_node); ! 904: }break; ! 905: ! 906: case 70: { ! 907: ! 908: #line 302 "awk.y" ! 909: ! 910: yyval.u_node = node(ACONC, yypvt[-1].u_node, yypvt[0].u_node); ! 911: }break; ! 912: ! 913: case 71: { ! 914: ! 915: #line 308 "awk.y" ! 916: ! 917: yyval.u_node = yypvt[-1].u_node; ! 918: }break; ! 919: ! 920: case 72: { ! 921: ! 922: #line 311 "awk.y" ! 923: ! 924: yyval.u_node = node(AANDAND, yypvt[-2].u_node, yypvt[0].u_node); ! 925: }break; ! 926: ! 927: case 73: { ! 928: ! 929: #line 314 "awk.y" ! 930: ! 931: yyval.u_node = node(AOROR, yypvt[-2].u_node, yypvt[0].u_node); ! 932: }break; ! 933: ! 934: case 74: { ! 935: ! 936: #line 317 "awk.y" ! 937: ! 938: yyval.u_node = node(ANOT, yypvt[0].u_node); ! 939: }break; ! 940: ! 941: case 75: { ! 942: ! 943: #line 320 "awk.y" ! 944: ! 945: yyval.u_node = node(ANEG, yypvt[0].u_node); ! 946: }break; ! 947: ! 948: case 78: { ! 949: ! 950: #line 325 "awk.y" ! 951: ! 952: yyval.u_node = node(AADD, yypvt[-2].u_node, yypvt[0].u_node); ! 953: }break; ! 954: ! 955: case 79: { ! 956: ! 957: #line 328 "awk.y" ! 958: ! 959: yyval.u_node = node(ASUB, yypvt[-2].u_node, yypvt[0].u_node); ! 960: }break; ! 961: ! 962: case 80: { ! 963: ! 964: #line 331 "awk.y" ! 965: ! 966: yyval.u_node = node(AMUL, yypvt[-2].u_node, yypvt[0].u_node); ! 967: }break; ! 968: ! 969: case 81: { ! 970: ! 971: #line 334 "awk.y" ! 972: ! 973: yyval.u_node = node(ADIV, yypvt[-2].u_node, yypvt[0].u_node); ! 974: }break; ! 975: ! 976: case 82: { ! 977: ! 978: #line 337 "awk.y" ! 979: ! 980: yyval.u_node = node(AMOD, yypvt[-2].u_node, yypvt[0].u_node); ! 981: }break; ! 982: ! 983: case 83: { ! 984: ! 985: #line 340 "awk.y" ! 986: ! 987: yyval.u_node = node(AGT, yypvt[-2].u_node, yypvt[0].u_node); ! 988: }break; ! 989: ! 990: case 84: { ! 991: ! 992: #line 343 "awk.y" ! 993: ! 994: yyval.u_node = node(ALT, yypvt[-2].u_node, yypvt[0].u_node); ! 995: }break; ! 996: ! 997: case 85: { ! 998: ! 999: #line 346 "awk.y" ! 1000: ! 1001: yyval.u_node = node(AEQ, yypvt[-2].u_node, yypvt[0].u_node); ! 1002: }break; ! 1003: ! 1004: case 86: { ! 1005: ! 1006: #line 349 "awk.y" ! 1007: ! 1008: yyval.u_node = node(ANE, yypvt[-2].u_node, yypvt[0].u_node); ! 1009: }break; ! 1010: ! 1011: case 87: { ! 1012: ! 1013: #line 352 "awk.y" ! 1014: ! 1015: yyval.u_node = node(AGE, yypvt[-2].u_node,yypvt[0].u_node); ! 1016: }break; ! 1017: ! 1018: case 88: { ! 1019: ! 1020: #line 355 "awk.y" ! 1021: ! 1022: yyval.u_node = node(ALE, yypvt[-2].u_node, yypvt[0].u_node); ! 1023: }break; ! 1024: ! 1025: case 89: { ! 1026: ! 1027: #line 358 "awk.y" ! 1028: ! 1029: yyval.u_node = node(AREMAT, yypvt[-2].u_node, yypvt[0].u_node); ! 1030: }break; ! 1031: ! 1032: case 90: { ! 1033: ! 1034: #line 361 "awk.y" ! 1035: ! 1036: yyval.u_node = node(ARENMAT, yypvt[-2].u_node, yypvt[0].u_node); ! 1037: }break; ! 1038: ! 1039: case 91: { ! 1040: ! 1041: #line 364 "awk.y" ! 1042: ! 1043: if (brlevel) ! 1044: awkerr("Regular expression illegal in action"); ! 1045: yyval.u_node = node(ARE, yypvt[0].u_node); ! 1046: }break; ! 1047: ! 1048: case 92: { ! 1049: ! 1050: #line 369 "awk.y" ! 1051: ! 1052: yyval.u_node = node(AFUNC, yypvt[-3].u_node, yypvt[-1].u_node); ! 1053: }break; ! 1054: ! 1055: case 93: { ! 1056: ! 1057: #line 372 "awk.y" ! 1058: ! 1059: yyval.u_node = node(AFUNC, yypvt[0].u_node, NULL); ! 1060: }break; ! 1061: ! 1062: case 94: { ! 1063: ! 1064: #line 378 "awk.y" ! 1065: ! 1066: yyval.u_node = node(AFAPP, yypvt[-1].u_node); ! 1067: }break; ! 1068: ! 1069: case 95: { ! 1070: ! 1071: #line 381 "awk.y" ! 1072: ! 1073: yyval.u_node = node(AFOUT, yypvt[-1].u_node); ! 1074: }break; ! 1075: ! 1076: case 96: { ! 1077: ! 1078: #line 384 "awk.y" ! 1079: ! 1080: yyval.u_node = node(AFPIPE, yypvt[-1].u_node); ! 1081: }break; ! 1082: ! 1083: case 97: { ! 1084: ! 1085: #line 387 "awk.y" ! 1086: ! 1087: yyval.u_node = NULL; ! 1088: }break; ! 1089: ! 1090: case 98: { ! 1091: ! 1092: #line 392 "awk.y" ! 1093: ! 1094: yyval.u_node = yypvt[-1].u_node; ! 1095: }break; ! 1096: ! 1097: case 99: { ! 1098: ! 1099: #line 395 "awk.y" ! 1100: ! 1101: yyval.u_node = yypvt[0].u_node; ! 1102: }break; ! 1103: ! 1104: case 100: { ! 1105: ! 1106: #line 401 "awk.y" ! 1107: ! 1108: yyval.u_node = yypvt[0].u_node; ! 1109: }break; ! 1110: ! 1111: case 101: { ! 1112: ! 1113: #line 404 "awk.y" ! 1114: ! 1115: yyval.u_node = node(ALIST, yypvt[-2].u_node, yypvt[0].u_node); ! 1116: }break; ! 1117: ! 1118: } ! 1119: ip = &yygo[ yypgo[yypdnt[pno]] ]; ! 1120: while( *ip!=*yys && *ip!=YYNOCHAR ) ! 1121: ip += 2; ! 1122: yystate = ip[1]; ! 1123: goto stack; ! 1124: } ! 1125: } ! 1126: ! 1127: ! 1128: ! 1129:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.