#include "llvm/SymbolTable.h"
#include "llvm/Support/GetElementPtrTypeIterator.h"
#include "llvm/ADT/STLExtras.h"
+#include "llvm/Support/MathExtras.h"
#include <algorithm>
#include <iostream>
#include <list>
/// this is a declaration, otherwise it is a definition.
static void ParseGlobalVariable(char *NameStr,GlobalValue::LinkageTypes Linkage,
bool isConstantGlobal, const Type *Ty,
- Constant *Initializer) {
+ Constant *Initializer, unsigned Align) {
+ if (Align != 0 && !isPowerOf2_32(Align))
+ ThrowException("Global alignment must be a power of two!");
+
if (isa<FunctionType>(Ty))
ThrowException("Cannot declare global vars of function type!");
GV->setInitializer(Initializer);
GV->setLinkage(Linkage);
GV->setConstant(isConstantGlobal);
+ GV->setAlignment(Align);
InsertValue(GV, CurModule.Values);
return;
}
if (isConstantGlobal)
EGV->setConstant(true);
EGV->setLinkage(Linkage);
+ EGV->setAlignment(Align);
return;
}
GlobalVariable *GV =
new GlobalVariable(Ty, isConstantGlobal, Linkage, Initializer, Name,
CurModule.CurrentModule);
+ GV->setAlignment(Align);
InsertValue(GV, CurModule.Values);
}
}
-#line 866 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 873 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
typedef union {
llvm::Module *ModuleVal;
llvm::Function *FunctionVal;
-#define YYFINAL 426
+#define YYFINAL 431
#define YYFLAG -32768
#define YYNTBASE 109
-#define YYTRANSLATE(x) ((unsigned)(x) <= 348 ? yytranslate[x] : 171)
+#define YYTRANSLATE(x) ((unsigned)(x) <= 348 ? yytranslate[x] : 172)
static const char yytranslate[] = { 0,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
20, 22, 24, 26, 28, 30, 32, 34, 36, 38,
40, 42, 44, 46, 48, 50, 52, 54, 56, 58,
60, 62, 64, 67, 68, 70, 72, 74, 76, 77,
- 78, 80, 82, 84, 87, 88, 92, 94, 96, 98,
+ 78, 80, 82, 84, 87, 88, 91, 92, 96, 98,
100, 102, 104, 106, 108, 110, 112, 114, 116, 118,
- 120, 122, 124, 126, 128, 130, 132, 134, 137, 142,
- 148, 154, 158, 161, 164, 166, 170, 172, 176, 178,
- 179, 184, 188, 192, 197, 202, 206, 209, 212, 215,
- 218, 221, 224, 227, 230, 233, 236, 243, 249, 258,
- 265, 272, 279, 286, 290, 292, 294, 296, 298, 301,
- 304, 307, 309, 314, 317, 323, 329, 333, 338, 339,
- 341, 343, 347, 351, 355, 359, 363, 365, 366, 368,
- 370, 372, 373, 376, 380, 382, 384, 388, 390, 391,
- 398, 400, 402, 406, 408, 410, 413, 414, 418, 420,
- 422, 424, 426, 428, 430, 432, 436, 438, 440, 442,
- 444, 446, 449, 452, 455, 459, 462, 463, 465, 468,
- 471, 475, 485, 495, 504, 518, 520, 522, 529, 535,
- 538, 545, 553, 555, 559, 561, 562, 565, 567, 573,
- 579, 585, 588, 593, 598, 605, 610, 615, 620, 623,
- 631, 633, 636, 637, 639, 640, 644, 651, 655, 662,
- 665, 670, 677
+ 120, 122, 124, 126, 128, 130, 132, 134, 136, 138,
+ 141, 146, 152, 158, 162, 165, 168, 170, 174, 176,
+ 180, 182, 183, 188, 192, 196, 201, 206, 210, 213,
+ 216, 219, 222, 225, 228, 231, 234, 237, 240, 247,
+ 253, 262, 269, 276, 283, 290, 294, 296, 298, 300,
+ 302, 305, 308, 311, 313, 318, 321, 328, 335, 339,
+ 344, 345, 347, 349, 353, 357, 361, 365, 369, 371,
+ 372, 374, 376, 378, 379, 382, 386, 388, 390, 394,
+ 396, 397, 405, 407, 409, 413, 415, 417, 420, 421,
+ 425, 427, 429, 431, 433, 435, 437, 439, 443, 445,
+ 447, 449, 451, 453, 456, 459, 462, 466, 469, 470,
+ 472, 475, 478, 482, 492, 502, 511, 525, 527, 529,
+ 536, 542, 545, 552, 560, 562, 566, 568, 569, 572,
+ 574, 580, 586, 592, 595, 600, 605, 612, 617, 622,
+ 627, 630, 638, 640, 643, 644, 646, 647, 651, 658,
+ 662, 669, 672, 677, 684
};
static const short yyrhs[] = { 5,
0, 79, 0, 80, 0, 90, 0, 91, 0, 16,
0, 14, 0, 12, 0, 10, 0, 17, 0, 15,
0, 13, 0, 11, 0, 115, 0, 116, 0, 18,
- 0, 19, 0, 141, 95, 0, 0, 40, 0, 41,
+ 0, 19, 0, 142, 95, 0, 0, 40, 0, 41,
0, 42, 0, 43, 0, 0, 0, 58, 0, 59,
- 0, 60, 0, 57, 4, 0, 0, 96, 53, 4,
- 0, 125, 0, 8, 0, 127, 0, 8, 0, 127,
- 0, 9, 0, 10, 0, 11, 0, 12, 0, 13,
- 0, 14, 0, 15, 0, 16, 0, 17, 0, 18,
- 0, 19, 0, 20, 0, 21, 0, 44, 0, 126,
- 0, 154, 0, 97, 4, 0, 124, 98, 129, 99,
- 0, 100, 4, 101, 127, 102, 0, 103, 4, 101,
- 127, 104, 0, 105, 128, 106, 0, 105, 106, 0,
- 127, 107, 0, 127, 0, 128, 96, 127, 0, 128,
- 0, 128, 96, 36, 0, 36, 0, 0, 125, 100,
- 132, 102, 0, 125, 100, 102, 0, 125, 108, 24,
- 0, 125, 103, 132, 104, 0, 125, 105, 132, 106,
- 0, 125, 105, 106, 0, 125, 37, 0, 125, 38,
- 0, 125, 154, 0, 125, 131, 0, 125, 26, 0,
- 115, 110, 0, 116, 4, 0, 9, 27, 0, 9,
- 28, 0, 118, 7, 0, 88, 98, 130, 35, 125,
- 99, 0, 86, 98, 130, 168, 99, 0, 89, 98,
- 130, 96, 130, 96, 130, 99, 0, 111, 98, 130,
- 96, 130, 99, 0, 112, 98, 130, 96, 130, 99,
- 0, 113, 98, 130, 96, 130, 99, 0, 114, 98,
- 130, 96, 130, 99, 0, 132, 96, 130, 0, 130,
- 0, 32, 0, 33, 0, 135, 0, 135, 150, 0,
- 135, 151, 0, 135, 25, 0, 136, 0, 136, 119,
- 20, 123, 0, 136, 151, 0, 136, 119, 120, 133,
- 130, 0, 136, 119, 46, 133, 125, 0, 136, 47,
- 138, 0, 136, 54, 95, 139, 0, 0, 52, 0,
- 51, 0, 49, 95, 137, 0, 50, 95, 4, 0,
- 48, 95, 24, 0, 100, 140, 102, 0, 140, 96,
- 24, 0, 24, 0, 0, 22, 0, 24, 0, 141,
- 0, 0, 125, 142, 0, 144, 96, 143, 0, 143,
- 0, 144, 0, 144, 96, 36, 0, 36, 0, 0,
- 121, 123, 141, 98, 145, 99, 0, 29, 0, 105,
- 0, 120, 146, 147, 0, 30, 0, 106, 0, 157,
- 149, 0, 0, 31, 152, 146, 0, 3, 0, 4,
- 0, 7, 0, 27, 0, 28, 0, 37, 0, 38,
- 0, 103, 132, 104, 0, 131, 0, 109, 0, 141,
- 0, 154, 0, 153, 0, 125, 155, 0, 157, 158,
- 0, 148, 158, 0, 159, 119, 160, 0, 159, 162,
- 0, 0, 23, 0, 61, 156, 0, 61, 8, 0,
- 62, 21, 155, 0, 62, 9, 155, 96, 21, 155,
- 96, 21, 155, 0, 63, 117, 155, 96, 21, 155,
- 100, 161, 102, 0, 63, 117, 155, 96, 21, 155,
- 100, 102, 0, 64, 121, 123, 155, 98, 165, 99,
- 35, 21, 155, 65, 21, 155, 0, 65, 0, 66,
- 0, 161, 117, 153, 96, 21, 155, 0, 117, 153,
- 96, 21, 155, 0, 119, 167, 0, 125, 100, 155,
- 96, 155, 102, 0, 163, 96, 100, 155, 96, 155,
- 102, 0, 156, 0, 164, 96, 156, 0, 164, 0,
- 0, 56, 55, 0, 55, 0, 111, 125, 155, 96,
- 155, 0, 112, 125, 155, 96, 155, 0, 113, 125,
- 155, 96, 155, 0, 45, 156, 0, 114, 156, 96,
- 156, 0, 88, 156, 35, 125, 0, 89, 156, 96,
- 156, 96, 156, 0, 92, 156, 96, 125, 0, 93,
- 156, 96, 125, 0, 94, 156, 96, 125, 0, 87,
- 163, 0, 166, 121, 123, 155, 98, 165, 99, 0,
- 170, 0, 96, 164, 0, 0, 34, 0, 0, 81,
- 125, 122, 0, 81, 125, 96, 15, 155, 122, 0,
- 82, 125, 122, 0, 82, 125, 96, 15, 155, 122,
- 0, 83, 156, 0, 169, 84, 125, 155, 0, 169,
- 85, 156, 96, 125, 155, 0, 86, 125, 155, 168,
- 0
+ 0, 60, 0, 57, 4, 0, 0, 53, 4, 0,
+ 0, 96, 53, 4, 0, 126, 0, 8, 0, 128,
+ 0, 8, 0, 128, 0, 9, 0, 10, 0, 11,
+ 0, 12, 0, 13, 0, 14, 0, 15, 0, 16,
+ 0, 17, 0, 18, 0, 19, 0, 20, 0, 21,
+ 0, 44, 0, 127, 0, 155, 0, 97, 4, 0,
+ 125, 98, 130, 99, 0, 100, 4, 101, 128, 102,
+ 0, 103, 4, 101, 128, 104, 0, 105, 129, 106,
+ 0, 105, 106, 0, 128, 107, 0, 128, 0, 129,
+ 96, 128, 0, 129, 0, 129, 96, 36, 0, 36,
+ 0, 0, 126, 100, 133, 102, 0, 126, 100, 102,
+ 0, 126, 108, 24, 0, 126, 103, 133, 104, 0,
+ 126, 105, 133, 106, 0, 126, 105, 106, 0, 126,
+ 37, 0, 126, 38, 0, 126, 155, 0, 126, 132,
+ 0, 126, 26, 0, 115, 110, 0, 116, 4, 0,
+ 9, 27, 0, 9, 28, 0, 118, 7, 0, 88,
+ 98, 131, 35, 126, 99, 0, 86, 98, 131, 169,
+ 99, 0, 89, 98, 131, 96, 131, 96, 131, 99,
+ 0, 111, 98, 131, 96, 131, 99, 0, 112, 98,
+ 131, 96, 131, 99, 0, 113, 98, 131, 96, 131,
+ 99, 0, 114, 98, 131, 96, 131, 99, 0, 133,
+ 96, 131, 0, 131, 0, 32, 0, 33, 0, 136,
+ 0, 136, 151, 0, 136, 152, 0, 136, 25, 0,
+ 137, 0, 137, 119, 20, 124, 0, 137, 152, 0,
+ 137, 119, 120, 134, 131, 123, 0, 137, 119, 46,
+ 134, 126, 123, 0, 137, 47, 139, 0, 137, 54,
+ 95, 140, 0, 0, 52, 0, 51, 0, 49, 95,
+ 138, 0, 50, 95, 4, 0, 48, 95, 24, 0,
+ 100, 141, 102, 0, 141, 96, 24, 0, 24, 0,
+ 0, 22, 0, 24, 0, 142, 0, 0, 126, 143,
+ 0, 145, 96, 144, 0, 144, 0, 145, 0, 145,
+ 96, 36, 0, 36, 0, 0, 121, 124, 142, 98,
+ 146, 99, 122, 0, 29, 0, 105, 0, 120, 147,
+ 148, 0, 30, 0, 106, 0, 158, 150, 0, 0,
+ 31, 153, 147, 0, 3, 0, 4, 0, 7, 0,
+ 27, 0, 28, 0, 37, 0, 38, 0, 103, 133,
+ 104, 0, 132, 0, 109, 0, 142, 0, 155, 0,
+ 154, 0, 126, 156, 0, 158, 159, 0, 149, 159,
+ 0, 160, 119, 161, 0, 160, 163, 0, 0, 23,
+ 0, 61, 157, 0, 61, 8, 0, 62, 21, 156,
+ 0, 62, 9, 156, 96, 21, 156, 96, 21, 156,
+ 0, 63, 117, 156, 96, 21, 156, 100, 162, 102,
+ 0, 63, 117, 156, 96, 21, 156, 100, 102, 0,
+ 64, 121, 124, 156, 98, 166, 99, 35, 21, 156,
+ 65, 21, 156, 0, 65, 0, 66, 0, 162, 117,
+ 154, 96, 21, 156, 0, 117, 154, 96, 21, 156,
+ 0, 119, 168, 0, 126, 100, 156, 96, 156, 102,
+ 0, 164, 96, 100, 156, 96, 156, 102, 0, 157,
+ 0, 165, 96, 157, 0, 165, 0, 0, 56, 55,
+ 0, 55, 0, 111, 126, 156, 96, 156, 0, 112,
+ 126, 156, 96, 156, 0, 113, 126, 156, 96, 156,
+ 0, 45, 157, 0, 114, 157, 96, 157, 0, 88,
+ 157, 35, 126, 0, 89, 157, 96, 157, 96, 157,
+ 0, 92, 157, 96, 126, 0, 93, 157, 96, 126,
+ 0, 94, 157, 96, 126, 0, 87, 164, 0, 167,
+ 121, 124, 156, 98, 166, 99, 0, 171, 0, 96,
+ 165, 0, 0, 34, 0, 0, 81, 126, 123, 0,
+ 81, 126, 96, 15, 156, 123, 0, 82, 126, 123,
+ 0, 82, 126, 96, 15, 156, 123, 0, 83, 157,
+ 0, 170, 84, 126, 156, 0, 170, 85, 157, 96,
+ 126, 156, 0, 86, 126, 156, 169, 0
};
#endif
#if YYDEBUG != 0
static const short yyrline[] = { 0,
- 983, 984, 991, 992, 1001, 1001, 1001, 1001, 1001, 1002,
- 1002, 1002, 1003, 1003, 1003, 1003, 1003, 1003, 1005, 1005,
- 1009, 1009, 1009, 1009, 1010, 1010, 1010, 1010, 1011, 1011,
- 1012, 1012, 1015, 1018, 1022, 1022, 1023, 1024, 1025, 1028,
- 1028, 1029, 1030, 1031, 1040, 1040, 1050, 1050, 1051, 1051,
- 1053, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1063, 1063,
- 1063, 1063, 1063, 1063, 1064, 1067, 1070, 1076, 1083, 1095,
- 1099, 1110, 1119, 1122, 1130, 1134, 1139, 1140, 1143, 1146,
- 1156, 1181, 1194, 1222, 1247, 1267, 1279, 1288, 1292, 1351,
- 1357, 1365, 1370, 1375, 1378, 1381, 1388, 1398, 1429, 1436,
- 1457, 1464, 1469, 1479, 1482, 1489, 1489, 1499, 1506, 1510,
- 1513, 1516, 1529, 1549, 1551, 1555, 1559, 1561, 1563, 1568,
- 1569, 1571, 1574, 1582, 1587, 1589, 1593, 1597, 1605, 1605,
- 1606, 1606, 1608, 1614, 1619, 1625, 1628, 1633, 1637, 1641,
- 1721, 1721, 1723, 1731, 1731, 1733, 1737, 1737, 1746, 1749,
- 1752, 1755, 1758, 1761, 1764, 1767, 1791, 1798, 1801, 1806,
- 1806, 1812, 1816, 1819, 1827, 1836, 1840, 1850, 1861, 1864,
- 1867, 1870, 1873, 1887, 1891, 1944, 1947, 1953, 1961, 1971,
- 1978, 1983, 1990, 1994, 2000, 2000, 2002, 2005, 2011, 2023,
- 2031, 2041, 2053, 2060, 2067, 2074, 2079, 2098, 2120, 2134,
- 2191, 2197, 2199, 2203, 2206, 2212, 2219, 2226, 2233, 2240,
- 2247, 2257, 2270
+ 990, 991, 998, 999, 1008, 1008, 1008, 1008, 1008, 1009,
+ 1009, 1009, 1010, 1010, 1010, 1010, 1010, 1010, 1012, 1012,
+ 1016, 1016, 1016, 1016, 1017, 1017, 1017, 1017, 1018, 1018,
+ 1019, 1019, 1022, 1025, 1029, 1029, 1030, 1031, 1032, 1035,
+ 1035, 1036, 1037, 1038, 1047, 1047, 1049, 1049, 1059, 1059,
+ 1060, 1060, 1062, 1071, 1071, 1071, 1071, 1071, 1071, 1071,
+ 1072, 1072, 1072, 1072, 1072, 1072, 1073, 1076, 1079, 1085,
+ 1092, 1104, 1108, 1119, 1128, 1131, 1139, 1143, 1148, 1149,
+ 1152, 1155, 1165, 1190, 1203, 1231, 1256, 1276, 1288, 1297,
+ 1301, 1360, 1366, 1374, 1379, 1384, 1387, 1390, 1397, 1407,
+ 1438, 1445, 1466, 1473, 1478, 1488, 1491, 1498, 1498, 1508,
+ 1515, 1519, 1522, 1525, 1538, 1558, 1560, 1564, 1568, 1570,
+ 1572, 1577, 1578, 1580, 1583, 1591, 1596, 1598, 1602, 1606,
+ 1614, 1614, 1615, 1615, 1617, 1623, 1628, 1634, 1637, 1642,
+ 1646, 1650, 1733, 1733, 1735, 1743, 1743, 1745, 1749, 1749,
+ 1758, 1761, 1764, 1767, 1770, 1773, 1776, 1779, 1803, 1810,
+ 1813, 1818, 1818, 1824, 1828, 1831, 1839, 1848, 1852, 1862,
+ 1873, 1876, 1879, 1882, 1885, 1899, 1903, 1956, 1959, 1965,
+ 1973, 1983, 1990, 1995, 2002, 2006, 2012, 2012, 2014, 2017,
+ 2023, 2035, 2043, 2053, 2065, 2072, 2079, 2086, 2091, 2110,
+ 2132, 2146, 2203, 2209, 2211, 2215, 2218, 2224, 2231, 2238,
+ 2245, 2252, 2259, 2269, 2282
};
#endif
"VAARG","VAARG_old","VANEXT_old","'='","','","'\\\\'","'('","')'","'['","'x'",
"']'","'<'","'>'","'{'","'}'","'*'","'c'","INTVAL","EINT64VAL","ArithmeticOps",
"LogicalOps","SetCondOps","ShiftOps","SIntType","UIntType","IntType","FPType",
-"OptAssign","OptLinkage","OptCallingConv","OptCAlign","TypesV","UpRTypesV","Types",
-"PrimType","UpRTypes","TypeListI","ArgTypeListI","ConstVal","ConstExpr","ConstVector",
-"GlobalType","Module","FunctionList","ConstPool","BigOrLittle","TargetDefinition",
-"LibrariesDefinition","LibList","Name","OptName","ArgVal","ArgListH","ArgList",
-"FunctionHeaderH","BEGIN","FunctionHeader","END","Function","FunctionProto",
-"@1","ConstValueRef","SymbolicValueRef","ValueRef","ResolvedVal","BasicBlockList",
-"BasicBlock","InstructionList","BBTerminatorInst","JumpTable","Inst","PHIList",
-"ValueRefList","ValueRefListE","OptTailCall","InstVal","IndexList","OptVolatile",
-"MemoryInst", NULL
+"OptAssign","OptLinkage","OptCallingConv","OptAlign","OptCAlign","TypesV","UpRTypesV",
+"Types","PrimType","UpRTypes","TypeListI","ArgTypeListI","ConstVal","ConstExpr",
+"ConstVector","GlobalType","Module","FunctionList","ConstPool","BigOrLittle",
+"TargetDefinition","LibrariesDefinition","LibList","Name","OptName","ArgVal",
+"ArgListH","ArgList","FunctionHeaderH","BEGIN","FunctionHeader","END","Function",
+"FunctionProto","@1","ConstValueRef","SymbolicValueRef","ValueRef","ResolvedVal",
+"BasicBlockList","BasicBlock","InstructionList","BBTerminatorInst","JumpTable",
+"Inst","PHIList","ValueRefList","ValueRefListE","OptTailCall","InstVal","IndexList",
+"OptVolatile","MemoryInst", NULL
};
#endif
115, 115, 115, 115, 116, 116, 116, 116, 117, 117,
118, 118, 119, 119, 120, 120, 120, 120, 120, 121,
121, 121, 121, 121, 122, 122, 123, 123, 124, 124,
- 125, 126, 126, 126, 126, 126, 126, 126, 126, 126,
- 126, 126, 126, 126, 127, 127, 127, 127, 127, 127,
- 127, 127, 127, 127, 128, 128, 129, 129, 129, 129,
- 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
- 130, 130, 130, 130, 130, 130, 131, 131, 131, 131,
- 131, 131, 131, 132, 132, 133, 133, 134, 135, 135,
- 135, 135, 136, 136, 136, 136, 136, 136, 136, 137,
- 137, 138, 138, 138, 139, 140, 140, 140, 141, 141,
- 142, 142, 143, 144, 144, 145, 145, 145, 145, 146,
- 147, 147, 148, 149, 149, 150, 152, 151, 153, 153,
- 153, 153, 153, 153, 153, 153, 153, 154, 154, 155,
- 155, 156, 157, 157, 158, 159, 159, 159, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 161, 161, 162,
- 163, 163, 164, 164, 165, 165, 166, 166, 167, 167,
- 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
- 167, 168, 168, 169, 169, 170, 170, 170, 170, 170,
- 170, 170, 170
+ 125, 125, 126, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 127, 127, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 129, 129, 130, 130,
+ 130, 130, 131, 131, 131, 131, 131, 131, 131, 131,
+ 131, 131, 131, 131, 131, 131, 131, 131, 132, 132,
+ 132, 132, 132, 132, 132, 133, 133, 134, 134, 135,
+ 136, 136, 136, 136, 137, 137, 137, 137, 137, 137,
+ 137, 138, 138, 139, 139, 139, 140, 141, 141, 141,
+ 142, 142, 143, 143, 144, 145, 145, 146, 146, 146,
+ 146, 147, 148, 148, 149, 150, 150, 151, 153, 152,
+ 154, 154, 154, 154, 154, 154, 154, 154, 154, 155,
+ 155, 156, 156, 157, 158, 158, 159, 160, 160, 160,
+ 161, 161, 161, 161, 161, 161, 161, 161, 161, 162,
+ 162, 163, 164, 164, 165, 165, 166, 166, 167, 167,
+ 168, 168, 168, 168, 168, 168, 168, 168, 168, 168,
+ 168, 168, 168, 169, 169, 170, 170, 171, 171, 171,
+ 171, 171, 171, 171, 171
};
static const short yyr2[] = { 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 2, 0, 1, 1, 1, 1, 0, 0,
- 1, 1, 1, 2, 0, 3, 1, 1, 1, 1,
+ 1, 1, 1, 2, 0, 2, 0, 3, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 2, 4, 5,
- 5, 3, 2, 2, 1, 3, 1, 3, 1, 0,
- 4, 3, 3, 4, 4, 3, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 6, 5, 8, 6,
- 6, 6, 6, 3, 1, 1, 1, 1, 2, 2,
- 2, 1, 4, 2, 5, 5, 3, 4, 0, 1,
- 1, 3, 3, 3, 3, 3, 1, 0, 1, 1,
- 1, 0, 2, 3, 1, 1, 3, 1, 0, 6,
- 1, 1, 3, 1, 1, 2, 0, 3, 1, 1,
- 1, 1, 1, 1, 1, 3, 1, 1, 1, 1,
- 1, 2, 2, 2, 3, 2, 0, 1, 2, 2,
- 3, 9, 9, 8, 13, 1, 1, 6, 5, 2,
- 6, 7, 1, 3, 1, 0, 2, 1, 5, 5,
- 5, 2, 4, 4, 6, 4, 4, 4, 2, 7,
- 1, 2, 0, 1, 0, 3, 6, 3, 6, 2,
- 4, 6, 4
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
+ 4, 5, 5, 3, 2, 2, 1, 3, 1, 3,
+ 1, 0, 4, 3, 3, 4, 4, 3, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 6, 5,
+ 8, 6, 6, 6, 6, 3, 1, 1, 1, 1,
+ 2, 2, 2, 1, 4, 2, 6, 6, 3, 4,
+ 0, 1, 1, 3, 3, 3, 3, 3, 1, 0,
+ 1, 1, 1, 0, 2, 3, 1, 1, 3, 1,
+ 0, 7, 1, 1, 3, 1, 1, 2, 0, 3,
+ 1, 1, 1, 1, 1, 1, 1, 3, 1, 1,
+ 1, 1, 1, 2, 2, 2, 3, 2, 0, 1,
+ 2, 2, 3, 9, 9, 8, 13, 1, 1, 6,
+ 5, 2, 6, 7, 1, 3, 1, 0, 2, 1,
+ 5, 5, 5, 2, 4, 4, 6, 4, 4, 4,
+ 2, 7, 1, 2, 0, 1, 0, 3, 6, 3,
+ 6, 2, 4, 6, 4
};
-static const short yydefact[] = { 119,
- 39, 112, 111, 147, 35, 36, 37, 38, 40, 167,
- 109, 110, 167, 129, 130, 0, 0, 39, 0, 114,
- 40, 0, 41, 42, 43, 0, 0, 168, 164, 34,
- 144, 145, 146, 163, 0, 0, 0, 117, 0, 0,
- 0, 0, 33, 148, 44, 1, 2, 48, 52, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 0, 0, 0, 0, 158, 0, 0, 47,
- 66, 51, 159, 67, 141, 142, 143, 205, 166, 0,
- 0, 0, 128, 118, 113, 106, 107, 0, 0, 68,
- 0, 0, 50, 73, 75, 0, 0, 80, 74, 204,
- 0, 188, 0, 0, 0, 0, 40, 176, 177, 5,
+static const short yydefact[] = { 121,
+ 39, 114, 113, 149, 35, 36, 37, 38, 40, 169,
+ 111, 112, 169, 131, 132, 0, 0, 39, 0, 116,
+ 40, 0, 41, 42, 43, 0, 0, 170, 166, 34,
+ 146, 147, 148, 165, 0, 0, 0, 119, 0, 0,
+ 0, 0, 33, 150, 44, 1, 2, 50, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, 0, 0, 0, 0, 160, 0, 0, 49,
+ 68, 53, 161, 69, 143, 144, 145, 207, 168, 0,
+ 0, 0, 130, 120, 115, 108, 109, 0, 0, 70,
+ 0, 0, 52, 75, 77, 0, 0, 82, 76, 206,
+ 0, 190, 0, 0, 0, 0, 40, 178, 179, 5,
6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 0, 0, 0, 0, 0, 0, 0,
- 19, 20, 0, 0, 0, 0, 0, 0, 0, 165,
- 40, 180, 0, 201, 124, 121, 120, 122, 123, 127,
- 0, 116, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 0, 0, 0, 0, 115, 0, 0,
- 0, 72, 139, 79, 77, 0, 0, 192, 187, 170,
- 169, 0, 0, 24, 28, 23, 27, 22, 26, 21,
- 25, 29, 30, 0, 0, 45, 45, 210, 0, 0,
- 199, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 125, 94, 95, 3, 4, 92,
- 93, 96, 91, 87, 88, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 90, 89, 49, 49,
- 76, 138, 132, 135, 136, 0, 0, 69, 149, 150,
- 151, 152, 153, 154, 155, 0, 157, 161, 160, 162,
- 0, 171, 0, 0, 0, 206, 0, 208, 203, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 126, 0, 0, 0, 82, 105, 0,
- 0, 86, 0, 83, 0, 0, 0, 0, 70, 71,
- 131, 133, 0, 140, 78, 0, 0, 0, 0, 0,
- 0, 0, 0, 213, 0, 0, 194, 0, 196, 197,
- 198, 0, 0, 0, 193, 0, 211, 0, 203, 0,
- 0, 0, 81, 84, 85, 0, 0, 0, 0, 137,
- 134, 156, 0, 0, 186, 45, 46, 45, 183, 202,
- 0, 0, 0, 189, 190, 191, 186, 0, 0, 0,
- 0, 104, 0, 0, 0, 0, 0, 0, 185, 0,
- 0, 207, 209, 0, 0, 0, 195, 0, 212, 98,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 184,
- 181, 0, 200, 97, 0, 100, 101, 102, 103, 0,
- 174, 0, 0, 0, 182, 0, 172, 0, 173, 0,
- 0, 99, 0, 0, 0, 0, 0, 0, 179, 0,
- 0, 178, 175, 0, 0, 0
+ 19, 20, 0, 0, 0, 0, 0, 0, 0, 167,
+ 40, 182, 0, 203, 126, 123, 122, 124, 125, 129,
+ 0, 47, 54, 55, 56, 57, 58, 59, 60, 61,
+ 62, 63, 64, 0, 0, 0, 0, 47, 0, 0,
+ 0, 74, 141, 81, 79, 0, 0, 194, 189, 172,
+ 171, 0, 0, 24, 28, 23, 27, 22, 26, 21,
+ 25, 29, 30, 0, 0, 47, 47, 212, 0, 0,
+ 201, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 127, 0, 118, 96, 97, 3,
+ 4, 94, 95, 98, 93, 89, 90, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 92, 91,
+ 117, 51, 51, 78, 140, 134, 137, 138, 0, 0,
+ 71, 151, 152, 153, 154, 155, 156, 157, 0, 159,
+ 163, 162, 164, 0, 173, 0, 0, 0, 208, 0,
+ 210, 205, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 128, 0, 0, 0,
+ 0, 84, 107, 0, 0, 88, 0, 85, 0, 0,
+ 0, 0, 72, 73, 133, 135, 0, 45, 80, 0,
+ 0, 0, 0, 0, 0, 0, 215, 0, 0, 196,
+ 0, 198, 199, 200, 0, 0, 0, 195, 0, 213,
+ 0, 48, 205, 0, 0, 0, 83, 86, 87, 0,
+ 0, 0, 0, 139, 136, 0, 142, 158, 0, 0,
+ 188, 47, 47, 185, 204, 0, 0, 0, 191, 192,
+ 193, 188, 0, 0, 0, 0, 106, 0, 0, 0,
+ 0, 46, 0, 0, 187, 0, 209, 211, 0, 0,
+ 0, 197, 0, 214, 100, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 186, 183, 0, 202, 99, 0,
+ 102, 103, 104, 105, 0, 176, 0, 0, 0, 184,
+ 0, 174, 0, 175, 0, 0, 101, 0, 0, 0,
+ 0, 0, 0, 181, 0, 0, 180, 177, 0, 0,
+ 0
};
static const short yydefgoto[] = { 67,
- 220, 233, 234, 235, 236, 164, 165, 194, 166, 18,
- 9, 26, 266, 68, 69, 167, 71, 72, 96, 176,
- 289, 257, 290, 88, 424, 1, 2, 148, 38, 84,
- 151, 73, 302, 244, 245, 246, 27, 77, 10, 33,
- 11, 12, 21, 258, 74, 260, 349, 13, 29, 30,
- 140, 403, 79, 201, 369, 370, 141, 142, 314, 143,
- 144
+ 222, 235, 236, 237, 238, 164, 165, 194, 166, 18,
+ 9, 26, 347, 217, 68, 69, 167, 71, 72, 96,
+ 176, 293, 260, 294, 88, 429, 1, 2, 148, 38,
+ 84, 151, 73, 306, 247, 248, 249, 27, 77, 10,
+ 33, 11, 12, 21, 261, 74, 263, 354, 13, 29,
+ 30, 140, 408, 79, 201, 375, 376, 141, 142, 317,
+ 143, 144
};
static const short yypact[] = {-32768,
- 15, 304,-32768,-32768,-32768,-32768,-32768,-32768, 104, -16,
--32768,-32768, -13,-32768,-32768, -27, -69, 23, -57,-32768,
- 104, 88,-32768,-32768,-32768, 954, -18,-32768,-32768, 50,
--32768,-32768,-32768,-32768, -34, -22, 10,-32768, -5, 954,
- 58, 58,-32768,-32768,-32768,-32768,-32768, 17,-32768,-32768,
+ 191, 336,-32768,-32768,-32768,-32768,-32768,-32768, 37, 19,
+-32768,-32768, -17,-32768,-32768, 101, -32, 31, -25,-32768,
+ 37, 53,-32768,-32768,-32768, 896, -13,-32768,-32768, 130,
+-32768,-32768,-32768,-32768, -19, -16, 33,-32768, 26, 896,
+ 58, 58,-32768,-32768,-32768,-32768,-32768, 55,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768, 126, 142, 148, 531,-32768, 50, 61,-32768,
--32768, -30,-32768,-32768,-32768,-32768,-32768, 1111,-32768, 150,
- 66, 166, 153,-32768,-32768,-32768,-32768, 991, 1028,-32768,
- 74, 77,-32768,-32768, -30, -36, 81, 769,-32768,-32768,
- 991,-32768, 125, 1065, 3, 123, 104,-32768,-32768,-32768,
+-32768,-32768, 127, 156, 166, 124,-32768, 130, 82,-32768,
+-32768, -81,-32768,-32768,-32768,-32768,-32768, 1053,-32768, 157,
+ 54, 178, 160,-32768,-32768,-32768,-32768, 933, 970,-32768,
+ 88, 91,-32768,-32768, -81, -42, 85, 711,-32768,-32768,
+ 933,-32768, 141, 1007, 0, 104, 37,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768, 991, 991, 991, 991, 991, 991, 991,
--32768,-32768, 991, 991, 991, 991, 991, 991, 991,-32768,
- 104,-32768, 57,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
- -8,-32768, 117, 146, 177, 151, 178, 162, 179, 164,
- 180, 182, 183, 169, 187, 185, 407,-32768, 991, 991,
- 991,-32768, 806,-32768, 97, 95, 595,-32768,-32768, 17,
--32768, 595, 595,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768, 595, 954, 100, 101,-32768, 595, 98,
- 103, 165, 106, 107, 111, 112, 595, 595, 595, 113,
- 954, 991, 991, 186,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768, 120, 122, 124, 843, 1028,
- 552, 188, 127, 128, 129, 130,-32768,-32768, -31, -65,
- -30,-32768, 50,-32768, 115, 133, 880,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768, 1028,-32768,-32768,-32768,-32768,
- 137,-32768, 138, 595, -6,-32768, -2,-32768, 139, 595,
- 121, 991, 991, 991, 991, 991, 140, 141, 143, 991,
- 595, 595, 144,-32768, 1028, 1028, 1028,-32768,-32768, 18,
- -7,-32768, 0,-32768, 1028, 1028, 1028, 1028,-32768,-32768,
--32768,-32768, 917,-32768,-32768, 25, 202, 203, 131, 595,
- 234, 595, 991,-32768, 145, 595,-32768, 147,-32768,-32768,
--32768, 595, 595, 595,-32768, 154,-32768, 991, 139, 209,
- 149, 1028,-32768,-32768,-32768, 157, 159, 160, 161,-32768,
--32768,-32768, 595, 595, 991, 167,-32768, 167,-32768, 168,
- 595, 170, 991,-32768,-32768,-32768, 991, 595, 163, 991,
- 1028,-32768, 1028, 1028, 1028, 1028, 171, 158, 168, 175,
- 207,-32768,-32768, 991, 173, 595,-32768, 191,-32768,-32768,
- 192, 174, 195, 196, 199, 200, 248, 20, 241,-32768,
--32768, 176,-32768,-32768, 1028,-32768,-32768,-32768,-32768, 595,
--32768, 673, 69, 258,-32768, 205,-32768, 210,-32768, 673,
- 595,-32768, 260, 213, 240, 595, 289, 290,-32768, 595,
- 595,-32768,-32768, 312, 315,-32768
+-32768,-32768,-32768, 933, 933, 933, 933, 933, 933, 933,
+-32768,-32768, 933, 933, 933, 933, 933, 933, 933,-32768,
+ 37,-32768, 71,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+ -77, 102, 131, 159, 195, 161, 196, 163, 201, 171,
+ 202, 203, 204, 175, 208, 206, 387, 102, 933, 933,
+ 933,-32768, 748,-32768, 118, 116, 560,-32768,-32768, 55,
+-32768, 560, 560,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768, 560, 896, 129, 132,-32768, 560, 123,
+ 139, 205, 140, 142, 143, 145, 560, 560, 560, 146,
+ 896, 933, 933, 213,-32768, 173,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768, 148, 149, 150,
+ 785, 970, 511, 219, 158, 162, 164, 165,-32768,-32768,
+-32768, -14, -48, -81,-32768, 130,-32768, 168, 167, 822,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 970,-32768,
+-32768,-32768,-32768, 169,-32768, 172, 560, -12,-32768, -7,
+-32768, 174, 560, 144, 933, 933, 933, 933, 933, 177,
+ 179, 180, 933, 560, 560, 181,-32768, 251, 970, 970,
+ 970,-32768,-32768, -74, -36,-32768, -41,-32768, 970, 970,
+ 970, 970,-32768,-32768,-32768,-32768, 859, 216,-32768, -35,
+ 237, 238, 176, 560, 560, 933,-32768, 184, 560,-32768,
+ 186,-32768,-32768,-32768, 560, 560, 560,-32768, 185,-32768,
+ 933,-32768, 174, 236, 189, 970,-32768,-32768,-32768, 198,
+ 199, 200, 207,-32768,-32768, 293,-32768,-32768, 560, 560,
+ 933, 102, 102,-32768, 214, 560, 215, 933,-32768,-32768,
+-32768, 933, 560, 217, 933, 970,-32768, 970, 970, 970,
+ 970,-32768, 218, 212, 214, 223,-32768,-32768, 933, 197,
+ 560,-32768, 224,-32768,-32768, 225, 221, 227, 228, 229,
+ 230, 277, 20, 265,-32768,-32768, 231,-32768,-32768, 970,
+-32768,-32768,-32768,-32768, 560,-32768, 615, 70, 280,-32768,
+ 232,-32768, 234,-32768, 615, 560,-32768, 281, 239, 250,
+ 560, 283, 313,-32768, 560, 560,-32768,-32768, 340, 341,
+-32768
};
static const short yypgoto[] = {-32768,
--32768, 238, 239, 242, 251, -102, -100, -385,-32768, 288,
- 314, -82, -195, -35,-32768, -26,-32768, -46, 232,-32768,
- -81, 172, -203, 291,-32768,-32768,-32768,-32768,-32768,-32768,
--32768, -1,-32768, 35,-32768,-32768, 319,-32768,-32768,-32768,
--32768, 339,-32768, -283, -51, 114, -85,-32768, 329,-32768,
--32768,-32768,-32768,-32768, 30, -4,-32768,-32768, 26,-32768,
--32768
+-32768, 264, 267, 268, 269, -102, -101, -381,-32768, 318,
+ 333, -96,-32768, -158, -38,-32768, -26,-32768, -46, 254,
+-32768, -82, 188, -209, 317,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768, -1,-32768, 59,-32768,-32768, 344,-32768,-32768,
+-32768,-32768, 359,-32768, -349, -6, 155, -86,-32768, 357,
+-32768,-32768,-32768,-32768,-32768, 56, 9,-32768,-32768, 40,
+-32768,-32768
};
-#define YYLAST 1205
+#define YYLAST 1147
static const short yytable[] = { 70,
- 19, 268, 402, 192, 85, 193, 28, 168, 310, 28,
- 75, 182, 312, 70, -108, 178, 31, 410, 181, 95,
- 35, 36, 37, 183, 195, 39, 291, 293, 19, 184,
- 185, 186, 187, 188, 189, 190, 191, 43, 300, 3,
- 198, 99, 40, 202, 203, 4, 311, 204, 205, 206,
- 311, 95, 306, 210, 5, 6, 7, 8, 211, 171,
- 80, 152, 5, 6, 7, 8, 97, -49, 41, 172,
- 299, 14, 81, 15, 177, 99, 99, 177, 184, 185,
- 186, 187, 188, 189, 190, 191, 76, 214, 332, 86,
- 87, 45, 32, 215, 83, 332, 334, 196, 197, 177,
- 199, 200, 177, 177, 82, 335, 177, 177, 177, 207,
- 208, 209, 177, 332, -50, 238, 146, 147, 408, 333,
- 332, 401, 239, 240, 241, 259, 414, 283, 342, 90,
- 259, 259, 184, 185, 186, 187, 188, 189, 190, 191,
- 212, 213, 259, 216, 217, 91, 243, 259, -24, -24,
- 372, 92, 373, -23, -23, 259, 259, 259, 98, 264,
- 22, 23, 24, 25, -22, -22, -21, -21, 70, 149,
- 409, 218, 219, 145, 169, 281, 150, 170, 173, 179,
- -28, -27, -26, -25, 70, 282, 177, 318, -31, -32,
- 221, 222, 247, 248, 325, 265, 267, 270, 271, 272,
- 241, 273, 274, 329, 330, 331, 275, 276, 280, 284,
- 303, 294, 259, 336, 337, 338, 339, 285, 259, 286,
- 316, 287, 343, 344, 295, 296, 297, 298, 345, 259,
- 259, 304, 307, 308, 313, 322, 323, 347, 324, 328,
- 351, 301, 353, 360, 361, 317, 177, 319, 320, 321,
- 362, 357, 363, 177, 364, 365, 366, 388, 259, 311,
- 259, 380, 371, 374, 259, 376, 387, 377, 400, 395,
- 259, 259, 259, 389, 391, 404, 243, 405, 411, 382,
- 416, 383, 384, 385, 386, 192, 177, 193, 390, 393,
- 394, 259, 259, 396, 397, 261, 262, 398, 399, 259,
- 192, 358, 193, 412, 418, 413, 259, 263, 417, 420,
- 421, 425, 269, 406, 426, 136, 137, 78, 177, 138,
- 277, 278, 279, -34, 259, 14, 177, 15, 139, 175,
- 177, 42, 89, 381, 4, -34, -34, 341, 237, 44,
- 20, 34, 350, -34, -34, -34, -34, 177, 259, -34,
- 16, 0, 378, 0, 359, 0, 0, 17, 0, 259,
- 0, 0, 0, 0, 259, 0, 0, 0, 259, 259,
- 0, 0, 0, 0, 0, 0, 0, 309, 0, 0,
- 0, 0, 0, 315, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 326, 327, 0, 0, 0, 0,
+ 19, 85, 314, 192, 193, 28, 168, 315, 182, 241,
+ 195, 407, 31, 70, 178, 75, -51, 181, 214, 95,
+ 183, 336, 295, 297, 215, 99, 415, 337, 19, 184,
+ 185, 186, 187, 188, 189, 190, 191, 269, 271, 198,
+ 288, 28, 202, 203, 211, 288, 204, 205, 206, 310,
+ 40, 95, 210, 171, 336, 304, 45, 413, 99, 336,
+ 336, 152, 39, 172, 339, 419, 97, 338, 348, 43,
+ 5, 6, 7, 8, 177, 80, 41, 177, 81, 184,
+ 185, 186, 187, 188, 189, 190, 191, 303, 32, 86,
+ 87, 76, 99, 22, 23, 24, 25, 196, 197, 177,
+ 199, 200, 177, 177, 146, 147, 177, 177, 177, 207,
+ 208, 209, 177, 184, 185, 186, 187, 188, 189, 190,
+ 191, 406, 242, 243, 244, 83, 286, 82, 46, 47,
+ 90, 93, 49, 50, 51, 52, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 14, 246, 15, 35, 36,
+ 37, 14, -52, 15, 212, 213, 267, 218, 219, 91,
+ 240, -24, -24, -23, -23, -22, -22, 62, 70, 92,
+ 262, 414, 284, -21, -21, 262, 262, 220, 221, 98,
+ 145, 149, 173, 150, 70, 285, 177, 262, 169, 321,
+ -110, 170, 262, 377, 378, 179, 328, 216, -28, -27,
+ 262, 262, 262, 244, -26, -25, 333, 334, 335, -31,
+ -32, 223, 224, 250, 251, 3, 340, 341, 342, 343,
+ 63, 4, 273, 64, 268, 288, 65, 270, 66, 94,
+ 5, 6, 7, 8, 274, 276, 287, 277, 278, 275,
+ 279, 283, 298, 319, 305, 289, 290, 291, 320, 177,
+ 322, 323, 324, 367, 332, 299, 177, 349, 350, 300,
+ 262, 301, 302, 307, 311, 308, 262, 312, 346, 316,
+ 365, 382, 325, 351, 326, 327, 331, 262, 262, 356,
+ 246, 358, 362, 387, 366, 388, 389, 390, 391, 177,
+ 192, 193, 395, 368, 369, 370, 372, 405, 396, 409,
+ 416, 421, 371, 425, 363, 192, 193, 262, 262, 379,
+ 381, 393, 262, 392, 423, 385, 400, 411, 262, 262,
+ 262, 394, 398, 399, 177, 401, 402, 403, 404, 418,
+ 417, 177, 410, 426, 422, 177, 264, 265, 386, 430,
+ 431, 136, 262, 262, 137, 138, 139, 78, 266, 262,
+ 42, 175, 177, 272, 239, -34, 262, 14, 89, 15,
+ 20, 280, 281, 282, 44, 345, 4, -34, -34, 34,
+ 383, 355, 364, 0, 262, -34, -34, -34, -34, 0,
+ 0, -34, 16, 0, 0, 0, 0, 0, 0, 17,
+ 0, 46, 47, 0, 0, 0, 0, 0, 262, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 14, 262,
+ 15, 0, 225, 0, 262, 0, 0, 0, 262, 262,
+ 0, 313, 0, 226, 227, 0, 0, 318, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 329, 330,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 346, 0, 348, 0, 0, 14, 352,
- 15, 0, 223, 0, 0, 354, 355, 356, 0, 0,
- 0, 0, 0, 224, 225, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 367, 368, 0, 0,
- 0, 0, 0, 0, 375, 0, 0, 0, 0, 0,
- 0, 379, 0, 110, 111, 112, 113, 114, 115, 116,
- 117, 118, 119, 120, 121, 122, 123, 0, 0, 392,
- 0, 0, 226, 0, 227, 228, 131, 132, 0, 0,
- 0, 0, 0, 0, 0, 0, 229, 0, 0, 230,
- 0, 231, 0, 407, 232, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 415, 0, 0, 0, 0, 419,
- 0, 0, 0, 422, 423, 46, 47, 0, 93, 49,
- 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 14, 0, 15, 0, 46, 47, 0, 93,
- 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
- 163, 60, 61, 14, 62, 15, 0, 0, 0, 0,
+ 0, 0, 0, 110, 111, 112, 113, 114, 115, 116,
+ 117, 118, 119, 120, 121, 122, 123, 0, 352, 353,
+ 0, 0, 228, 357, 229, 230, 131, 132, 0, 359,
+ 360, 361, 0, 0, 0, 0, 231, 0, 0, 232,
+ 0, 233, 0, 0, 234, 0, 0, 0, 0, 0,
+ 0, 0, 0, 373, 374, 0, 0, 0, 0, 0,
+ 380, 0, 0, 0, 0, 46, 47, 384, 93, 153,
+ 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 60, 61, 14, 0, 15, 397, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 62, 0, 249, 250, 46,
- 47, 251, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 14, 0, 15, 0,
- 0, 252, 253, 0, 0, 0, 0, 63, 0, 0,
- 64, 254, 255, 65, 0, 66, 94, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 63, 0,
- 0, 64, 0, 0, 65, 0, 66, 292, 0, 0,
- 0, 110, 111, 112, 113, 114, 115, 116, 117, 118,
- 119, 120, 121, 122, 123, 249, 250, 0, 0, 251,
- 226, 0, 227, 228, 131, 132, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 256, 0, 252,
- 253, 0, 0, 0, 0, 0, 0, 0, 0, 254,
- 255, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 62, 0, 0, 0, 0, 412,
+ 0, 0, 252, 253, 46, 47, 254, 0, 0, 0,
+ 420, 0, 0, 0, 0, 424, 0, 0, 0, 427,
+ 428, 14, 0, 15, 0, 0, 255, 256, 0, 0,
+ 0, 0, 0, 0, 0, 0, 257, 258, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 63, 0, 0,
+ 64, 0, 0, 65, 0, 66, 296, 252, 253, 0,
+ 0, 254, 0, 0, 0, 0, 110, 111, 112, 113,
+ 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
+ 0, 255, 256, 0, 0, 228, 0, 229, 230, 131,
+ 132, 257, 258, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 259, 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, 110,
- 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
- 121, 122, 123, 0, 0, 0, 0, 0, 226, 0,
- 227, 228, 131, 132, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 46, 47, 256, 93, 49, 50, 51,
+ 0, 110, 111, 112, 113, 114, 115, 116, 117, 118,
+ 119, 120, 121, 122, 123, 0, 0, 0, 0, 0,
+ 228, 0, 229, 230, 131, 132, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 46, 47, 259, 93, 49,
+ 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 14, 0, 15, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 174, 0, 0, 0,
+ 0, 0, 46, 47, 62, 93, 49, 50, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 14,
+ 0, 15, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 245, 0, 0, 0, 0, 0, 46,
+ 47, 62, 93, 153, 154, 155, 156, 157, 158, 159,
+ 160, 161, 162, 163, 60, 61, 14, 63, 15, 0,
+ 64, 0, 0, 65, 0, 66, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 46, 47, 62, 93,
+ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 14, 63, 15, 0, 64, 0, 0,
+ 65, 0, 66, 0, 0, 0, 0, 309, 0, 0,
+ 0, 0, 0, 46, 47, 62, 93, 49, 50, 51,
52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
- 14, 0, 15, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 174, 0, 0, 0, 0, 0,
- 46, 47, 62, 93, 49, 50, 51, 52, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 14, 0, 15,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 242, 0, 0, 0, 0, 0, 46, 47, 62,
- 93, 153, 154, 155, 156, 157, 158, 159, 160, 161,
- 162, 163, 60, 61, 14, 63, 15, 0, 64, 0,
+ 14, 63, 15, 0, 64, 0, 292, 65, 0, 66,
+ 0, 0, 0, 0, 344, 0, 0, 0, 0, 0,
+ 46, 47, 62, 48, 49, 50, 51, 52, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 14, 63, 15,
+ 0, 64, 0, 0, 65, 0, 66, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 46, 47, 62,
+ 93, 49, 50, 51, 52, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 14, 63, 15, 0, 64, 0,
0, 65, 0, 66, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 46, 47, 62, 93, 49, 50,
- 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
+ 0, 0, 0, 0, 46, 47, 62, 93, 153, 154,
+ 155, 156, 157, 158, 159, 160, 161, 162, 163, 60,
61, 14, 63, 15, 0, 64, 0, 0, 65, 0,
- 66, 0, 0, 0, 0, 305, 0, 0, 0, 0,
- 0, 46, 47, 62, 93, 49, 50, 51, 52, 53,
+ 66, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 46, 47, 62, 180, 49, 50, 51, 52, 53,
54, 55, 56, 57, 58, 59, 60, 61, 14, 63,
- 15, 0, 64, 0, 288, 65, 0, 66, 0, 0,
- 0, 0, 340, 0, 0, 0, 0, 0, 46, 47,
- 62, 48, 49, 50, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 14, 63, 15, 0, 64,
- 0, 0, 65, 0, 66, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 46, 47, 62, 93, 49,
- 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 14, 63, 15, 0, 64, 0, 0, 65,
- 0, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 46, 47, 62, 93, 153, 154, 155, 156,
- 157, 158, 159, 160, 161, 162, 163, 60, 61, 14,
- 63, 15, 0, 64, 0, 0, 65, 0, 66, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 46,
- 47, 62, 180, 49, 50, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 14, 63, 15, 0,
- 64, 0, 0, 65, 0, 66, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 62, 0,
+ 15, 0, 64, 0, 0, 65, 0, 66, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 63, 0, 0, 64, 0, 0,
- 65, 0, 66, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 100, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 101, 0, 0, 0, 0,
- 0, 63, 0, 0, 64, 102, 103, 65, 0, 66,
- 0, 104, 105, 106, 107, 108, 109, 110, 111, 112,
- 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
- 123, 124, 125, 126, 0, 0, 127, 128, 129, 130,
- 131, 132, 133, 134, 135
+ 62, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 63, 0, 0, 64,
+ 0, 0, 65, 0, 66, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 100, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 101, 0, 0,
+ 0, 0, 0, 63, 0, 0, 64, 102, 103, 65,
+ 0, 66, 0, 104, 105, 106, 107, 108, 109, 110,
+ 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
+ 121, 122, 123, 124, 125, 126, 0, 0, 127, 128,
+ 129, 130, 131, 132, 133, 134, 135
};
static const short yycheck[] = { 26,
- 2, 197, 388, 106, 40, 106, 23, 89, 15, 23,
- 29, 9, 15, 40, 0, 101, 30, 403, 104, 66,
- 48, 49, 50, 21, 107, 95, 230, 231, 30, 10,
- 11, 12, 13, 14, 15, 16, 17, 95, 104, 25,
- 126, 107, 20, 129, 130, 31, 53, 133, 134, 135,
- 53, 98, 256, 139, 40, 41, 42, 43, 141, 96,
- 95, 88, 40, 41, 42, 43, 68, 98, 46, 106,
- 102, 22, 95, 24, 101, 107, 107, 104, 10, 11,
- 12, 13, 14, 15, 16, 17, 105, 96, 96, 32,
- 33, 4, 106, 102, 100, 96, 104, 124, 125, 126,
- 127, 128, 129, 130, 95, 106, 133, 134, 135, 136,
- 137, 138, 139, 96, 98, 167, 51, 52, 402, 102,
- 96, 102, 169, 170, 171, 177, 410, 213, 104, 4,
- 182, 183, 10, 11, 12, 13, 14, 15, 16, 17,
- 84, 85, 194, 27, 28, 4, 173, 199, 3, 4,
- 346, 4, 348, 3, 4, 207, 208, 209, 98, 195,
- 57, 58, 59, 60, 3, 4, 3, 4, 195, 4,
- 102, 3, 4, 24, 101, 211, 24, 101, 98, 55,
- 4, 4, 4, 4, 211, 212, 213, 273, 7, 7,
- 4, 7, 96, 99, 280, 96, 96, 100, 96, 35,
- 247, 96, 96, 285, 286, 287, 96, 96, 96, 24,
- 96, 24, 264, 295, 296, 297, 298, 98, 270, 98,
- 100, 98, 21, 21, 98, 98, 98, 98, 98, 281,
- 282, 99, 96, 96, 96, 96, 96, 4, 96, 96,
- 96, 243, 96, 35, 96, 272, 273, 274, 275, 276,
- 332, 98, 96, 280, 96, 96, 96, 100, 310, 53,
- 312, 99, 96, 96, 316, 96, 96, 353, 21, 96,
- 322, 323, 324, 99, 102, 35, 303, 102, 21, 361,
- 21, 363, 364, 365, 366, 388, 313, 388, 374, 99,
- 99, 343, 344, 99, 99, 182, 183, 99, 99, 351,
- 403, 328, 403, 99, 65, 96, 358, 194, 96, 21,
- 21, 0, 199, 395, 0, 78, 78, 30, 345, 78,
- 207, 208, 209, 20, 376, 22, 353, 24, 78, 98,
- 357, 18, 42, 360, 31, 32, 33, 303, 167, 21,
- 2, 13, 313, 40, 41, 42, 43, 374, 400, 46,
- 47, -1, 357, -1, 329, -1, -1, 54, -1, 411,
- -1, -1, -1, -1, 416, -1, -1, -1, 420, 421,
- -1, -1, -1, -1, -1, -1, -1, 264, -1, -1,
- -1, -1, -1, 270, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 281, 282, -1, -1, -1, -1,
+ 2, 40, 15, 106, 106, 23, 89, 15, 9, 168,
+ 107, 393, 30, 40, 101, 29, 98, 104, 96, 66,
+ 21, 96, 232, 233, 102, 107, 408, 102, 30, 10,
+ 11, 12, 13, 14, 15, 16, 17, 196, 197, 126,
+ 53, 23, 129, 130, 141, 53, 133, 134, 135, 259,
+ 20, 98, 139, 96, 96, 104, 4, 407, 107, 96,
+ 96, 88, 95, 106, 106, 415, 68, 104, 104, 95,
+ 40, 41, 42, 43, 101, 95, 46, 104, 95, 10,
+ 11, 12, 13, 14, 15, 16, 17, 102, 106, 32,
+ 33, 105, 107, 57, 58, 59, 60, 124, 125, 126,
+ 127, 128, 129, 130, 51, 52, 133, 134, 135, 136,
+ 137, 138, 139, 10, 11, 12, 13, 14, 15, 16,
+ 17, 102, 169, 170, 171, 100, 213, 95, 5, 6,
+ 4, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 17, 18, 19, 20, 21, 22, 173, 24, 48, 49,
+ 50, 22, 98, 24, 84, 85, 195, 27, 28, 4,
+ 167, 3, 4, 3, 4, 3, 4, 44, 195, 4,
+ 177, 102, 211, 3, 4, 182, 183, 3, 4, 98,
+ 24, 4, 98, 24, 211, 212, 213, 194, 101, 276,
+ 0, 101, 199, 352, 353, 55, 283, 96, 4, 4,
+ 207, 208, 209, 250, 4, 4, 289, 290, 291, 7,
+ 7, 4, 7, 96, 99, 25, 299, 300, 301, 302,
+ 97, 31, 100, 100, 96, 53, 103, 96, 105, 106,
+ 40, 41, 42, 43, 96, 96, 24, 96, 96, 35,
+ 96, 96, 24, 100, 246, 98, 98, 98, 275, 276,
+ 277, 278, 279, 336, 4, 98, 283, 21, 21, 98,
+ 267, 98, 98, 96, 96, 99, 273, 96, 53, 96,
+ 35, 358, 96, 98, 96, 96, 96, 284, 285, 96,
+ 307, 96, 98, 366, 96, 368, 369, 370, 371, 316,
+ 393, 393, 379, 96, 96, 96, 4, 21, 102, 35,
+ 21, 21, 96, 21, 331, 408, 408, 314, 315, 96,
+ 96, 100, 319, 96, 65, 99, 96, 400, 325, 326,
+ 327, 99, 99, 99, 351, 99, 99, 99, 99, 96,
+ 99, 358, 102, 21, 96, 362, 182, 183, 365, 0,
+ 0, 78, 349, 350, 78, 78, 78, 30, 194, 356,
+ 18, 98, 379, 199, 167, 20, 363, 22, 42, 24,
+ 2, 207, 208, 209, 21, 307, 31, 32, 33, 13,
+ 362, 316, 333, -1, 381, 40, 41, 42, 43, -1,
+ -1, 46, 47, -1, -1, -1, -1, -1, -1, 54,
+ -1, 5, 6, -1, -1, -1, -1, -1, 405, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 22, 416,
+ 24, -1, 26, -1, 421, -1, -1, -1, 425, 426,
+ -1, 267, -1, 37, 38, -1, -1, 273, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 284, 285,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 5, 6, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 310, -1, 312, -1, -1, 22, 316,
- 24, -1, 26, -1, -1, 322, 323, 324, -1, -1,
- -1, -1, -1, 37, 38, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 343, 344, -1, -1,
- -1, -1, -1, -1, 351, -1, -1, -1, -1, -1,
- -1, 358, -1, 67, 68, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, -1, -1, 376,
- -1, -1, 86, -1, 88, 89, 90, 91, -1, -1,
- -1, -1, -1, -1, -1, -1, 100, -1, -1, 103,
- -1, 105, -1, 400, 108, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 411, -1, -1, -1, -1, 416,
- -1, -1, -1, 420, 421, 5, 6, -1, 8, 9,
+ -1, -1, -1, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, -1, 314, 315,
+ -1, -1, 86, 319, 88, 89, 90, 91, -1, 325,
+ 326, 327, -1, -1, -1, -1, 100, -1, -1, 103,
+ -1, 105, -1, -1, 108, -1, -1, -1, -1, -1,
+ -1, -1, -1, 349, 350, -1, -1, -1, -1, -1,
+ 356, -1, -1, -1, -1, 5, 6, 363, 8, 9,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, -1, 24, -1, 5, 6, -1, 8,
- 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
- 19, 20, 21, 22, 44, 24, -1, -1, -1, -1,
+ 20, 21, 22, -1, 24, 381, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 44, -1, -1, -1, -1, 405,
+ -1, -1, 3, 4, 5, 6, 7, -1, -1, -1,
+ 416, -1, -1, -1, -1, 421, -1, -1, -1, 425,
+ 426, 22, -1, 24, -1, -1, 27, 28, -1, -1,
+ -1, -1, -1, -1, -1, -1, 37, 38, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 97, -1, -1,
+ 100, -1, -1, 103, -1, 105, 106, 3, 4, -1,
+ -1, 7, -1, -1, -1, -1, 67, 68, 69, 70,
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+ -1, 27, 28, -1, -1, 86, -1, 88, 89, 90,
+ 91, 37, 38, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 103, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 44, -1, 3, 4, 5,
- 6, 7, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 22, -1, 24, -1,
- -1, 27, 28, -1, -1, -1, -1, 97, -1, -1,
- 100, 37, 38, 103, -1, 105, 106, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 97, -1,
- -1, 100, -1, -1, 103, -1, 105, 106, -1, -1,
-1, 67, 68, 69, 70, 71, 72, 73, 74, 75,
- 76, 77, 78, 79, 80, 3, 4, -1, -1, 7,
+ 76, 77, 78, 79, 80, -1, -1, -1, -1, -1,
86, -1, 88, 89, 90, 91, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 103, -1, 27,
- 28, -1, -1, -1, -1, -1, -1, -1, -1, 37,
- 38, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 67,
- 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
- 78, 79, 80, -1, -1, -1, -1, -1, 86, -1,
- 88, 89, 90, 91, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 5, 6, 103, 8, 9, 10, 11,
+ -1, -1, -1, -1, -1, 5, 6, 103, 8, 9,
+ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, -1, 24, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 36, -1, -1, -1,
+ -1, -1, 5, 6, 44, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
+ -1, 24, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 36, -1, -1, -1, -1, -1, 5,
+ 6, 44, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 97, 24, -1,
+ 100, -1, -1, 103, -1, 105, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 5, 6, 44, 8,
+ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 97, 24, -1, 100, -1, -1,
+ 103, -1, 105, -1, -1, -1, -1, 36, -1, -1,
+ -1, -1, -1, 5, 6, 44, 8, 9, 10, 11,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, -1, 24, -1, -1, -1, -1, -1, -1, -1,
+ 22, 97, 24, -1, 100, -1, 102, 103, -1, 105,
-1, -1, -1, -1, 36, -1, -1, -1, -1, -1,
5, 6, 44, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, -1, 24,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 36, -1, -1, -1, -1, -1, 5, 6, 44,
+ 15, 16, 17, 18, 19, 20, 21, 22, 97, 24,
+ -1, 100, -1, -1, 103, -1, 105, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 5, 6, 44,
8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 97, 24, -1, 100, -1,
-1, 103, -1, 105, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 5, 6, 44, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 97, 24, -1, 100, -1, -1, 103, -1,
- 105, -1, -1, -1, -1, 36, -1, -1, -1, -1,
+ 105, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 5, 6, 44, 8, 9, 10, 11, 12, 13,
14, 15, 16, 17, 18, 19, 20, 21, 22, 97,
- 24, -1, 100, -1, 102, 103, -1, 105, -1, -1,
- -1, -1, 36, -1, -1, -1, -1, -1, 5, 6,
- 44, 8, 9, 10, 11, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 97, 24, -1, 100,
- -1, -1, 103, -1, 105, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 5, 6, 44, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 97, 24, -1, 100, -1, -1, 103,
- -1, 105, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 5, 6, 44, 8, 9, 10, 11, 12,
- 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 97, 24, -1, 100, -1, -1, 103, -1, 105, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 5,
- 6, 44, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 97, 24, -1,
- 100, -1, -1, 103, -1, 105, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 44, -1,
+ 24, -1, 100, -1, -1, 103, -1, 105, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 97, -1, -1, 100, -1, -1,
- 103, -1, 105, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 34, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 45, -1, -1, -1, -1,
- -1, 97, -1, -1, 100, 55, 56, 103, -1, 105,
- -1, 61, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, -1, -1, 86, 87, 88, 89,
- 90, 91, 92, 93, 94
+ 44, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 97, -1, -1, 100,
+ -1, -1, 103, -1, 105, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 34, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 45, -1, -1,
+ -1, -1, -1, 97, -1, -1, 100, 55, 56, 103,
+ -1, 105, -1, 61, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
+ 78, 79, 80, 81, 82, 83, -1, -1, 86, 87,
+ 88, 89, 90, 91, 92, 93, 94
};
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
#line 3 "/usr/share/bison.simple"
switch (yyn) {
case 2:
-#line 984 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 991 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
if (yyvsp[0].UIntVal > (uint32_t)INT32_MAX) // Outside of my range!
ThrowException("Value too large for type!");
;
break;}
case 4:
-#line 992 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 999 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
if (yyvsp[0].UInt64Val > (uint64_t)INT64_MAX) // Outside of my range!
ThrowException("Value too large for type!");
;
break;}
case 33:
-#line 1015 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1022 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.StrVal = yyvsp[-1].StrVal;
;
break;}
case 34:
-#line 1018 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1025 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.StrVal = 0;
;
break;}
case 35:
-#line 1022 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1029 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ yyval.Linkage = GlobalValue::InternalLinkage; ;
break;}
case 36:
-#line 1023 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1030 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ yyval.Linkage = GlobalValue::LinkOnceLinkage; ;
break;}
case 37:
-#line 1024 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1031 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ yyval.Linkage = GlobalValue::WeakLinkage; ;
break;}
case 38:
-#line 1025 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1032 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ yyval.Linkage = GlobalValue::AppendingLinkage; ;
break;}
case 39:
-#line 1026 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1033 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ yyval.Linkage = GlobalValue::ExternalLinkage; ;
break;}
case 40:
-#line 1028 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1035 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ yyval.UIntVal = CallingConv::C; ;
break;}
case 41:
-#line 1029 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1036 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ yyval.UIntVal = CallingConv::C; ;
break;}
case 42:
-#line 1030 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1037 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ yyval.UIntVal = CallingConv::Fast; ;
break;}
case 43:
-#line 1031 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1038 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ yyval.UIntVal = CallingConv::Cold; ;
break;}
case 44:
-#line 1032 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1039 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
if ((unsigned)yyvsp[0].UInt64Val != yyvsp[0].UInt64Val)
ThrowException("Calling conv too large!");
;
break;}
case 45:
-#line 1040 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1047 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ yyval.UIntVal = 0; ;
break;}
case 46:
-#line 1041 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1048 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ yyval.UIntVal = yyvsp[0].UInt64Val; ;
break;}
+case 47:
+#line 1049 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+{ yyval.UIntVal = 0; ;
+ break;}
case 48:
#line 1050 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.TypeVal = new PATypeHolder(yyvsp[0].PrimType); ;
+{ yyval.UIntVal = yyvsp[0].UInt64Val; ;
break;}
case 50:
-#line 1051 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1059 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+{ yyval.TypeVal = new PATypeHolder(yyvsp[0].PrimType); ;
+ break;}
+case 52:
+#line 1060 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ yyval.TypeVal = new PATypeHolder(yyvsp[0].PrimType); ;
break;}
-case 51:
-#line 1053 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 53:
+#line 1062 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
ThrowException("Invalid upreference in type: " + (*yyvsp[0].TypeVal)->getDescription());
yyval.TypeVal = yyvsp[0].TypeVal;
;
break;}
-case 65:
-#line 1064 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 67:
+#line 1073 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.TypeVal = new PATypeHolder(OpaqueType::get());
;
break;}
-case 66:
-#line 1067 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 68:
+#line 1076 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.TypeVal = new PATypeHolder(yyvsp[0].PrimType);
;
break;}
-case 67:
-#line 1070 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 69:
+#line 1079 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ // Named types are also simple types...
yyval.TypeVal = new PATypeHolder(getTypeVal(yyvsp[0].ValIDVal));
;
break;}
-case 68:
-#line 1076 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 70:
+#line 1085 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ // Type UpReference
if (yyvsp[0].UInt64Val > (uint64_t)~0U) ThrowException("Value out of range!");
OpaqueType *OT = OpaqueType::get(); // Use temporary placeholder
UR_OUT("New Upreference!\n");
;
break;}
-case 69:
-#line 1083 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 71:
+#line 1092 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ // Function derived type?
std::vector<const Type*> Params;
for (std::list<llvm::PATypeHolder>::iterator I = yyvsp[-1].TypeList->begin(),
delete yyvsp[-3].TypeVal; // Delete the return type handle
;
break;}
-case 70:
-#line 1095 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 72:
+#line 1104 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ // Sized array type?
yyval.TypeVal = new PATypeHolder(HandleUpRefs(ArrayType::get(*yyvsp[-1].TypeVal, (unsigned)yyvsp[-3].UInt64Val)));
delete yyvsp[-1].TypeVal;
;
break;}
-case 71:
-#line 1099 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 73:
+#line 1108 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ // Packed array type?
const llvm::Type* ElemTy = yyvsp[-1].TypeVal->get();
if ((unsigned)yyvsp[-3].UInt64Val != yyvsp[-3].UInt64Val) {
delete yyvsp[-1].TypeVal;
;
break;}
-case 72:
-#line 1110 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 74:
+#line 1119 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ // Structure type?
std::vector<const Type*> Elements;
for (std::list<llvm::PATypeHolder>::iterator I = yyvsp[-1].TypeList->begin(),
delete yyvsp[-1].TypeList;
;
break;}
-case 73:
-#line 1119 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 75:
+#line 1128 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ // Empty structure type?
yyval.TypeVal = new PATypeHolder(StructType::get(std::vector<const Type*>()));
;
break;}
-case 74:
-#line 1122 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 76:
+#line 1131 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ // Pointer type?
yyval.TypeVal = new PATypeHolder(HandleUpRefs(PointerType::get(*yyvsp[-1].TypeVal)));
delete yyvsp[-1].TypeVal;
;
break;}
-case 75:
-#line 1130 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 77:
+#line 1139 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.TypeList = new std::list<PATypeHolder>();
yyval.TypeList->push_back(*yyvsp[0].TypeVal); delete yyvsp[0].TypeVal;
;
break;}
-case 76:
-#line 1134 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 78:
+#line 1143 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
(yyval.TypeList=yyvsp[-2].TypeList)->push_back(*yyvsp[0].TypeVal); delete yyvsp[0].TypeVal;
;
break;}
-case 78:
-#line 1140 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 80:
+#line 1149 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
(yyval.TypeList=yyvsp[-2].TypeList)->push_back(Type::VoidTy);
;
break;}
-case 79:
-#line 1143 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 81:
+#line 1152 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
(yyval.TypeList = new std::list<PATypeHolder>())->push_back(Type::VoidTy);
;
break;}
-case 80:
-#line 1146 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 82:
+#line 1155 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.TypeList = new std::list<PATypeHolder>();
;
break;}
-case 81:
-#line 1156 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 83:
+#line 1165 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ // Nonempty unsized arr
const ArrayType *ATy = dyn_cast<ArrayType>(yyvsp[-3].TypeVal->get());
if (ATy == 0)
delete yyvsp[-3].TypeVal; delete yyvsp[-1].ConstVector;
;
break;}
-case 82:
-#line 1181 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 84:
+#line 1190 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
const ArrayType *ATy = dyn_cast<ArrayType>(yyvsp[-2].TypeVal->get());
if (ATy == 0)
delete yyvsp[-2].TypeVal;
;
break;}
-case 83:
-#line 1194 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 85:
+#line 1203 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
const ArrayType *ATy = dyn_cast<ArrayType>(yyvsp[-2].TypeVal->get());
if (ATy == 0)
delete yyvsp[-2].TypeVal;
;
break;}
-case 84:
-#line 1222 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 86:
+#line 1231 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ // Nonempty unsized arr
const PackedType *PTy = dyn_cast<PackedType>(yyvsp[-3].TypeVal->get());
if (PTy == 0)
delete yyvsp[-3].TypeVal; delete yyvsp[-1].ConstVector;
;
break;}
-case 85:
-#line 1247 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 87:
+#line 1256 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
const StructType *STy = dyn_cast<StructType>(yyvsp[-3].TypeVal->get());
if (STy == 0)
delete yyvsp[-3].TypeVal; delete yyvsp[-1].ConstVector;
;
break;}
-case 86:
-#line 1267 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 88:
+#line 1276 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
const StructType *STy = dyn_cast<StructType>(yyvsp[-2].TypeVal->get());
if (STy == 0)
delete yyvsp[-2].TypeVal;
;
break;}
-case 87:
-#line 1279 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 89:
+#line 1288 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
const PointerType *PTy = dyn_cast<PointerType>(yyvsp[-1].TypeVal->get());
if (PTy == 0)
delete yyvsp[-1].TypeVal;
;
break;}
-case 88:
-#line 1288 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 90:
+#line 1297 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.ConstVal = UndefValue::get(yyvsp[-1].TypeVal->get());
delete yyvsp[-1].TypeVal;
;
break;}
-case 89:
-#line 1292 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 91:
+#line 1301 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
const PointerType *Ty = dyn_cast<PointerType>(yyvsp[-1].TypeVal->get());
if (Ty == 0)
delete yyvsp[-1].TypeVal; // Free the type handle
;
break;}
-case 90:
-#line 1351 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 92:
+#line 1360 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
if (yyvsp[-1].TypeVal->get() != yyvsp[0].ConstVal->getType())
ThrowException("Mismatched types for constant expression!");
delete yyvsp[-1].TypeVal;
;
break;}
-case 91:
-#line 1357 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 93:
+#line 1366 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
const Type *Ty = yyvsp[-1].TypeVal->get();
if (isa<FunctionType>(Ty) || Ty == Type::LabelTy || isa<OpaqueType>(Ty))
delete yyvsp[-1].TypeVal;
;
break;}
-case 92:
-#line 1365 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 94:
+#line 1374 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ // integral constants
if (!ConstantSInt::isValueValidForType(yyvsp[-1].PrimType, yyvsp[0].SInt64Val))
ThrowException("Constant value doesn't fit in type!");
yyval.ConstVal = ConstantSInt::get(yyvsp[-1].PrimType, yyvsp[0].SInt64Val);
;
break;}
-case 93:
-#line 1370 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 95:
+#line 1379 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ // integral constants
if (!ConstantUInt::isValueValidForType(yyvsp[-1].PrimType, yyvsp[0].UInt64Val))
ThrowException("Constant value doesn't fit in type!");
yyval.ConstVal = ConstantUInt::get(yyvsp[-1].PrimType, yyvsp[0].UInt64Val);
;
break;}
-case 94:
-#line 1375 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 96:
+#line 1384 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ // Boolean constants
yyval.ConstVal = ConstantBool::True;
;
break;}
-case 95:
-#line 1378 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 97:
+#line 1387 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ // Boolean constants
yyval.ConstVal = ConstantBool::False;
;
break;}
-case 96:
-#line 1381 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 98:
+#line 1390 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ // Float & Double constants
if (!ConstantFP::isValueValidForType(yyvsp[-1].PrimType, yyvsp[0].FPVal))
ThrowException("Floating point constant invalid for type!!");
yyval.ConstVal = ConstantFP::get(yyvsp[-1].PrimType, yyvsp[0].FPVal);
;
break;}
-case 97:
-#line 1388 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 99:
+#line 1397 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
if (!yyvsp[-3].ConstVal->getType()->isFirstClassType())
ThrowException("cast constant expression from a non-primitive type: '" +
delete yyvsp[-1].TypeVal;
;
break;}
-case 98:
-#line 1398 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 100:
+#line 1407 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
if (!isa<PointerType>(yyvsp[-2].ConstVal->getType()))
ThrowException("GetElementPtr requires a pointer operand!");
yyval.ConstVal = ConstantExpr::getGetElementPtr(yyvsp[-2].ConstVal, IdxVec);
;
break;}
-case 99:
-#line 1429 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 101:
+#line 1438 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
if (yyvsp[-5].ConstVal->getType() != Type::BoolTy)
ThrowException("Select condition must be of boolean type!");
yyval.ConstVal = ConstantExpr::getSelect(yyvsp[-5].ConstVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal);
;
break;}
-case 100:
-#line 1436 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 102:
+#line 1445 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
if (yyvsp[-3].ConstVal->getType() != yyvsp[-1].ConstVal->getType())
ThrowException("Binary operator types must match!");
}
;
break;}
-case 101:
-#line 1457 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 103:
+#line 1466 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
if (yyvsp[-3].ConstVal->getType() != yyvsp[-1].ConstVal->getType())
ThrowException("Logical operator types must match!");
yyval.ConstVal = ConstantExpr::get(yyvsp[-5].BinaryOpVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal);
;
break;}
-case 102:
-#line 1464 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 104:
+#line 1473 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
if (yyvsp[-3].ConstVal->getType() != yyvsp[-1].ConstVal->getType())
ThrowException("setcc operand types must match!");
yyval.ConstVal = ConstantExpr::get(yyvsp[-5].BinaryOpVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal);
;
break;}
-case 103:
-#line 1469 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 105:
+#line 1478 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
if (yyvsp[-1].ConstVal->getType() != Type::UByteTy)
ThrowException("Shift count for shift constant must be unsigned byte!");
yyval.ConstVal = ConstantExpr::get(yyvsp[-5].OtherOpVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal);
;
break;}
-case 104:
-#line 1479 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 106:
+#line 1488 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
(yyval.ConstVector = yyvsp[-2].ConstVector)->push_back(yyvsp[0].ConstVal);
;
break;}
-case 105:
-#line 1482 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 107:
+#line 1491 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.ConstVector = new std::vector<Constant*>();
yyval.ConstVector->push_back(yyvsp[0].ConstVal);
;
break;}
-case 106:
-#line 1489 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 108:
+#line 1498 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ yyval.BoolVal = false; ;
break;}
-case 107:
-#line 1489 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 109:
+#line 1498 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ yyval.BoolVal = true; ;
break;}
-case 108:
-#line 1499 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 110:
+#line 1508 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.ModuleVal = ParserResult = yyvsp[0].ModuleVal;
CurModule.ModuleDone();
;
break;}
-case 109:
-#line 1506 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 111:
+#line 1515 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.ModuleVal = yyvsp[-1].ModuleVal;
CurFun.FunctionDone();
;
break;}
-case 110:
-#line 1510 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 112:
+#line 1519 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.ModuleVal = yyvsp[-1].ModuleVal;
;
break;}
-case 111:
-#line 1513 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 113:
+#line 1522 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.ModuleVal = yyvsp[-1].ModuleVal;
;
break;}
-case 112:
-#line 1516 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 114:
+#line 1525 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.ModuleVal = CurModule.CurrentModule;
// Emit an error if there are any unresolved types left.
}
;
break;}
-case 113:
-#line 1529 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 115:
+#line 1538 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
// Eagerly resolve types. This is not an optimization, this is a
// requirement that is due to the fact that we could have this:
delete yyvsp[0].TypeVal;
;
break;}
-case 114:
-#line 1549 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 116:
+#line 1558 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ // Function prototypes can be in const pool
;
break;}
-case 115:
-#line 1551 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 117:
+#line 1560 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
- if (yyvsp[0].ConstVal == 0) ThrowException("Global value initializer is not a constant!");
- ParseGlobalVariable(yyvsp[-3].StrVal, yyvsp[-2].Linkage, yyvsp[-1].BoolVal, yyvsp[0].ConstVal->getType(), yyvsp[0].ConstVal);
+ if (yyvsp[-1].ConstVal == 0) ThrowException("Global value initializer is not a constant!");
+ ParseGlobalVariable(yyvsp[-4].StrVal, yyvsp[-3].Linkage, yyvsp[-2].BoolVal, yyvsp[-1].ConstVal->getType(), yyvsp[-1].ConstVal, yyvsp[0].UIntVal);
;
break;}
-case 116:
-#line 1555 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 118:
+#line 1564 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
- ParseGlobalVariable(yyvsp[-3].StrVal, GlobalValue::ExternalLinkage, yyvsp[-1].BoolVal, *yyvsp[0].TypeVal, 0);
- delete yyvsp[0].TypeVal;
+ ParseGlobalVariable(yyvsp[-4].StrVal, GlobalValue::ExternalLinkage, yyvsp[-2].BoolVal, *yyvsp[-1].TypeVal, 0, yyvsp[0].UIntVal);
+ delete yyvsp[-1].TypeVal;
;
break;}
-case 117:
-#line 1559 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 119:
+#line 1568 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
;
break;}
-case 118:
-#line 1561 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 120:
+#line 1570 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
;
break;}
-case 119:
-#line 1563 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 121:
+#line 1572 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
;
break;}
-case 120:
-#line 1568 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 122:
+#line 1577 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ yyval.Endianness = Module::BigEndian; ;
break;}
-case 121:
-#line 1569 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 123:
+#line 1578 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ yyval.Endianness = Module::LittleEndian; ;
break;}
-case 122:
-#line 1571 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 124:
+#line 1580 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
CurModule.CurrentModule->setEndianness(yyvsp[0].Endianness);
;
break;}
-case 123:
-#line 1574 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 125:
+#line 1583 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
if (yyvsp[0].UInt64Val == 32)
CurModule.CurrentModule->setPointerSize(Module::Pointer32);
ThrowException("Invalid pointer size: '" + utostr(yyvsp[0].UInt64Val) + "'!");
;
break;}
-case 124:
-#line 1582 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 126:
+#line 1591 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
CurModule.CurrentModule->setTargetTriple(yyvsp[0].StrVal);
free(yyvsp[0].StrVal);
;
break;}
-case 126:
-#line 1589 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 128:
+#line 1598 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
CurModule.CurrentModule->addLibrary(yyvsp[0].StrVal);
free(yyvsp[0].StrVal);
;
break;}
-case 127:
-#line 1593 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 129:
+#line 1602 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
CurModule.CurrentModule->addLibrary(yyvsp[0].StrVal);
free(yyvsp[0].StrVal);
;
break;}
-case 128:
-#line 1597 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 130:
+#line 1606 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
;
break;}
-case 132:
-#line 1606 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 134:
+#line 1615 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ yyval.StrVal = 0; ;
break;}
-case 133:
-#line 1608 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 135:
+#line 1617 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
if (*yyvsp[-1].TypeVal == Type::VoidTy)
ThrowException("void typed arguments are invalid!");
yyval.ArgVal = new std::pair<PATypeHolder*, char*>(yyvsp[-1].TypeVal, yyvsp[0].StrVal);
;
break;}
-case 134:
-#line 1614 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 136:
+#line 1623 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.ArgList = yyvsp[-2].ArgList;
yyvsp[-2].ArgList->push_back(*yyvsp[0].ArgVal);
delete yyvsp[0].ArgVal;
;
break;}
-case 135:
-#line 1619 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 137:
+#line 1628 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.ArgList = new std::vector<std::pair<PATypeHolder*,char*> >();
yyval.ArgList->push_back(*yyvsp[0].ArgVal);
delete yyvsp[0].ArgVal;
;
break;}
-case 136:
-#line 1625 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 138:
+#line 1634 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.ArgList = yyvsp[0].ArgList;
;
break;}
-case 137:
-#line 1628 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 139:
+#line 1637 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.ArgList = yyvsp[-2].ArgList;
yyval.ArgList->push_back(std::pair<PATypeHolder*,
char*>(new PATypeHolder(Type::VoidTy), 0));
;
break;}
-case 138:
-#line 1633 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 140:
+#line 1642 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.ArgList = new std::vector<std::pair<PATypeHolder*,char*> >();
yyval.ArgList->push_back(std::make_pair(new PATypeHolder(Type::VoidTy), (char*)0));
;
break;}
-case 139:
-#line 1637 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 141:
+#line 1646 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.ArgList = 0;
;
break;}
-case 140:
-#line 1641 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 142:
+#line 1650 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
- UnEscapeLexed(yyvsp[-3].StrVal);
- std::string FunctionName(yyvsp[-3].StrVal);
- free(yyvsp[-3].StrVal); // Free strdup'd memory!
+ UnEscapeLexed(yyvsp[-4].StrVal);
+ std::string FunctionName(yyvsp[-4].StrVal);
+ free(yyvsp[-4].StrVal); // Free strdup'd memory!
- if (!(*yyvsp[-4].TypeVal)->isFirstClassType() && *yyvsp[-4].TypeVal != Type::VoidTy)
+ if (!(*yyvsp[-5].TypeVal)->isFirstClassType() && *yyvsp[-5].TypeVal != Type::VoidTy)
ThrowException("LLVM functions cannot return aggregate types!");
+ if (yyvsp[0].UIntVal != 0 && !isPowerOf2_32(yyvsp[0].UIntVal))
+ ThrowException("Function alignment must be a power of two!");
std::vector<const Type*> ParamTypeList;
- if (yyvsp[-1].ArgList) { // If there are arguments...
- for (std::vector<std::pair<PATypeHolder*,char*> >::iterator I = yyvsp[-1].ArgList->begin();
- I != yyvsp[-1].ArgList->end(); ++I)
+ if (yyvsp[-2].ArgList) { // If there are arguments...
+ for (std::vector<std::pair<PATypeHolder*,char*> >::iterator I = yyvsp[-2].ArgList->begin();
+ I != yyvsp[-2].ArgList->end(); ++I)
ParamTypeList.push_back(I->first->get());
}
bool isVarArg = ParamTypeList.size() && ParamTypeList.back() == Type::VoidTy;
if (isVarArg) ParamTypeList.pop_back();
- const FunctionType *FT = FunctionType::get(*yyvsp[-4].TypeVal, ParamTypeList, isVarArg);
+ const FunctionType *FT = FunctionType::get(*yyvsp[-5].TypeVal, ParamTypeList, isVarArg);
const PointerType *PFT = PointerType::get(FT);
- delete yyvsp[-4].TypeVal;
+ delete yyvsp[-5].TypeVal;
ValID ID;
if (!FunctionName.empty()) {
}
CurFun.FunctionStart(Fn);
- Fn->setCallingConv(yyvsp[-5].UIntVal);
+ Fn->setCallingConv(yyvsp[-6].UIntVal);
+ Fn->setAlignment(yyvsp[0].UIntVal);
// Add all of the arguments we parsed to the function...
- if (yyvsp[-1].ArgList) { // Is null if empty...
+ if (yyvsp[-2].ArgList) { // Is null if empty...
if (isVarArg) { // Nuke the last entry
- assert(yyvsp[-1].ArgList->back().first->get() == Type::VoidTy && yyvsp[-1].ArgList->back().second == 0&&
+ assert(yyvsp[-2].ArgList->back().first->get() == Type::VoidTy && yyvsp[-2].ArgList->back().second == 0&&
"Not a varargs marker!");
- delete yyvsp[-1].ArgList->back().first;
- yyvsp[-1].ArgList->pop_back(); // Delete the last entry
+ delete yyvsp[-2].ArgList->back().first;
+ yyvsp[-2].ArgList->pop_back(); // Delete the last entry
}
Function::arg_iterator ArgIt = Fn->arg_begin();
- for (std::vector<std::pair<PATypeHolder*,char*> >::iterator I = yyvsp[-1].ArgList->begin();
- I != yyvsp[-1].ArgList->end(); ++I, ++ArgIt) {
+ for (std::vector<std::pair<PATypeHolder*,char*> >::iterator I = yyvsp[-2].ArgList->begin();
+ I != yyvsp[-2].ArgList->end(); ++I, ++ArgIt) {
delete I->first; // Delete the typeholder...
setValueName(ArgIt, I->second); // Insert arg into symtab...
InsertValue(ArgIt);
}
- delete yyvsp[-1].ArgList; // We're now done with the argument list
+ delete yyvsp[-2].ArgList; // We're now done with the argument list
}
;
break;}
-case 143:
-#line 1723 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 145:
+#line 1735 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.FunctionVal = CurFun.CurrentFunction;
yyval.FunctionVal->setLinkage(yyvsp[-2].Linkage);
;
break;}
-case 146:
-#line 1733 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 148:
+#line 1745 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.FunctionVal = yyvsp[-1].FunctionVal;
;
break;}
-case 147:
-#line 1737 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 149:
+#line 1749 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ CurFun.isDeclare = true; ;
break;}
-case 148:
-#line 1737 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 150:
+#line 1749 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.FunctionVal = CurFun.CurrentFunction;
CurFun.FunctionDone();
;
break;}
-case 149:
-#line 1746 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 151:
+#line 1758 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ // A reference to a direct constant
yyval.ValIDVal = ValID::create(yyvsp[0].SInt64Val);
;
break;}
-case 150:
-#line 1749 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 152:
+#line 1761 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.ValIDVal = ValID::create(yyvsp[0].UInt64Val);
;
break;}
-case 151:
-#line 1752 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 153:
+#line 1764 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ // Perhaps it's an FP constant?
yyval.ValIDVal = ValID::create(yyvsp[0].FPVal);
;
break;}
-case 152:
-#line 1755 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 154:
+#line 1767 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.ValIDVal = ValID::create(ConstantBool::True);
;
break;}
-case 153:
-#line 1758 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 155:
+#line 1770 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.ValIDVal = ValID::create(ConstantBool::False);
;
break;}
-case 154:
-#line 1761 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 156:
+#line 1773 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.ValIDVal = ValID::createNull();
;
break;}
-case 155:
-#line 1764 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 157:
+#line 1776 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.ValIDVal = ValID::createUndef();
;
break;}
-case 156:
-#line 1767 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 158:
+#line 1779 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ // Nonempty unsized packed vector
const Type *ETy = (*yyvsp[-1].ConstVector)[0]->getType();
int NumElements = yyvsp[-1].ConstVector->size();
delete PTy; delete yyvsp[-1].ConstVector;
;
break;}
-case 157:
-#line 1791 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 159:
+#line 1803 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.ValIDVal = ValID::create(yyvsp[0].ConstVal);
;
break;}
-case 158:
-#line 1798 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 160:
+#line 1810 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ // Is it an integer reference...?
yyval.ValIDVal = ValID::create(yyvsp[0].SIntVal);
;
break;}
-case 159:
-#line 1801 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 161:
+#line 1813 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ // Is it a named reference...?
yyval.ValIDVal = ValID::create(yyvsp[0].StrVal);
;
break;}
-case 162:
-#line 1812 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 164:
+#line 1824 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.ValueVal = getVal(*yyvsp[-1].TypeVal, yyvsp[0].ValIDVal); delete yyvsp[-1].TypeVal;
;
break;}
-case 163:
-#line 1816 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 165:
+#line 1828 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.FunctionVal = yyvsp[-1].FunctionVal;
;
break;}
-case 164:
-#line 1819 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 166:
+#line 1831 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ // Do not allow functions with 0 basic blocks
yyval.FunctionVal = yyvsp[-1].FunctionVal;
;
break;}
-case 165:
-#line 1827 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 167:
+#line 1839 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
setValueName(yyvsp[0].TermInstVal, yyvsp[-1].StrVal);
InsertValue(yyvsp[0].TermInstVal);
yyval.BasicBlockVal = yyvsp[-2].BasicBlockVal;
;
break;}
-case 166:
-#line 1836 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 168:
+#line 1848 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyvsp[-1].BasicBlockVal->getInstList().push_back(yyvsp[0].InstVal);
yyval.BasicBlockVal = yyvsp[-1].BasicBlockVal;
;
break;}
-case 167:
-#line 1840 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 169:
+#line 1852 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.BasicBlockVal = CurBB = getBBVal(ValID::create((int)CurFun.NextBBNum++), true);
BBL.splice(BBL.end(), BBL, yyval.BasicBlockVal);
;
break;}
-case 168:
-#line 1850 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 170:
+#line 1862 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.BasicBlockVal = CurBB = getBBVal(ValID::create(yyvsp[0].StrVal), true);
BBL.splice(BBL.end(), BBL, yyval.BasicBlockVal);
;
break;}
-case 169:
-#line 1861 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 171:
+#line 1873 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ // Return with a result...
yyval.TermInstVal = new ReturnInst(yyvsp[0].ValueVal);
;
break;}
-case 170:
-#line 1864 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 172:
+#line 1876 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ // Return with no result...
yyval.TermInstVal = new ReturnInst();
;
break;}
-case 171:
-#line 1867 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 173:
+#line 1879 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ // Unconditional Branch...
yyval.TermInstVal = new BranchInst(getBBVal(yyvsp[0].ValIDVal));
;
break;}
-case 172:
-#line 1870 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 174:
+#line 1882 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.TermInstVal = new BranchInst(getBBVal(yyvsp[-3].ValIDVal), getBBVal(yyvsp[0].ValIDVal), getVal(Type::BoolTy, yyvsp[-6].ValIDVal));
;
break;}
-case 173:
-#line 1873 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 175:
+#line 1885 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
SwitchInst *S = new SwitchInst(getVal(yyvsp[-7].PrimType, yyvsp[-6].ValIDVal), getBBVal(yyvsp[-3].ValIDVal), yyvsp[-1].JumpTable->size());
yyval.TermInstVal = S;
delete yyvsp[-1].JumpTable;
;
break;}
-case 174:
-#line 1887 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 176:
+#line 1899 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
SwitchInst *S = new SwitchInst(getVal(yyvsp[-6].PrimType, yyvsp[-5].ValIDVal), getBBVal(yyvsp[-2].ValIDVal), 0);
yyval.TermInstVal = S;
;
break;}
-case 175:
-#line 1892 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 177:
+#line 1904 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
const PointerType *PFTy;
const FunctionType *Ty;
delete yyvsp[-7].ValueList;
;
break;}
-case 176:
-#line 1944 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 178:
+#line 1956 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.TermInstVal = new UnwindInst();
;
break;}
-case 177:
-#line 1947 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 179:
+#line 1959 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.TermInstVal = new UnreachableInst();
;
break;}
-case 178:
-#line 1953 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 180:
+#line 1965 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.JumpTable = yyvsp[-5].JumpTable;
Constant *V = cast<Constant>(getValNonImprovising(yyvsp[-4].PrimType, yyvsp[-3].ValIDVal));
yyval.JumpTable->push_back(std::make_pair(V, getBBVal(yyvsp[0].ValIDVal)));
;
break;}
-case 179:
-#line 1961 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 181:
+#line 1973 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.JumpTable = new std::vector<std::pair<Constant*, BasicBlock*> >();
Constant *V = cast<Constant>(getValNonImprovising(yyvsp[-4].PrimType, yyvsp[-3].ValIDVal));
yyval.JumpTable->push_back(std::make_pair(V, getBBVal(yyvsp[0].ValIDVal)));
;
break;}
-case 180:
-#line 1971 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 182:
+#line 1983 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
// Is this definition named?? if so, assign the name...
setValueName(yyvsp[0].InstVal, yyvsp[-1].StrVal);
yyval.InstVal = yyvsp[0].InstVal;
;
break;}
-case 181:
-#line 1978 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 183:
+#line 1990 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ // Used for PHI nodes
yyval.PHIList = new std::list<std::pair<Value*, BasicBlock*> >();
yyval.PHIList->push_back(std::make_pair(getVal(*yyvsp[-5].TypeVal, yyvsp[-3].ValIDVal), getBBVal(yyvsp[-1].ValIDVal)));
delete yyvsp[-5].TypeVal;
;
break;}
-case 182:
-#line 1983 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 184:
+#line 1995 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.PHIList = yyvsp[-6].PHIList;
yyvsp[-6].PHIList->push_back(std::make_pair(getVal(yyvsp[-6].PHIList->front().first->getType(), yyvsp[-3].ValIDVal),
getBBVal(yyvsp[-1].ValIDVal)));
;
break;}
-case 183:
-#line 1990 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 185:
+#line 2002 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ // Used for call statements, and memory insts...
yyval.ValueList = new std::vector<Value*>();
yyval.ValueList->push_back(yyvsp[0].ValueVal);
;
break;}
-case 184:
-#line 1994 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 186:
+#line 2006 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.ValueList = yyvsp[-2].ValueList;
yyvsp[-2].ValueList->push_back(yyvsp[0].ValueVal);
;
break;}
-case 186:
-#line 2000 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 188:
+#line 2012 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{ yyval.ValueList = 0; ;
break;}
-case 187:
-#line 2002 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 189:
+#line 2014 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.BoolVal = true;
;
break;}
-case 188:
-#line 2005 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 190:
+#line 2017 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.BoolVal = false;
;
break;}
-case 189:
-#line 2011 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 191:
+#line 2023 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
if (!(*yyvsp[-3].TypeVal)->isInteger() && !(*yyvsp[-3].TypeVal)->isFloatingPoint() &&
!isa<PackedType>((*yyvsp[-3].TypeVal).get()))
delete yyvsp[-3].TypeVal;
;
break;}
-case 190:
-#line 2023 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 192:
+#line 2035 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
if (!(*yyvsp[-3].TypeVal)->isIntegral())
ThrowException("Logical operator requires integral operands!");
delete yyvsp[-3].TypeVal;
;
break;}
-case 191:
-#line 2031 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 193:
+#line 2043 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
if(isa<PackedType>((*yyvsp[-3].TypeVal).get())) {
ThrowException(
delete yyvsp[-3].TypeVal;
;
break;}
-case 192:
-#line 2041 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 194:
+#line 2053 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
std::cerr << "WARNING: Use of eliminated 'not' instruction:"
<< " Replacing with 'xor'.\n";
ThrowException("Could not create a xor instruction!");
;
break;}
-case 193:
-#line 2053 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 195:
+#line 2065 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
if (yyvsp[0].ValueVal->getType() != Type::UByteTy)
ThrowException("Shift amount must be ubyte!");
yyval.InstVal = new ShiftInst(yyvsp[-3].OtherOpVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal);
;
break;}
-case 194:
-#line 2060 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 196:
+#line 2072 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
if (!yyvsp[0].TypeVal->get()->isFirstClassType())
ThrowException("cast instruction to a non-primitive type: '" +
delete yyvsp[0].TypeVal;
;
break;}
-case 195:
-#line 2067 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 197:
+#line 2079 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
if (yyvsp[-4].ValueVal->getType() != Type::BoolTy)
ThrowException("select condition must be boolean!");
yyval.InstVal = new SelectInst(yyvsp[-4].ValueVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal);
;
break;}
-case 196:
-#line 2074 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 198:
+#line 2086 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
NewVarArgs = true;
yyval.InstVal = new VAArgInst(yyvsp[-2].ValueVal, *yyvsp[0].TypeVal);
delete yyvsp[0].TypeVal;
;
break;}
-case 197:
-#line 2079 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 199:
+#line 2091 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
ObsoleteVarArgs = true;
const Type* ArgTy = yyvsp[-2].ValueVal->getType();
delete yyvsp[0].TypeVal;
;
break;}
-case 198:
-#line 2098 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 200:
+#line 2110 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
ObsoleteVarArgs = true;
const Type* ArgTy = yyvsp[-2].ValueVal->getType();
delete yyvsp[0].TypeVal;
;
break;}
-case 199:
-#line 2120 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 201:
+#line 2132 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
const Type *Ty = yyvsp[0].PHIList->front().first->getType();
if (!Ty->isFirstClassType())
delete yyvsp[0].PHIList; // Free the list...
;
break;}
-case 200:
-#line 2134 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 202:
+#line 2146 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
const PointerType *PFTy;
const FunctionType *Ty;
delete yyvsp[-1].ValueList;
;
break;}
-case 201:
-#line 2191 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 203:
+#line 2203 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.InstVal = yyvsp[0].InstVal;
;
break;}
-case 202:
-#line 2197 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 204:
+#line 2209 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.ValueList = yyvsp[0].ValueList;
;
break;}
-case 203:
-#line 2199 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 205:
+#line 2211 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.ValueList = new std::vector<Value*>();
;
break;}
-case 204:
-#line 2203 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 206:
+#line 2215 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.BoolVal = true;
;
break;}
-case 205:
-#line 2206 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 207:
+#line 2218 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
yyval.BoolVal = false;
;
break;}
-case 206:
-#line 2212 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 208:
+#line 2224 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
- if (yyvsp[0].UIntVal & (yyvsp[0].UIntVal-1))
- ThrowException("Alignment amount '" + utostr(yyvsp[0].UIntVal) +
- "' is not a power of 2!");
+ if (yyvsp[0].UIntVal != 0 && !isPowerOf2_32(yyvsp[0].UIntVal))
+ ThrowException("Alignment amount '" + utostr(yyvsp[0].UIntVal) +
+ "' is not a power of 2!");
yyval.InstVal = new MallocInst(*yyvsp[-1].TypeVal, 0, yyvsp[0].UIntVal);
delete yyvsp[-1].TypeVal;
;
break;}
-case 207:
-#line 2219 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 209:
+#line 2231 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
- if (yyvsp[0].UIntVal & (yyvsp[0].UIntVal-1))
+ if (yyvsp[0].UIntVal != 0 && !isPowerOf2_32(yyvsp[0].UIntVal))
ThrowException("Alignment amount '" + utostr(yyvsp[0].UIntVal) +
"' is not a power of 2!");
yyval.InstVal = new MallocInst(*yyvsp[-4].TypeVal, getVal(yyvsp[-2].PrimType, yyvsp[-1].ValIDVal), yyvsp[0].UIntVal);
delete yyvsp[-4].TypeVal;
;
break;}
-case 208:
-#line 2226 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 210:
+#line 2238 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
- if (yyvsp[0].UIntVal & (yyvsp[0].UIntVal-1))
+ if (yyvsp[0].UIntVal != 0 && !isPowerOf2_32(yyvsp[0].UIntVal))
ThrowException("Alignment amount '" + utostr(yyvsp[0].UIntVal) +
"' is not a power of 2!");
yyval.InstVal = new AllocaInst(*yyvsp[-1].TypeVal, 0, yyvsp[0].UIntVal);
delete yyvsp[-1].TypeVal;
;
break;}
-case 209:
-#line 2233 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 211:
+#line 2245 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
- if (yyvsp[0].UIntVal & (yyvsp[0].UIntVal-1))
+ if (yyvsp[0].UIntVal != 0 && !isPowerOf2_32(yyvsp[0].UIntVal))
ThrowException("Alignment amount '" + utostr(yyvsp[0].UIntVal) +
"' is not a power of 2!");
yyval.InstVal = new AllocaInst(*yyvsp[-4].TypeVal, getVal(yyvsp[-2].PrimType, yyvsp[-1].ValIDVal), yyvsp[0].UIntVal);
delete yyvsp[-4].TypeVal;
;
break;}
-case 210:
-#line 2240 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 212:
+#line 2252 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
if (!isa<PointerType>(yyvsp[0].ValueVal->getType()))
ThrowException("Trying to free nonpointer type " +
yyval.InstVal = new FreeInst(yyvsp[0].ValueVal);
;
break;}
-case 211:
-#line 2247 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 213:
+#line 2259 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
if (!isa<PointerType>(yyvsp[-1].TypeVal->get()))
ThrowException("Can't load from nonpointer type: " +
delete yyvsp[-1].TypeVal;
;
break;}
-case 212:
-#line 2257 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 214:
+#line 2269 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
const PointerType *PT = dyn_cast<PointerType>(yyvsp[-1].TypeVal->get());
if (!PT)
delete yyvsp[-1].TypeVal;
;
break;}
-case 213:
-#line 2270 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 215:
+#line 2282 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
{
if (!isa<PointerType>(yyvsp[-2].TypeVal->get()))
ThrowException("getelementptr insn requires pointer operand!");
}
return 1;
}
-#line 2293 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2305 "/Users/sabre/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
int yyerror(const char *ErrorMsg) {
std::string where