Thread View: comp.sources.reviewed
1 messages
1 total messages
Started by Mike Brennan
Tue, 13 Oct 1992 22:14
v02i030: mawk - (Ver. 1.1) An interpreter for the AWK language, Patch02c/4
Author: Mike Brennan
Date: Tue, 13 Oct 1992 22:14
Date: Tue, 13 Oct 1992 22:14
1527 lines
63617 bytes
63617 bytes
Submitted-by: Mike Brennan <brennan@boeing.com>
Posting-number: Volume 2, Issue 30
Archive-name: mawk/patch02c
Patch-To: mawk: Volume 1, Issue 50-68
#!/bin/sh
# this is part.03 (part 3 of a multipart archive)
# do not concatenate these parts, unpack them in order with /bin/sh
# file Xparse.c continued
#
if test ! -r _shar_seq_.tmp; then
echo 'Please unpack part 1 first!'
exit 1
fi
(read Scheck
if test "$Scheck" != 3; then
echo Please unpack part "$Scheck" next!
exit 1
else
exit 0
fi
) < _shar_seq_.tmp || exit 1
if test ! -f _shar_wnt_.tmp; then
echo 'x - still skipping Xparse.c'
else
echo 'x - continuing file Xparse.c'
sed 's/^X//' << 'SHAR_EOF' >> 'Xparse.c' &&
X 2273, 2273, 2273, -167, 116, 2243, 2243, 2243, 2243, 2243,
X -65, 2243, 2273, 0, 0, 2273, 0, -78, 0, 0,
X 0, 0, -50, 0, 0, 2273, 1820, 0, 0, 2273,
X 0, 2499, 0, 0, 2499, 0, -196, 0, 0, 0,
X 0, -72, 0, 2511, 2183, 0, 2303, -61, 2406, -4,
X -41, 3, 23, 2273, 6, 0, 2273, 0, 2273, -13,
X 0, 2333, 2273, 2568, 2589, 0, 0, 2613, 2613, 2613,
X 2613, 2613, 2613, 2613, 2613, 2613, 2613, 2613, 2613, 2613,
X 2613, 2273, 2273, 2273, 2273, 0, -95, 0, 0, 0,
X 0, 0, 0, 0, 0, 0, -28, -28, -211, -211,
X -211, -26, -120, 2418, 2613, 25, 0, -9, 29, 0,
X 2433, 0, -276, 2526, 2445, 32, 0, 0, 0, 352,
X 0, 0, 2460, 352, 2213, 31, 2613, 0, 33, 2,
X 2273, 2273, 2273, 2613, 4, 2613, -108, 0, -221, 2120,
X 0, 5, 7, 2273, 2613, 2601, 2622, 198, 0, 0,
X 2273, 0, 8, 0, 10, 0, 0, 2273, 0, 0,
X 0, 0, -218, 2273, -196, 2273, 2273, -83, -48, -31,
X 0, 14, 0, 0, 0, 0, 0, 0, 18, -167,
X 0, 2147, 0, 24, -17, 6, 2613, 0, 2613, 2472,
X 14, 0, 0, 0, 0, 0, 2273, -26, 0, 0,
X 0, -196, -196, 2613, 28, 0, 0, 0,
};
short yyrindex[] = { 0,
X 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
X 0, 0, 0, 597, 0, 0, 0, 0, 0, 0,
X 0, 0, 0, 0, 0, 0, 0, 0, 0, 1583,
X -98, 1978, 1641, 0, 0, 0, 0, 0, 0, 0,
X 0, 1409, 0, 0, 0, 0, 0, 0, 0, 0,
X 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
X 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
X 539, 655, 887, 945, 1003, 0, 423, 0, 0, 481,
X 0, 0, 1920, 0, 0, 0, 0, 0, 0, 0,
X 0, 0, 0, 0, 0, 1061, 0, 0, 0, 0,
X 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
X 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
X 0, 0, 0, 0, 1699, 0, 0, 0, 0, 0,
X 0, 0, 0, 0, 0, 0, 0, 30, 0, 0,
X 0, 0, 713, 0, 0, 0, 0, 0, 0, 0,
X 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
X 0, 204, 0, 0, 0, 0, -192, 0, 0, 0,
X 0, 0, 0, 0, 0, 0, 0, 0, 0, 2363,
X 0, 0, 45, 0, 0, 0, 0, 17, 40, 135,
X 209, 283, 357, 2006, 2018, 2026, 2038, 2046, 2058, 2066,
X 2078, 0, 0, 0, 0, 0, -67, 0, 0, 0,
X 0, 0, 0, 0, 0, 0, 1467, 1525, 1119, 1177,
X 1235, 1351, 771, 0, -185, 0, 0, 0, 50, 0,
X 0, 0, 1786, 0, 0, 0, 0, 0, 0, 0,
X 0, 0, 0, 0, 0, -10, -205, 0, -223, 0,
X 0, 0, 0, -170, 0, -169, 0, 0, 1874, 0,
X 0, 0, 0, 0, -59, 0, -236, -35, 0, 0,
X 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
X 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
X 0, 1293, 0, 0, 0, 0, 0, 0, 0, 0,
X 0, 0, 0, 0, 0, -177, 11, 0, -46, 0,
X 829, 0, 0, 0, 0, 0, 0, 0, 0, 0,
X 0, 0, 0, 2086, 0, 0, 0, 0,
};
short yygindex[] = { 0,
X 21, 9, 0, -49, 72, 0, 57, 0, 0, -7,
X -1, -188, 1, 0, 44, 0, 0, 0, 0, 0,
X 0, 0, 61, 0, 125, -137, 0, 0, 0, 0,
X 0, 0, 0, 0, 0, 302, 0, 0, 0, 0,
X 0, 0, 0, 0, 103, 0, 0, 0, 0, 0,
X 0, 0, 0, 0, 0,
};
#define YYTABLESIZE 2907
short yytable[] = { 78,
X 31, 275, 72, 72, 72, 79, 72, 133, 83, 159,
X 84, 85, 161, 162, 2, 166, 8, 9, 76, 168,
X 26, 85, 48, 48, 48, 31, 72, 48, 48, 48,
X 72, 89, 174, 269, 141, 77, 77, 48, 48, 48,
X 142, 257, 77, 293, 134, 26, 174, 73, 74, 75,
X 93, 81, 94, 78, 78, 152, 137, 155, 78, 78,
X 78, 139, 44, 45, 164, 48, 76, 76, 83, 175,
X 169, 96, 90, 76, 171, 125, 85, 111, 77, 134,
X 294, 87, 87, 306, 131, 132, 87, 88, 87, 184,
X 185, 44, 45, 2, 90, 89, 78, 188, 189, 190,
X 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
X 201, 186, 187, 288, 289, 290, 134, 207, 208, 209,
X 210, 211, 212, 213, 72, 72, 72, 72, 72, 325,
X 72, 90, 89, 224, 44, 45, 225, 144, 167, 136,
X 305, 138, 170, 146, 214, 145, 231, 234, 172, 147,
X 235, 173, 150, 148, 149, 292, 286, 153, 154, 156,
X 11, 11, 11, 160, 151, 243, 179, 247, 180, 217,
X 218, 219, 220, 221, 254, 223, 132, 256, 183, 247,
X 311, 286, 260, 247, 118, 119, 120, 121, 122, 123,
X 279, 46, 46, 46, 281, 206, 46, 46, 46, 14,
X 14, 14, 265, 266, 267, 268, 46, 46, 46, 46,
X 46, 46, 79, 79, 141, 312, 286, 79, 79, 79,
X 142, 222, 236, 50, 50, 50, 216, 227, 50, 50,
X 50, 140, 313, 286, 46, 8, 9, 76, 50, 50,
X 50, 50, 77, 83, 230, 84, 322, 286, 91, 91,
X 239, 247, 247, 247, 237, 79, 250, 238, 251, 145,
X 176, 128, 129, 130, 225, 252, 50, 131, 132, 92,
X 92, 302, 8, 9, 76, 33, 33, 33, 247, 77,
X 33, 33, 33, 255, 307, 253, 309, 310, 258, 271,
X 1, 33, 272, 273, 278, 2, 284, 286, 34, 34,
X 34, 283, 287, 34, 34, 34, 297, 262, 316, 291,
X 141, 314, 298, 303, 34, 304, 142, 324, 33, 315,
X 214, 3, 4, 5, 299, 321, 95, 6, 163, 328,
X 0, 158, 7, 8, 9, 10, 0, 11, 12, 13,
X 14, 34, 15, 16, 17, 0, 76, 18, 19, 20,
X 21, 159, 0, 0, 0, 3, 4, 5, 0, 22,
X 23, 6, 0, 0, 24, 0, 7, 8, 9, 10,
X 0, 11, 12, 13, 14, 0, 15, 16, 17, 0,
X 0, 18, 19, 20, 21, 157, 0, 308, 44, 45,
X 2, 158, 0, 35, 35, 35, 0, 0, 35, 35,
X 35, 0, 216, 126, 127, 128, 129, 130, 0, 35,
X 0, 131, 132, 0, 0, 0, 3, 4, 5, 0,
X 0, 0, 6, 0, 326, 327, 0, 7, 8, 9,
X 10, 0, 11, 12, 13, 14, 35, 15, 16, 17,
X 46, 47, 18, 19, 20, 21, 48, 49, 50, 51,
X 52, 53, 0, 54, 0, 0, 55, 56, 57, 94,
X 0, 0, 94, 94, 94, 94, 0, 36, 36, 36,
X 0, 0, 36, 36, 36, 116, 117, 118, 119, 120,
X 121, 122, 123, 36, 0, 0, 0, 0, 0, 0,
X 94, 94, 94, 0, 0, 0, 94, 0, 0, 0,
X 0, 94, 94, 94, 94, 0, 94, 94, 94, 94,
X 36, 94, 94, 94, 94, 94, 94, 94, 94, 94,
X 94, 94, 94, 94, 94, 94, 0, 94, 0, 0,
X 94, 94, 94, 43, 0, 0, 44, 45, 2, 0,
X 0, 37, 37, 37, 0, 0, 37, 37, 37, 0,
X 97, 98, 99, 100, 101, 102, 103, 37, 0, 0,
X 0, 0, 0, 0, 3, 4, 5, 0, 0, 0,
X 6, 0, 0, 0, 0, 7, 8, 9, 10, 0,
X 11, 12, 13, 14, 37, 15, 16, 17, 46, 47,
X 18, 19, 20, 21, 48, 49, 50, 51, 52, 53,
X 0, 54, 0, 0, 55, 56, 57, 157, 0, 0,
X 44, 45, 2, 0, 0, 38, 38, 38, 0, 0,
X 38, 38, 38, 0, 0, 0, 0, 0, 0, 0,
X 0, 38, 0, 0, 0, 0, 0, 0, 3, 4,
X 5, 0, 0, 0, 6, 0, 0, 0, 0, 7,
X 8, 9, 10, 0, 11, 12, 13, 14, 38, 15,
X 16, 17, 46, 47, 18, 19, 20, 21, 48, 49,
X 50, 51, 52, 53, 0, 54, 0, 0, 55, 56,
X 57, 75, 75, 75, 0, 82, 75, 75, 75, 75,
X 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
X 75, 75, 75, 75, 75, 75, 75, 75, 0, 75,
X 75, 75, 75, 75, 75, 75, 0, 75, 75, 75,
X 75, 75, 75, 75, 75, 75, 75, 75, 75, 0,
X 75, 75, 75, 0, 0, 75, 75, 75, 75, 117,
X 117, 117, 0, 82, 117, 117, 117, 117, 117, 117,
X 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
X 117, 117, 117, 117, 117, 117, 0, 117, 117, 117,
X 117, 117, 117, 117, 0, 117, 117, 117, 117, 117,
X 117, 117, 117, 117, 117, 117, 117, 0, 117, 117,
X 117, 0, 0, 117, 117, 117, 117, 58, 58, 58,
X 0, 82, 58, 58, 58, 58, 58, 58, 58, 58,
X 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
X 58, 58, 58, 58, 0, 58, 58, 58, 58, 58,
X 58, 58, 0, 58, 58, 58, 0, 58, 58, 58,
X 58, 58, 58, 58, 58, 0, 58, 58, 58, 0,
X 0, 58, 58, 58, 58, 58, 58, 58, 0, 82,
X 58, 58, 58, 75, 75, 75, 75, 75, 75, 75,
X 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
X 58, 58, 0, 58, 58, 58, 58, 58, 58, 58,
X 0, 0, 58, 58, 0, 58, 58, 58, 58, 58,
X 58, 58, 58, 0, 58, 58, 58, 0, 0, 58,
X 58, 58, 58, 121, 121, 121, 0, 0, 121, 121,
X 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
X 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
X 0, 121, 121, 121, 121, 121, 121, 121, 0, 121,
X 121, 121, 0, 121, 121, 121, 121, 121, 121, 121,
X 121, 0, 121, 121, 121, 0, 0, 121, 121, 121,
X 121, 140, 140, 140, 0, 0, 140, 140, 140, 140,
X 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
X 140, 140, 140, 140, 140, 140, 140, 140, 0, 140,
X 140, 140, 140, 140, 140, 140, 0, 0, 140, 140,
X 140, 140, 140, 140, 140, 140, 140, 140, 140, 0,
X 140, 140, 140, 0, 0, 140, 140, 140, 140, 66,
X 66, 66, 0, 0, 66, 66, 66, 66, 66, 66,
X 66, 66, 66, 66, 66, 66, 66, 66, 66, 66,
X 66, 66, 66, 66, 66, 66, 0, 66, 66, 66,
X 66, 66, 66, 66, 0, 66, 66, 0, 66, 66,
X 66, 66, 66, 66, 66, 66, 66, 0, 66, 66,
X 66, 0, 0, 66, 66, 66, 66, 111, 111, 111,
X 0, 0, 111, 111, 111, 111, 111, 111, 111, 111,
X 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
X 111, 111, 111, 111, 0, 111, 111, 111, 111, 111,
X 111, 111, 0, 111, 111, 111, 0, 111, 111, 111,
X 111, 111, 111, 111, 111, 0, 111, 111, 111, 0,
X 0, 111, 111, 111, 111, 68, 68, 68, 0, 0,
X 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
X 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
X 68, 68, 0, 68, 68, 68, 68, 68, 68, 68,
X 0, 68, 0, 0, 68, 68, 68, 68, 68, 68,
X 68, 68, 68, 0, 68, 68, 68, 0, 0, 68,
X 68, 68, 68, 69, 69, 69, 0, 0, 69, 69,
X 69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
X 69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
X 0, 69, 69, 69, 69, 69, 69, 69, 0, 69,
X 0, 0, 69, 69, 69, 69, 69, 69, 69, 69,
X 69, 0, 69, 69, 69, 0, 0, 69, 69, 69,
X 69, 67, 67, 67, 0, 0, 67, 67, 67, 67,
X 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
X 67, 67, 67, 67, 67, 67, 67, 67, 0, 67,
X 67, 67, 67, 67, 67, 67, 0, 67, 0, 0,
X 67, 67, 67, 67, 67, 67, 67, 67, 67, 0,
X 67, 67, 67, 0, 0, 67, 67, 67, 67, 141,
X 141, 141, 0, 0, 141, 141, 141, 141, 141, 141,
X 141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
X 141, 141, 141, 141, 141, 141, 0, 141, 141, 141,
X 141, 141, 141, 141, 0, 141, 0, 0, 141, 141,
X 141, 141, 141, 141, 141, 141, 141, 0, 141, 141,
X 141, 0, 0, 141, 141, 141, 141, 63, 63, 63,
X 0, 0, 63, 63, 63, 63, 63, 63, 63, 63,
X 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
X 63, 63, 63, 63, 0, 63, 63, 63, 63, 63,
X 63, 63, 0, 63, 0, 0, 63, 63, 63, 63,
X 63, 63, 63, 63, 63, 0, 63, 63, 63, 0,
X 0, 63, 63, 63, 63, 64, 64, 64, 0, 0,
X 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
X 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
X 64, 64, 0, 64, 64, 64, 64, 64, 64, 64,
X 0, 64, 0, 0, 64, 64, 64, 64, 64, 64,
X 64, 64, 64, 0, 64, 64, 64, 0, 0, 64,
X 64, 64, 64, 65, 65, 65, 0, 0, 65, 65,
X 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
X 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
X 0, 65, 65, 65, 65, 65, 65, 65, 0, 65,
X 0, 0, 65, 65, 65, 65, 65, 65, 65, 65,
X 65, 0, 65, 65, 65, 0, 0, 65, 65, 65,
X 65, 111, 111, 111, 0, 0, 111, 111, 111, 110,
X 110, 110, 110, 110, 110, 110, 111, 111, 111, 111,
X 111, 111, 111, 111, 111, 111, 111, 111, 0, 111,
X 111, 111, 111, 111, 111, 111, 0, 0, 111, 111,
X 0, 111, 111, 111, 111, 111, 111, 111, 111, 0,
X 111, 111, 111, 0, 0, 111, 111, 111, 111, 142,
X 142, 142, 0, 0, 142, 142, 142, 142, 142, 142,
X 142, 142, 142, 142, 142, 142, 142, 142, 142, 142,
X 142, 142, 142, 142, 142, 142, 0, 142, 142, 142,
X 142, 142, 142, 142, 0, 142, 142, 142, 142, 0,
X 0, 0, 142, 142, 142, 142, 0, 0, 142, 142,
X 142, 0, 0, 142, 142, 142, 142, 139, 139, 139,
X 0, 0, 139, 139, 139, 139, 139, 139, 139, 139,
X 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
X 139, 139, 139, 139, 0, 139, 139, 139, 139, 139,
X 139, 139, 0, 0, 139, 139, 139, 0, 0, 0,
X 139, 139, 139, 139, 0, 0, 139, 139, 139, 0,
X 0, 139, 139, 139, 139, 61, 61, 61, 0, 0,
X 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
X 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
X 61, 61, 0, 61, 61, 61, 0, 0, 0, 61,
X 0, 61, 0, 0, 61, 61, 61, 61, 61, 61,
X 61, 61, 61, 0, 61, 61, 61, 0, 0, 61,
X 61, 61, 61, 62, 62, 62, 0, 0, 62, 62,
X 62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
X 62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
X 0, 62, 62, 62, 0, 0, 0, 62, 0, 62,
X 0, 0, 62, 62, 62, 62, 62, 62, 62, 62,
X 62, 0, 62, 62, 62, 0, 0, 62, 62, 62,
X 62, 121, 121, 121, 0, 0, 121, 121, 121, 0,
X 0, 0, 0, 0, 0, 0, 121, 121, 121, 121,
X 121, 121, 121, 121, 121, 121, 121, 121, 0, 121,
X 121, 121, 121, 121, 121, 121, 0, 0, 121, 121,
X 0, 121, 121, 121, 121, 121, 121, 121, 121, 0,
X 121, 121, 121, 0, 0, 121, 121, 121, 121, 54,
X 54, 54, 0, 0, 54, 54, 54, 0, 0, 0,
X 0, 0, 0, 0, 54, 54, 54, 54, 54, 54,
X 54, 54, 54, 54, 54, 54, 0, 54, 0, 0,
X 0, 0, 0, 54, 0, 0, 0, 0, 54, 54,
X 54, 54, 54, 54, 54, 54, 54, 0, 54, 54,
X 54, 0, 0, 54, 54, 54, 54, 55, 55, 55,
X 0, 0, 55, 55, 55, 0, 0, 0, 0, 0,
X 0, 0, 55, 55, 55, 55, 55, 55, 55, 55,
X 55, 55, 55, 55, 0, 55, 0, 44, 45, 0,
X 0, 55, 0, 0, 0, 0, 55, 55, 55, 55,
X 55, 55, 55, 55, 55, 0, 55, 55, 55, 0,
X 0, 55, 55, 55, 55, 3, 4, 5, 0, 0,
X 0, 6, 0, 0, 0, 0, 7, 8, 9, 10,
X 0, 11, 12, 13, 14, 0, 15, 16, 17, 0,
X 0, 18, 19, 20, 21, 58, 0, 0, 82, 0,
X 0, 0, 75, 75, 75, 75, 75, 75, 75, 58,
X 0, 58, 58, 0, 58, 58, 58, 58, 58, 58,
X 58, 0, 58, 58, 58, 58, 58, 58, 58, 232,
X 0, 58, 58, 0, 58, 58, 58, 0, 58, 58,
X 58, 58, 0, 58, 58, 58, 0, 0, 58, 58,
X 58, 58, 0, 0, 0, 0, 3, 4, 5, 0,
X 0, 0, 6, 0, 0, 0, 0, 7, 8, 9,
X 10, 0, 11, 12, 13, 233, 0, 15, 16, 17,
X 0, 0, 18, 19, 20, 21, 82, 0, 0, 0,
X 75, 75, 75, 75, 75, 75, 75, 58, 0, 58,
X 58, 58, 58, 58, 58, 58, 58, 58, 58, 0,
X 58, 58, 58, 58, 58, 58, 58, 0, 0, 58,
X 58, 0, 58, 58, 58, 0, 58, 58, 58, 58,
X 0, 58, 58, 58, 121, 0, 58, 58, 58, 58,
X 0, 0, 0, 121, 0, 121, 121, 121, 121, 121,
X 121, 121, 121, 121, 121, 0, 121, 121, 121, 121,
X 121, 121, 121, 0, 0, 121, 121, 0, 121, 121,
X 121, 0, 121, 121, 121, 121, 0, 121, 121, 121,
X 0, 0, 121, 121, 121, 121, 32, 32, 32, 0,
X 0, 32, 32, 32, 0, 0, 0, 0, 0, 0,
X 0, 32, 32, 32, 32, 32, 32, 32, 32, 32,
X 32, 32, 32, 0, 39, 39, 39, 0, 0, 39,
X 39, 39, 0, 0, 0, 0, 122, 122, 122, 32,
X 39, 122, 122, 122, 123, 123, 123, 0, 0, 123,
X 123, 123, 122, 0, 0, 0, 124, 124, 124, 0,
X 123, 124, 124, 124, 125, 125, 125, 39, 0, 125,
X 125, 125, 124, 0, 0, 0, 126, 126, 126, 122,
X 125, 126, 126, 126, 127, 127, 127, 123, 0, 127,
X 127, 127, 126, 0, 0, 0, 128, 128, 128, 124,
X 127, 128, 128, 128, 53, 53, 53, 125, 0, 53,
X 53, 53, 128, 0, 0, 0, 0, 177, 0, 126,
X 53, 0, 0, 0, 0, 0, 113, 127, 114, 115,
X 116, 117, 118, 119, 120, 121, 122, 123, 0, 128,
X 0, 0, 0, 0, 295, 0, 0, 53, 0, 0,
X 0, 0, 0, 113, 178, 114, 115, 116, 117, 118,
X 119, 120, 121, 122, 123, 0, 0, 0, 0, 0,
X 0, 318, 104, 105, 106, 107, 108, 109, 110, 0,
X 113, 296, 114, 115, 116, 117, 118, 119, 120, 121,
X 122, 123, 104, 105, 106, 107, 108, 109, 110, 3,
X 4, 5, 0, 111, 0, 6, 0, 176, 319, 0,
X 7, 8, 9, 70, 0, 11, 12, 13, 71, 80,
X 15, 16, 17, 111, 0, 18, 19, 20, 21, 3,
X 4, 5, 0, 0, 0, 6, 0, 0, 0, 0,
X 7, 8, 9, 10, 242, 11, 12, 13, 14, 0,
X 15, 16, 17, 0, 0, 18, 19, 20, 21, 3,
X 4, 5, 0, 0, 0, 6, 0, 0, 0, 0,
X 7, 8, 9, 10, 282, 11, 12, 13, 14, 0,
X 15, 16, 17, 0, 0, 18, 19, 20, 21, 3,
X 4, 5, 0, 0, 0, 6, 0, 0, 0, 0,
X 7, 8, 9, 70, 0, 11, 12, 13, 71, 0,
X 15, 16, 17, 0, 0, 18, 19, 20, 21, 3,
X 4, 5, 0, 0, 0, 6, 0, 0, 0, 0,
X 7, 8, 9, 10, 0, 11, 12, 13, 14, 0,
X 15, 16, 17, 0, 0, 18, 19, 20, 21, 3,
X 4, 5, 0, 0, 0, 6, 0, 0, 0, 0,
X 7, 8, 9, 245, 0, 11, 12, 13, 14, 0,
X 15, 16, 17, 0, 0, 18, 19, 20, 21, 3,
X 4, 5, 0, 0, 0, 6, 0, 0, 0, 0,
X 7, 8, 9, 10, 0, 11, 12, 13, 259, 0,
X 15, 16, 17, 0, 0, 18, 19, 20, 21, 166,
X 166, 166, 0, 0, 0, 166, 0, 0, 0, 0,
X 166, 166, 166, 166, 0, 166, 166, 166, 166, 0,
X 166, 166, 166, 0, 0, 166, 166, 166, 166, 113,
X 0, 114, 115, 116, 117, 118, 119, 120, 121, 122,
X 123, 113, 0, 114, 115, 116, 117, 118, 119, 120,
X 121, 122, 123, 0, 0, 0, 113, 178, 114, 115,
X 116, 117, 118, 119, 120, 121, 122, 123, 113, 270,
X 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
X 0, 0, 0, 113, 274, 114, 115, 116, 117, 118,
X 119, 120, 121, 122, 123, 113, 277, 114, 115, 116,
X 117, 118, 119, 120, 121, 122, 123, 44, 45, 0,
X 0, 280, 0, 0, 0, 0, 0, 0, 0, 0,
X 241, 0, 113, 323, 114, 115, 116, 117, 118, 119,
X 120, 121, 122, 123, 113, 276, 114, 115, 116, 117,
X 118, 119, 120, 121, 122, 123, 0, 0, 0, 113,
X 0, 114, 115, 116, 117, 118, 119, 120, 121, 122,
X 123, 112, 0, 0, 0, 0, 0, 0, 0, 0,
X 113, 0, 114, 115, 116, 117, 118, 119, 120, 121,
X 122, 123, 263, 0, 0, 0, 0, 0, 0, 0,
X 0, 113, 0, 114, 115, 116, 117, 118, 119, 120,
X 121, 122, 123, 264, 0, 0, 0, 0, 0, 0,
X 0, 0, 113, 0, 114, 115, 116, 117, 118, 119,
X 120, 121, 122, 123, 113, 301, 114, 115, 116, 117,
X 118, 119, 120, 121, 122, 123, 113, 0, 114, 115,
X 116, 117, 118, 119, 120, 121, 122, 123, 115, 116,
X 117, 118, 119, 120, 121, 122, 123,
};
short yycheck[] = { 7,
X 0, 278, 4, 5, 6, 7, 8, 265, 10, 59,
X 10, 298, 62, 63, 261, 65, 299, 300, 301, 69,
X 0, 298, 259, 260, 261, 25, 28, 264, 265, 266,
X 32, 301, 265, 222, 42, 259, 260, 274, 275, 276,
X 42, 179, 266, 265, 302, 25, 265, 4, 5, 6,
X 306, 8, 308, 259, 260, 55, 36, 57, 264, 265,
X 266, 41, 259, 260, 64, 302, 259, 260, 70, 302,
X 70, 28, 301, 266, 76, 32, 298, 298, 302, 265,
X 302, 259, 260, 302, 296, 297, 15, 16, 266, 89,
X 90, 259, 260, 261, 265, 265, 302, 97, 98, 99,
X 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
X 110, 91, 92, 251, 252, 253, 302, 117, 118, 119,
X 120, 121, 122, 123, 126, 127, 128, 129, 130, 318,
X 132, 302, 302, 133, 259, 260, 136, 262, 67, 301,
X 278, 301, 71, 301, 124, 43, 146, 147, 77, 301,
X 150, 80, 301, 51, 52, 264, 265, 55, 56, 57,
X 259, 260, 261, 61, 306, 165, 263, 167, 301, 126,
X 127, 128, 129, 130, 174, 132, 297, 177, 301, 179,
X 264, 265, 182, 183, 280, 281, 282, 283, 284, 285,
X 240, 259, 260, 261, 244, 306, 264, 265, 266, 259,
X 260, 261, 202, 203, 204, 205, 274, 275, 276, 277,
X 278, 279, 259, 260, 222, 264, 265, 264, 265, 266,
X 222, 287, 151, 259, 260, 261, 124, 306, 264, 265,
X 266, 295, 264, 265, 302, 299, 300, 301, 274, 275,
X 276, 277, 306, 245, 295, 245, 264, 265, 259, 260,
X 323, 251, 252, 253, 152, 302, 318, 155, 263, 157,
X 302, 290, 291, 292, 264, 263, 302, 296, 297, 259,
X 260, 271, 299, 300, 301, 259, 260, 261, 278, 306,
X 264, 265, 266, 278, 284, 263, 286, 287, 302, 265,
X 256, 275, 302, 265, 263, 261, 266, 265, 259, 260,
X 261, 245, 301, 264, 265, 266, 302, 183, 300, 306,
X 318, 298, 306, 306, 275, 306, 318, 317, 302, 302,
X 300, 287, 288, 289, 264, 302, 25, 293, 260, 302,
X -1, 302, 298, 299, 300, 301, -1, 303, 304, 305,
X 306, 302, 308, 309, 310, -1, 302, 313, 314, 315,
X 316, 302, -1, -1, -1, 287, 288, 289, -1, 325,
X 326, 293, -1, -1, 330, -1, 298, 299, 300, 301,
X -1, 303, 304, 305, 306, -1, 308, 309, 310, -1,
X -1, 313, 314, 315, 316, 256, -1, 285, 259, 260,
X 261, 262, -1, 259, 260, 261, -1, -1, 264, 265,
X 266, -1, 300, 288, 289, 290, 291, 292, -1, 275,
X -1, 296, 297, -1, -1, -1, 287, 288, 289, -1,
X -1, -1, 293, -1, 322, 323, -1, 298, 299, 300,
X 301, -1, 303, 304, 305, 306, 302, 308, 309, 310,
X 311, 312, 313, 314, 315, 316, 317, 318, 319, 320,
X 321, 322, -1, 324, -1, -1, 327, 328, 329, 256,
X -1, -1, 259, 260, 261, 262, -1, 259, 260, 261,
X -1, -1, 264, 265, 266, 278, 279, 280, 281, 282,
X 283, 284, 285, 275, -1, -1, -1, -1, -1, -1,
X 287, 288, 289, -1, -1, -1, 293, -1, -1, -1,
X -1, 298, 299, 300, 301, -1, 303, 304, 305, 306,
X 302, 308, 309, 310, 311, 312, 313, 314, 315, 316,
X 317, 318, 319, 320, 321, 322, -1, 324, -1, -1,
X 327, 328, 329, 256, -1, -1, 259, 260, 261, -1,
X -1, 259, 260, 261, -1, -1, 264, 265, 266, -1,
X 267, 268, 269, 270, 271, 272, 273, 275, -1, -1,
X -1, -1, -1, -1, 287, 288, 289, -1, -1, -1,
X 293, -1, -1, -1, -1, 298, 299, 300, 301, -1,
X 303, 304, 305, 306, 302, 308, 309, 310, 311, 312,
X 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
X -1, 324, -1, -1, 327, 328, 329, 256, -1, -1,
X 259, 260, 261, -1, -1, 259, 260, 261, -1, -1,
X 264, 265, 266, -1, -1, -1, -1, -1, -1, -1,
X -1, 275, -1, -1, -1, -1, -1, -1, 287, 288,
X 289, -1, -1, -1, 293, -1, -1, -1, -1, 298,
X 299, 300, 301, -1, 303, 304, 305, 306, 302, 308,
X 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
X 319, 320, 321, 322, -1, 324, -1, -1, 327, 328,
X 329, 259, 260, 261, -1, 263, 264, 265, 266, 267,
X 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
X 278, 279, 280, 281, 282, 283, 284, 285, -1, 287,
X 288, 289, 290, 291, 292, 293, -1, 295, 296, 297,
X 298, 299, 300, 301, 302, 303, 304, 305, 306, -1,
X 308, 309, 310, -1, -1, 313, 314, 315, 316, 259,
X 260, 261, -1, 263, 264, 265, 266, 267, 268, 269,
X 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
X 280, 281, 282, 283, 284, 285, -1, 287, 288, 289,
X 290, 291, 292, 293, -1, 295, 296, 297, 298, 299,
X 300, 301, 302, 303, 304, 305, 306, -1, 308, 309,
X 310, -1, -1, 313, 314, 315, 316, 259, 260, 261,
X -1, 263, 264, 265, 266, 267, 268, 269, 270, 271,
X 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
X 282, 283, 284, 285, -1, 287, 288, 289, 290, 291,
X 292, 293, -1, 295, 296, 297, -1, 299, 300, 301,
X 302, 303, 304, 305, 306, -1, 308, 309, 310, -1,
X -1, 313, 314, 315, 316, 259, 260, 261, -1, 263,
X 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
X 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
X 284, 285, -1, 287, 288, 289, 290, 291, 292, 293,
X -1, -1, 296, 297, -1, 299, 300, 301, 302, 303,
X 304, 305, 306, -1, 308, 309, 310, -1, -1, 313,
X 314, 315, 316, 259, 260, 261, -1, -1, 264, 265,
X 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
X 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
X -1, 287, 288, 289, 290, 291, 292, 293, -1, 295,
X 296, 297, -1, 299, 300, 301, 302, 303, 304, 305,
X 306, -1, 308, 309, 310, -1, -1, 313, 314, 315,
X 316, 259, 260, 261, -1, -1, 264, 265, 266, 267,
X 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
X 278, 279, 280, 281, 282, 283, 284, 285, -1, 287,
X 288, 289, 290, 291, 292, 293, -1, -1, 296, 297,
X 298, 299, 300, 301, 302, 303, 304, 305, 306, -1,
X 308, 309, 310, -1, -1, 313, 314, 315, 316, 259,
X 260, 261, -1, -1, 264, 265, 266, 267, 268, 269,
X 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
X 280, 281, 282, 283, 284, 285, -1, 287, 288, 289,
X 290, 291, 292, 293, -1, 295, 296, -1, 298, 299,
X 300, 301, 302, 303, 304, 305, 306, -1, 308, 309,
X 310, -1, -1, 313, 314, 315, 316, 259, 260, 261,
X -1, -1, 264, 265, 266, 267, 268, 269, 270, 271,
X 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
X 282, 283, 284, 285, -1, 287, 288, 289, 290, 291,
X 292, 293, -1, 295, 296, 297, -1, 299, 300, 301,
X 302, 303, 304, 305, 306, -1, 308, 309, 310, -1,
X -1, 313, 314, 315, 316, 259, 260, 261, -1, -1,
X 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
X 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
X 284, 285, -1, 287, 288, 289, 290, 291, 292, 293,
X -1, 295, -1, -1, 298, 299, 300, 301, 302, 303,
X 304, 305, 306, -1, 308, 309, 310, -1, -1, 313,
X 314, 315, 316, 259, 260, 261, -1, -1, 264, 265,
X 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
X 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
X -1, 287, 288, 289, 290, 291, 292, 293, -1, 295,
X -1, -1, 298, 299, 300, 301, 302, 303, 304, 305,
X 306, -1, 308, 309, 310, -1, -1, 313, 314, 315,
X 316, 259, 260, 261, -1, -1, 264, 265, 266, 267,
X 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
X 278, 279, 280, 281, 282, 283, 284, 285, -1, 287,
X 288, 289, 290, 291, 292, 293, -1, 295, -1, -1,
X 298, 299, 300, 301, 302, 303, 304, 305, 306, -1,
X 308, 309, 310, -1, -1, 313, 314, 315, 316, 259,
X 260, 261, -1, -1, 264, 265, 266, 267, 268, 269,
X 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
X 280, 281, 282, 283, 284, 285, -1, 287, 288, 289,
X 290, 291, 292, 293, -1, 295, -1, -1, 298, 299,
X 300, 301, 302, 303, 304, 305, 306, -1, 308, 309,
X 310, -1, -1, 313, 314, 315, 316, 259, 260, 261,
X -1, -1, 264, 265, 266, 267, 268, 269, 270, 271,
X 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
X 282, 283, 284, 285, -1, 287, 288, 289, 290, 291,
X 292, 293, -1, 295, -1, -1, 298, 299, 300, 301,
X 302, 303, 304, 305, 306, -1, 308, 309, 310, -1,
X -1, 313, 314, 315, 316, 259, 260, 261, -1, -1,
X 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
X 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
X 284, 285, -1, 287, 288, 289, 290, 291, 292, 293,
X -1, 295, -1, -1, 298, 299, 300, 301, 302, 303,
X 304, 305, 306, -1, 308, 309, 310, -1, -1, 313,
X 314, 315, 316, 259, 260, 261, -1, -1, 264, 265,
X 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
X 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
X -1, 287, 288, 289, 290, 291, 292, 293, -1, 295,
X -1, -1, 298, 299, 300, 301, 302, 303, 304, 305,
X 306, -1, 308, 309, 310, -1, -1, 313, 314, 315,
X 316, 259, 260, 261, -1, -1, 264, 265, 266, 267,
X 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
X 278, 279, 280, 281, 282, 283, 284, 285, -1, 287,
X 288, 289, 290, 291, 292, 293, -1, -1, 296, 297,
X -1, 299, 300, 301, 302, 303, 304, 305, 306, -1,
X 308, 309, 310, -1, -1, 313, 314, 315, 316, 259,
X 260, 261, -1, -1, 264, 265, 266, 267, 268, 269,
X 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
X 280, 281, 282, 283, 284, 285, -1, 287, 288, 289,
X 290, 291, 292, 293, -1, 295, 296, 297, 298, -1,
X -1, -1, 302, 303, 304, 305, -1, -1, 308, 309,
X 310, -1, -1, 313, 314, 315, 316, 259, 260, 261,
X -1, -1, 264, 265, 266, 267, 268, 269, 270, 271,
X 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
X 282, 283, 284, 285, -1, 287, 288, 289, 290, 291,
X 292, 293, -1, -1, 296, 297, 298, -1, -1, -1,
X 302, 303, 304, 305, -1, -1, 308, 309, 310, -1,
X -1, 313, 314, 315, 316, 259, 260, 261, -1, -1,
X 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
X 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
X 284, 285, -1, 287, 288, 289, -1, -1, -1, 293,
X -1, 295, -1, -1, 298, 299, 300, 301, 302, 303,
X 304, 305, 306, -1, 308, 309, 310, -1, -1, 313,
X 314, 315, 316, 259, 260, 261, -1, -1, 264, 265,
X 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
X 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
X -1, 287, 288, 289, -1, -1, -1, 293, -1, 295,
X -1, -1, 298, 299, 300, 301, 302, 303, 304, 305,
X 306, -1, 308, 309, 310, -1, -1, 313, 314, 315,
X 316, 259, 260, 261, -1, -1, 264, 265, 266, -1,
X -1, -1, -1, -1, -1, -1, 274, 275, 276, 277,
X 278, 279, 280, 281, 282, 283, 284, 285, -1, 287,
X 288, 289, 290, 291, 292, 293, -1, -1, 296, 297,
X -1, 299, 300, 301, 302, 303, 304, 305, 306, -1,
X 308, 309, 310, -1, -1, 313, 314, 315, 316, 259,
X 260, 261, -1, -1, 264, 265, 266, -1, -1, -1,
X -1, -1, -1, -1, 274, 275, 276, 277, 278, 279,
X 280, 281, 282, 283, 284, 285, -1, 287, -1, -1,
X -1, -1, -1, 293, -1, -1, -1, -1, 298, 299,
X 300, 301, 302, 303, 304, 305, 306, -1, 308, 309,
X 310, -1, -1, 313, 314, 315, 316, 259, 260, 261,
X -1, -1, 264, 265, 266, -1, -1, -1, -1, -1,
X -1, -1, 274, 275, 276, 277, 278, 279, 280, 281,
X 282, 283, 284, 285, -1, 287, -1, 259, 260, -1,
X -1, 293, -1, -1, -1, -1, 298, 299, 300, 301,
X 302, 303, 304, 305, 306, -1, 308, 309, 310, -1,
X -1, 313, 314, 315, 316, 287, 288, 289, -1, -1,
X -1, 293, -1, -1, -1, -1, 298, 299, 300, 301,
X -1, 303, 304, 305, 306, -1, 308, 309, 310, -1,
X -1, 313, 314, 315, 316, 260, -1, -1, 263, -1,
X -1, -1, 267, 268, 269, 270, 271, 272, 273, 274,
X -1, 276, 277, -1, 279, 280, 281, 282, 283, 284,
X 285, -1, 287, 288, 289, 290, 291, 292, 293, 260,
X -1, 296, 297, -1, 299, 300, 301, -1, 303, 304,
X 305, 306, -1, 308, 309, 310, -1, -1, 313, 314,
X 315, 316, -1, -1, -1, -1, 287, 288, 289, -1,
X -1, -1, 293, -1, -1, -1, -1, 298, 299, 300,
X 301, -1, 303, 304, 305, 306, -1, 308, 309, 310,
X -1, -1, 313, 314, 315, 316, 263, -1, -1, -1,
X 267, 268, 269, 270, 271, 272, 273, 274, -1, 276,
X 277, 278, 279, 280, 281, 282, 283, 284, 285, -1,
X 287, 288, 289, 290, 291, 292, 293, -1, -1, 296,
X 297, -1, 299, 300, 301, -1, 303, 304, 305, 306,
X -1, 308, 309, 310, 265, -1, 313, 314, 315, 316,
X -1, -1, -1, 274, -1, 276, 277, 278, 279, 280,
X 281, 282, 283, 284, 285, -1, 287, 288, 289, 290,
X 291, 292, 293, -1, -1, 296, 297, -1, 299, 300,
X 301, -1, 303, 304, 305, 306, -1, 308, 309, 310,
X -1, -1, 313, 314, 315, 316, 259, 260, 261, -1,
X -1, 264, 265, 266, -1, -1, -1, -1, -1, -1,
X -1, 274, 275, 276, 277, 278, 279, 280, 281, 282,
X 283, 284, 285, -1, 259, 260, 261, -1, -1, 264,
X 265, 266, -1, -1, -1, -1, 259, 260, 261, 302,
X 275, 264, 265, 266, 259, 260, 261, -1, -1, 264,
X 265, 266, 275, -1, -1, -1, 259, 260, 261, -1,
X 275, 264, 265, 266, 259, 260, 261, 302, -1, 264,
X 265, 266, 275, -1, -1, -1, 259, 260, 261, 302,
X 275, 264, 265, 266, 259, 260, 261, 302, -1, 264,
X 265, 266, 275, -1, -1, -1, 259, 260, 261, 302,
X 275, 264, 265, 266, 259, 260, 261, 302, -1, 264,
X 265, 266, 275, -1, -1, -1, -1, 265, -1, 302,
X 275, -1, -1, -1, -1, -1, 274, 302, 276, 277,
X 278, 279, 280, 281, 282, 283, 284, 285, -1, 302,
X -1, -1, -1, -1, 265, -1, -1, 302, -1, -1,
X -1, -1, -1, 274, 302, 276, 277, 278, 279, 280,
X 281, 282, 283, 284, 285, -1, -1, -1, -1, -1,
X -1, 265, 267, 268, 269, 270, 271, 272, 273, -1,
X 274, 302, 276, 277, 278, 279, 280, 281, 282, 283,
X 284, 285, 267, 268, 269, 270, 271, 272, 273, 287,
X 288, 289, -1, 298, -1, 293, -1, 302, 302, -1,
X 298, 299, 300, 301, -1, 303, 304, 305, 306, 307,
X 308, 309, 310, 298, -1, 313, 314, 315, 316, 287,
X 288, 289, -1, -1, -1, 293, -1, -1, -1, -1,
X 298, 299, 300, 301, 302, 303, 304, 305, 306, -1,
X 308, 309, 310, -1, -1, 313, 314, 315, 316, 287,
X 288, 289, -1, -1, -1, 293, -1, -1, -1, -1,
X 298, 299, 300, 301, 302, 303, 304, 305, 306, -1,
X 308, 309, 310, -1, -1, 313, 314, 315, 316, 287,
X 288, 289, -1, -1, -1, 293, -1, -1, -1, -1,
X 298, 299, 300, 301, -1, 303, 304, 305, 306, -1,
X 308, 309, 310, -1, -1, 313, 314, 315, 316, 287,
X 288, 289, -1, -1, -1, 293, -1, -1, -1, -1,
X 298, 299, 300, 301, -1, 303, 304, 305, 306, -1,
X 308, 309, 310, -1, -1, 313, 314, 315, 316, 287,
X 288, 289, -1, -1, -1, 293, -1, -1, -1, -1,
X 298, 299, 300, 301, -1, 303, 304, 305, 306, -1,
X 308, 309, 310, -1, -1, 313, 314, 315, 316, 287,
X 288, 289, -1, -1, -1, 293, -1, -1, -1, -1,
X 298, 299, 300, 301, -1, 303, 304, 305, 306, -1,
X 308, 309, 310, -1, -1, 313, 314, 315, 316, 287,
X 288, 289, -1, -1, -1, 293, -1, -1, -1, -1,
X 298, 299, 300, 301, -1, 303, 304, 305, 306, -1,
X 308, 309, 310, -1, -1, 313, 314, 315, 316, 274,
X -1, 276, 277, 278, 279, 280, 281, 282, 283, 284,
X 285, 274, -1, 276, 277, 278, 279, 280, 281, 282,
X 283, 284, 285, -1, -1, -1, 274, 302, 276, 277,
X 278, 279, 280, 281, 282, 283, 284, 285, 274, 302,
X 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
X -1, -1, -1, 274, 302, 276, 277, 278, 279, 280,
X 281, 282, 283, 284, 285, 274, 302, 276, 277, 278,
X 279, 280, 281, 282, 283, 284, 285, 259, 260, -1,
X -1, 302, -1, -1, -1, -1, -1, -1, -1, -1,
X 260, -1, 274, 302, 276, 277, 278, 279, 280, 281,
X 282, 283, 284, 285, 274, 260, 276, 277, 278, 279,
X 280, 281, 282, 283, 284, 285, -1, -1, -1, 274,
X -1, 276, 277, 278, 279, 280, 281, 282, 283, 284,
X 285, 265, -1, -1, -1, -1, -1, -1, -1, -1,
X 274, -1, 276, 277, 278, 279, 280, 281, 282, 283,
X 284, 285, 265, -1, -1, -1, -1, -1, -1, -1,
X -1, 274, -1, 276, 277, 278, 279, 280, 281, 282,
X 283, 284, 285, 265, -1, -1, -1, -1, -1, -1,
X -1, -1, 274, -1, 276, 277, 278, 279, 280, 281,
X 282, 283, 284, 285, 274, 275, 276, 277, 278, 279,
X 280, 281, 282, 283, 284, 285, 274, -1, 276, 277,
X 278, 279, 280, 281, 282, 283, 284, 285, 277, 278,
X 279, 280, 281, 282, 283, 284, 285,
};
#define YYFINAL 25
#ifndef YYDEBUG
#define YYDEBUG 0
#endif
#define YYMAXTOKEN 330
#if YYDEBUG
char *yyname[] = {
"end-of-file",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,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,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,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,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,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,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,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,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"UNEXPECTED","BAD_DECIMAL","NL",
"SEMI_COLON","LBRACE","RBRACE","LBOX","RBOX","COMMA","IO_OUT","ASSIGN",
"ADD_ASG","SUB_ASG","MUL_ASG","DIV_ASG","MOD_ASG","POW_ASG","QMARK","COLON",
"OR","AND","IN","MATCH","EQ","NEQ","LT","LTE","GT","GTE","CAT","GETLINE","PLUS",
"MINUS","MUL","DIV","MOD","NOT","UMINUS","IO_IN","PIPE","POW","INC_or_DEC",
"DOLLAR","FIELD","LPAREN","RPAREN","DOUBLE","STRING_","RE","ID","D_ID",
"FUNCT_ID","BUILTIN","LENGTH","PRINT","PRINTF","SPLIT","MATCH_FUNC","SUB",
"GSUB","DO","WHILE","FOR","BREAK","CONTINUE","IF","ELSE","DELETE","BEGIN","END",
"EXIT","NEXT","RETURN","FUNCTION",
};
char *yyrule[] = {
"$accept : program",
"program : program_block",
"program : program program_block",
"program_block : PA_block",
"program_block : function_def",
"program_block : outside_error block",
"PA_block : block",
"$$1 :",
"PA_block : BEGIN $$1 block",
"$$2 :",
"PA_block : END $$2 block",
"$$3 :",
"PA_block : expr $$3 block_or_separator",
"$$4 :",
"$$5 :",
"PA_block : expr COMMA $$4 expr $$5 block_or_separator",
"block : LBRACE statement_list RBRACE",
"block : LBRACE error RBRACE",
"block_or_separator : block",
"block_or_separator : separator",
"statement_list : statement",
"statement_list : statement_list statement",
"statement : block",
"statement : expr separator",
"statement : separator",
"statement : error separator",
"statement : BREAK separator",
"statement : CONTINUE separator",
"statement : return_statement",
"statement : NEXT separator",
"separator : NL",
"separator : SEMI_COLON",
"expr : cat_expr",
"expr : lvalue ASSIGN expr",
"expr : lvalue ADD_ASG expr",
"expr : lvalue SUB_ASG expr",
"expr : lvalue MUL_ASG expr",
"expr : lvalue DIV_ASG expr",
"expr : lvalue MOD_ASG expr",
"expr : lvalue POW_ASG expr",
"expr : expr EQ expr",
"expr : expr NEQ expr",
"expr : expr LT expr",
"expr : expr LTE expr",
"expr : expr GT expr",
"expr : expr GTE expr",
"expr : expr MATCH expr",
"$$6 :",
"expr : expr OR $$6 expr",
"$$7 :",
"expr : expr AND $$7 expr",
"$$8 :",
"$$9 :",
"expr : expr QMARK $$8 expr COLON $$9 expr",
"cat_expr : p_expr",
"cat_expr : cat_expr p_expr",
"p_expr : DOUBLE",
"p_expr : STRING_",
"p_expr : ID",
"p_expr : LPAREN expr RPAREN",
"p_expr : RE",
"p_expr : p_expr PLUS p_expr",
"p_expr : p_expr MINUS p_expr",
"p_expr : p_expr MUL p_expr",
"p_expr : p_expr DIV p_expr",
"p_expr : p_expr MOD p_expr",
"p_expr : p_expr POW p_expr",
"p_expr : NOT p_expr",
"p_expr : PLUS p_expr",
"p_expr : MINUS p_expr",
"p_expr : builtin",
"p_expr : ID INC_or_DEC",
"p_expr : INC_or_DEC lvalue",
"p_expr : field INC_or_DEC",
"p_expr : INC_or_DEC field",
"lvalue : ID",
"arglist :",
"arglist : args",
"args : expr",
"args : args COMMA expr",
"builtin : BUILTIN mark LPAREN arglist RPAREN",
"builtin : LENGTH",
"mark :",
"statement : print mark pr_args pr_direction separator",
"print : PRINT",
"print : PRINTF",
"pr_args : arglist",
"pr_args : LPAREN arg2 RPAREN",
"pr_args : LPAREN RPAREN",
"arg2 : expr COMMA expr",
"arg2 : arg2 COMMA expr",
"pr_direction :",
"pr_direction : IO_OUT expr",
"if_front : IF LPAREN expr RPAREN",
"statement : if_front statement",
"else : ELSE",
"statement : if_front statement else statement",
"do : DO",
"statement : do statement WHILE LPAREN expr RPAREN separator",
"while_front : WHILE LPAREN expr RPAREN",
"statement : while_front statement",
"statement : for1 for2 for3 statement",
"for1 : FOR LPAREN SEMI_COLON",
"for1 : FOR LPAREN expr SEMI_COLON",
"for2 : SEMI_COLON",
"for2 : expr SEMI_COLON",
"for3 : RPAREN",
"for3 : expr RPAREN",
"expr : expr IN ID",
"expr : LPAREN arg2 RPAREN IN ID",
"lvalue : ID mark LBOX args RBOX",
"p_expr : ID mark LBOX args RBOX",
"p_expr : ID mark LBOX args RBOX INC_or_DEC",
"statement : DELETE ID mark LBOX args RBOX separator",
"array_loop_front : FOR LPAREN ID IN ID RPAREN",
"statement : array_loop_front statement",
"field : FIELD",
"field : DOLLAR D_ID",
"field : DOLLAR D_ID mark LBOX args RBOX",
"field : DOLLAR p_expr",
"field : LPAREN field RPAREN",
"p_expr : field",
"expr : field ASSIGN expr",
"expr : field ADD_ASG expr",
"expr : field SUB_ASG expr",
"expr : field MUL_ASG expr",
"expr : field DIV_ASG expr",
"expr : field MOD_ASG expr",
"expr : field POW_ASG expr",
"p_expr : split_front split_back",
"split_front : SPLIT LPAREN expr COMMA ID",
"split_back : RPAREN",
"split_back : COMMA expr RPAREN",
"p_expr : MATCH_FUNC LPAREN expr COMMA re_arg RPAREN",
"re_arg : expr",
"statement : EXIT separator",
"statement : EXIT expr separator",
"return_statement : RETURN separator",
"return_statement : RETURN expr separator",
"p_expr : getline",
"p_expr : getline fvalue",
"p_expr : getline_file p_expr",
"p_expr : p_expr PIPE GETLINE",
"p_expr : p_expr PIPE GETLINE fvalue",
"getline : GETLINE",
"fvalue : lvalue",
"fvalue : field",
"getline_file : getline IO_IN",
"getline_file : getline fvalue IO_IN",
"p_expr : sub_or_gsub LPAREN re_arg COMMA expr sub_back",
"sub_or_gsub : SUB",
"sub_or_gsub : GSUB",
"sub_back : RPAREN",
"sub_back : COMMA fvalue RPAREN",
"function_def : funct_start block",
"funct_start : funct_head LPAREN f_arglist RPAREN",
"funct_head : FUNCTION ID",
"funct_head : FUNCTION FUNCT_ID",
"f_arglist :",
"f_arglist : f_args",
"f_args : ID",
"f_args : f_args COMMA ID",
"outside_error : error",
"p_expr : FUNCT_ID mark call_args",
"call_args : LPAREN RPAREN",
"call_args : ca_front ca_back",
"ca_front : LPAREN",
"ca_front : ca_front expr COMMA",
"ca_front : ca_front ID COMMA",
"ca_back : expr RPAREN",
"ca_back : ID RPAREN",
};
#endif
#ifdef YYPURE
#undef YYGLOBAL
#define YYLEX() yylex(&yylval)
#else
#define YYLEX() yylex()
#endif
X
#define yyclearin (yychar=(-1))
#define yyerrok (yyerrflag=0)
#ifdef YYSTACKSIZE
#ifndef YYMAXDEPTH
#define YYMAXDEPTH YYSTACKSIZE
#endif
#else
#ifdef YYMAXDEPTH
#define YYSTACKSIZE YYMAXDEPTH
#else
#define YYSTACKSIZE 500
#define YYMAXDEPTH 500
#endif
#endif
int yydebug;
#ifndef YYPURE
YYSTYPE yylval;
#endif
X
#ifdef YYGLOBAL
int yynerrs;
int yyerrflag;
int yychar;
short *yyssp;
YYSTYPE *yyvsp;
YYSTYPE yyval;
short yyss[YYSTACKSIZE];
YYSTYPE yyvs[YYSTACKSIZE];
#endif
#define yystacksize YYSTACKSIZE
#line 1066 "parse.y"
X
/* resize the code for a user function */
X
static void resize_fblock( fbp, code_ptr )
X FBLOCK *fbp ;
X INST *code_ptr ;
{ int size ;
X
X code1(_RET0) ; /* make sure there is always a return statement */
X
#if !SM_DOS
X if ( dump_code )
X { code1(_HALT) ; /*stops da() */
X add_to_fdump_list(fbp) ;
X }
#endif
X
X if ( (size = code_ptr - fbp->code) > PAGE_SZ-1 )
X overflow("function code size", PAGE_SZ ) ;
X
X /* resize the code */
X fbp->code = (INST*) zrealloc(fbp->code, PAGE_SZ*sizeof(INST),
X size * sizeof(INST) ) ;
X
}
X
X
/* convert FE_PUSHA to FE_PUSHI
X or F_PUSH to F_PUSHI
*/
X
static void field_A2I()
{ CELL *cp ;
X
X if ( code_ptr[-1].op == FE_PUSHA &&
X code_ptr[-1].ptr == (PTR) 0)
X /* On most architectures, the two tests are the same; a good
X compiler might eliminate one. On LM_DOS, and possibly other
X segmented architectures, they are not */
X { code_ptr[-1].op = FE_PUSHI ; }
X else
X {
X cp = (CELL *) code_ptr[-1].ptr ;
X
X if ( cp == field ||
X
#if LM_DOS
X SAMESEG(cp,field) &&
#endif
X cp > NF && cp <= LAST_PFIELD )
X {
X code_ptr[-2].op = _PUSHI ;
X }
X else if ( cp == NF )
X { code_ptr[-2].op = NF_PUSHI ; code_ptr-- ; }
X
X else
X {
X code_ptr[-2].op = F_PUSHI ;
X code_ptr -> op = field_addr_to_index( code_ptr[-1].ptr ) ;
X code_ptr++ ;
X }
X }
}
X
/* we've seen an ID in a context where it should be a VAR,
X check that's consistent with previous usage */
X
static void check_var( p )
X register SYMTAB *p ;
{
X switch(p->type)
X {
X case ST_NONE : /* new id */
X p->type = ST_VAR ;
X p->stval.cp = new_CELL() ;
X p->stval.cp->type = C_NOINIT ;
X break ;
X
X case ST_LOCAL_NONE :
X p->type = ST_LOCAL_VAR ;
X active_funct->typev[p->offset] = ST_LOCAL_VAR ;
X break ;
X
X case ST_VAR :
X case ST_LOCAL_VAR : break ;
X
X default :
X type_error(p) ;
X break ;
X }
}
X
/* we've seen an ID in a context where it should be an ARRAY,
X check that's consistent with previous usage */
static void check_array(p)
X register SYMTAB *p ;
{
X switch(p->type)
X {
X case ST_NONE : /* a new array */
X p->type = ST_ARRAY ;
X p->stval.array = new_ARRAY() ;
X break ;
X
X case ST_ARRAY :
X case ST_LOCAL_ARRAY :
X break ;
X
X case ST_LOCAL_NONE :
X p->type = ST_LOCAL_ARRAY ;
X active_funct->typev[p->offset] = ST_LOCAL_ARRAY ;
X break ;
X
X default : type_error(p) ; break ;
X }
}
X
static void code_array(p)
X register SYMTAB *p ;
{ if ( is_local(p) )
X { code1(LA_PUSHA) ; code1(p->offset) ; }
X else code2(A_PUSHA, p->stval.array) ;
}
X
X
static int current_offset()
{
X switch( scope )
X {
X case SCOPE_MAIN : return code_ptr - main_start ;
X case SCOPE_BEGIN : return code_ptr - begin_code.start ;
X case SCOPE_END : return code_ptr - end_code.start ;
X case SCOPE_FUNCT : return code_ptr - active_funct->code ;
X }
X /* can't get here */
X return 0 ;
}
X
/* we've seen an ID as an argument to a user defined function */
X
static void code_call_id( p, ip )
X register CA_REC *p ;
X register SYMTAB *ip ;
{ static CELL dummy ;
X
X switch( ip->type )
X {
X case ST_VAR :
X p->type = CA_EXPR ;
X code2(_PUSHI, ip->stval.cp) ;
X break ;
X
X case ST_LOCAL_VAR :
X p->type = CA_EXPR ;
X code1(L_PUSHI) ;
X code1(ip->offset) ;
X break ;
X
X case ST_ARRAY :
X p->type = CA_ARRAY ;
X code2(A_PUSHA, ip->stval.array) ;
X break ;
X
X case ST_LOCAL_ARRAY :
X p->type = CA_ARRAY ;
X code1(LA_PUSHA) ;
X code1(ip->offset) ;
X break ;
X
X /* not enough info to code it now; it will have to
X be patched later */
X
X case ST_NONE :
X p->type = ST_NONE ;
X p->call_offset = current_offset() ;
X p->sym_p = ip ;
X code2(_PUSHI, &dummy) ;
X break ;
X
X case ST_LOCAL_NONE :
X p->type = ST_LOCAL_NONE ;
X p->call_offset = current_offset() ;
X p->type_p = & active_funct->typev[ip->offset] ;
X code1(L_PUSHI) ;
X code1(ip->offset) ;
X break ;
X
X
#ifdef DEBUG
X default :
X bozo("code_call_id") ;
#endif
X
X }
}
X
/* an RE by itself was coded as _MATCH0 , change to
X push as an expression */
X
static void RE_as_arg()
{ CELL *cp = ZMALLOC(CELL) ;
X
X code_ptr -= 2 ;
X cp->type = C_RE ;
X cp->ptr = code_ptr[1].ptr ;
X code2(_PUSHC, cp) ;
}
X
X
int parse()
{ int yy = yyparse() ;
X
#if YYBYACC
X extern struct yacc_mem *yacc_memp ;
X
X yacc_memp++ ; /* puts parser tables in mem pool */
#endif
X
X if ( resolve_list ) resolve_fcalls() ;
X return yy ;
}
X
#line 1349 "y.tab.c"
#define YYABORT goto yyabort
#define YYACCEPT goto yyaccept
#define YYERROR goto yyerrlab
int
yyparse()
{
X register int yyn, yystate;
X int yym ;
#ifdef YYPURE
X YYSTYPE yylval ;
#endif
X
#ifndef YYGLOBAL
X int yynerrs;
X int yyerrflag;
X int yychar;
X register short *yyssp;
X register YYSTYPE *yyvsp;
X YYSTYPE yyval;
X short yyss[YYSTACKSIZE];
X YYSTYPE yyvs[YYSTACKSIZE];
#endif
#if YYDEBUG
X register char *yys;
X extern char *getenv();
X
X if (yys = getenv("YYDEBUG"))
X {
X yyn = *yys;
X if (yyn >= '0' && yyn <= '9')
X yydebug = yyn - '0';
X }
#endif
X
X yynerrs = 0;
X yyerrflag = 0;
X yychar = (-1);
X
X yyssp = yyss;
X yyvsp = yyvs;
X *yyssp = yystate = 0;
X
yyloop:
X if (yyn = yydefred[yystate]) goto yyreduce;
X if (yychar < 0)
X {
X if ((yychar = YYLEX()) < 0) yychar = 0;
#if YYDEBUG
X if (yydebug)
X {
X yys = 0;
X if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
X if (!yys) yys = "illegal-symbol";
X printf("yydebug: state %d, reading %d (%s)\n", yystate,
X yychar, yys);
X }
#endif
X }
X if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
X yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
X {
#if YYDEBUG
X if (yydebug)
X printf("yydebug: state %d, shifting to state %d\n",
X yystate, yytable[yyn]);
#endif
X if (yyssp >= yyss + yystacksize - 1)
X {
X goto yyoverflow;
X }
X *++yyssp = yystate = yytable[yyn];
X *++yyvsp = yylval;
X yychar = (-1);
X if (yyerrflag > 0) --yyerrflag;
X goto yyloop;
X }
X if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
X yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
X {
X yyn = yytable[yyn];
X goto yyreduce;
X }
X if (yyerrflag) goto yyinrecovery;
#ifdef lint
X goto yynewerror;
#endif
yynewerror:
X yyerror("syntax error");
#ifdef lint
X goto yyerrlab;
#endif
yyerrlab:
X ++yynerrs;
yyinrecovery:
X if (yyerrflag < 3)
X {
X yyerrflag = 3;
X for (;;)
X {
X if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
X yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
X {
#if YYDEBUG
X if (yydebug)
X printf("yydebug: state %d, error recovery shifting\
X to state %d\n", *yyssp, yytable[yyn]);
#endif
X if (yyssp >= yyss + yystacksize - 1)
X {
X goto yyoverflow;
X }
X *++yyssp = yystate = yytable[yyn];
X *++yyvsp = yylval;
X goto yyloop;
X }
X else
X {
#if YYDEBUG
X if (yydebug)
X printf("yydebug: error recovery discarding state %d\n",
X *yyssp);
#endif
X if (yyssp <= yyss) goto yyabort;
X --yyssp;
X --yyvsp;
X }
X }
X }
X else
X {
X if (yychar == 0) goto yyabort;
#if YYDEBUG
X if (yydebug)
X {
X yys = 0;
X if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
X if (!yys) yys = "illegal-symbol";
X printf("yydebug: state %d, error recovery discards token %d (%s)\n",
X yystate, yychar, yys);
X }
#endif
X yychar = (-1);
X goto yyloop;
X }
yyreduce:
#if YYDEBUG
X if (yydebug)
X printf("yydebug: state %d, reducing by rule %d (%s)\n",
X yystate, yyn, yyrule[yyn]);
#endif
X yym = yylen[yyn];
X yyval = yyvsp[1-yym];
X switch (yyn)
X {
case 6:
#line 160 "parse.y"
{ /* this do nothing action removes a vacuous warning
X from Bison */
X }
break;
case 7:
#line 165 "parse.y"
{
X be_expand(&begin_code) ;
X scope = SCOPE_BEGIN ;
X }
break;
case 8:
#line 171 "parse.y"
{ be_shrink(&begin_code) ;
X scope = SCOPE_MAIN ;
X }
break;
case 9:
#line 176 "parse.y"
{
X be_expand(&end_code) ;
X scope = SCOPE_END ;
X }
break;
case 10:
#line 182 "parse.y"
{ be_shrink(&end_code) ;
X scope = SCOPE_MAIN ;
X }
break;
case 11:
#line 187 "parse.y"
{ code_jmp(_JZ, (INST*)0) ; }
break;
case 12:
#line 190 "parse.y"
{ patch_jmp( code_ptr ) ; }
break;
case 13:
#line 194 "parse.y"
{ code_push(yyvsp[-1].start, code_ptr - yyvsp[-1].start) ;
X code_ptr = yyvsp[-1].start ;
X code1(_RANGE) ; code1(1) ;
X code_ptr += 3 ;
X code_ptr += code_pop(code_ptr) ;
X code1(_STOP) ;
X yyvsp[-1].start[2].op = code_ptr - (yyvsp[-1].start+1) ;
X }
break;
case 14:
#line 203 "parse.y"
{ code1(_STOP) ; }
break;
case 15:
#line 206 "parse.y"
{ yyvsp[-5].start[3].op = yyvsp[0].start - (yyvsp[-5].start+1) ;
X yyvsp[-5].start[4].op = code_ptr - (yyvsp[-5].start+1) ;
X }
break;
case 16:
#line 214 "parse.y"
{ yyval.start = yyvsp[-1].start ; }
break;
case 17:
#line 216 "parse.y"
{ yyval.start = code_ptr ; /* does nothing won't be executed */
X print_flag = getline_flag = paren_cnt = 0 ;
X yyerrok ; }
break;
case 19:
#line 223 "parse.y"
{ yyval.start = code_ptr ;
X code1(_PUSHINT) ; code1(0) ;
X code2(_PRINT, bi_print) ;
X }
break;
case 23:
#line 235 "parse.y"
{ code1(_POP) ; }
break;
case 24:
#line 237 "parse.y"
{ yyval.start = code_ptr ; }
break;
case 25:
#line 239 "parse.y"
{ yyval.start = code_ptr ;
X print_flag = getline_flag = 0 ;
X paren_cnt = 0 ;
X yyerrok ;
X }
break;
case 26:
#line 245 "parse.y"
{ yyval.start = code_ptr ; BC_insert('B', code_ptr+1) ;
X code2(_JMP, 0) /* don't use code_jmp ! */ ; }
break;
case 27:
#line 248 "parse.y"
{ yyval.start = code_ptr ; BC_insert('C', code_ptr+1) ;
X code2(_JMP, 0) ; }
break;
case 28:
#line 251 "parse.y"
{ if ( scope != SCOPE_FUNCT )
X compile_error("return outside function body") ;
X }
break;
case 29:
#line 255 "parse.y"
{ if ( scope != SCOPE_MAIN )
X compile_error( "improper use of next" ) ;
X yyval.start = code_ptr ;
X code1(_NEXT) ;
X }
break;
case 33:
#line 266 "parse.y"
{ code1(_ASSIGN) ; }
break;
case 34:
#line 267 "parse.y"
{ code1(_ADD_ASG) ; }
break;
case 35:
#line 268 "parse.y"
{ code1(_SUB_ASG) ; }
break;
case 36:
#line 269 "parse.y"
{ code1(_MUL_ASG) ; }
break;
case 37:
#line 270 "parse.y"
{ code1(_DIV_ASG) ; }
break;
case 38:
#line 271 "parse.y"
{ code1(_MOD_ASG) ; }
break;
case 39:
#line 272 "parse.y"
{ code1(_POW_ASG) ; }
break;
case 40:
#line 273 "parse.y"
{ code1(_EQ) ; }
break;
case 41:
#line 274 "parse.y"
{ code1(_NEQ) ; }
break;
case 42:
#line 275 "parse.y"
{ code1(_LT) ; }
break;
case 43:
#line 276 "parse.y"
{ code1(_LTE) ; }
break;
case 44:
#line 277 "parse.y"
{ code1(_GT) ; }
break;
case 45:
#line 278 "parse.y"
{ code1(_GTE) ; }
break;
case 46:
#line 281 "parse.y"
{
X if ( yyvsp[0].start == code_ptr - 2 )
X {
X if ( yyvsp[0].start->op == _MATCH0 ) yyvsp[0].start->op = _MATCH1 ;
X
X else /* check for string */
X if ( yyvsp[0].start->op == _PUSHS )
X { CELL *cp = ZMALLOC(CELL) ;
X
X cp->type = C_STRING ;
X cp->ptr = yyvsp[0].start[1].ptr ;
X cast_to_RE(cp) ;
X code_ptr -= 2 ;
X code2(_MATCH1, cp->ptr) ;
X ZFREE(cp) ;
X }
X else code1(_MATCH2) ;
X }
X else code1(_MATCH2) ;
X
X if ( !yyvsp[-1].ival ) code1(_NOT) ;
X }
break;
case 47:
#line 306 "parse.y"
{ code1(_DUP) ;
X code_jmp(_JNZ, (INST*)0) ;
X code1(_POP) ;
X }
break;
case 48:
#line 311 "parse.y"
{ patch_jmp(code_ptr) ; code1(_TEST) ; }
break;
case 49:
#line 314 "parse.y"
{ code1(_DUP) ; code_jmp(_JZ, (INST*)0) ;
X code1(_POP) ; }
break;
case 50:
#line 317 "parse.y"
{ patch_jmp(code_ptr) ; code1(_TEST) ; }
break;
case 51:
#line 319 "parse.y"
{ code_jmp(_JZ, (INST*)0) ; }
break;
case 52:
#line 320 "parse.y"
{ code_jmp(_JMP, (INST*)0) ; }
SHAR_EOF
true || echo 'restore of Xparse.c failed'
fi
echo 'End of part 3'
echo 'File Xparse.c is continued in part 4'
echo 4 > _shar_seq_.tmp
exit 0
exit 0 # Just in case...
--
Andrew Patrick acting as Comp.Sources.Reviewed Moderator
Department of Communications, Ottawa, CANADA
csr@calvin.dgbt.doc.CA
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads