diff options
author | Andrew J. Schorr <aschorr@telemetry-investments.com> | 2013-07-02 20:45:46 -0400 |
---|---|---|
committer | Andrew J. Schorr <aschorr@telemetry-investments.com> | 2013-07-02 20:45:46 -0400 |
commit | 9ee8aeb59ad3b3873d52f3c9a2ab80b28c4c2c20 (patch) | |
tree | b51848f2af88f781a920b75ff6aca4efe815bdda /awkgram.c | |
parent | f0391b8a4db649853ecc47a10b09d7c4b04330cf (diff) | |
download | egawk-9ee8aeb59ad3b3873d52f3c9a2ab80b28c4c2c20.tar.gz egawk-9ee8aeb59ad3b3873d52f3c9a2ab80b28c4c2c20.tar.bz2 egawk-9ee8aeb59ad3b3873d52f3c9a2ab80b28c4c2c20.zip |
After the gawkapi get_file function opens a file, call the BEGINFILE block.
Diffstat (limited to 'awkgram.c')
-rw-r--r-- | awkgram.c | 385 |
1 files changed, 193 insertions, 192 deletions
@@ -186,6 +186,7 @@ static INSTRUCTION *ip_atexit = NULL; static INSTRUCTION *ip_end; static INSTRUCTION *ip_endfile; static INSTRUCTION *ip_beginfile; +INSTRUCTION *main_beginfile; static inline INSTRUCTION *list_create(INSTRUCTION *x); static inline INSTRUCTION *list_append(INSTRUCTION *l, INSTRUCTION *x); @@ -199,7 +200,7 @@ extern double fmod(double x, double y); #define is_identchar(c) (isalnum(c) || (c) == '_') /* Line 371 of yacc.c */ -#line 203 "awkgram.c" +#line 204 "awkgram.c" # ifndef YY_NULL # if defined __cplusplus && 201103L <= __cplusplus @@ -368,7 +369,7 @@ int yyparse (); /* Copy the second part of user declarations. */ /* Line 390 of yacc.c */ -#line 372 "awkgram.c" +#line 373 "awkgram.c" #ifdef short # undef short @@ -744,25 +745,25 @@ static const yytype_int16 yyrhs[] = /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 200, 200, 202, 207, 208, 214, 226, 230, 241, - 247, 252, 260, 268, 270, 275, 283, 285, 291, 292, - 294, 320, 331, 342, 348, 357, 367, 369, 371, 377, - 382, 383, 387, 406, 405, 439, 441, 446, 447, 460, - 465, 466, 470, 472, 474, 481, 571, 613, 655, 768, - 775, 782, 792, 801, 810, 819, 830, 846, 845, 869, - 881, 881, 979, 979, 1012, 1042, 1048, 1049, 1055, 1056, - 1063, 1068, 1080, 1094, 1096, 1104, 1109, 1111, 1119, 1121, - 1130, 1131, 1139, 1144, 1144, 1155, 1159, 1167, 1168, 1171, - 1173, 1178, 1179, 1188, 1189, 1194, 1199, 1205, 1207, 1209, - 1216, 1217, 1223, 1224, 1229, 1231, 1236, 1238, 1246, 1251, - 1260, 1267, 1269, 1271, 1287, 1297, 1304, 1306, 1311, 1313, - 1315, 1323, 1325, 1330, 1332, 1337, 1339, 1341, 1391, 1393, - 1395, 1397, 1399, 1401, 1403, 1405, 1428, 1433, 1438, 1463, - 1469, 1471, 1473, 1475, 1477, 1479, 1484, 1488, 1520, 1522, - 1528, 1534, 1547, 1548, 1549, 1554, 1559, 1563, 1567, 1582, - 1595, 1600, 1636, 1654, 1655, 1661, 1662, 1667, 1669, 1676, - 1693, 1710, 1712, 1719, 1724, 1732, 1742, 1754, 1763, 1767, - 1771, 1775, 1779, 1783, 1786, 1788, 1792, 1796, 1800 + 0, 201, 201, 203, 208, 209, 215, 227, 231, 242, + 248, 253, 261, 269, 271, 276, 284, 286, 292, 293, + 295, 321, 332, 343, 349, 358, 368, 370, 372, 378, + 383, 384, 388, 407, 406, 440, 442, 447, 448, 461, + 466, 467, 471, 473, 475, 482, 572, 614, 656, 769, + 776, 783, 793, 802, 811, 820, 831, 847, 846, 870, + 882, 882, 980, 980, 1013, 1043, 1049, 1050, 1056, 1057, + 1064, 1069, 1081, 1095, 1097, 1105, 1110, 1112, 1120, 1122, + 1131, 1132, 1140, 1145, 1145, 1156, 1160, 1168, 1169, 1172, + 1174, 1179, 1180, 1189, 1190, 1195, 1200, 1206, 1208, 1210, + 1217, 1218, 1224, 1225, 1230, 1232, 1237, 1239, 1247, 1252, + 1261, 1268, 1270, 1272, 1288, 1298, 1305, 1307, 1312, 1314, + 1316, 1324, 1326, 1331, 1333, 1338, 1340, 1342, 1392, 1394, + 1396, 1398, 1400, 1402, 1404, 1406, 1429, 1434, 1439, 1464, + 1470, 1472, 1474, 1476, 1478, 1480, 1485, 1489, 1521, 1523, + 1529, 1535, 1548, 1549, 1550, 1555, 1560, 1564, 1568, 1583, + 1596, 1601, 1637, 1655, 1656, 1662, 1663, 1668, 1670, 1677, + 1694, 1711, 1713, 1720, 1725, 1733, 1743, 1755, 1764, 1768, + 1772, 1776, 1780, 1784, 1787, 1789, 1793, 1797, 1801 }; #endif @@ -2049,7 +2050,7 @@ yyreduce: { case 3: /* Line 1787 of yacc.c */ -#line 203 "awkgram.y" +#line 204 "awkgram.y" { rule = 0; yyerrok; @@ -2058,7 +2059,7 @@ yyreduce: case 5: /* Line 1787 of yacc.c */ -#line 209 "awkgram.y" +#line 210 "awkgram.y" { next_sourcefile(); if (sourcefile == srcfiles) @@ -2068,7 +2069,7 @@ yyreduce: case 6: /* Line 1787 of yacc.c */ -#line 215 "awkgram.y" +#line 216 "awkgram.y" { rule = 0; /* @@ -2081,7 +2082,7 @@ yyreduce: case 7: /* Line 1787 of yacc.c */ -#line 227 "awkgram.y" +#line 228 "awkgram.y" { (void) append_rule((yyvsp[(1) - (2)]), (yyvsp[(2) - (2)])); } @@ -2089,7 +2090,7 @@ yyreduce: case 8: /* Line 1787 of yacc.c */ -#line 231 "awkgram.y" +#line 232 "awkgram.y" { if (rule != Rule) { msg(_("%s blocks must have an action part"), ruletab[rule]); @@ -2104,7 +2105,7 @@ yyreduce: case 9: /* Line 1787 of yacc.c */ -#line 242 "awkgram.y" +#line 243 "awkgram.y" { in_function = NULL; (void) mk_function((yyvsp[(1) - (2)]), (yyvsp[(2) - (2)])); @@ -2114,7 +2115,7 @@ yyreduce: case 10: /* Line 1787 of yacc.c */ -#line 248 "awkgram.y" +#line 249 "awkgram.y" { want_source = false; yyerrok; @@ -2123,7 +2124,7 @@ yyreduce: case 11: /* Line 1787 of yacc.c */ -#line 253 "awkgram.y" +#line 254 "awkgram.y" { want_source = false; yyerrok; @@ -2132,7 +2133,7 @@ yyreduce: case 12: /* Line 1787 of yacc.c */ -#line 261 "awkgram.y" +#line 262 "awkgram.y" { if (include_source((yyvsp[(1) - (1)])) < 0) YYABORT; @@ -2144,19 +2145,19 @@ yyreduce: case 13: /* Line 1787 of yacc.c */ -#line 269 "awkgram.y" +#line 270 "awkgram.y" { (yyval) = NULL; } break; case 14: /* Line 1787 of yacc.c */ -#line 271 "awkgram.y" +#line 272 "awkgram.y" { (yyval) = NULL; } break; case 15: /* Line 1787 of yacc.c */ -#line 276 "awkgram.y" +#line 277 "awkgram.y" { if (load_library((yyvsp[(1) - (1)])) < 0) YYABORT; @@ -2168,31 +2169,31 @@ yyreduce: case 16: /* Line 1787 of yacc.c */ -#line 284 "awkgram.y" +#line 285 "awkgram.y" { (yyval) = NULL; } break; case 17: /* Line 1787 of yacc.c */ -#line 286 "awkgram.y" +#line 287 "awkgram.y" { (yyval) = NULL; } break; case 18: /* Line 1787 of yacc.c */ -#line 291 "awkgram.y" +#line 292 "awkgram.y" { (yyval) = NULL; rule = Rule; } break; case 19: /* Line 1787 of yacc.c */ -#line 293 "awkgram.y" +#line 294 "awkgram.y" { (yyval) = (yyvsp[(1) - (1)]); rule = Rule; } break; case 20: /* Line 1787 of yacc.c */ -#line 295 "awkgram.y" +#line 296 "awkgram.y" { INSTRUCTION *tp; @@ -2222,7 +2223,7 @@ yyreduce: case 21: /* Line 1787 of yacc.c */ -#line 321 "awkgram.y" +#line 322 "awkgram.y" { static int begin_seen = 0; if (do_lint_old && ++begin_seen == 2) @@ -2237,7 +2238,7 @@ yyreduce: case 22: /* Line 1787 of yacc.c */ -#line 332 "awkgram.y" +#line 333 "awkgram.y" { static int end_seen = 0; if (do_lint_old && ++end_seen == 2) @@ -2252,7 +2253,7 @@ yyreduce: case 23: /* Line 1787 of yacc.c */ -#line 343 "awkgram.y" +#line 344 "awkgram.y" { (yyvsp[(1) - (1)])->in_rule = rule = BEGINFILE; (yyvsp[(1) - (1)])->source_file = source; @@ -2262,7 +2263,7 @@ yyreduce: case 24: /* Line 1787 of yacc.c */ -#line 349 "awkgram.y" +#line 350 "awkgram.y" { (yyvsp[(1) - (1)])->in_rule = rule = ENDFILE; (yyvsp[(1) - (1)])->source_file = source; @@ -2272,7 +2273,7 @@ yyreduce: case 25: /* Line 1787 of yacc.c */ -#line 358 "awkgram.y" +#line 359 "awkgram.y" { if ((yyvsp[(2) - (5)]) == NULL) (yyval) = list_create(instruction(Op_no_op)); @@ -2283,19 +2284,19 @@ yyreduce: case 26: /* Line 1787 of yacc.c */ -#line 368 "awkgram.y" +#line 369 "awkgram.y" { (yyval) = (yyvsp[(1) - (1)]); } break; case 27: /* Line 1787 of yacc.c */ -#line 370 "awkgram.y" +#line 371 "awkgram.y" { (yyval) = (yyvsp[(1) - (1)]); } break; case 28: /* Line 1787 of yacc.c */ -#line 372 "awkgram.y" +#line 373 "awkgram.y" { yyerror(_("`%s' is a built-in function, it cannot be redefined"), tokstart); @@ -2305,13 +2306,13 @@ yyreduce: case 29: /* Line 1787 of yacc.c */ -#line 378 "awkgram.y" +#line 379 "awkgram.y" { (yyval) = (yyvsp[(2) - (2)]); } break; case 32: /* Line 1787 of yacc.c */ -#line 388 "awkgram.y" +#line 389 "awkgram.y" { (yyvsp[(1) - (6)])->source_file = source; if (install_function((yyvsp[(2) - (6)])->lextok, (yyvsp[(1) - (6)]), (yyvsp[(4) - (6)])) < 0) @@ -2326,13 +2327,13 @@ yyreduce: case 33: /* Line 1787 of yacc.c */ -#line 406 "awkgram.y" +#line 407 "awkgram.y" { want_regexp = true; } break; case 34: /* Line 1787 of yacc.c */ -#line 408 "awkgram.y" +#line 409 "awkgram.y" { NODE *n, *exp; char *re; @@ -2365,19 +2366,19 @@ yyreduce: case 35: /* Line 1787 of yacc.c */ -#line 440 "awkgram.y" +#line 441 "awkgram.y" { bcfree((yyvsp[(1) - (1)])); } break; case 37: /* Line 1787 of yacc.c */ -#line 446 "awkgram.y" +#line 447 "awkgram.y" { (yyval) = NULL; } break; case 38: /* Line 1787 of yacc.c */ -#line 448 "awkgram.y" +#line 449 "awkgram.y" { if ((yyvsp[(2) - (2)]) == NULL) (yyval) = (yyvsp[(1) - (2)]); @@ -2394,25 +2395,25 @@ yyreduce: case 39: /* Line 1787 of yacc.c */ -#line 461 "awkgram.y" +#line 462 "awkgram.y" { (yyval) = NULL; } break; case 42: /* Line 1787 of yacc.c */ -#line 471 "awkgram.y" +#line 472 "awkgram.y" { (yyval) = NULL; } break; case 43: /* Line 1787 of yacc.c */ -#line 473 "awkgram.y" +#line 474 "awkgram.y" { (yyval) = (yyvsp[(2) - (3)]); } break; case 44: /* Line 1787 of yacc.c */ -#line 475 "awkgram.y" +#line 476 "awkgram.y" { if (do_pretty_print) (yyval) = list_prepend((yyvsp[(1) - (1)]), instruction(Op_exec_count)); @@ -2423,7 +2424,7 @@ yyreduce: case 45: /* Line 1787 of yacc.c */ -#line 482 "awkgram.y" +#line 483 "awkgram.y" { INSTRUCTION *dflt, *curr = NULL, *cexp, *cstmt; INSTRUCTION *ip, *nextc, *tbreak; @@ -2517,7 +2518,7 @@ yyreduce: case 46: /* Line 1787 of yacc.c */ -#line 572 "awkgram.y" +#line 573 "awkgram.y" { /* * ----------------- @@ -2563,7 +2564,7 @@ yyreduce: case 47: /* Line 1787 of yacc.c */ -#line 614 "awkgram.y" +#line 615 "awkgram.y" { /* * ----------------- @@ -2609,7 +2610,7 @@ yyreduce: case 48: /* Line 1787 of yacc.c */ -#line 656 "awkgram.y" +#line 657 "awkgram.y" { INSTRUCTION *ip; char *var_name = (yyvsp[(3) - (8)])->lextok; @@ -2726,7 +2727,7 @@ regular_loop: case 49: /* Line 1787 of yacc.c */ -#line 769 "awkgram.y" +#line 770 "awkgram.y" { (yyval) = mk_for_loop((yyvsp[(1) - (12)]), (yyvsp[(3) - (12)]), (yyvsp[(6) - (12)]), (yyvsp[(9) - (12)]), (yyvsp[(12) - (12)])); @@ -2737,7 +2738,7 @@ regular_loop: case 50: /* Line 1787 of yacc.c */ -#line 776 "awkgram.y" +#line 777 "awkgram.y" { (yyval) = mk_for_loop((yyvsp[(1) - (11)]), (yyvsp[(3) - (11)]), (INSTRUCTION *) NULL, (yyvsp[(8) - (11)]), (yyvsp[(11) - (11)])); @@ -2748,7 +2749,7 @@ regular_loop: case 51: /* Line 1787 of yacc.c */ -#line 783 "awkgram.y" +#line 784 "awkgram.y" { if (do_pretty_print) (yyval) = list_prepend((yyvsp[(1) - (1)]), instruction(Op_exec_count)); @@ -2759,7 +2760,7 @@ regular_loop: case 52: /* Line 1787 of yacc.c */ -#line 793 "awkgram.y" +#line 794 "awkgram.y" { if (! break_allowed) error_ln((yyvsp[(1) - (2)])->source_line, @@ -2772,7 +2773,7 @@ regular_loop: case 53: /* Line 1787 of yacc.c */ -#line 802 "awkgram.y" +#line 803 "awkgram.y" { if (! continue_allowed) error_ln((yyvsp[(1) - (2)])->source_line, @@ -2785,7 +2786,7 @@ regular_loop: case 54: /* Line 1787 of yacc.c */ -#line 811 "awkgram.y" +#line 812 "awkgram.y" { /* if inside function (rule = 0), resolve context at run-time */ if (rule && rule != Rule) @@ -2798,7 +2799,7 @@ regular_loop: case 55: /* Line 1787 of yacc.c */ -#line 820 "awkgram.y" +#line 821 "awkgram.y" { /* if inside function (rule = 0), resolve context at run-time */ if (rule == BEGIN || rule == END || rule == ENDFILE) @@ -2813,7 +2814,7 @@ regular_loop: case 56: /* Line 1787 of yacc.c */ -#line 831 "awkgram.y" +#line 832 "awkgram.y" { /* Initialize the two possible jump targets, the actual target * is resolved at run-time. @@ -2832,7 +2833,7 @@ regular_loop: case 57: /* Line 1787 of yacc.c */ -#line 846 "awkgram.y" +#line 847 "awkgram.y" { if (! in_function) yyerror(_("`return' used outside function context")); @@ -2841,7 +2842,7 @@ regular_loop: case 58: /* Line 1787 of yacc.c */ -#line 849 "awkgram.y" +#line 850 "awkgram.y" { if ((yyvsp[(3) - (4)]) == NULL) { (yyval) = list_create((yyvsp[(1) - (4)])); @@ -2866,13 +2867,13 @@ regular_loop: case 60: /* Line 1787 of yacc.c */ -#line 881 "awkgram.y" +#line 882 "awkgram.y" { in_print = true; in_parens = 0; } break; case 61: /* Line 1787 of yacc.c */ -#line 882 "awkgram.y" +#line 883 "awkgram.y" { /* * Optimization: plain `print' has no expression list, so $3 is null. @@ -2973,13 +2974,13 @@ regular_print: case 62: /* Line 1787 of yacc.c */ -#line 979 "awkgram.y" +#line 980 "awkgram.y" { sub_counter = 0; } break; case 63: /* Line 1787 of yacc.c */ -#line 980 "awkgram.y" +#line 981 "awkgram.y" { char *arr = (yyvsp[(2) - (4)])->lextok; @@ -3016,7 +3017,7 @@ regular_print: case 64: /* Line 1787 of yacc.c */ -#line 1017 "awkgram.y" +#line 1018 "awkgram.y" { static bool warned = false; char *arr = (yyvsp[(3) - (4)])->lextok; @@ -3046,31 +3047,31 @@ regular_print: case 65: /* Line 1787 of yacc.c */ -#line 1043 "awkgram.y" +#line 1044 "awkgram.y" { (yyval) = optimize_assignment((yyvsp[(1) - (1)])); } break; case 66: /* Line 1787 of yacc.c */ -#line 1048 "awkgram.y" +#line 1049 "awkgram.y" { (yyval) = NULL; } break; case 67: /* Line 1787 of yacc.c */ -#line 1050 "awkgram.y" +#line 1051 "awkgram.y" { (yyval) = (yyvsp[(1) - (1)]); } break; case 68: /* Line 1787 of yacc.c */ -#line 1055 "awkgram.y" +#line 1056 "awkgram.y" { (yyval) = NULL; } break; case 69: /* Line 1787 of yacc.c */ -#line 1057 "awkgram.y" +#line 1058 "awkgram.y" { if ((yyvsp[(1) - (2)]) == NULL) (yyval) = list_create((yyvsp[(2) - (2)])); @@ -3081,13 +3082,13 @@ regular_print: case 70: /* Line 1787 of yacc.c */ -#line 1064 "awkgram.y" +#line 1065 "awkgram.y" { (yyval) = NULL; } break; case 71: /* Line 1787 of yacc.c */ -#line 1069 "awkgram.y" +#line 1070 "awkgram.y" { INSTRUCTION *casestmt = (yyvsp[(5) - (5)]); if ((yyvsp[(5) - (5)]) == NULL) @@ -3103,7 +3104,7 @@ regular_print: case 72: /* Line 1787 of yacc.c */ -#line 1081 "awkgram.y" +#line 1082 "awkgram.y" { INSTRUCTION *casestmt = (yyvsp[(4) - (4)]); if ((yyvsp[(4) - (4)]) == NULL) @@ -3118,13 +3119,13 @@ regular_print: case 73: /* Line 1787 of yacc.c */ -#line 1095 "awkgram.y" +#line 1096 "awkgram.y" { (yyval) = (yyvsp[(1) - (1)]); } break; case 74: /* Line 1787 of yacc.c */ -#line 1097 "awkgram.y" +#line 1098 "awkgram.y" { NODE *n = (yyvsp[(2) - (2)])->memory; (void) force_number(n); @@ -3136,7 +3137,7 @@ regular_print: case 75: /* Line 1787 of yacc.c */ -#line 1105 "awkgram.y" +#line 1106 "awkgram.y" { bcfree((yyvsp[(1) - (2)])); (yyval) = (yyvsp[(2) - (2)]); @@ -3145,13 +3146,13 @@ regular_print: case 76: /* Line 1787 of yacc.c */ -#line 1110 "awkgram.y" +#line 1111 "awkgram.y" { (yyval) = (yyvsp[(1) - (1)]); } break; case 77: /* Line 1787 of yacc.c */ -#line 1112 "awkgram.y" +#line 1113 "awkgram.y" { (yyvsp[(1) - (1)])->opcode = Op_push_re; (yyval) = (yyvsp[(1) - (1)]); @@ -3160,19 +3161,19 @@ regular_print: case 78: /* Line 1787 of yacc.c */ -#line 1120 "awkgram.y" +#line 1121 "awkgram.y" { (yyval) = (yyvsp[(1) - (1)]); } break; case 79: /* Line 1787 of yacc.c */ -#line 1122 "awkgram.y" +#line 1123 "awkgram.y" { (yyval) = (yyvsp[(1) - (1)]); } break; case 81: /* Line 1787 of yacc.c */ -#line 1132 "awkgram.y" +#line 1133 "awkgram.y" { (yyval) = (yyvsp[(2) - (3)]); } @@ -3180,7 +3181,7 @@ regular_print: case 82: /* Line 1787 of yacc.c */ -#line 1139 "awkgram.y" +#line 1140 "awkgram.y" { in_print = false; in_parens = 0; @@ -3190,13 +3191,13 @@ regular_print: case 83: /* Line 1787 of yacc.c */ -#line 1144 "awkgram.y" +#line 1145 "awkgram.y" { in_print = false; in_parens = 0; } break; case 84: /* Line 1787 of yacc.c */ -#line 1145 "awkgram.y" +#line 1146 "awkgram.y" { if ((yyvsp[(1) - (3)])->redir_type == redirect_twoway && (yyvsp[(3) - (3)])->lasti->opcode == Op_K_getline_redir @@ -3208,7 +3209,7 @@ regular_print: case 85: /* Line 1787 of yacc.c */ -#line 1156 "awkgram.y" +#line 1157 "awkgram.y" { (yyval) = mk_condition((yyvsp[(3) - (6)]), (yyvsp[(1) - (6)]), (yyvsp[(6) - (6)]), NULL, NULL); } @@ -3216,7 +3217,7 @@ regular_print: case 86: /* Line 1787 of yacc.c */ -#line 1161 "awkgram.y" +#line 1162 "awkgram.y" { (yyval) = mk_condition((yyvsp[(3) - (9)]), (yyvsp[(1) - (9)]), (yyvsp[(6) - (9)]), (yyvsp[(7) - (9)]), (yyvsp[(9) - (9)])); } @@ -3224,13 +3225,13 @@ regular_print: case 91: /* Line 1787 of yacc.c */ -#line 1178 "awkgram.y" +#line 1179 "awkgram.y" { (yyval) = NULL; } break; case 92: /* Line 1787 of yacc.c */ -#line 1180 "awkgram.y" +#line 1181 "awkgram.y" { bcfree((yyvsp[(1) - (2)])); (yyval) = (yyvsp[(2) - (2)]); @@ -3239,19 +3240,19 @@ regular_print: case 93: /* Line 1787 of yacc.c */ -#line 1188 "awkgram.y" +#line 1189 "awkgram.y" { (yyval) = NULL; } break; case 94: /* Line 1787 of yacc.c */ -#line 1190 "awkgram.y" +#line 1191 "awkgram.y" { (yyval) = (yyvsp[(1) - (1)]) ; } break; case 95: /* Line 1787 of yacc.c */ -#line 1195 "awkgram.y" +#line 1196 "awkgram.y" { (yyvsp[(1) - (1)])->param_count = 0; (yyval) = list_create((yyvsp[(1) - (1)])); @@ -3260,7 +3261,7 @@ regular_print: case 96: /* Line 1787 of yacc.c */ -#line 1200 "awkgram.y" +#line 1201 "awkgram.y" { (yyvsp[(3) - (3)])->param_count = (yyvsp[(1) - (3)])->lasti->param_count + 1; (yyval) = list_append((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)])); @@ -3270,55 +3271,55 @@ regular_print: case 97: /* Line 1787 of yacc.c */ -#line 1206 "awkgram.y" +#line 1207 "awkgram.y" { (yyval) = NULL; } break; case 98: /* Line 1787 of yacc.c */ -#line 1208 "awkgram.y" +#line 1209 "awkgram.y" { (yyval) = (yyvsp[(1) - (2)]); } break; case 99: /* Line 1787 of yacc.c */ -#line 1210 "awkgram.y" +#line 1211 "awkgram.y" { (yyval) = (yyvsp[(1) - (3)]); } break; case 100: /* Line 1787 of yacc.c */ -#line 1216 "awkgram.y" +#line 1217 "awkgram.y" { (yyval) = NULL; } break; case 101: /* Line 1787 of yacc.c */ -#line 1218 "awkgram.y" +#line 1219 "awkgram.y" { (yyval) = (yyvsp[(1) - (1)]); } break; case 102: /* Line 1787 of yacc.c */ -#line 1223 "awkgram.y" +#line 1224 "awkgram.y" { (yyval) = NULL; } break; case 103: /* Line 1787 of yacc.c */ -#line 1225 "awkgram.y" +#line 1226 "awkgram.y" { (yyval) = (yyvsp[(1) - (1)]); } break; case 104: /* Line 1787 of yacc.c */ -#line 1230 "awkgram.y" +#line 1231 "awkgram.y" { (yyval) = mk_expression_list(NULL, (yyvsp[(1) - (1)])); } break; case 105: /* Line 1787 of yacc.c */ -#line 1232 "awkgram.y" +#line 1233 "awkgram.y" { (yyval) = mk_expression_list((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)])); yyerrok; @@ -3327,13 +3328,13 @@ regular_print: case 106: /* Line 1787 of yacc.c */ -#line 1237 "awkgram.y" +#line 1238 "awkgram.y" { (yyval) = NULL; } break; case 107: /* Line 1787 of yacc.c */ -#line 1239 "awkgram.y" +#line 1240 "awkgram.y" { /* * Returning the expression list instead of NULL lets @@ -3345,7 +3346,7 @@ regular_print: case 108: /* Line 1787 of yacc.c */ -#line 1247 "awkgram.y" +#line 1248 "awkgram.y" { /* Ditto */ (yyval) = mk_expression_list((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)])); @@ -3354,7 +3355,7 @@ regular_print: case 109: /* Line 1787 of yacc.c */ -#line 1252 "awkgram.y" +#line 1253 "awkgram.y" { /* Ditto */ (yyval) = (yyvsp[(1) - (3)]); @@ -3363,7 +3364,7 @@ regular_print: case 110: /* Line 1787 of yacc.c */ -#line 1261 "awkgram.y" +#line 1262 "awkgram.y" { if (do_lint && (yyvsp[(3) - (3)])->lasti->opcode == Op_match_rec) lintwarn_ln((yyvsp[(2) - (3)])->source_line, @@ -3374,19 +3375,19 @@ regular_print: case 111: /* Line 1787 of yacc.c */ -#line 1268 "awkgram.y" +#line 1269 "awkgram.y" { (yyval) = mk_boolean((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) - (3)])); } break; case 112: /* Line 1787 of yacc.c */ -#line 1270 "awkgram.y" +#line 1271 "awkgram.y" { (yyval) = mk_boolean((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) - (3)])); } break; case 113: /* Line 1787 of yacc.c */ -#line 1272 "awkgram.y" +#line 1273 "awkgram.y" { if ((yyvsp[(1) - (3)])->lasti->opcode == Op_match_rec) warning_ln((yyvsp[(2) - (3)])->source_line, @@ -3406,7 +3407,7 @@ regular_print: case 114: /* Line 1787 of yacc.c */ -#line 1288 "awkgram.y" +#line 1289 "awkgram.y" { if (do_lint_old) warning_ln((yyvsp[(2) - (3)])->source_line, @@ -3420,7 +3421,7 @@ regular_print: case 115: /* Line 1787 of yacc.c */ -#line 1298 "awkgram.y" +#line 1299 "awkgram.y" { if (do_lint && (yyvsp[(3) - (3)])->lasti->opcode == Op_match_rec) lintwarn_ln((yyvsp[(2) - (3)])->source_line, @@ -3431,31 +3432,31 @@ regular_print: case 116: /* Line 1787 of yacc.c */ -#line 1305 "awkgram.y" +#line 1306 "awkgram.y" { (yyval) = mk_condition((yyvsp[(1) - (5)]), (yyvsp[(2) - (5)]), (yyvsp[(3) - (5)]), (yyvsp[(4) - (5)]), (yyvsp[(5) - (5)])); } break; case 117: /* Line 1787 of yacc.c */ -#line 1307 "awkgram.y" +#line 1308 "awkgram.y" { (yyval) = (yyvsp[(1) - (1)]); } break; case 118: /* Line 1787 of yacc.c */ -#line 1312 "awkgram.y" +#line 1313 "awkgram.y" { (yyval) = (yyvsp[(1) - (1)]); } break; case 119: /* Line 1787 of yacc.c */ -#line 1314 "awkgram.y" +#line 1315 "awkgram.y" { (yyval) = (yyvsp[(1) - (1)]); } break; case 120: /* Line 1787 of yacc.c */ -#line 1316 "awkgram.y" +#line 1317 "awkgram.y" { (yyvsp[(2) - (2)])->opcode = Op_assign_quotient; (yyval) = (yyvsp[(2) - (2)]); @@ -3464,43 +3465,43 @@ regular_print: case 121: /* Line 1787 of yacc.c */ -#line 1324 "awkgram.y" +#line 1325 "awkgram.y" { (yyval) = (yyvsp[(1) - (1)]); } break; case 122: /* Line 1787 of yacc.c */ -#line 1326 "awkgram.y" +#line 1327 "awkgram.y" { (yyval) = (yyvsp[(1) - (1)]); } break; case 123: /* Line 1787 of yacc.c */ -#line 1331 "awkgram.y" +#line 1332 "awkgram.y" { (yyval) = (yyvsp[(1) - (1)]); } break; case 124: /* Line 1787 of yacc.c */ -#line 1333 "awkgram.y" +#line 1334 "awkgram.y" { (yyval) = (yyvsp[(1) - (1)]); } break; case 125: /* Line 1787 of yacc.c */ -#line 1338 "awkgram.y" +#line 1339 "awkgram.y" { (yyval) = (yyvsp[(1) - (1)]); } break; case 126: /* Line 1787 of yacc.c */ -#line 1340 "awkgram.y" +#line 1341 "awkgram.y" { (yyval) = (yyvsp[(1) - (1)]); } break; case 127: /* Line 1787 of yacc.c */ -#line 1342 "awkgram.y" +#line 1343 "awkgram.y" { int count = 2; bool is_simple_var = false; @@ -3551,43 +3552,43 @@ regular_print: case 129: /* Line 1787 of yacc.c */ -#line 1394 "awkgram.y" +#line 1395 "awkgram.y" { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) - (3)])); } break; case 130: /* Line 1787 of yacc.c */ -#line 1396 "awkgram.y" +#line 1397 "awkgram.y" { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) - (3)])); } break; case 131: /* Line 1787 of yacc.c */ -#line 1398 "awkgram.y" +#line 1399 "awkgram.y" { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) - (3)])); } break; case 132: /* Line 1787 of yacc.c */ -#line 1400 "awkgram.y" +#line 1401 "awkgram.y" { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) - (3)])); } break; case 133: /* Line 1787 of yacc.c */ -#line 1402 "awkgram.y" +#line 1403 "awkgram.y" { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) - (3)])); } break; case 134: /* Line 1787 of yacc.c */ -#line 1404 "awkgram.y" +#line 1405 "awkgram.y" { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) - (3)])); } break; case 135: /* Line 1787 of yacc.c */ -#line 1406 "awkgram.y" +#line 1407 "awkgram.y" { /* * In BEGINFILE/ENDFILE, allow `getline var < file' @@ -3614,7 +3615,7 @@ regular_print: case 136: /* Line 1787 of yacc.c */ -#line 1429 "awkgram.y" +#line 1430 "awkgram.y" { (yyvsp[(2) - (2)])->opcode = Op_postincrement; (yyval) = mk_assignment((yyvsp[(1) - (2)]), NULL, (yyvsp[(2) - (2)])); @@ -3623,7 +3624,7 @@ regular_print: case 137: /* Line 1787 of yacc.c */ -#line 1434 "awkgram.y" +#line 1435 "awkgram.y" { (yyvsp[(2) - (2)])->opcode = Op_postdecrement; (yyval) = mk_assignment((yyvsp[(1) - (2)]), NULL, (yyvsp[(2) - (2)])); @@ -3632,7 +3633,7 @@ regular_print: case 138: /* Line 1787 of yacc.c */ -#line 1439 "awkgram.y" +#line 1440 "awkgram.y" { if (do_lint_old) { warning_ln((yyvsp[(4) - (5)])->source_line, @@ -3656,7 +3657,7 @@ regular_print: case 139: /* Line 1787 of yacc.c */ -#line 1464 "awkgram.y" +#line 1465 "awkgram.y" { (yyval) = mk_getline((yyvsp[(3) - (4)]), (yyvsp[(4) - (4)]), (yyvsp[(1) - (4)]), (yyvsp[(2) - (4)])->redir_type); bcfree((yyvsp[(2) - (4)])); @@ -3665,43 +3666,43 @@ regular_print: case 140: /* Line 1787 of yacc.c */ -#line 1470 "awkgram.y" +#line 1471 "awkgram.y" { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) - (3)])); } break; case 141: /* Line 1787 of yacc.c */ -#line 1472 "awkgram.y" +#line 1473 "awkgram.y" { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) - (3)])); } break; case 142: /* Line 1787 of yacc.c */ -#line 1474 "awkgram.y" +#line 1475 "awkgram.y" { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) - (3)])); } break; case 143: /* Line 1787 of yacc.c */ -#line 1476 "awkgram.y" +#line 1477 "awkgram.y" { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) - (3)])); } break; case 144: /* Line 1787 of yacc.c */ -#line 1478 "awkgram.y" +#line 1479 "awkgram.y" { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) - (3)])); } break; case 145: /* Line 1787 of yacc.c */ -#line 1480 "awkgram.y" +#line 1481 "awkgram.y" { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) - (3)])); } break; case 146: /* Line 1787 of yacc.c */ -#line 1485 "awkgram.y" +#line 1486 "awkgram.y" { (yyval) = list_create((yyvsp[(1) - (1)])); } @@ -3709,7 +3710,7 @@ regular_print: case 147: /* Line 1787 of yacc.c */ -#line 1489 "awkgram.y" +#line 1490 "awkgram.y" { if ((yyvsp[(2) - (2)])->opcode == Op_match_rec) { (yyvsp[(2) - (2)])->opcode = Op_nomatch; @@ -3745,13 +3746,13 @@ regular_print: case 148: /* Line 1787 of yacc.c */ -#line 1521 "awkgram.y" +#line 1522 "awkgram.y" { (yyval) = (yyvsp[(2) - (3)]); } break; case 149: /* Line 1787 of yacc.c */ -#line 1523 "awkgram.y" +#line 1524 "awkgram.y" { (yyval) = snode((yyvsp[(3) - (4)]), (yyvsp[(1) - (4)])); if ((yyval) == NULL) @@ -3761,7 +3762,7 @@ regular_print: case 150: /* Line 1787 of yacc.c */ -#line 1529 "awkgram.y" +#line 1530 "awkgram.y" { (yyval) = snode((yyvsp[(3) - (4)]), (yyvsp[(1) - (4)])); if ((yyval) == NULL) @@ -3771,7 +3772,7 @@ regular_print: case 151: /* Line 1787 of yacc.c */ -#line 1535 "awkgram.y" +#line 1536 "awkgram.y" { static bool warned = false; @@ -3788,7 +3789,7 @@ regular_print: case 154: /* Line 1787 of yacc.c */ -#line 1550 "awkgram.y" +#line 1551 "awkgram.y" { (yyvsp[(1) - (2)])->opcode = Op_preincrement; (yyval) = mk_assignment((yyvsp[(2) - (2)]), NULL, (yyvsp[(1) - (2)])); @@ -3797,7 +3798,7 @@ regular_print: case 155: /* Line 1787 of yacc.c */ -#line 1555 "awkgram.y" +#line 1556 "awkgram.y" { (yyvsp[(1) - (2)])->opcode = Op_predecrement; (yyval) = mk_assignment((yyvsp[(2) - (2)]), NULL, (yyvsp[(1) - (2)])); @@ -3806,7 +3807,7 @@ regular_print: case 156: /* Line 1787 of yacc.c */ -#line 1560 "awkgram.y" +#line 1561 "awkgram.y" { (yyval) = list_create((yyvsp[(1) - (1)])); } @@ -3814,7 +3815,7 @@ regular_print: case 157: /* Line 1787 of yacc.c */ -#line 1564 "awkgram.y" +#line 1565 "awkgram.y" { (yyval) = list_create((yyvsp[(1) - (1)])); } @@ -3822,7 +3823,7 @@ regular_print: case 158: /* Line 1787 of yacc.c */ -#line 1568 "awkgram.y" +#line 1569 "awkgram.y" { if ((yyvsp[(2) - (2)])->lasti->opcode == Op_push_i && ((yyvsp[(2) - (2)])->lasti->memory->flags & (STRCUR|STRING)) == 0 @@ -3841,7 +3842,7 @@ regular_print: case 159: /* Line 1787 of yacc.c */ -#line 1583 "awkgram.y" +#line 1584 "awkgram.y" { /* * was: $$ = $2 @@ -3855,7 +3856,7 @@ regular_print: case 160: /* Line 1787 of yacc.c */ -#line 1596 "awkgram.y" +#line 1597 "awkgram.y" { func_use((yyvsp[(1) - (1)])->lasti->func_name, FUNC_USE); (yyval) = (yyvsp[(1) - (1)]); @@ -3864,7 +3865,7 @@ regular_print: case 161: /* Line 1787 of yacc.c */ -#line 1601 "awkgram.y" +#line 1602 "awkgram.y" { /* indirect function call */ INSTRUCTION *f, *t; @@ -3901,7 +3902,7 @@ regular_print: case 162: /* Line 1787 of yacc.c */ -#line 1637 "awkgram.y" +#line 1638 "awkgram.y" { param_sanity((yyvsp[(3) - (4)])); (yyvsp[(1) - (4)])->opcode = Op_func_call; @@ -3919,37 +3920,37 @@ regular_print: case 163: /* Line 1787 of yacc.c */ -#line 1654 "awkgram.y" +#line 1655 "awkgram.y" { (yyval) = NULL; } break; case 164: /* Line 1787 of yacc.c */ -#line 1656 "awkgram.y" +#line 1657 "awkgram.y" { (yyval) = (yyvsp[(1) - (1)]); } break; case 165: /* Line 1787 of yacc.c */ -#line 1661 "awkgram.y" +#line 1662 "awkgram.y" { (yyval) = NULL; } break; case 166: /* Line 1787 of yacc.c */ -#line 1663 "awkgram.y" +#line 1664 "awkgram.y" { (yyval) = (yyvsp[(1) - (2)]); } break; case 167: /* Line 1787 of yacc.c */ -#line 1668 "awkgram.y" +#line 1669 "awkgram.y" { (yyval) = (yyvsp[(1) - (1)]); } break; case 168: /* Line 1787 of yacc.c */ -#line 1670 "awkgram.y" +#line 1671 "awkgram.y" { (yyval) = list_merge((yyvsp[(1) - (2)]), (yyvsp[(2) - (2)])); } @@ -3957,7 +3958,7 @@ regular_print: case 169: /* Line 1787 of yacc.c */ -#line 1677 "awkgram.y" +#line 1678 "awkgram.y" { INSTRUCTION *ip = (yyvsp[(1) - (1)])->lasti; int count = ip->sub_count; /* # of SUBSEP-seperated expressions */ @@ -3975,7 +3976,7 @@ regular_print: case 170: /* Line 1787 of yacc.c */ -#line 1694 "awkgram.y" +#line 1695 "awkgram.y" { INSTRUCTION *t = (yyvsp[(2) - (3)]); if ((yyvsp[(2) - (3)]) == NULL) { @@ -3993,13 +3994,13 @@ regular_print: case 171: /* Line 1787 of yacc.c */ -#line 1711 "awkgram.y" +#line 1712 "awkgram.y" { (yyval) = (yyvsp[(1) - (1)]); } break; case 172: /* Line 1787 of yacc.c */ -#line 1713 "awkgram.y" +#line 1714 "awkgram.y" { (yyval) = list_merge((yyvsp[(1) - (2)]), (yyvsp[(2) - (2)])); } @@ -4007,13 +4008,13 @@ regular_print: case 173: /* Line 1787 of yacc.c */ -#line 1720 "awkgram.y" +#line 1721 "awkgram.y" { (yyval) = (yyvsp[(1) - (2)]); } break; case 174: /* Line 1787 of yacc.c */ -#line 1725 "awkgram.y" +#line 1726 "awkgram.y" { char *var_name = (yyvsp[(1) - (1)])->lextok; @@ -4025,7 +4026,7 @@ regular_print: case 175: /* Line 1787 of yacc.c */ -#line 1733 "awkgram.y" +#line 1734 "awkgram.y" { char *arr = (yyvsp[(1) - (2)])->lextok; (yyvsp[(1) - (2)])->memory = variable((yyvsp[(1) - (2)])->source_line, arr, Node_var_new); @@ -4036,7 +4037,7 @@ regular_print: case 176: /* Line 1787 of yacc.c */ -#line 1743 "awkgram.y" +#line 1744 "awkgram.y" { INSTRUCTION *ip = (yyvsp[(1) - (1)])->nexti; if (ip->opcode == Op_push @@ -4052,7 +4053,7 @@ regular_print: case 177: /* Line 1787 of yacc.c */ -#line 1755 "awkgram.y" +#line 1756 "awkgram.y" { (yyval) = list_append((yyvsp[(2) - (3)]), (yyvsp[(1) - (3)])); if ((yyvsp[(3) - (3)]) != NULL) @@ -4062,7 +4063,7 @@ regular_print: case 178: /* Line 1787 of yacc.c */ -#line 1764 "awkgram.y" +#line 1765 "awkgram.y" { (yyvsp[(1) - (1)])->opcode = Op_postincrement; } @@ -4070,7 +4071,7 @@ regular_print: case 179: /* Line 1787 of yacc.c */ -#line 1768 "awkgram.y" +#line 1769 "awkgram.y" { (yyvsp[(1) - (1)])->opcode = Op_postdecrement; } @@ -4078,43 +4079,43 @@ regular_print: case 180: /* Line 1787 of yacc.c */ -#line 1771 "awkgram.y" +#line 1772 "awkgram.y" { (yyval) = NULL; } break; case 182: /* Line 1787 of yacc.c */ -#line 1779 "awkgram.y" +#line 1780 "awkgram.y" { yyerrok; } break; case 183: /* Line 1787 of yacc.c */ -#line 1783 "awkgram.y" +#line 1784 "awkgram.y" { yyerrok; } break; case 186: /* Line 1787 of yacc.c */ -#line 1792 "awkgram.y" +#line 1793 "awkgram.y" { yyerrok; } break; case 187: /* Line 1787 of yacc.c */ -#line 1796 "awkgram.y" +#line 1797 "awkgram.y" { (yyval) = (yyvsp[(1) - (1)]); yyerrok; } break; case 188: /* Line 1787 of yacc.c */ -#line 1800 "awkgram.y" +#line 1801 "awkgram.y" { yyerrok; } break; /* Line 1787 of yacc.c */ -#line 4118 "awkgram.c" +#line 4119 "awkgram.c" default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -4346,7 +4347,7 @@ yyreturn: /* Line 2050 of yacc.c */ -#line 1802 "awkgram.y" +#line 1803 "awkgram.y" struct token { @@ -4819,7 +4820,7 @@ parse_program(INSTRUCTION **pcode) ip_newfile = ip_rec = ip_atexit = ip_beginfile = ip_endfile = NULL; else { ip_endfile = instruction(Op_no_op); - ip_beginfile = instruction(Op_no_op); + main_beginfile = ip_beginfile = instruction(Op_no_op); ip_rec = instruction(Op_get_record); /* target for `next', also ip_newfile */ ip_newfile = bcalloc(Op_newfile, 2, 0); /* target for `nextfile' */ ip_newfile->target_jmp = ip_end; |