**
** cgrammar.y
**
-** Yacc/Bison grammar for extended ANSI C used by LCLint.
+** Yacc/Bison grammar for extended ANSI C used by Splint.
**
** original grammar by Nate Osgood ---
** hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993
**
-** changes for LCLint --- handle typedef names correctly
+** changes for Splint --- handle typedef names correctly
** fix struct/union parsing bug (empty struct is accepted)
** add productions to handle macros --- require
** error correction --- main source of conflicts in grammar.
extern void swallowMacro (void);
extern void yyerror (char *);
-# include "lclintMacros.nf"
+# include "splintMacros.nf"
# include "basic.h"
# include "cscanner.h"
# include "cgrammar.h"
#if YYDEBUG != 0
static const short yyrline[] = { 0,
- 318, 319, 322, 323, 326, 327, 328, 329, 330, 331,
- 332, 335, 337, 341, 341, 348, 354, 358, 359, 363,
- 364, 366, 368, 380, 383, 393, 396, 404, 405, 407,
- 409, 425, 428, 436, 439, 447, 449, 449, 453, 454,
- 455, 456, 459, 462, 466, 466, 469, 469, 474, 475,
- 478, 483, 484, 487, 492, 493, 496, 497, 498, 501,
- 502, 503, 508, 509, 512, 514, 516, 518, 527, 529,
- 531, 533, 549, 553, 554, 561, 562, 570, 572, 576,
- 577, 578, 579, 580, 581, 584, 585, 586, 587, 588,
- 589, 592, 595, 596, 603, 606, 609, 615, 623, 625,
- 629, 632, 633, 636, 639, 645, 649, 650, 653, 656,
- 657, 660, 661, 662, 665, 666, 667, 668, 669, 672,
- 673, 674, 675, 676, 679, 680, 683, 689, 693, 695,
- 699, 700, 702, 709, 719, 720, 723, 724, 725, 726,
- 727, 728, 729, 730, 734, 735, 739, 740, 743, 745,
- 747, 748, 749, 750, 751, 753, 757, 758, 761, 765,
- 777, 778, 779, 780, 781, 782, 785, 786, 787, 788,
- 789, 790, 791, 792, 793, 796, 797, 800, 801, 802,
- 803, 804, 805, 806, 807, 808, 809, 810, 813, 814,
- 817, 821, 822, 825, 826, 827, 828, 831, 832, 836,
- 837, 838, 839, 842, 843, 844, 847, 848, 849, 852,
- 853, 854, 855, 856, 859, 860, 861, 864, 865, 868,
- 869, 873, 874, 877, 878, 883, 889, 890, 896, 902,
- 903, 903, 905, 908, 909, 910, 911, 912, 913, 914,
- 915, 916, 917, 918, 919, 922, 923, 926, 927, 930,
- 935, 936, 937, 940, 954, 959, 965, 967, 973, 978,
- 978, 982, 983, 985, 986, 989, 992, 995, 998, 999,
- 1002, 1003, 1006, 1007, 1008, 1012, 1014, 1023, 1024, 1025,
- 1026, 1027, 1029, 1033, 1036, 1042, 1051, 1054, 1057, 1064,
- 1071, 1077, 1102, 1103, 1106, 1107, 1108, 1109, 1110, 1113,
- 1114, 1115, 1116, 1119, 1120, 1121, 1122, 1123, 1124, 1125,
- 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135,
- 1139, 1140, 1143, 1144, 1147, 1148, 1151, 1152, 1153, 1154,
- 1157, 1158, 1159, 1160, 1161, 1162, 1165, 1166, 1167, 1168,
- 1171, 1172, 1173, 1174, 1177, 1178, 1179, 1180, 1181, 1182,
- 1183, 1184, 1185, 1186, 1187, 1194, 1195, 1196, 1197, 1198,
- 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1210,
- 1214, 1215, 1219, 1220, 1224, 1225, 1226, 1229, 1230, 1233,
- 1235, 1237, 1238, 1240, 1242, 1243, 1245, 1247, 1249, 1251,
- 1252, 1253, 1256, 1257, 1259, 1261, 1262, 1265, 1268, 1269,
- 1270, 1273, 1275, 1279, 1281, 1285, 1286, 1287, 1291, 1293,
- 1293, 1295, 1298, 1300, 1302, 1305, 1310, 1317, 1318, 1319,
- 1326, 1330, 1331, 1335, 1336, 1339, 1340, 1343, 1344, 1347,
- 1348, 1349, 1350, 1353, 1354, 1357, 1358, 1361, 1362, 1363,
- 1366, 1366, 1367, 1368, 1371, 1383, 1399, 1400, 1403, 1404,
- 1405, 1408, 1409, 1412, 1414, 1415, 1417, 1418, 1420, 1422,
- 1424, 1426, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439,
- 1440, 1455, 1458, 1461, 1462, 1466, 1468, 1470, 1472, 1476,
- 1477, 1479, 1483, 1485, 1487, 1490, 1491, 1492, 1493, 1494,
- 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1505, 1506,
- 1511, 1514, 1517, 1518, 1521, 1522, 1523, 1524, 1525, 1526,
- 1527, 1528, 1529, 1530, 1531, 1534, 1535, 1542, 1543, 1549,
- 1550, 1551, 1552, 1555, 1556, 1557, 1558, 1561, 1562, 1566,
- 1569, 1572, 1575, 1578, 1581, 1584, 1585, 1586, 1587, 1589,
- 1590, 1592, 1594, 1600, 1604, 1606, 1608, 1610, 1614, 1615,
- 1618, 1619, 1622, 1623, 1626, 1627, 1630, 1631, 1632, 1635,
- 1648, 1653, 1654, 1658, 1659, 1662, 1667, 1670, 1671, 1672,
- 1680, 1681, 1681, 1685, 1686, 1687, 1698, 1705, 1706, 1709,
- 1710, 1713, 1714, 1715, 1716, 1717, 1719, 1720, 1721, 1722,
- 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734,
- 1737, 1738, 1741, 1742, 1743, 1744, 1747, 1748, 1749, 1752,
- 1753, 1754, 1757, 1758, 1759, 1760, 1761, 1764, 1765, 1766,
- 1769, 1770, 1773, 1774, 1778, 1779, 1782, 1783, 1786, 1787,
- 1790, 1791, 1792, 1793, 1796, 1797, 1798, 1799, 1800, 1801,
- 1802, 1803, 1804, 1805, 1806, 1807, 1810, 1811, 1814, 1817,
- 1819, 1821, 1825, 1826, 1828, 1830, 1833, 1834, 1835, 1837,
- 1838, 1839, 1840, 1841, 1842, 1843, 1846, 1847, 1850, 1853,
- 1854, 1855, 1856, 1857, 1860, 1861
+ 317, 318, 321, 322, 325, 326, 327, 328, 329, 330,
+ 331, 334, 336, 340, 340, 347, 353, 357, 358, 362,
+ 363, 365, 367, 379, 382, 392, 395, 403, 404, 406,
+ 408, 424, 427, 435, 438, 446, 448, 448, 452, 453,
+ 454, 455, 458, 461, 465, 465, 468, 468, 473, 474,
+ 477, 482, 483, 486, 491, 492, 495, 496, 497, 500,
+ 501, 502, 507, 508, 511, 513, 515, 517, 526, 528,
+ 530, 532, 548, 552, 553, 560, 561, 569, 571, 575,
+ 576, 577, 578, 579, 580, 583, 584, 585, 586, 587,
+ 588, 591, 594, 595, 602, 605, 608, 614, 622, 624,
+ 628, 631, 632, 635, 638, 644, 648, 649, 652, 655,
+ 656, 659, 660, 661, 664, 665, 666, 667, 668, 671,
+ 672, 673, 674, 675, 678, 679, 682, 688, 692, 694,
+ 698, 699, 701, 708, 718, 719, 722, 723, 724, 725,
+ 726, 727, 728, 729, 733, 734, 738, 739, 742, 744,
+ 746, 747, 748, 749, 750, 752, 756, 757, 760, 764,
+ 776, 777, 778, 779, 780, 781, 784, 785, 786, 787,
+ 788, 789, 790, 791, 792, 795, 796, 799, 800, 801,
+ 802, 803, 804, 805, 806, 807, 808, 809, 812, 813,
+ 816, 820, 821, 824, 825, 826, 827, 830, 831, 835,
+ 836, 837, 838, 841, 842, 843, 846, 847, 848, 851,
+ 852, 853, 854, 855, 858, 859, 860, 863, 864, 867,
+ 868, 872, 873, 876, 877, 882, 888, 889, 895, 901,
+ 902, 902, 904, 907, 908, 909, 910, 911, 912, 913,
+ 914, 915, 916, 917, 918, 921, 922, 925, 926, 929,
+ 934, 935, 936, 939, 953, 958, 964, 966, 972, 977,
+ 977, 981, 982, 984, 985, 988, 991, 994, 997, 998,
+ 1001, 1002, 1005, 1006, 1007, 1011, 1013, 1022, 1023, 1024,
+ 1025, 1026, 1028, 1032, 1035, 1041, 1050, 1053, 1056, 1063,
+ 1070, 1076, 1101, 1102, 1105, 1106, 1107, 1108, 1109, 1112,
+ 1113, 1114, 1115, 1118, 1119, 1120, 1121, 1122, 1123, 1124,
+ 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134,
+ 1138, 1139, 1142, 1143, 1146, 1147, 1150, 1151, 1152, 1153,
+ 1156, 1157, 1158, 1159, 1160, 1161, 1164, 1165, 1166, 1167,
+ 1170, 1171, 1172, 1173, 1176, 1177, 1178, 1179, 1180, 1181,
+ 1182, 1183, 1184, 1185, 1186, 1193, 1194, 1195, 1196, 1197,
+ 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1209,
+ 1213, 1214, 1218, 1219, 1223, 1224, 1225, 1228, 1229, 1232,
+ 1234, 1236, 1237, 1239, 1241, 1242, 1244, 1246, 1248, 1250,
+ 1251, 1252, 1255, 1256, 1258, 1260, 1261, 1264, 1267, 1268,
+ 1269, 1272, 1274, 1278, 1280, 1284, 1285, 1286, 1290, 1292,
+ 1292, 1294, 1297, 1299, 1301, 1304, 1309, 1316, 1317, 1318,
+ 1325, 1329, 1330, 1334, 1335, 1338, 1339, 1342, 1343, 1346,
+ 1347, 1348, 1349, 1352, 1353, 1356, 1357, 1360, 1361, 1362,
+ 1365, 1365, 1366, 1367, 1370, 1382, 1398, 1399, 1402, 1403,
+ 1404, 1407, 1408, 1411, 1413, 1414, 1416, 1417, 1419, 1421,
+ 1423, 1425, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438,
+ 1439, 1442, 1445, 1448, 1449, 1453, 1455, 1457, 1459, 1463,
+ 1464, 1466, 1470, 1472, 1474, 1477, 1478, 1479, 1480, 1481,
+ 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1492, 1493,
+ 1498, 1501, 1504, 1505, 1508, 1509, 1510, 1511, 1512, 1513,
+ 1514, 1515, 1516, 1517, 1518, 1521, 1522, 1529, 1530, 1536,
+ 1537, 1538, 1539, 1542, 1543, 1544, 1545, 1548, 1549, 1553,
+ 1556, 1559, 1562, 1565, 1568, 1571, 1572, 1573, 1574, 1576,
+ 1577, 1579, 1581, 1587, 1591, 1593, 1595, 1597, 1601, 1602,
+ 1605, 1606, 1609, 1610, 1613, 1614, 1617, 1618, 1619, 1622,
+ 1635, 1640, 1641, 1645, 1646, 1649, 1654, 1657, 1658, 1659,
+ 1667, 1668, 1668, 1672, 1673, 1674, 1685, 1692, 1693, 1696,
+ 1697, 1700, 1701, 1702, 1703, 1704, 1706, 1707, 1708, 1709,
+ 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721,
+ 1724, 1725, 1728, 1729, 1730, 1731, 1734, 1735, 1736, 1739,
+ 1740, 1741, 1744, 1745, 1746, 1747, 1748, 1751, 1752, 1753,
+ 1756, 1757, 1760, 1761, 1765, 1766, 1769, 1770, 1773, 1774,
+ 1777, 1778, 1779, 1780, 1783, 1784, 1785, 1786, 1787, 1788,
+ 1789, 1790, 1791, 1792, 1793, 1794, 1797, 1798, 1801, 1804,
+ 1806, 1808, 1812, 1813, 1815, 1817, 1820, 1821, 1822, 1824,
+ 1825, 1826, 1827, 1828, 1829, 1830, 1833, 1834, 1837, 1840,
+ 1841, 1842, 1843, 1844, 1847, 1848
};
#endif