compiler/libec: Fixed parsing crash originating in grammar rules
authorJerome St-Louis <jerome@ecere.com>
Thu, 18 Apr 2013 06:22:56 +0000 (02:22 -0400)
committerJerome St-Louis <jerome@ecere.com>
Thu, 18 Apr 2013 06:22:56 +0000 (02:22 -0400)
- base_strict_type '[' ']' rules were passing a specifier as a declarator
- Added coded to reinterpret that declarator as a specifier if it really is a type
- Added code to not reinterpret a specifier as a declarator if it is a type
- Giving out an error on functions parameter omitting name

compiler/bootstrap/libec/bootstrap/ast.c
compiler/bootstrap/libec/bootstrap/grammar.c
compiler/bootstrap/libec/bootstrap/pass1.c
compiler/bootstrap/libec/bootstrap/pass16.c
compiler/libec/locale/ec.pot
compiler/libec/precompiled/grammar.c
compiler/libec/src/ast.ec
compiler/libec/src/grammar.ec
compiler/libec/src/grammar.y
compiler/libec/src/pass1.ec
compiler/libec/src/pass16.ec

index ba139f7..292a014 100644 (file)
@@ -2078,8 +2078,43 @@ __ecereInstance1->declarator = declarator, __ecereInstance1->initializer = initi
 });
 }
 
+int CheckType(char *  text);
+
+extern void FreeDeclarator(struct Declarator * decl);
+
 struct TypeName * MkTypeName(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Declarator * declarator)
 {
+if(qualifiers != (((void *)0)))
+{
+struct Declarator * parentDecl = declarator;
+struct Declarator * decl = declarator;
+
+while(decl && decl->type == 3)
+decl = decl->declarator;
+if(decl && decl->type == 1 && decl->identifier->string && CheckType(decl->identifier->string) == TYPE_NAME)
+{
+struct Specifier * spec;
+
+for(spec = qualifiers->first; spec; spec = spec->next)
+{
+if(spec->type == 0)
+{
+if(spec->specifier == CONST || spec->specifier == VOLATILE || spec->specifier == EXTERN || spec->specifier == STATIC || spec->specifier == AUTO || spec->specifier == REGISTER)
+continue;
+break;
+}
+else if(spec->type != 5)
+break;
+}
+if(!spec)
+{
+ListAdd(qualifiers, MkSpecifierName(decl->identifier->string));
+decl->identifier->string = (((void *)0));
+FreeDeclarator(decl);
+parentDecl->declarator = (((void *)0));
+}
+}
+}
 return __extension__ ({
 struct TypeName * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_TypeName);
 
@@ -2095,8 +2130,6 @@ void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(struct __ecereNa
 
 struct TypeName * MkTypeNameGuessDecl(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Declarator * declarator)
 {
-struct TypeName * typeName = (typeName = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_TypeName), typeName->qualifiers = qualifiers, typeName->declarator = declarator, typeName);
-
 if(qualifiers != (((void *)0)))
 {
 unsigned int gotType = 0x0;
@@ -2123,7 +2156,7 @@ s = "int64";
 }
 if(s)
 {
-typeName->declarator = declarator = MkDeclaratorIdentifier(MkIdentifier(s));
+declarator = MkDeclaratorIdentifier(MkIdentifier(s));
 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(qualifiers, spec);
 FreeSpecifier(spec);
 spec = (((void *)0));
@@ -2131,13 +2164,27 @@ spec = (((void *)0));
 }
 if(spec && spec->type != 5)
 {
-if(spec->type != 0 || (spec->specifier != UNSIGNED && spec->specifier != SIGNED && spec->specifier != LONG))
+if(spec->type == 0)
+{
+if(spec->specifier == CONST || spec->specifier == VOLATILE || spec->specifier == EXTERN || spec->specifier == STATIC || spec->specifier == AUTO || spec->specifier == REGISTER)
+continue;
+else if(spec->specifier != UNSIGNED && spec->specifier != SIGNED && spec->specifier != LONG)
+gotFullType = 0x1;
+gotType = 0x1;
+}
+else
+{
 gotFullType = 0x1;
 gotType = 0x1;
 }
 }
 }
-return typeName;
+}
+return __extension__ ({
+struct TypeName * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_TypeName);
+
+__ecereInstance1->qualifiers = qualifiers, __ecereInstance1->declarator = declarator, __ecereInstance1;
+});
 }
 
 struct Identifier * GetDeclId(struct Declarator * decl)
@@ -2652,8 +2699,47 @@ __ecereInstance1->type = 12, __ecereInstance1->expressions = exp, __ecereInstanc
 });
 }
 
+struct FunctionDefinition * _MkFunction(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct Declarator * declarator, struct __ecereNameSpace__ecere__sys__OldList * declarationList, unsigned int errorOnOmit);
+
 struct FunctionDefinition * MkFunction(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct Declarator * declarator, struct __ecereNameSpace__ecere__sys__OldList * declarationList)
 {
+_MkFunction(specifiers, declarator, declarationList, 0x1);
+}
+
+extern struct Declarator * GetFuncDecl(struct Declarator * decl);
+
+extern void Compiler_Error(char *  format, ...);
+
+struct FunctionDefinition * _MkFunction(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct Declarator * declarator, struct __ecereNameSpace__ecere__sys__OldList * declarationList, unsigned int errorOnOmit)
+{
+if(errorOnOmit)
+{
+struct Declarator * funcDecl = GetFuncDecl(declarator);
+
+if(funcDecl && funcDecl->function.parameters)
+{
+struct TypeName * tn;
+
+for(tn = (*funcDecl->function.parameters).first; tn; tn = tn->next)
+{
+if(tn->qualifiers || tn->declarator)
+{
+struct Identifier * declID = tn->declarator ? GetDeclId(tn->declarator) : (((void *)0));
+
+if(!declID)
+{
+struct Specifier * spec = tn->qualifiers ? (*tn->qualifiers).first : (((void *)0));
+
+if(!tn->declarator && !tn->prev && !tn->next && spec && !spec->next && spec->type == 0 && spec->specifier == VOID)
+;
+else
+Compiler_Error("parameter name omitted\n");
+break;
+}
+}
+}
+}
+}
 return __extension__ ({
 struct FunctionDefinition * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_FunctionDefinition);
 
@@ -2661,8 +2747,6 @@ __ecereInstance1->specifiers = specifiers, __ecereInstance1->declarator = declar
 });
 }
 
-extern struct Declarator * GetFuncDecl(struct Declarator * decl);
-
 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(struct __ecereNameSpace__ecere__sys__BinaryTree * this);
 
 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_first;
@@ -3179,8 +3263,6 @@ __ecereInstance1->_class = _class, __ecereInstance1->exp = exp, __ecereInstance1
 });
 }
 
-extern void Compiler_Error(char *  format, ...);
-
 struct Instantiation * MkInstantiationNamed(struct __ecereNameSpace__ecere__sys__OldList * specs, struct Expression * exp, struct __ecereNameSpace__ecere__sys__OldList * members)
 {
 struct Instantiation * inst = (inst = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Instantiation), inst->exp = exp, inst->members = members, inst);
@@ -4410,8 +4492,6 @@ return ProcessTypeDecls(specs, decl, (((void *)0)));
 
 extern struct Declarator * SpecDeclFromString(char *  string, struct __ecereNameSpace__ecere__sys__OldList *  specs, struct Declarator * baseDecl);
 
-extern void FreeDeclarator(struct Declarator * decl);
-
 struct Type * ProcessTypeString(char * string, unsigned int staticMethod)
 {
 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
@@ -4920,6 +5000,7 @@ __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkContinueStmt", "Statem
 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkBreakStmt", "Statement MkBreakStmt(void)", MkBreakStmt, module, 2);
 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkReturnStmt", "Statement MkReturnStmt(ecere::sys::OldList exp)", MkReturnStmt, module, 2);
 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkFunction", "FunctionDefinition MkFunction(ecere::sys::OldList specifiers, Declarator declarator, ecere::sys::OldList declarationList)", MkFunction, module, 2);
+__ecereNameSpace__ecere__com__eSystem_RegisterFunction("_MkFunction", "FunctionDefinition _MkFunction(ecere::sys::OldList specifiers, Declarator declarator, ecere::sys::OldList declarationList, bool errorOnOmit)", _MkFunction, module, 2);
 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ProcessFunctionBody", "void ProcessFunctionBody(FunctionDefinition func, Statement body)", ProcessFunctionBody, module, 2);
 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExternalFunction", "External MkExternalFunction(FunctionDefinition function)", MkExternalFunction, module, 2);
 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExternalImport", "External MkExternalImport(char * name, ecere::com::ImportType importType, ecere::com::AccessMode importAccess)", MkExternalImport, module, 2);
index fe09c3b..84eed20 100644 (file)
@@ -1087,7 +1087,7 @@ static const yytype_int16 yyrhs[] =
 
 static const yytype_uint16 yyrline[] = 
 {
-(unsigned short)0, (unsigned short)278, (unsigned short)278, (unsigned short)307, (unsigned short)366, (unsigned short)367, (unsigned short)467, (unsigned short)471, (unsigned short)474, (unsigned short)475, (unsigned short)476, (unsigned short)525, (unsigned short)527, (unsigned short)532, (unsigned short)537, (unsigned short)542, (unsigned short)544, (unsigned short)549, (unsigned short)551, (unsigned short)556, (unsigned short)558, (unsigned short)563, (unsigned short)565, (unsigned short)567, (unsigned short)569, (unsigned short)571, (unsigned short)575, (unsigned short)580, (unsigned short)582, (unsigned short)584, (unsigned short)586, (unsigned short)588, (unsigned short)594, (unsigned short)596, (unsigned short)601, (unsigned short)606, (unsigned short)611, (unsigned short)613, (unsigned short)615, (unsigned short)620, (unsigned short)621, (unsigned short)625, (unsigned short)626, (unsigned short)637, (unsigned short)641, (unsigned short)642, (unsigned short)644, (unsigned short)649, (unsigned short)650, (unsigned short)652, (unsigned short)655, (unsigned short)667, (unsigned short)678, (unsigned short)697, (unsigned short)699, (unsigned short)704, (unsigned short)705, (unsigned short)706, (unsigned short)707, (unsigned short)708, (unsigned short)709, (unsigned short)710, (unsigned short)711, (unsigned short)712, (unsigned short)716, (unsigned short)717, (unsigned short)718, (unsigned short)719, (unsigned short)723, (unsigned short)724, (unsigned short)725, (unsigned short)726, (unsigned short)727, (unsigned short)728, (unsigned short)729, (unsigned short)733, (unsigned short)735, (unsigned short)740, (unsigned short)742, (unsigned short)744, (unsigned short)746, (unsigned short)748, (unsigned short)778, (unsigned short)780, (unsigned short)785, (unsigned short)787, (unsigned short)789, (unsigned short)791, (unsigned short)793, (unsigned short)822, (unsigned short)824, (unsigned short)826, (unsigned short)831, (unsigned short)833, (unsigned short)838, (unsigned short)840, (unsigned short)844, (unsigned short)846, (unsigned short)848, (unsigned short)850, (unsigned short)855, (unsigned short)858, (unsigned short)861, (unsigned short)864, (unsigned short)929, (unsigned short)931, (unsigned short)936, (unsigned short)938, (unsigned short)940, (unsigned short)942, (unsigned short)944, (unsigned short)975, (unsigned short)979, (unsigned short)980, (unsigned short)981, (unsigned short)985, (unsigned short)986, (unsigned short)987, (unsigned short)991, (unsigned short)992, (unsigned short)993, (unsigned short)994, (unsigned short)998, (unsigned short)1001, (unsigned short)1004, (unsigned short)1007, (unsigned short)1010, (unsigned short)1015, (unsigned short)1016, (unsigned short)1018, (unsigned short)1020, (unsigned short)1022, (unsigned short)1024, (unsigned short)1029, (unsigned short)1033, (unsigned short)1036, (unsigned short)1039, (unsigned short)1042, (unsigned short)1045, (unsigned short)1050, (unsigned short)1051, (unsigned short)1053, (unsigned short)1058, (unsigned short)1062, (unsigned short)1064, (unsigned short)1069, (unsigned short)1071, (unsigned short)1076, (unsigned short)1078, (unsigned short)1083, (unsigned short)1088, (unsigned short)1090, (unsigned short)1095, (unsigned short)1097, (unsigned short)1099, (unsigned short)1101, (unsigned short)1106, (unsigned short)1108, (unsigned short)1110, (unsigned short)1112, (unsigned short)1117, (unsigned short)1118, (unsigned short)1119, (unsigned short)1120, (unsigned short)1121, (unsigned short)1122, (unsigned short)1123, (unsigned short)1124, (unsigned short)1125, (unsigned short)1126, (unsigned short)1127, (unsigned short)1129, (unsigned short)1130, (unsigned short)1132, (unsigned short)1136, (unsigned short)1139, (unsigned short)1140, (unsigned short)1141, (unsigned short)1142, (unsigned short)1143, (unsigned short)1144, (unsigned short)1145, (unsigned short)1146, (unsigned short)1147, (unsigned short)1148, (unsigned short)1149, (unsigned short)1150, (unsigned short)1151, (unsigned short)1152, (unsigned short)1154, (unsigned short)1155, (unsigned short)1159, (unsigned short)1160, (unsigned short)1161, (unsigned short)1165, (unsigned short)1169, (unsigned short)1170, (unsigned short)1171, (unsigned short)1175, (unsigned short)1176, (unsigned short)1177, (unsigned short)1178, (unsigned short)1179, (unsigned short)1183, (unsigned short)1184, (unsigned short)1185, (unsigned short)1189, (unsigned short)1193, (unsigned short)1194, (unsigned short)1195, (unsigned short)1196, (unsigned short)1197, (unsigned short)1198, (unsigned short)1199, (unsigned short)1200, (unsigned short)1204, (unsigned short)1208, (unsigned short)1209, (unsigned short)1213, (unsigned short)1217, (unsigned short)1218, (unsigned short)1222, (unsigned short)1223, (unsigned short)1224, (unsigned short)1228, (unsigned short)1229, (unsigned short)1233, (unsigned short)1234, (unsigned short)1235, (unsigned short)1236, (unsigned short)1237, (unsigned short)1238, (unsigned short)1239, (unsigned short)1251, (unsigned short)1263, (unsigned short)1278, (unsigned short)1279, (unsigned short)1283, (unsigned short)1291, (unsigned short)1292, (unsigned short)1300, (unsigned short)1301, (unsigned short)1303, (unsigned short)1304, (unsigned short)1313, (unsigned short)1314, (unsigned short)1318, (unsigned short)1325, (unsigned short)1332, (unsigned short)1338, (unsigned short)1345, (unsigned short)1351, (unsigned short)1360, (unsigned short)1367, (unsigned short)1373, (unsigned short)1379, (unsigned short)1385, (unsigned short)1391, (unsigned short)1397, (unsigned short)1408, (unsigned short)1413, (unsigned short)1414, (unsigned short)1419, (unsigned short)1420, (unsigned short)1421, (unsigned short)1425, (unsigned short)1426, (unsigned short)1427, (unsigned short)1428, (unsigned short)1429, (unsigned short)1430, (unsigned short)1431, (unsigned short)1432, (unsigned short)1433, (unsigned short)1434, (unsigned short)1435, (unsigned short)1436, (unsigned short)1437, (unsigned short)1438, (unsigned short)1439, (unsigned short)1440, (unsigned short)1441, (unsigned short)1442, (unsigned short)1443, (unsigned short)1444, (unsigned short)1445, (unsigned short)1446, (unsigned short)1447, (unsigned short)1448, (unsigned short)1449, (unsigned short)1450, (unsigned short)1451, (unsigned short)1452, (unsigned short)1453, (unsigned short)1455, (unsigned short)1456, (unsigned short)1457, (unsigned short)1458, (unsigned short)1459, (unsigned short)1461, (unsigned short)1465, (unsigned short)1469, (unsigned short)1473, (unsigned short)1474, (unsigned short)1478, (unsigned short)1480, (unsigned short)1481, (unsigned short)1482, (unsigned short)1483, (unsigned short)1484, (unsigned short)1485, (unsigned short)1486, (unsigned short)1487, (unsigned short)1488, (unsigned short)1490, (unsigned short)1491, (unsigned short)1492, (unsigned short)1493, (unsigned short)1494, (unsigned short)1495, (unsigned short)1496, (unsigned short)1497, (unsigned short)1501, (unsigned short)1503, (unsigned short)1504, (unsigned short)1505, (unsigned short)1506, (unsigned short)1507, (unsigned short)1508, (unsigned short)1509, (unsigned short)1510, (unsigned short)1511, (unsigned short)1513, (unsigned short)1514, (unsigned short)1515, (unsigned short)1516, (unsigned short)1517, (unsigned short)1518, (unsigned short)1519, (unsigned short)1520, (unsigned short)1524, (unsigned short)1525, (unsigned short)1526, (unsigned short)1527, (unsigned short)1531, (unsigned short)1532, (unsigned short)1533, (unsigned short)1534, (unsigned short)1535, (unsigned short)1539, (unsigned short)1540, (unsigned short)1541, (unsigned short)1542, (unsigned short)1543, (unsigned short)1544, (unsigned short)1545, (unsigned short)1546, (unsigned short)1547, (unsigned short)1549, (unsigned short)1550, (unsigned short)1551, (unsigned short)1555, (unsigned short)1556, (unsigned short)1560, (unsigned short)1561, (unsigned short)1565, (unsigned short)1566, (unsigned short)1567, (unsigned short)1568, (unsigned short)1569, (unsigned short)1570, (unsigned short)1571, (unsigned short)1572, (unsigned short)1576, (unsigned short)1577, (unsigned short)1581, (unsigned short)1582, (unsigned short)1583, (unsigned short)1584, (unsigned short)1585, (unsigned short)1586, (unsigned short)1587, (unsigned short)1591, (unsigned short)1592, (unsigned short)1593, (unsigned short)1594, (unsigned short)1595, (unsigned short)1599, (unsigned short)1600, (unsigned short)1601, (unsigned short)1602, (unsigned short)1603, (unsigned short)1607, (unsigned short)1615, (unsigned short)1616, (unsigned short)1617, (unsigned short)1618, (unsigned short)1619, (unsigned short)1620, (unsigned short)1621, (unsigned short)1622, (unsigned short)1623, (unsigned short)1627, (unsigned short)1628, (unsigned short)1629, (unsigned short)1630, (unsigned short)1631, (unsigned short)1633, (unsigned short)1634, (unsigned short)1635, (unsigned short)1636, (unsigned short)1640, (unsigned short)1641, (unsigned short)1642, (unsigned short)1644, (unsigned short)1645, (unsigned short)1649, (unsigned short)1650, (unsigned short)1651, (unsigned short)1653, (unsigned short)1654, (unsigned short)1658, (unsigned short)1659, (unsigned short)1660, (unsigned short)1662, (unsigned short)1663, (unsigned short)1667, (unsigned short)1668, (unsigned short)1669, (unsigned short)1673, (unsigned short)1674, (unsigned short)1675, (unsigned short)1679, (unsigned short)1680, (unsigned short)1681, (unsigned short)1682, (unsigned short)1683, (unsigned short)1685, (unsigned short)1686, (unsigned short)1687, (unsigned short)1688, (unsigned short)1690, (unsigned short)1691, (unsigned short)1692, (unsigned short)1693, (unsigned short)1695, (unsigned short)1696, (unsigned short)1697, (unsigned short)1698, (unsigned short)1702, (unsigned short)1703, (unsigned short)1704, (unsigned short)1705, (unsigned short)1706, (unsigned short)1708, (unsigned short)1709, (unsigned short)1710, (unsigned short)1711, (unsigned short)1715, (unsigned short)1716, (unsigned short)1717, (unsigned short)1718, (unsigned short)1719, (unsigned short)1720, (unsigned short)1721, (unsigned short)1722, (unsigned short)1723, (unsigned short)1724, (unsigned short)1725, (unsigned short)1729, (unsigned short)1730, (unsigned short)1731, (unsigned short)1732, (unsigned short)1736, (unsigned short)1737, (unsigned short)1738, (unsigned short)1742, (unsigned short)1743, (unsigned short)1744, (unsigned short)1745, (unsigned short)1747, (unsigned short)1748, (unsigned short)1750, (unsigned short)1751, (unsigned short)1756, (unsigned short)1758, (unsigned short)1763, (unsigned short)1767, (unsigned short)1768, (unsigned short)1769, (unsigned short)1771, (unsigned short)1772, (unsigned short)1774, (unsigned short)1775, (unsigned short)1780, (unsigned short)1782, (unsigned short)1787, (unsigned short)1791, (unsigned short)1792, (unsigned short)1793, (unsigned short)1794, (unsigned short)1795, (unsigned short)1796, (unsigned short)1797, (unsigned short)1798, (unsigned short)1799, (unsigned short)1800, (unsigned short)1801, (unsigned short)1802, (unsigned short)1806, (unsigned short)1807, (unsigned short)1811, (unsigned short)1812, (unsigned short)1817, (unsigned short)1818, (unsigned short)1822, (unsigned short)1823, (unsigned short)1824, (unsigned short)1825, (unsigned short)1826, (unsigned short)1827, (unsigned short)1828, (unsigned short)1832, (unsigned short)1833, (unsigned short)1837, (unsigned short)1841, (unsigned short)1845, (unsigned short)1852, (unsigned short)1853, (unsigned short)1854, (unsigned short)1855, (unsigned short)1856, (unsigned short)1860, (unsigned short)1861, (unsigned short)1912, (unsigned short)1913, (unsigned short)1914, (unsigned short)1915, (unsigned short)1916, (unsigned short)1917, (unsigned short)1918, (unsigned short)1922, (unsigned short)1923, (unsigned short)1924, (unsigned short)1925, (unsigned short)1926, (unsigned short)1933, (unsigned short)1934, (unsigned short)1935, (unsigned short)1936, (unsigned short)1940, (unsigned short)1941, (unsigned short)1942, (unsigned short)1944, (unsigned short)1945, (unsigned short)1949, (unsigned short)1950, (unsigned short)1951, (unsigned short)1953, (unsigned short)1954, (unsigned short)1958, (unsigned short)1959, (unsigned short)1960, (unsigned short)1962, (unsigned short)1963, (unsigned short)1967, (unsigned short)1968, (unsigned short)1969, (unsigned short)1973, (unsigned short)1974, (unsigned short)1975, (unsigned short)1979, (unsigned short)1980, (unsigned short)1981, (unsigned short)1982, (unsigned short)1983, (unsigned short)1984, (unsigned short)1985, (unsigned short)1986, (unsigned short)1987, (unsigned short)1989, (unsigned short)1990, (unsigned short)1991, (unsigned short)1992, (unsigned short)1993, (unsigned short)1994, (unsigned short)1995, (unsigned short)1996, (unsigned short)1998, (unsigned short)1999, (unsigned short)2000, (unsigned short)2001, (unsigned short)2003, (unsigned short)2004, (unsigned short)2005, (unsigned short)2006, (unsigned short)2008, (unsigned short)2015, (unsigned short)2019, (unsigned short)2023, (unsigned short)2030, (unsigned short)2031, (unsigned short)2035, (unsigned short)2040, (unsigned short)2041, (unsigned short)2045, (unsigned short)2046, (unsigned short)2047, (unsigned short)2048, (unsigned short)2054, (unsigned short)2055, (unsigned short)2056, (unsigned short)2060, (unsigned short)2061, (unsigned short)2062, (unsigned short)2063, (unsigned short)2067, (unsigned short)2069, (unsigned short)2073, (unsigned short)2074, (unsigned short)2075, (unsigned short)2076, (unsigned short)2077, (unsigned short)2081, (unsigned short)2082, (unsigned short)2083, (unsigned short)2084, (unsigned short)2085, (unsigned short)2089, (unsigned short)2090, (unsigned short)2091, (unsigned short)2095, (unsigned short)2096, (unsigned short)2097, (unsigned short)2101, (unsigned short)2105, (unsigned short)2106, (unsigned short)2110, (unsigned short)2111, (unsigned short)2112, (unsigned short)2116, (unsigned short)2117, (unsigned short)2119, (unsigned short)2120, (unsigned short)2121, (unsigned short)2122, (unsigned short)2123, (unsigned short)2125, (unsigned short)2126, (unsigned short)2127, (unsigned short)2128, (unsigned short)2129, (unsigned short)2133, (unsigned short)2134, (unsigned short)2138, (unsigned short)2139, (unsigned short)2140, (unsigned short)2144, (unsigned short)2145, (unsigned short)2146, (unsigned short)2147, (unsigned short)2148, (unsigned short)2149, (unsigned short)2150, (unsigned short)2151, (unsigned short)2152, (unsigned short)2154, (unsigned short)2155, (unsigned short)2157, (unsigned short)2158, (unsigned short)2159, (unsigned short)2160, (unsigned short)2161, (unsigned short)2165, (unsigned short)2166, (unsigned short)2170, (unsigned short)2171, (unsigned short)2175, (unsigned short)2179, (unsigned short)2180, (unsigned short)2181, (unsigned short)2186, (unsigned short)2187, (unsigned short)2191, (unsigned short)2192, (unsigned short)2193, (unsigned short)2194, (unsigned short)2195, (unsigned short)2196, (unsigned short)2197, (unsigned short)2198, (unsigned short)2199, (unsigned short)2200, (unsigned short)2201, (unsigned short)2202, (unsigned short)2203, (unsigned short)2204, (unsigned short)2205, (unsigned short)2206, (unsigned short)2207, (unsigned short)2208, (unsigned short)2209, (unsigned short)2210, (unsigned short)2211, (unsigned short)2212, (unsigned short)2216, (unsigned short)2217, (unsigned short)2218, (unsigned short)2219, (unsigned short)2220, (unsigned short)2221, (unsigned short)2222, (unsigned short)2223, (unsigned short)2224, (unsigned short)2225, (unsigned short)2226, (unsigned short)2227, (unsigned short)2228, (unsigned short)2229, (unsigned short)2230, (unsigned short)2231, (unsigned short)2232, (unsigned short)2233, (unsigned short)2234, (unsigned short)2235, (unsigned short)2241, (unsigned short)2243, (unsigned short)2245, (unsigned short)2247, (unsigned short)2249, (unsigned short)2251, (unsigned short)2253, (unsigned short)2255, (unsigned short)2257, (unsigned short)2259, (unsigned short)2264, (unsigned short)2265, (unsigned short)2269, (unsigned short)2275, (unsigned short)2281, (unsigned short)2288, (unsigned short)2298, (unsigned short)2299, (unsigned short)2300, (unsigned short)2301, (unsigned short)2305, (unsigned short)2306, (unsigned short)2307, (unsigned short)2309, (unsigned short)2310, (unsigned short)2311, (unsigned short)2313, (unsigned short)2314, (unsigned short)2315, (unsigned short)2319, (unsigned short)2323, (unsigned short)2331, (unsigned short)2340, (unsigned short)2349, (unsigned short)2350, (unsigned short)2352, (unsigned short)2353, (unsigned short)2357, (unsigned short)2364, (unsigned short)2371, (unsigned short)2374, (unsigned short)2387, (unsigned short)2401, (unsigned short)2404, (unsigned short)2406, (unsigned short)2408, (unsigned short)2413, (unsigned short)2414, (unsigned short)2418, (unsigned short)2419, (unsigned short)2420, (unsigned short)2421, (unsigned short)2422, (unsigned short)2423, (unsigned short)2424, (unsigned short)2425, (unsigned short)2429, (unsigned short)2430, (unsigned short)2431, (unsigned short)2432, (unsigned short)2433, (unsigned short)2434, (unsigned short)2435, (unsigned short)2436, (unsigned short)2437, (unsigned short)2438, (unsigned short)2442, (unsigned short)2443, (unsigned short)2444, (unsigned short)2445, (unsigned short)2446, (unsigned short)2447, (unsigned short)2448, (unsigned short)2449, (unsigned short)2450, (unsigned short)2451, (unsigned short)2455, (unsigned short)2456, (unsigned short)2457, (unsigned short)2458, (unsigned short)2459, (unsigned short)2460, (unsigned short)2461, (unsigned short)2462, (unsigned short)2463, (unsigned short)2464, (unsigned short)2465, (unsigned short)2466, (unsigned short)2470, (unsigned short)2471, (unsigned short)2472, (unsigned short)2473, (unsigned short)2474, (unsigned short)2475, (unsigned short)2476, (unsigned short)2477, (unsigned short)2478, (unsigned short)2479, (unsigned short)2483, (unsigned short)2484, (unsigned short)2488, (unsigned short)2489, (unsigned short)2490, (unsigned short)2491, (unsigned short)2492, (unsigned short)2493, (unsigned short)2494, (unsigned short)2495, (unsigned short)2496, (unsigned short)2498, (unsigned short)2500, (unsigned short)2518, (unsigned short)2536, (unsigned short)2537, (unsigned short)2541, (unsigned short)2542, (unsigned short)2543, (unsigned short)2544, (unsigned short)2545, (unsigned short)2546, (unsigned short)2547, (unsigned short)2548, (unsigned short)2549, (unsigned short)2567, (unsigned short)2584, (unsigned short)2585, (unsigned short)2586, (unsigned short)2587, (unsigned short)2588, (unsigned short)2589, (unsigned short)2590, (unsigned short)2591, (unsigned short)2592, (unsigned short)2593, (unsigned short)2594, (unsigned short)2595, (unsigned short)2596, (unsigned short)2614, (unsigned short)2631, (unsigned short)2632, (unsigned short)2633, (unsigned short)2634, (unsigned short)2635, (unsigned short)2636, (unsigned short)2637, (unsigned short)2638, (unsigned short)2639, (unsigned short)2640, (unsigned short)2641, (unsigned short)2642, (unsigned short)2643, (unsigned short)2661, (unsigned short)2678, (unsigned short)2679, (unsigned short)2683, (unsigned short)2684, (unsigned short)2685, (unsigned short)2686, (unsigned short)2687, (unsigned short)2691, (unsigned short)2692, (unsigned short)2699, (unsigned short)2700, (unsigned short)2709, (unsigned short)2710, (unsigned short)2711, (unsigned short)2713, (unsigned short)2714, (unsigned short)2715, (unsigned short)2716, (unsigned short)2720, (unsigned short)2721, (unsigned short)2722, (unsigned short)2723, (unsigned short)2724, (unsigned short)2725, (unsigned short)2726, (unsigned short)2727, (unsigned short)2728, (unsigned short)2732, (unsigned short)2736, (unsigned short)2737, (unsigned short)2738, (unsigned short)2739, (unsigned short)2740, (unsigned short)2745, (unsigned short)2754, (unsigned short)2763, (unsigned short)2772, (unsigned short)2786, (unsigned short)2787, (unsigned short)2792, (unsigned short)2796, (unsigned short)2797, (unsigned short)2798, (unsigned short)2799, (unsigned short)2800, (unsigned short)2805, (unsigned short)2814, (unsigned short)2823, (unsigned short)2832, (unsigned short)2846, (unsigned short)2847, (unsigned short)2896, (unsigned short)2897, (unsigned short)2898, (unsigned short)2899, (unsigned short)2911, (unsigned short)2912, (unsigned short)2913, (unsigned short)2918, (unsigned short)2919, (unsigned short)2920, (unsigned short)2921, (unsigned short)2922, (unsigned short)2926, (unsigned short)2927, (unsigned short)2931, (unsigned short)2932, (unsigned short)2933, (unsigned short)2937, (unsigned short)2938, (unsigned short)2942, (unsigned short)2943, (unsigned short)2944, (unsigned short)2945, (unsigned short)2946, (unsigned short)2947, (unsigned short)2948, (unsigned short)2949, (unsigned short)2950, (unsigned short)2951, (unsigned short)2952, (unsigned short)2953, (unsigned short)2954, (unsigned short)2955, (unsigned short)2956, (unsigned short)2957, (unsigned short)2961, (unsigned short)2962, (unsigned short)2963, (unsigned short)2964, (unsigned short)2965, (unsigned short)2966, (unsigned short)2967, (unsigned short)2968, (unsigned short)2972, (unsigned short)2973, (unsigned short)2974, (unsigned short)2975, (unsigned short)2979, (unsigned short)2980, (unsigned short)2981, (unsigned short)2982, (unsigned short)2983, (unsigned short)2987, (unsigned short)2988, (unsigned short)2989, (unsigned short)2990, (unsigned short)2991, (unsigned short)2995, (unsigned short)2996, (unsigned short)2998, (unsigned short)3000, (unsigned short)3002, (unsigned short)3007, (unsigned short)3008, (unsigned short)3010, (unsigned short)3012, (unsigned short)3017, (unsigned short)3018, (unsigned short)3019, (unsigned short)3020, (unsigned short)3024, (unsigned short)3025, (unsigned short)3026, (unsigned short)3027, (unsigned short)3031, (unsigned short)3032, (unsigned short)3033, (unsigned short)3034, (unsigned short)3038, (unsigned short)3039, (unsigned short)3040, (unsigned short)3041, (unsigned short)3045, (unsigned short)3046, (unsigned short)3047, (unsigned short)3048, (unsigned short)3052, (unsigned short)3053, (unsigned short)3054, (unsigned short)3070, (unsigned short)3071, (unsigned short)3072, (unsigned short)3073, (unsigned short)3086, (unsigned short)3102, (unsigned short)3103, (unsigned short)3108, (unsigned short)3109, (unsigned short)3113, (unsigned short)3114, (unsigned short)3115, (unsigned short)3116, (unsigned short)3119, (unsigned short)3120, (unsigned short)3124, (unsigned short)3125, (unsigned short)3126, (unsigned short)3130, (unsigned short)3134, (unsigned short)3138, (unsigned short)3139, (unsigned short)3140, (unsigned short)3141, (unsigned short)3142, (unsigned short)3151, (unsigned short)3160, (unsigned short)3161, (unsigned short)3162, (unsigned short)3163, (unsigned short)3167, (unsigned short)3168, (unsigned short)3172, (unsigned short)3173, (unsigned short)3178, (unsigned short)3179, (unsigned short)3180, (unsigned short)3181, (unsigned short)3182, (unsigned short)3183, (unsigned short)3202, (unsigned short)3203, (unsigned short)3207, (unsigned short)3208, (unsigned short)3209, (unsigned short)3210, (unsigned short)3211, (unsigned short)3212, (unsigned short)3214, (unsigned short)3215, (unsigned short)3216, (unsigned short)3217, (unsigned short)3221, (unsigned short)3222, (unsigned short)3223, (unsigned short)3224, (unsigned short)3225, (unsigned short)3227, (unsigned short)3228, (unsigned short)3229, (unsigned short)3233, (unsigned short)3234, (unsigned short)3235, (unsigned short)3236, (unsigned short)3237, (unsigned short)3238, (unsigned short)3242, (unsigned short)3243, (unsigned short)3244, (unsigned short)3249, (unsigned short)3250, (unsigned short)3251, (unsigned short)3252, (unsigned short)3253, (unsigned short)3254, (unsigned short)3255, (unsigned short)3256, (unsigned short)3257, (unsigned short)3258, (unsigned short)3259, (unsigned short)3260, (unsigned short)3261, (unsigned short)3265, (unsigned short)3266, (unsigned short)3267, (unsigned short)3268, (unsigned short)3269, (unsigned short)3270, (unsigned short)3271, (unsigned short)3275, (unsigned short)3276, (unsigned short)3280, (unsigned short)3281, (unsigned short)3282, (unsigned short)3286, (unsigned short)3287, (unsigned short)3288, (unsigned short)3289, (unsigned short)3291, (unsigned short)3292, (unsigned short)3293, (unsigned short)3295, (unsigned short)3296, (unsigned short)3297, (unsigned short)3298, (unsigned short)3300, (unsigned short)3301, (unsigned short)3302, (unsigned short)3306, (unsigned short)3307, (unsigned short)3308, (unsigned short)3309, (unsigned short)3310, (unsigned short)3314, (unsigned short)3315, (unsigned short)3316, (unsigned short)3317, (unsigned short)3318, (unsigned short)3319, (unsigned short)3320, (unsigned short)3324, (unsigned short)3325, (unsigned short)3326, (unsigned short)3330, (unsigned short)3331, (unsigned short)3335, (unsigned short)3336, (unsigned short)3337, (unsigned short)3338, (unsigned short)3342, (unsigned short)3343, (unsigned short)3344, (unsigned short)3346, (unsigned short)3347, (unsigned short)3348, (unsigned short)3352, (unsigned short)3356, (unsigned short)3357, (unsigned short)3359, (unsigned short)3360, (unsigned short)3361, (unsigned short)3365, (unsigned short)3366, (unsigned short)3367, (unsigned short)3368, (unsigned short)3372, (unsigned short)3373, (unsigned short)3377, (unsigned short)3378, (unsigned short)3379, (unsigned short)3383, (unsigned short)3384, (unsigned short)3385, (unsigned short)3386, (unsigned short)3387, (unsigned short)3388, (unsigned short)3389, (unsigned short)3393, (unsigned short)3394, (unsigned short)3395, (unsigned short)3396, (unsigned short)3400, (unsigned short)3401, (unsigned short)3402, (unsigned short)3403, (unsigned short)3407, (unsigned short)3411, (unsigned short)3415, (unsigned short)3417, (unsigned short)3420, (unsigned short)3426, (unsigned short)3427, (unsigned short)3428, (unsigned short)3432, (unsigned short)3433, (unsigned short)3434, (unsigned short)3435, (unsigned short)3436, (unsigned short)3437, (unsigned short)3441, (unsigned short)3442, (unsigned short)3446, (unsigned short)3447, (unsigned short)3448, (unsigned short)3450, (unsigned short)3451, (unsigned short)3453, (unsigned short)3454, (unsigned short)3455, (unsigned short)3456, (unsigned short)3457, (unsigned short)3459, (unsigned short)3460, (unsigned short)3464, (unsigned short)3465, (unsigned short)3466, (unsigned short)3467, (unsigned short)3471, (unsigned short)3472, (unsigned short)3473, (unsigned short)3474, (unsigned short)3476, (unsigned short)3477, (unsigned short)3478, (unsigned short)3479, (unsigned short)3480, (unsigned short)3481, (unsigned short)3482, (unsigned short)3485, (unsigned short)3489, (unsigned short)3490, (unsigned short)3494, (unsigned short)3495, (unsigned short)3499, (unsigned short)3500, (unsigned short)3501, (unsigned short)3502, (unsigned short)3503, (unsigned short)3504, (unsigned short)3505, (unsigned short)3506, (unsigned short)3510, (unsigned short)3511, (unsigned short)3512, (unsigned short)3513, (unsigned short)3519, (unsigned short)3520, (unsigned short)3522, (unsigned short)3523, (unsigned short)3526, (unsigned short)3527, (unsigned short)3530, (unsigned short)3531, (unsigned short)3532, (unsigned short)3533, (unsigned short)3534, (unsigned short)3535, (unsigned short)3539, (unsigned short)3540, (unsigned short)3552, (unsigned short)3553, (unsigned short)3556, (unsigned short)3559, (unsigned short)3561, (unsigned short)3562, (unsigned short)3563, (unsigned short)3573, (unsigned short)3575, (unsigned short)3576, (unsigned short)3578, (unsigned short)3579, (unsigned short)3580, (unsigned short)3581, (unsigned short)3591, (unsigned short)3592, (unsigned short)3593, (unsigned short)3594, (unsigned short)3595, (unsigned short)3596, (unsigned short)3600, (unsigned short)3601, (unsigned short)3609, (unsigned short)3611, (unsigned short)3612, (unsigned short)3614, (unsigned short)3616, (unsigned short)3620, (unsigned short)3621, (unsigned short)3622, (unsigned short)3623, (unsigned short)3624, (unsigned short)3628, (unsigned short)3629, (unsigned short)3630, (unsigned short)3632, (unsigned short)3637, (unsigned short)3638, (unsigned short)3639, (unsigned short)3643, (unsigned short)3644, (unsigned short)3645, (unsigned short)3649, (unsigned short)3653, (unsigned short)3654, (unsigned short)3655, (unsigned short)3659, (unsigned short)3660, (unsigned short)3664, (unsigned short)3665, (unsigned short)3669, (unsigned short)3670, (unsigned short)3671, (unsigned short)3672, (unsigned short)3676, (unsigned short)3680, (unsigned short)3684, (unsigned short)3688
+(unsigned short)0, (unsigned short)278, (unsigned short)278, (unsigned short)307, (unsigned short)366, (unsigned short)367, (unsigned short)467, (unsigned short)471, (unsigned short)474, (unsigned short)475, (unsigned short)476, (unsigned short)525, (unsigned short)527, (unsigned short)532, (unsigned short)537, (unsigned short)542, (unsigned short)544, (unsigned short)549, (unsigned short)551, (unsigned short)556, (unsigned short)558, (unsigned short)563, (unsigned short)565, (unsigned short)567, (unsigned short)569, (unsigned short)571, (unsigned short)575, (unsigned short)580, (unsigned short)582, (unsigned short)584, (unsigned short)586, (unsigned short)588, (unsigned short)594, (unsigned short)596, (unsigned short)601, (unsigned short)606, (unsigned short)611, (unsigned short)613, (unsigned short)615, (unsigned short)620, (unsigned short)621, (unsigned short)625, (unsigned short)626, (unsigned short)637, (unsigned short)641, (unsigned short)642, (unsigned short)644, (unsigned short)649, (unsigned short)650, (unsigned short)652, (unsigned short)655, (unsigned short)667, (unsigned short)678, (unsigned short)697, (unsigned short)699, (unsigned short)704, (unsigned short)705, (unsigned short)706, (unsigned short)707, (unsigned short)708, (unsigned short)709, (unsigned short)710, (unsigned short)711, (unsigned short)712, (unsigned short)716, (unsigned short)717, (unsigned short)718, (unsigned short)719, (unsigned short)723, (unsigned short)724, (unsigned short)725, (unsigned short)726, (unsigned short)727, (unsigned short)728, (unsigned short)729, (unsigned short)733, (unsigned short)735, (unsigned short)740, (unsigned short)742, (unsigned short)744, (unsigned short)746, (unsigned short)748, (unsigned short)778, (unsigned short)780, (unsigned short)785, (unsigned short)787, (unsigned short)789, (unsigned short)791, (unsigned short)793, (unsigned short)822, (unsigned short)824, (unsigned short)826, (unsigned short)831, (unsigned short)833, (unsigned short)838, (unsigned short)840, (unsigned short)844, (unsigned short)846, (unsigned short)848, (unsigned short)850, (unsigned short)855, (unsigned short)858, (unsigned short)861, (unsigned short)864, (unsigned short)929, (unsigned short)931, (unsigned short)936, (unsigned short)938, (unsigned short)940, (unsigned short)942, (unsigned short)944, (unsigned short)975, (unsigned short)979, (unsigned short)980, (unsigned short)981, (unsigned short)985, (unsigned short)986, (unsigned short)987, (unsigned short)991, (unsigned short)992, (unsigned short)993, (unsigned short)994, (unsigned short)998, (unsigned short)1001, (unsigned short)1004, (unsigned short)1007, (unsigned short)1010, (unsigned short)1015, (unsigned short)1016, (unsigned short)1018, (unsigned short)1020, (unsigned short)1022, (unsigned short)1024, (unsigned short)1029, (unsigned short)1033, (unsigned short)1036, (unsigned short)1039, (unsigned short)1042, (unsigned short)1045, (unsigned short)1050, (unsigned short)1051, (unsigned short)1053, (unsigned short)1058, (unsigned short)1062, (unsigned short)1064, (unsigned short)1069, (unsigned short)1071, (unsigned short)1076, (unsigned short)1078, (unsigned short)1083, (unsigned short)1088, (unsigned short)1090, (unsigned short)1095, (unsigned short)1097, (unsigned short)1099, (unsigned short)1101, (unsigned short)1106, (unsigned short)1108, (unsigned short)1110, (unsigned short)1112, (unsigned short)1117, (unsigned short)1118, (unsigned short)1119, (unsigned short)1120, (unsigned short)1121, (unsigned short)1122, (unsigned short)1123, (unsigned short)1124, (unsigned short)1125, (unsigned short)1126, (unsigned short)1127, (unsigned short)1129, (unsigned short)1130, (unsigned short)1132, (unsigned short)1136, (unsigned short)1139, (unsigned short)1140, (unsigned short)1141, (unsigned short)1142, (unsigned short)1143, (unsigned short)1144, (unsigned short)1145, (unsigned short)1146, (unsigned short)1147, (unsigned short)1148, (unsigned short)1149, (unsigned short)1150, (unsigned short)1151, (unsigned short)1152, (unsigned short)1154, (unsigned short)1155, (unsigned short)1159, (unsigned short)1160, (unsigned short)1161, (unsigned short)1165, (unsigned short)1169, (unsigned short)1170, (unsigned short)1171, (unsigned short)1175, (unsigned short)1176, (unsigned short)1177, (unsigned short)1178, (unsigned short)1179, (unsigned short)1183, (unsigned short)1184, (unsigned short)1185, (unsigned short)1189, (unsigned short)1193, (unsigned short)1194, (unsigned short)1195, (unsigned short)1196, (unsigned short)1197, (unsigned short)1198, (unsigned short)1199, (unsigned short)1200, (unsigned short)1204, (unsigned short)1208, (unsigned short)1209, (unsigned short)1213, (unsigned short)1217, (unsigned short)1218, (unsigned short)1222, (unsigned short)1223, (unsigned short)1224, (unsigned short)1228, (unsigned short)1229, (unsigned short)1233, (unsigned short)1234, (unsigned short)1235, (unsigned short)1236, (unsigned short)1237, (unsigned short)1238, (unsigned short)1239, (unsigned short)1251, (unsigned short)1263, (unsigned short)1278, (unsigned short)1279, (unsigned short)1283, (unsigned short)1291, (unsigned short)1292, (unsigned short)1300, (unsigned short)1301, (unsigned short)1303, (unsigned short)1304, (unsigned short)1313, (unsigned short)1314, (unsigned short)1318, (unsigned short)1325, (unsigned short)1332, (unsigned short)1338, (unsigned short)1345, (unsigned short)1351, (unsigned short)1360, (unsigned short)1367, (unsigned short)1373, (unsigned short)1379, (unsigned short)1385, (unsigned short)1391, (unsigned short)1397, (unsigned short)1408, (unsigned short)1413, (unsigned short)1414, (unsigned short)1419, (unsigned short)1420, (unsigned short)1421, (unsigned short)1425, (unsigned short)1426, (unsigned short)1427, (unsigned short)1428, (unsigned short)1429, (unsigned short)1430, (unsigned short)1431, (unsigned short)1432, (unsigned short)1433, (unsigned short)1434, (unsigned short)1435, (unsigned short)1436, (unsigned short)1437, (unsigned short)1438, (unsigned short)1439, (unsigned short)1440, (unsigned short)1441, (unsigned short)1442, (unsigned short)1443, (unsigned short)1444, (unsigned short)1445, (unsigned short)1446, (unsigned short)1447, (unsigned short)1448, (unsigned short)1449, (unsigned short)1450, (unsigned short)1451, (unsigned short)1452, (unsigned short)1453, (unsigned short)1455, (unsigned short)1456, (unsigned short)1457, (unsigned short)1458, (unsigned short)1459, (unsigned short)1461, (unsigned short)1465, (unsigned short)1469, (unsigned short)1473, (unsigned short)1474, (unsigned short)1478, (unsigned short)1480, (unsigned short)1481, (unsigned short)1482, (unsigned short)1483, (unsigned short)1484, (unsigned short)1485, (unsigned short)1486, (unsigned short)1487, (unsigned short)1488, (unsigned short)1490, (unsigned short)1491, (unsigned short)1492, (unsigned short)1493, (unsigned short)1494, (unsigned short)1495, (unsigned short)1496, (unsigned short)1497, (unsigned short)1501, (unsigned short)1503, (unsigned short)1504, (unsigned short)1505, (unsigned short)1506, (unsigned short)1507, (unsigned short)1508, (unsigned short)1509, (unsigned short)1510, (unsigned short)1511, (unsigned short)1513, (unsigned short)1514, (unsigned short)1515, (unsigned short)1516, (unsigned short)1517, (unsigned short)1518, (unsigned short)1519, (unsigned short)1520, (unsigned short)1524, (unsigned short)1525, (unsigned short)1526, (unsigned short)1527, (unsigned short)1531, (unsigned short)1532, (unsigned short)1533, (unsigned short)1534, (unsigned short)1535, (unsigned short)1539, (unsigned short)1540, (unsigned short)1541, (unsigned short)1542, (unsigned short)1543, (unsigned short)1544, (unsigned short)1545, (unsigned short)1546, (unsigned short)1547, (unsigned short)1549, (unsigned short)1550, (unsigned short)1551, (unsigned short)1555, (unsigned short)1556, (unsigned short)1560, (unsigned short)1561, (unsigned short)1565, (unsigned short)1566, (unsigned short)1567, (unsigned short)1568, (unsigned short)1569, (unsigned short)1570, (unsigned short)1571, (unsigned short)1572, (unsigned short)1576, (unsigned short)1577, (unsigned short)1581, (unsigned short)1582, (unsigned short)1583, (unsigned short)1584, (unsigned short)1585, (unsigned short)1586, (unsigned short)1587, (unsigned short)1591, (unsigned short)1592, (unsigned short)1593, (unsigned short)1594, (unsigned short)1595, (unsigned short)1599, (unsigned short)1600, (unsigned short)1601, (unsigned short)1602, (unsigned short)1603, (unsigned short)1607, (unsigned short)1615, (unsigned short)1616, (unsigned short)1617, (unsigned short)1618, (unsigned short)1619, (unsigned short)1620, (unsigned short)1621, (unsigned short)1622, (unsigned short)1623, (unsigned short)1627, (unsigned short)1628, (unsigned short)1629, (unsigned short)1630, (unsigned short)1631, (unsigned short)1633, (unsigned short)1634, (unsigned short)1635, (unsigned short)1636, (unsigned short)1640, (unsigned short)1641, (unsigned short)1642, (unsigned short)1644, (unsigned short)1645, (unsigned short)1649, (unsigned short)1650, (unsigned short)1651, (unsigned short)1653, (unsigned short)1654, (unsigned short)1658, (unsigned short)1659, (unsigned short)1660, (unsigned short)1662, (unsigned short)1663, (unsigned short)1667, (unsigned short)1668, (unsigned short)1669, (unsigned short)1673, (unsigned short)1674, (unsigned short)1675, (unsigned short)1679, (unsigned short)1680, (unsigned short)1681, (unsigned short)1682, (unsigned short)1683, (unsigned short)1685, (unsigned short)1686, (unsigned short)1687, (unsigned short)1688, (unsigned short)1690, (unsigned short)1691, (unsigned short)1692, (unsigned short)1693, (unsigned short)1695, (unsigned short)1696, (unsigned short)1697, (unsigned short)1698, (unsigned short)1702, (unsigned short)1703, (unsigned short)1704, (unsigned short)1705, (unsigned short)1706, (unsigned short)1708, (unsigned short)1709, (unsigned short)1710, (unsigned short)1711, (unsigned short)1715, (unsigned short)1716, (unsigned short)1717, (unsigned short)1718, (unsigned short)1719, (unsigned short)1720, (unsigned short)1721, (unsigned short)1722, (unsigned short)1723, (unsigned short)1724, (unsigned short)1725, (unsigned short)1729, (unsigned short)1730, (unsigned short)1731, (unsigned short)1732, (unsigned short)1736, (unsigned short)1737, (unsigned short)1738, (unsigned short)1742, (unsigned short)1743, (unsigned short)1744, (unsigned short)1745, (unsigned short)1747, (unsigned short)1748, (unsigned short)1750, (unsigned short)1751, (unsigned short)1756, (unsigned short)1758, (unsigned short)1763, (unsigned short)1767, (unsigned short)1768, (unsigned short)1769, (unsigned short)1771, (unsigned short)1772, (unsigned short)1774, (unsigned short)1775, (unsigned short)1780, (unsigned short)1782, (unsigned short)1787, (unsigned short)1791, (unsigned short)1792, (unsigned short)1793, (unsigned short)1794, (unsigned short)1795, (unsigned short)1796, (unsigned short)1797, (unsigned short)1798, (unsigned short)1799, (unsigned short)1800, (unsigned short)1801, (unsigned short)1802, (unsigned short)1806, (unsigned short)1807, (unsigned short)1811, (unsigned short)1812, (unsigned short)1817, (unsigned short)1818, (unsigned short)1822, (unsigned short)1823, (unsigned short)1824, (unsigned short)1825, (unsigned short)1826, (unsigned short)1827, (unsigned short)1828, (unsigned short)1832, (unsigned short)1833, (unsigned short)1837, (unsigned short)1841, (unsigned short)1845, (unsigned short)1852, (unsigned short)1853, (unsigned short)1854, (unsigned short)1855, (unsigned short)1856, (unsigned short)1860, (unsigned short)1861, (unsigned short)1912, (unsigned short)1913, (unsigned short)1914, (unsigned short)1915, (unsigned short)1916, (unsigned short)1917, (unsigned short)1918, (unsigned short)1922, (unsigned short)1923, (unsigned short)1924, (unsigned short)1925, (unsigned short)1926, (unsigned short)1933, (unsigned short)1934, (unsigned short)1935, (unsigned short)1936, (unsigned short)1940, (unsigned short)1941, (unsigned short)1942, (unsigned short)1944, (unsigned short)1945, (unsigned short)1949, (unsigned short)1950, (unsigned short)1951, (unsigned short)1953, (unsigned short)1954, (unsigned short)1958, (unsigned short)1959, (unsigned short)1960, (unsigned short)1962, (unsigned short)1963, (unsigned short)1967, (unsigned short)1968, (unsigned short)1969, (unsigned short)1973, (unsigned short)1974, (unsigned short)1975, (unsigned short)1979, (unsigned short)1980, (unsigned short)1981, (unsigned short)1982, (unsigned short)1983, (unsigned short)1984, (unsigned short)1985, (unsigned short)1986, (unsigned short)1987, (unsigned short)1989, (unsigned short)1990, (unsigned short)1991, (unsigned short)1992, (unsigned short)1993, (unsigned short)1994, (unsigned short)1995, (unsigned short)1996, (unsigned short)1998, (unsigned short)1999, (unsigned short)2000, (unsigned short)2001, (unsigned short)2003, (unsigned short)2004, (unsigned short)2005, (unsigned short)2006, (unsigned short)2008, (unsigned short)2015, (unsigned short)2019, (unsigned short)2023, (unsigned short)2030, (unsigned short)2031, (unsigned short)2035, (unsigned short)2040, (unsigned short)2041, (unsigned short)2045, (unsigned short)2046, (unsigned short)2047, (unsigned short)2048, (unsigned short)2054, (unsigned short)2055, (unsigned short)2056, (unsigned short)2060, (unsigned short)2061, (unsigned short)2062, (unsigned short)2063, (unsigned short)2067, (unsigned short)2069, (unsigned short)2073, (unsigned short)2074, (unsigned short)2075, (unsigned short)2076, (unsigned short)2077, (unsigned short)2081, (unsigned short)2082, (unsigned short)2083, (unsigned short)2084, (unsigned short)2085, (unsigned short)2089, (unsigned short)2090, (unsigned short)2091, (unsigned short)2095, (unsigned short)2096, (unsigned short)2097, (unsigned short)2101, (unsigned short)2105, (unsigned short)2106, (unsigned short)2110, (unsigned short)2111, (unsigned short)2112, (unsigned short)2116, (unsigned short)2117, (unsigned short)2119, (unsigned short)2120, (unsigned short)2121, (unsigned short)2122, (unsigned short)2123, (unsigned short)2125, (unsigned short)2126, (unsigned short)2127, (unsigned short)2128, (unsigned short)2129, (unsigned short)2133, (unsigned short)2134, (unsigned short)2138, (unsigned short)2139, (unsigned short)2140, (unsigned short)2144, (unsigned short)2145, (unsigned short)2146, (unsigned short)2147, (unsigned short)2148, (unsigned short)2149, (unsigned short)2150, (unsigned short)2151, (unsigned short)2152, (unsigned short)2154, (unsigned short)2155, (unsigned short)2157, (unsigned short)2158, (unsigned short)2159, (unsigned short)2160, (unsigned short)2161, (unsigned short)2165, (unsigned short)2166, (unsigned short)2170, (unsigned short)2171, (unsigned short)2175, (unsigned short)2179, (unsigned short)2180, (unsigned short)2181, (unsigned short)2186, (unsigned short)2187, (unsigned short)2191, (unsigned short)2192, (unsigned short)2193, (unsigned short)2194, (unsigned short)2195, (unsigned short)2196, (unsigned short)2197, (unsigned short)2198, (unsigned short)2199, (unsigned short)2200, (unsigned short)2201, (unsigned short)2202, (unsigned short)2203, (unsigned short)2204, (unsigned short)2205, (unsigned short)2206, (unsigned short)2207, (unsigned short)2208, (unsigned short)2209, (unsigned short)2210, (unsigned short)2211, (unsigned short)2212, (unsigned short)2216, (unsigned short)2217, (unsigned short)2218, (unsigned short)2219, (unsigned short)2220, (unsigned short)2221, (unsigned short)2222, (unsigned short)2223, (unsigned short)2224, (unsigned short)2225, (unsigned short)2226, (unsigned short)2227, (unsigned short)2228, (unsigned short)2229, (unsigned short)2230, (unsigned short)2231, (unsigned short)2232, (unsigned short)2233, (unsigned short)2234, (unsigned short)2235, (unsigned short)2241, (unsigned short)2243, (unsigned short)2245, (unsigned short)2247, (unsigned short)2249, (unsigned short)2251, (unsigned short)2253, (unsigned short)2255, (unsigned short)2257, (unsigned short)2259, (unsigned short)2264, (unsigned short)2265, (unsigned short)2269, (unsigned short)2275, (unsigned short)2281, (unsigned short)2288, (unsigned short)2298, (unsigned short)2299, (unsigned short)2300, (unsigned short)2301, (unsigned short)2305, (unsigned short)2306, (unsigned short)2307, (unsigned short)2309, (unsigned short)2310, (unsigned short)2311, (unsigned short)2313, (unsigned short)2314, (unsigned short)2315, (unsigned short)2319, (unsigned short)2323, (unsigned short)2331, (unsigned short)2340, (unsigned short)2349, (unsigned short)2350, (unsigned short)2352, (unsigned short)2353, (unsigned short)2357, (unsigned short)2364, (unsigned short)2371, (unsigned short)2374, (unsigned short)2387, (unsigned short)2401, (unsigned short)2404, (unsigned short)2406, (unsigned short)2408, (unsigned short)2413, (unsigned short)2414, (unsigned short)2418, (unsigned short)2419, (unsigned short)2420, (unsigned short)2421, (unsigned short)2422, (unsigned short)2423, (unsigned short)2424, (unsigned short)2425, (unsigned short)2429, (unsigned short)2430, (unsigned short)2431, (unsigned short)2432, (unsigned short)2433, (unsigned short)2434, (unsigned short)2435, (unsigned short)2436, (unsigned short)2437, (unsigned short)2438, (unsigned short)2442, (unsigned short)2443, (unsigned short)2444, (unsigned short)2445, (unsigned short)2446, (unsigned short)2447, (unsigned short)2448, (unsigned short)2449, (unsigned short)2450, (unsigned short)2451, (unsigned short)2455, (unsigned short)2456, (unsigned short)2457, (unsigned short)2458, (unsigned short)2459, (unsigned short)2460, (unsigned short)2461, (unsigned short)2462, (unsigned short)2463, (unsigned short)2464, (unsigned short)2465, (unsigned short)2466, (unsigned short)2470, (unsigned short)2471, (unsigned short)2472, (unsigned short)2473, (unsigned short)2474, (unsigned short)2475, (unsigned short)2476, (unsigned short)2477, (unsigned short)2478, (unsigned short)2479, (unsigned short)2483, (unsigned short)2484, (unsigned short)2488, (unsigned short)2489, (unsigned short)2490, (unsigned short)2491, (unsigned short)2492, (unsigned short)2493, (unsigned short)2494, (unsigned short)2495, (unsigned short)2496, (unsigned short)2498, (unsigned short)2500, (unsigned short)2518, (unsigned short)2536, (unsigned short)2537, (unsigned short)2541, (unsigned short)2542, (unsigned short)2543, (unsigned short)2544, (unsigned short)2545, (unsigned short)2546, (unsigned short)2547, (unsigned short)2548, (unsigned short)2549, (unsigned short)2567, (unsigned short)2584, (unsigned short)2585, (unsigned short)2586, (unsigned short)2587, (unsigned short)2588, (unsigned short)2589, (unsigned short)2590, (unsigned short)2591, (unsigned short)2592, (unsigned short)2593, (unsigned short)2594, (unsigned short)2595, (unsigned short)2596, (unsigned short)2614, (unsigned short)2631, (unsigned short)2632, (unsigned short)2633, (unsigned short)2634, (unsigned short)2635, (unsigned short)2636, (unsigned short)2637, (unsigned short)2638, (unsigned short)2639, (unsigned short)2640, (unsigned short)2641, (unsigned short)2642, (unsigned short)2643, (unsigned short)2661, (unsigned short)2678, (unsigned short)2679, (unsigned short)2683, (unsigned short)2684, (unsigned short)2685, (unsigned short)2686, (unsigned short)2687, (unsigned short)2691, (unsigned short)2692, (unsigned short)2699, (unsigned short)2701, (unsigned short)2710, (unsigned short)2719, (unsigned short)2728, (unsigned short)2737, (unsigned short)2738, (unsigned short)2739, (unsigned short)2740, (unsigned short)2744, (unsigned short)2745, (unsigned short)2746, (unsigned short)2747, (unsigned short)2748, (unsigned short)2749, (unsigned short)2750, (unsigned short)2751, (unsigned short)2752, (unsigned short)2756, (unsigned short)2760, (unsigned short)2761, (unsigned short)2762, (unsigned short)2763, (unsigned short)2764, (unsigned short)2769, (unsigned short)2778, (unsigned short)2787, (unsigned short)2796, (unsigned short)2810, (unsigned short)2811, (unsigned short)2816, (unsigned short)2820, (unsigned short)2821, (unsigned short)2822, (unsigned short)2823, (unsigned short)2824, (unsigned short)2829, (unsigned short)2838, (unsigned short)2847, (unsigned short)2856, (unsigned short)2870, (unsigned short)2871, (unsigned short)2920, (unsigned short)2921, (unsigned short)2922, (unsigned short)2923, (unsigned short)2935, (unsigned short)2936, (unsigned short)2937, (unsigned short)2942, (unsigned short)2943, (unsigned short)2944, (unsigned short)2945, (unsigned short)2946, (unsigned short)2950, (unsigned short)2951, (unsigned short)2955, (unsigned short)2956, (unsigned short)2957, (unsigned short)2961, (unsigned short)2962, (unsigned short)2966, (unsigned short)2967, (unsigned short)2968, (unsigned short)2969, (unsigned short)2970, (unsigned short)2971, (unsigned short)2972, (unsigned short)2973, (unsigned short)2974, (unsigned short)2975, (unsigned short)2976, (unsigned short)2977, (unsigned short)2978, (unsigned short)2979, (unsigned short)2980, (unsigned short)2981, (unsigned short)2985, (unsigned short)2986, (unsigned short)2987, (unsigned short)2988, (unsigned short)2989, (unsigned short)2990, (unsigned short)2991, (unsigned short)2992, (unsigned short)2996, (unsigned short)2997, (unsigned short)2998, (unsigned short)2999, (unsigned short)3003, (unsigned short)3004, (unsigned short)3005, (unsigned short)3006, (unsigned short)3007, (unsigned short)3011, (unsigned short)3012, (unsigned short)3013, (unsigned short)3014, (unsigned short)3015, (unsigned short)3019, (unsigned short)3020, (unsigned short)3022, (unsigned short)3024, (unsigned short)3026, (unsigned short)3031, (unsigned short)3032, (unsigned short)3034, (unsigned short)3036, (unsigned short)3041, (unsigned short)3042, (unsigned short)3043, (unsigned short)3044, (unsigned short)3048, (unsigned short)3049, (unsigned short)3050, (unsigned short)3051, (unsigned short)3055, (unsigned short)3056, (unsigned short)3057, (unsigned short)3058, (unsigned short)3062, (unsigned short)3063, (unsigned short)3064, (unsigned short)3065, (unsigned short)3069, (unsigned short)3070, (unsigned short)3071, (unsigned short)3072, (unsigned short)3076, (unsigned short)3077, (unsigned short)3078, (unsigned short)3094, (unsigned short)3095, (unsigned short)3096, (unsigned short)3097, (unsigned short)3110, (unsigned short)3126, (unsigned short)3127, (unsigned short)3132, (unsigned short)3133, (unsigned short)3137, (unsigned short)3138, (unsigned short)3139, (unsigned short)3140, (unsigned short)3143, (unsigned short)3144, (unsigned short)3148, (unsigned short)3149, (unsigned short)3150, (unsigned short)3154, (unsigned short)3158, (unsigned short)3162, (unsigned short)3163, (unsigned short)3164, (unsigned short)3165, (unsigned short)3166, (unsigned short)3175, (unsigned short)3184, (unsigned short)3185, (unsigned short)3186, (unsigned short)3187, (unsigned short)3191, (unsigned short)3192, (unsigned short)3196, (unsigned short)3197, (unsigned short)3202, (unsigned short)3203, (unsigned short)3204, (unsigned short)3205, (unsigned short)3206, (unsigned short)3207, (unsigned short)3226, (unsigned short)3227, (unsigned short)3231, (unsigned short)3232, (unsigned short)3233, (unsigned short)3234, (unsigned short)3235, (unsigned short)3236, (unsigned short)3238, (unsigned short)3239, (unsigned short)3240, (unsigned short)3241, (unsigned short)3245, (unsigned short)3246, (unsigned short)3247, (unsigned short)3248, (unsigned short)3249, (unsigned short)3251, (unsigned short)3252, (unsigned short)3253, (unsigned short)3257, (unsigned short)3258, (unsigned short)3259, (unsigned short)3260, (unsigned short)3261, (unsigned short)3262, (unsigned short)3266, (unsigned short)3267, (unsigned short)3268, (unsigned short)3273, (unsigned short)3274, (unsigned short)3275, (unsigned short)3276, (unsigned short)3277, (unsigned short)3278, (unsigned short)3279, (unsigned short)3280, (unsigned short)3281, (unsigned short)3282, (unsigned short)3283, (unsigned short)3284, (unsigned short)3285, (unsigned short)3289, (unsigned short)3290, (unsigned short)3291, (unsigned short)3292, (unsigned short)3293, (unsigned short)3294, (unsigned short)3295, (unsigned short)3299, (unsigned short)3300, (unsigned short)3304, (unsigned short)3305, (unsigned short)3306, (unsigned short)3310, (unsigned short)3311, (unsigned short)3312, (unsigned short)3313, (unsigned short)3315, (unsigned short)3316, (unsigned short)3317, (unsigned short)3319, (unsigned short)3320, (unsigned short)3321, (unsigned short)3322, (unsigned short)3324, (unsigned short)3325, (unsigned short)3326, (unsigned short)3330, (unsigned short)3331, (unsigned short)3332, (unsigned short)3333, (unsigned short)3334, (unsigned short)3338, (unsigned short)3339, (unsigned short)3340, (unsigned short)3341, (unsigned short)3342, (unsigned short)3343, (unsigned short)3344, (unsigned short)3348, (unsigned short)3349, (unsigned short)3350, (unsigned short)3354, (unsigned short)3355, (unsigned short)3359, (unsigned short)3360, (unsigned short)3361, (unsigned short)3362, (unsigned short)3366, (unsigned short)3367, (unsigned short)3368, (unsigned short)3370, (unsigned short)3371, (unsigned short)3372, (unsigned short)3376, (unsigned short)3380, (unsigned short)3381, (unsigned short)3383, (unsigned short)3384, (unsigned short)3385, (unsigned short)3389, (unsigned short)3390, (unsigned short)3391, (unsigned short)3392, (unsigned short)3396, (unsigned short)3397, (unsigned short)3401, (unsigned short)3402, (unsigned short)3403, (unsigned short)3407, (unsigned short)3408, (unsigned short)3409, (unsigned short)3410, (unsigned short)3411, (unsigned short)3412, (unsigned short)3413, (unsigned short)3417, (unsigned short)3418, (unsigned short)3419, (unsigned short)3420, (unsigned short)3424, (unsigned short)3425, (unsigned short)3426, (unsigned short)3427, (unsigned short)3431, (unsigned short)3435, (unsigned short)3439, (unsigned short)3441, (unsigned short)3444, (unsigned short)3450, (unsigned short)3451, (unsigned short)3452, (unsigned short)3456, (unsigned short)3457, (unsigned short)3458, (unsigned short)3459, (unsigned short)3460, (unsigned short)3461, (unsigned short)3465, (unsigned short)3466, (unsigned short)3470, (unsigned short)3471, (unsigned short)3472, (unsigned short)3474, (unsigned short)3475, (unsigned short)3477, (unsigned short)3478, (unsigned short)3479, (unsigned short)3480, (unsigned short)3481, (unsigned short)3483, (unsigned short)3484, (unsigned short)3488, (unsigned short)3489, (unsigned short)3490, (unsigned short)3491, (unsigned short)3495, (unsigned short)3496, (unsigned short)3497, (unsigned short)3498, (unsigned short)3500, (unsigned short)3501, (unsigned short)3502, (unsigned short)3503, (unsigned short)3504, (unsigned short)3505, (unsigned short)3506, (unsigned short)3509, (unsigned short)3513, (unsigned short)3514, (unsigned short)3518, (unsigned short)3519, (unsigned short)3523, (unsigned short)3524, (unsigned short)3525, (unsigned short)3526, (unsigned short)3527, (unsigned short)3528, (unsigned short)3529, (unsigned short)3530, (unsigned short)3534, (unsigned short)3535, (unsigned short)3536, (unsigned short)3537, (unsigned short)3543, (unsigned short)3544, (unsigned short)3546, (unsigned short)3547, (unsigned short)3550, (unsigned short)3551, (unsigned short)3554, (unsigned short)3555, (unsigned short)3556, (unsigned short)3557, (unsigned short)3558, (unsigned short)3559, (unsigned short)3563, (unsigned short)3564, (unsigned short)3576, (unsigned short)3577, (unsigned short)3580, (unsigned short)3583, (unsigned short)3585, (unsigned short)3586, (unsigned short)3587, (unsigned short)3597, (unsigned short)3599, (unsigned short)3600, (unsigned short)3602, (unsigned short)3603, (unsigned short)3604, (unsigned short)3605, (unsigned short)3615, (unsigned short)3616, (unsigned short)3617, (unsigned short)3618, (unsigned short)3619, (unsigned short)3620, (unsigned short)3624, (unsigned short)3625, (unsigned short)3633, (unsigned short)3635, (unsigned short)3636, (unsigned short)3638, (unsigned short)3640, (unsigned short)3644, (unsigned short)3645, (unsigned short)3646, (unsigned short)3647, (unsigned short)3648, (unsigned short)3652, (unsigned short)3653, (unsigned short)3654, (unsigned short)3656, (unsigned short)3661, (unsigned short)3662, (unsigned short)3663, (unsigned short)3667, (unsigned short)3668, (unsigned short)3669, (unsigned short)3673, (unsigned short)3677, (unsigned short)3678, (unsigned short)3679, (unsigned short)3683, (unsigned short)3684, (unsigned short)3688, (unsigned short)3689, (unsigned short)3693, (unsigned short)3694, (unsigned short)3695, (unsigned short)3696, (unsigned short)3700, (unsigned short)3704, (unsigned short)3708, (unsigned short)3712
 };
 
 static const char * const yytname[] = 
@@ -9599,19 +9599,37 @@ yyval.declarator = MkDeclaratorArray(decl, yyvsp[(3) - (4)].exp);
 break;
 case 888:
 {
-yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (4)].specifier, yyvsp[(3) - (4)].exp);
+struct Declarator * decl;
+char * colon = __ecereNameSpace__ecere__sys__RSearchString(yyvsp[(1) - (4)].specifier->name, "::", strlen(yyvsp[(1) - (4)].specifier->name), 0x1, 0x0);
+char * s = colon ? colon + 2 : yyvsp[(1) - (4)].specifier->name;
+
+decl = MkDeclaratorIdentifier(MkIdentifier(s));
+FreeSpecifier(yyvsp[(1) - (4)].specifier);
+yyval.declarator = MkDeclaratorArray(decl, yyvsp[(3) - (4)].exp);
 ;
 }
 break;
 case 889:
 {
-yyval.declarator = MkDeclaratorEnumArray(yyvsp[(1) - (4)].specifier, yyvsp[(3) - (4)].specifier);
+struct Declarator * decl;
+char * colon = __ecereNameSpace__ecere__sys__RSearchString(yyvsp[(1) - (4)].specifier->name, "::", strlen(yyvsp[(1) - (4)].specifier->name), 0x1, 0x0);
+char * s = colon ? colon + 2 : yyvsp[(1) - (4)].specifier->name;
+
+decl = MkDeclaratorIdentifier(MkIdentifier(s));
+FreeSpecifier(yyvsp[(1) - (4)].specifier);
+yyval.declarator = MkDeclaratorEnumArray(decl, yyvsp[(3) - (4)].specifier);
 ;
 }
 break;
 case 890:
 {
-yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (3)].specifier, (((void *)0)));
+struct Declarator * decl;
+char * colon = __ecereNameSpace__ecere__sys__RSearchString(yyvsp[(1) - (3)].specifier->name, "::", strlen(yyvsp[(1) - (3)].specifier->name), 0x1, 0x0);
+char * s = colon ? colon + 2 : yyvsp[(1) - (3)].specifier->name;
+
+decl = MkDeclaratorIdentifier(MkIdentifier(s));
+FreeSpecifier(yyvsp[(1) - (3)].specifier);
+yyval.declarator = MkDeclaratorEnumArray(decl, (((void *)0)));
 ;
 }
 break;
index 42b3a62..6be97a8 100644 (file)
@@ -1090,7 +1090,7 @@ extern struct Specifier * MkSpecifier(int specifier);
 
 extern void ReplaceThisClassSpecifiers(struct __ecereNameSpace__ecere__sys__OldList * specs, struct __ecereNameSpace__ecere__com__Class * _class);
 
-extern struct FunctionDefinition * MkFunction(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct Declarator * declarator, struct __ecereNameSpace__ecere__sys__OldList * declarationList);
+extern struct FunctionDefinition * _MkFunction(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct Declarator * declarator, struct __ecereNameSpace__ecere__sys__OldList * declarationList, unsigned int errorOnOmit);
 
 extern void ProcessFunctionBody(struct FunctionDefinition * func, struct Statement * body);
 
@@ -1170,7 +1170,7 @@ func->declarator->symbol = (((void *)0));
 symid += 2;
 }
 {
-function = MkFunction(func->specifiers, func->declarator, (((void *)0)));
+function = _MkFunction(func->specifiers, func->declarator, (((void *)0)), 0x0);
 function->propSet = func->propSet;
 function->type = func->type;
 if(func->type)
@@ -1391,7 +1391,7 @@ __ecereNameSpace__ecere__sys__ChangeCh(moduleName, '-', '_');
 sprintf(registerName, "__ecereRegisterModule_%s", moduleName);
 declarator = MkDeclaratorFunction(MkDeclaratorIdentifier(MkIdentifier(registerName)), MkListOne(moduleParam));
 {
-struct FunctionDefinition * function = MkFunction(specifiers, declarator, (((void *)0)));
+struct FunctionDefinition * function = _MkFunction(specifiers, declarator, (((void *)0)), 0x0);
 
 ProcessFunctionBody(function, registerModuleBody);
 function->declMode = 0;
@@ -1424,7 +1424,7 @@ __ecereNameSpace__ecere__sys__ChangeCh(moduleName, '-', '_');
 sprintf(registerName, "__ecereUnregisterModule_%s", moduleName);
 declarator = MkDeclaratorFunction(MkDeclaratorIdentifier(MkIdentifier(registerName)), MkListOne(moduleParam));
 {
-struct FunctionDefinition * function = MkFunction(specifiers, declarator, (((void *)0)));
+struct FunctionDefinition * function = _MkFunction(specifiers, declarator, (((void *)0)), 0x0);
 
 ProcessFunctionBody(function, unregisterModuleBody);
 function->declMode = 0;
index 7b3e5a1..a692da8 100644 (file)
@@ -1125,7 +1125,7 @@ extern struct Declarator * MkDeclaratorIdentifier(struct Identifier * id);
 
 extern struct Identifier * MkIdentifier(char *  string);
 
-extern struct FunctionDefinition * MkFunction(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct Declarator * declarator, struct __ecereNameSpace__ecere__sys__OldList * declarationList);
+extern struct FunctionDefinition * _MkFunction(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct Declarator * declarator, struct __ecereNameSpace__ecere__sys__OldList * declarationList, unsigned int errorOnOmit);
 
 extern void ProcessFunctionBody(struct FunctionDefinition * func, struct Statement * body);
 
@@ -1159,7 +1159,7 @@ __ecereNameSpace__ecere__sys__ChangeCh(moduleName, '-', '_');
 sprintf(registerName, "__ecereCreateModuleInstances_%s", moduleName);
 declarator = MkDeclaratorFunction(MkDeclaratorIdentifier(MkIdentifier(registerName)), (((void *)0)));
 {
-struct FunctionDefinition * function = MkFunction(specifiers, declarator, (((void *)0)));
+struct FunctionDefinition * function = _MkFunction(specifiers, declarator, (((void *)0)), 0x0);
 
 ProcessFunctionBody(function, createInstancesBody);
 ListAdd(ast, MkExternalFunction(function));
@@ -1175,7 +1175,7 @@ ListAdd(specifiers, MkSpecifier(VOID));
 sprintf(registerName, "__ecereDestroyModuleInstances_%s", moduleName);
 declarator = MkDeclaratorFunction(MkDeclaratorIdentifier(MkIdentifier(registerName)), (((void *)0)));
 {
-struct FunctionDefinition * function = MkFunction(specifiers, declarator, (((void *)0)));
+struct FunctionDefinition * function = _MkFunction(specifiers, declarator, (((void *)0)), 0x0);
 
 ProcessFunctionBody(function, destroyInstancesBody);
 ListAdd(ast, MkExternalFunction(function));
index 3f261bb..65474d8 100644 (file)
@@ -48,7 +48,7 @@ msgstr "Couldn't find member %s to override\n"
 msgid "Couldn't open %s\n"
 msgstr "Couldn't open %s\n"
 
-#: ./src/ast.ec:1576
+#: ./src/ast.ec:1649
 msgid "Expecting class specifier\n"
 msgstr "Expecting class specifier\n"
 
@@ -130,7 +130,7 @@ msgstr "Recursion in defined expression %s\n"
 msgid "Redefinition of %s (defining as %s, already defined as %s)\n"
 msgstr "Redefinition of %s (defining as %s, already defined as %s)\n"
 
-#: ./src/ast.ec:750
+#: ./src/ast.ec:794
 msgid "Redefinition of %s ignored\n"
 msgstr "Redefinition of %s ignored\n"
 
index f013623..8521e6e 100644 (file)
@@ -1085,7 +1085,7 @@ static const yytype_int16 yyrhs[] =
 
 static const yytype_uint16 yyrline[] = 
 {
-(unsigned short)0, (unsigned short)278, (unsigned short)278, (unsigned short)307, (unsigned short)366, (unsigned short)367, (unsigned short)467, (unsigned short)471, (unsigned short)474, (unsigned short)475, (unsigned short)476, (unsigned short)525, (unsigned short)527, (unsigned short)532, (unsigned short)537, (unsigned short)542, (unsigned short)544, (unsigned short)549, (unsigned short)551, (unsigned short)556, (unsigned short)558, (unsigned short)563, (unsigned short)565, (unsigned short)567, (unsigned short)569, (unsigned short)571, (unsigned short)575, (unsigned short)580, (unsigned short)582, (unsigned short)584, (unsigned short)586, (unsigned short)588, (unsigned short)594, (unsigned short)596, (unsigned short)601, (unsigned short)606, (unsigned short)611, (unsigned short)613, (unsigned short)615, (unsigned short)620, (unsigned short)621, (unsigned short)625, (unsigned short)626, (unsigned short)637, (unsigned short)641, (unsigned short)642, (unsigned short)644, (unsigned short)649, (unsigned short)650, (unsigned short)652, (unsigned short)655, (unsigned short)667, (unsigned short)678, (unsigned short)697, (unsigned short)699, (unsigned short)704, (unsigned short)705, (unsigned short)706, (unsigned short)707, (unsigned short)708, (unsigned short)709, (unsigned short)710, (unsigned short)711, (unsigned short)712, (unsigned short)716, (unsigned short)717, (unsigned short)718, (unsigned short)719, (unsigned short)723, (unsigned short)724, (unsigned short)725, (unsigned short)726, (unsigned short)727, (unsigned short)728, (unsigned short)729, (unsigned short)733, (unsigned short)735, (unsigned short)740, (unsigned short)742, (unsigned short)744, (unsigned short)746, (unsigned short)748, (unsigned short)778, (unsigned short)780, (unsigned short)785, (unsigned short)787, (unsigned short)789, (unsigned short)791, (unsigned short)793, (unsigned short)822, (unsigned short)824, (unsigned short)826, (unsigned short)831, (unsigned short)833, (unsigned short)838, (unsigned short)840, (unsigned short)844, (unsigned short)846, (unsigned short)848, (unsigned short)850, (unsigned short)855, (unsigned short)858, (unsigned short)861, (unsigned short)864, (unsigned short)929, (unsigned short)931, (unsigned short)936, (unsigned short)938, (unsigned short)940, (unsigned short)942, (unsigned short)944, (unsigned short)975, (unsigned short)979, (unsigned short)980, (unsigned short)981, (unsigned short)985, (unsigned short)986, (unsigned short)987, (unsigned short)991, (unsigned short)992, (unsigned short)993, (unsigned short)994, (unsigned short)998, (unsigned short)1001, (unsigned short)1004, (unsigned short)1007, (unsigned short)1010, (unsigned short)1015, (unsigned short)1016, (unsigned short)1018, (unsigned short)1020, (unsigned short)1022, (unsigned short)1024, (unsigned short)1029, (unsigned short)1033, (unsigned short)1036, (unsigned short)1039, (unsigned short)1042, (unsigned short)1045, (unsigned short)1050, (unsigned short)1051, (unsigned short)1053, (unsigned short)1058, (unsigned short)1062, (unsigned short)1064, (unsigned short)1069, (unsigned short)1071, (unsigned short)1076, (unsigned short)1078, (unsigned short)1083, (unsigned short)1088, (unsigned short)1090, (unsigned short)1095, (unsigned short)1097, (unsigned short)1099, (unsigned short)1101, (unsigned short)1106, (unsigned short)1108, (unsigned short)1110, (unsigned short)1112, (unsigned short)1117, (unsigned short)1118, (unsigned short)1119, (unsigned short)1120, (unsigned short)1121, (unsigned short)1122, (unsigned short)1123, (unsigned short)1124, (unsigned short)1125, (unsigned short)1126, (unsigned short)1127, (unsigned short)1129, (unsigned short)1130, (unsigned short)1132, (unsigned short)1136, (unsigned short)1139, (unsigned short)1140, (unsigned short)1141, (unsigned short)1142, (unsigned short)1143, (unsigned short)1144, (unsigned short)1145, (unsigned short)1146, (unsigned short)1147, (unsigned short)1148, (unsigned short)1149, (unsigned short)1150, (unsigned short)1151, (unsigned short)1152, (unsigned short)1154, (unsigned short)1155, (unsigned short)1159, (unsigned short)1160, (unsigned short)1161, (unsigned short)1165, (unsigned short)1169, (unsigned short)1170, (unsigned short)1171, (unsigned short)1175, (unsigned short)1176, (unsigned short)1177, (unsigned short)1178, (unsigned short)1179, (unsigned short)1183, (unsigned short)1184, (unsigned short)1185, (unsigned short)1189, (unsigned short)1193, (unsigned short)1194, (unsigned short)1195, (unsigned short)1196, (unsigned short)1197, (unsigned short)1198, (unsigned short)1199, (unsigned short)1200, (unsigned short)1204, (unsigned short)1208, (unsigned short)1209, (unsigned short)1213, (unsigned short)1217, (unsigned short)1218, (unsigned short)1222, (unsigned short)1223, (unsigned short)1224, (unsigned short)1228, (unsigned short)1229, (unsigned short)1233, (unsigned short)1234, (unsigned short)1235, (unsigned short)1236, (unsigned short)1237, (unsigned short)1238, (unsigned short)1239, (unsigned short)1251, (unsigned short)1263, (unsigned short)1278, (unsigned short)1279, (unsigned short)1283, (unsigned short)1291, (unsigned short)1292, (unsigned short)1300, (unsigned short)1301, (unsigned short)1303, (unsigned short)1304, (unsigned short)1313, (unsigned short)1314, (unsigned short)1318, (unsigned short)1325, (unsigned short)1332, (unsigned short)1338, (unsigned short)1345, (unsigned short)1351, (unsigned short)1360, (unsigned short)1367, (unsigned short)1373, (unsigned short)1379, (unsigned short)1385, (unsigned short)1391, (unsigned short)1397, (unsigned short)1408, (unsigned short)1413, (unsigned short)1414, (unsigned short)1419, (unsigned short)1420, (unsigned short)1421, (unsigned short)1425, (unsigned short)1426, (unsigned short)1427, (unsigned short)1428, (unsigned short)1429, (unsigned short)1430, (unsigned short)1431, (unsigned short)1432, (unsigned short)1433, (unsigned short)1434, (unsigned short)1435, (unsigned short)1436, (unsigned short)1437, (unsigned short)1438, (unsigned short)1439, (unsigned short)1440, (unsigned short)1441, (unsigned short)1442, (unsigned short)1443, (unsigned short)1444, (unsigned short)1445, (unsigned short)1446, (unsigned short)1447, (unsigned short)1448, (unsigned short)1449, (unsigned short)1450, (unsigned short)1451, (unsigned short)1452, (unsigned short)1453, (unsigned short)1455, (unsigned short)1456, (unsigned short)1457, (unsigned short)1458, (unsigned short)1459, (unsigned short)1461, (unsigned short)1465, (unsigned short)1469, (unsigned short)1473, (unsigned short)1474, (unsigned short)1478, (unsigned short)1480, (unsigned short)1481, (unsigned short)1482, (unsigned short)1483, (unsigned short)1484, (unsigned short)1485, (unsigned short)1486, (unsigned short)1487, (unsigned short)1488, (unsigned short)1490, (unsigned short)1491, (unsigned short)1492, (unsigned short)1493, (unsigned short)1494, (unsigned short)1495, (unsigned short)1496, (unsigned short)1497, (unsigned short)1501, (unsigned short)1503, (unsigned short)1504, (unsigned short)1505, (unsigned short)1506, (unsigned short)1507, (unsigned short)1508, (unsigned short)1509, (unsigned short)1510, (unsigned short)1511, (unsigned short)1513, (unsigned short)1514, (unsigned short)1515, (unsigned short)1516, (unsigned short)1517, (unsigned short)1518, (unsigned short)1519, (unsigned short)1520, (unsigned short)1524, (unsigned short)1525, (unsigned short)1526, (unsigned short)1527, (unsigned short)1531, (unsigned short)1532, (unsigned short)1533, (unsigned short)1534, (unsigned short)1535, (unsigned short)1539, (unsigned short)1540, (unsigned short)1541, (unsigned short)1542, (unsigned short)1543, (unsigned short)1544, (unsigned short)1545, (unsigned short)1546, (unsigned short)1547, (unsigned short)1549, (unsigned short)1550, (unsigned short)1551, (unsigned short)1555, (unsigned short)1556, (unsigned short)1560, (unsigned short)1561, (unsigned short)1565, (unsigned short)1566, (unsigned short)1567, (unsigned short)1568, (unsigned short)1569, (unsigned short)1570, (unsigned short)1571, (unsigned short)1572, (unsigned short)1576, (unsigned short)1577, (unsigned short)1581, (unsigned short)1582, (unsigned short)1583, (unsigned short)1584, (unsigned short)1585, (unsigned short)1586, (unsigned short)1587, (unsigned short)1591, (unsigned short)1592, (unsigned short)1593, (unsigned short)1594, (unsigned short)1595, (unsigned short)1599, (unsigned short)1600, (unsigned short)1601, (unsigned short)1602, (unsigned short)1603, (unsigned short)1607, (unsigned short)1615, (unsigned short)1616, (unsigned short)1617, (unsigned short)1618, (unsigned short)1619, (unsigned short)1620, (unsigned short)1621, (unsigned short)1622, (unsigned short)1623, (unsigned short)1627, (unsigned short)1628, (unsigned short)1629, (unsigned short)1630, (unsigned short)1631, (unsigned short)1633, (unsigned short)1634, (unsigned short)1635, (unsigned short)1636, (unsigned short)1640, (unsigned short)1641, (unsigned short)1642, (unsigned short)1644, (unsigned short)1645, (unsigned short)1649, (unsigned short)1650, (unsigned short)1651, (unsigned short)1653, (unsigned short)1654, (unsigned short)1658, (unsigned short)1659, (unsigned short)1660, (unsigned short)1662, (unsigned short)1663, (unsigned short)1667, (unsigned short)1668, (unsigned short)1669, (unsigned short)1673, (unsigned short)1674, (unsigned short)1675, (unsigned short)1679, (unsigned short)1680, (unsigned short)1681, (unsigned short)1682, (unsigned short)1683, (unsigned short)1685, (unsigned short)1686, (unsigned short)1687, (unsigned short)1688, (unsigned short)1690, (unsigned short)1691, (unsigned short)1692, (unsigned short)1693, (unsigned short)1695, (unsigned short)1696, (unsigned short)1697, (unsigned short)1698, (unsigned short)1702, (unsigned short)1703, (unsigned short)1704, (unsigned short)1705, (unsigned short)1706, (unsigned short)1708, (unsigned short)1709, (unsigned short)1710, (unsigned short)1711, (unsigned short)1715, (unsigned short)1716, (unsigned short)1717, (unsigned short)1718, (unsigned short)1719, (unsigned short)1720, (unsigned short)1721, (unsigned short)1722, (unsigned short)1723, (unsigned short)1724, (unsigned short)1725, (unsigned short)1729, (unsigned short)1730, (unsigned short)1731, (unsigned short)1732, (unsigned short)1736, (unsigned short)1737, (unsigned short)1738, (unsigned short)1742, (unsigned short)1743, (unsigned short)1744, (unsigned short)1745, (unsigned short)1747, (unsigned short)1748, (unsigned short)1750, (unsigned short)1751, (unsigned short)1756, (unsigned short)1758, (unsigned short)1763, (unsigned short)1767, (unsigned short)1768, (unsigned short)1769, (unsigned short)1771, (unsigned short)1772, (unsigned short)1774, (unsigned short)1775, (unsigned short)1780, (unsigned short)1782, (unsigned short)1787, (unsigned short)1791, (unsigned short)1792, (unsigned short)1793, (unsigned short)1794, (unsigned short)1795, (unsigned short)1796, (unsigned short)1797, (unsigned short)1798, (unsigned short)1799, (unsigned short)1800, (unsigned short)1801, (unsigned short)1802, (unsigned short)1806, (unsigned short)1807, (unsigned short)1811, (unsigned short)1812, (unsigned short)1817, (unsigned short)1818, (unsigned short)1822, (unsigned short)1823, (unsigned short)1824, (unsigned short)1825, (unsigned short)1826, (unsigned short)1827, (unsigned short)1828, (unsigned short)1832, (unsigned short)1833, (unsigned short)1837, (unsigned short)1841, (unsigned short)1845, (unsigned short)1852, (unsigned short)1853, (unsigned short)1854, (unsigned short)1855, (unsigned short)1856, (unsigned short)1860, (unsigned short)1861, (unsigned short)1912, (unsigned short)1913, (unsigned short)1914, (unsigned short)1915, (unsigned short)1916, (unsigned short)1917, (unsigned short)1918, (unsigned short)1922, (unsigned short)1923, (unsigned short)1924, (unsigned short)1925, (unsigned short)1926, (unsigned short)1933, (unsigned short)1934, (unsigned short)1935, (unsigned short)1936, (unsigned short)1940, (unsigned short)1941, (unsigned short)1942, (unsigned short)1944, (unsigned short)1945, (unsigned short)1949, (unsigned short)1950, (unsigned short)1951, (unsigned short)1953, (unsigned short)1954, (unsigned short)1958, (unsigned short)1959, (unsigned short)1960, (unsigned short)1962, (unsigned short)1963, (unsigned short)1967, (unsigned short)1968, (unsigned short)1969, (unsigned short)1973, (unsigned short)1974, (unsigned short)1975, (unsigned short)1979, (unsigned short)1980, (unsigned short)1981, (unsigned short)1982, (unsigned short)1983, (unsigned short)1984, (unsigned short)1985, (unsigned short)1986, (unsigned short)1987, (unsigned short)1989, (unsigned short)1990, (unsigned short)1991, (unsigned short)1992, (unsigned short)1993, (unsigned short)1994, (unsigned short)1995, (unsigned short)1996, (unsigned short)1998, (unsigned short)1999, (unsigned short)2000, (unsigned short)2001, (unsigned short)2003, (unsigned short)2004, (unsigned short)2005, (unsigned short)2006, (unsigned short)2008, (unsigned short)2015, (unsigned short)2019, (unsigned short)2023, (unsigned short)2030, (unsigned short)2031, (unsigned short)2035, (unsigned short)2040, (unsigned short)2041, (unsigned short)2045, (unsigned short)2046, (unsigned short)2047, (unsigned short)2048, (unsigned short)2054, (unsigned short)2055, (unsigned short)2056, (unsigned short)2060, (unsigned short)2061, (unsigned short)2062, (unsigned short)2063, (unsigned short)2067, (unsigned short)2069, (unsigned short)2073, (unsigned short)2074, (unsigned short)2075, (unsigned short)2076, (unsigned short)2077, (unsigned short)2081, (unsigned short)2082, (unsigned short)2083, (unsigned short)2084, (unsigned short)2085, (unsigned short)2089, (unsigned short)2090, (unsigned short)2091, (unsigned short)2095, (unsigned short)2096, (unsigned short)2097, (unsigned short)2101, (unsigned short)2105, (unsigned short)2106, (unsigned short)2110, (unsigned short)2111, (unsigned short)2112, (unsigned short)2116, (unsigned short)2117, (unsigned short)2119, (unsigned short)2120, (unsigned short)2121, (unsigned short)2122, (unsigned short)2123, (unsigned short)2125, (unsigned short)2126, (unsigned short)2127, (unsigned short)2128, (unsigned short)2129, (unsigned short)2133, (unsigned short)2134, (unsigned short)2138, (unsigned short)2139, (unsigned short)2140, (unsigned short)2144, (unsigned short)2145, (unsigned short)2146, (unsigned short)2147, (unsigned short)2148, (unsigned short)2149, (unsigned short)2150, (unsigned short)2151, (unsigned short)2152, (unsigned short)2154, (unsigned short)2155, (unsigned short)2157, (unsigned short)2158, (unsigned short)2159, (unsigned short)2160, (unsigned short)2161, (unsigned short)2165, (unsigned short)2166, (unsigned short)2170, (unsigned short)2171, (unsigned short)2175, (unsigned short)2179, (unsigned short)2180, (unsigned short)2181, (unsigned short)2186, (unsigned short)2187, (unsigned short)2191, (unsigned short)2192, (unsigned short)2193, (unsigned short)2194, (unsigned short)2195, (unsigned short)2196, (unsigned short)2197, (unsigned short)2198, (unsigned short)2199, (unsigned short)2200, (unsigned short)2201, (unsigned short)2202, (unsigned short)2203, (unsigned short)2204, (unsigned short)2205, (unsigned short)2206, (unsigned short)2207, (unsigned short)2208, (unsigned short)2209, (unsigned short)2210, (unsigned short)2211, (unsigned short)2212, (unsigned short)2216, (unsigned short)2217, (unsigned short)2218, (unsigned short)2219, (unsigned short)2220, (unsigned short)2221, (unsigned short)2222, (unsigned short)2223, (unsigned short)2224, (unsigned short)2225, (unsigned short)2226, (unsigned short)2227, (unsigned short)2228, (unsigned short)2229, (unsigned short)2230, (unsigned short)2231, (unsigned short)2232, (unsigned short)2233, (unsigned short)2234, (unsigned short)2235, (unsigned short)2241, (unsigned short)2243, (unsigned short)2245, (unsigned short)2247, (unsigned short)2249, (unsigned short)2251, (unsigned short)2253, (unsigned short)2255, (unsigned short)2257, (unsigned short)2259, (unsigned short)2264, (unsigned short)2265, (unsigned short)2269, (unsigned short)2275, (unsigned short)2281, (unsigned short)2288, (unsigned short)2298, (unsigned short)2299, (unsigned short)2300, (unsigned short)2301, (unsigned short)2305, (unsigned short)2306, (unsigned short)2307, (unsigned short)2309, (unsigned short)2310, (unsigned short)2311, (unsigned short)2313, (unsigned short)2314, (unsigned short)2315, (unsigned short)2319, (unsigned short)2323, (unsigned short)2331, (unsigned short)2340, (unsigned short)2349, (unsigned short)2350, (unsigned short)2352, (unsigned short)2353, (unsigned short)2357, (unsigned short)2364, (unsigned short)2371, (unsigned short)2374, (unsigned short)2387, (unsigned short)2401, (unsigned short)2404, (unsigned short)2406, (unsigned short)2408, (unsigned short)2413, (unsigned short)2414, (unsigned short)2418, (unsigned short)2419, (unsigned short)2420, (unsigned short)2421, (unsigned short)2422, (unsigned short)2423, (unsigned short)2424, (unsigned short)2425, (unsigned short)2429, (unsigned short)2430, (unsigned short)2431, (unsigned short)2432, (unsigned short)2433, (unsigned short)2434, (unsigned short)2435, (unsigned short)2436, (unsigned short)2437, (unsigned short)2438, (unsigned short)2442, (unsigned short)2443, (unsigned short)2444, (unsigned short)2445, (unsigned short)2446, (unsigned short)2447, (unsigned short)2448, (unsigned short)2449, (unsigned short)2450, (unsigned short)2451, (unsigned short)2455, (unsigned short)2456, (unsigned short)2457, (unsigned short)2458, (unsigned short)2459, (unsigned short)2460, (unsigned short)2461, (unsigned short)2462, (unsigned short)2463, (unsigned short)2464, (unsigned short)2465, (unsigned short)2466, (unsigned short)2470, (unsigned short)2471, (unsigned short)2472, (unsigned short)2473, (unsigned short)2474, (unsigned short)2475, (unsigned short)2476, (unsigned short)2477, (unsigned short)2478, (unsigned short)2479, (unsigned short)2483, (unsigned short)2484, (unsigned short)2488, (unsigned short)2489, (unsigned short)2490, (unsigned short)2491, (unsigned short)2492, (unsigned short)2493, (unsigned short)2494, (unsigned short)2495, (unsigned short)2496, (unsigned short)2498, (unsigned short)2500, (unsigned short)2518, (unsigned short)2536, (unsigned short)2537, (unsigned short)2541, (unsigned short)2542, (unsigned short)2543, (unsigned short)2544, (unsigned short)2545, (unsigned short)2546, (unsigned short)2547, (unsigned short)2548, (unsigned short)2549, (unsigned short)2567, (unsigned short)2584, (unsigned short)2585, (unsigned short)2586, (unsigned short)2587, (unsigned short)2588, (unsigned short)2589, (unsigned short)2590, (unsigned short)2591, (unsigned short)2592, (unsigned short)2593, (unsigned short)2594, (unsigned short)2595, (unsigned short)2596, (unsigned short)2614, (unsigned short)2631, (unsigned short)2632, (unsigned short)2633, (unsigned short)2634, (unsigned short)2635, (unsigned short)2636, (unsigned short)2637, (unsigned short)2638, (unsigned short)2639, (unsigned short)2640, (unsigned short)2641, (unsigned short)2642, (unsigned short)2643, (unsigned short)2661, (unsigned short)2678, (unsigned short)2679, (unsigned short)2683, (unsigned short)2684, (unsigned short)2685, (unsigned short)2686, (unsigned short)2687, (unsigned short)2691, (unsigned short)2692, (unsigned short)2699, (unsigned short)2700, (unsigned short)2709, (unsigned short)2710, (unsigned short)2711, (unsigned short)2713, (unsigned short)2714, (unsigned short)2715, (unsigned short)2716, (unsigned short)2720, (unsigned short)2721, (unsigned short)2722, (unsigned short)2723, (unsigned short)2724, (unsigned short)2725, (unsigned short)2726, (unsigned short)2727, (unsigned short)2728, (unsigned short)2732, (unsigned short)2736, (unsigned short)2737, (unsigned short)2738, (unsigned short)2739, (unsigned short)2740, (unsigned short)2745, (unsigned short)2754, (unsigned short)2763, (unsigned short)2772, (unsigned short)2786, (unsigned short)2787, (unsigned short)2792, (unsigned short)2796, (unsigned short)2797, (unsigned short)2798, (unsigned short)2799, (unsigned short)2800, (unsigned short)2805, (unsigned short)2814, (unsigned short)2823, (unsigned short)2832, (unsigned short)2846, (unsigned short)2847, (unsigned short)2896, (unsigned short)2897, (unsigned short)2898, (unsigned short)2899, (unsigned short)2911, (unsigned short)2912, (unsigned short)2913, (unsigned short)2918, (unsigned short)2919, (unsigned short)2920, (unsigned short)2921, (unsigned short)2922, (unsigned short)2926, (unsigned short)2927, (unsigned short)2931, (unsigned short)2932, (unsigned short)2933, (unsigned short)2937, (unsigned short)2938, (unsigned short)2942, (unsigned short)2943, (unsigned short)2944, (unsigned short)2945, (unsigned short)2946, (unsigned short)2947, (unsigned short)2948, (unsigned short)2949, (unsigned short)2950, (unsigned short)2951, (unsigned short)2952, (unsigned short)2953, (unsigned short)2954, (unsigned short)2955, (unsigned short)2956, (unsigned short)2957, (unsigned short)2961, (unsigned short)2962, (unsigned short)2963, (unsigned short)2964, (unsigned short)2965, (unsigned short)2966, (unsigned short)2967, (unsigned short)2968, (unsigned short)2972, (unsigned short)2973, (unsigned short)2974, (unsigned short)2975, (unsigned short)2979, (unsigned short)2980, (unsigned short)2981, (unsigned short)2982, (unsigned short)2983, (unsigned short)2987, (unsigned short)2988, (unsigned short)2989, (unsigned short)2990, (unsigned short)2991, (unsigned short)2995, (unsigned short)2996, (unsigned short)2998, (unsigned short)3000, (unsigned short)3002, (unsigned short)3007, (unsigned short)3008, (unsigned short)3010, (unsigned short)3012, (unsigned short)3017, (unsigned short)3018, (unsigned short)3019, (unsigned short)3020, (unsigned short)3024, (unsigned short)3025, (unsigned short)3026, (unsigned short)3027, (unsigned short)3031, (unsigned short)3032, (unsigned short)3033, (unsigned short)3034, (unsigned short)3038, (unsigned short)3039, (unsigned short)3040, (unsigned short)3041, (unsigned short)3045, (unsigned short)3046, (unsigned short)3047, (unsigned short)3048, (unsigned short)3052, (unsigned short)3053, (unsigned short)3054, (unsigned short)3070, (unsigned short)3071, (unsigned short)3072, (unsigned short)3073, (unsigned short)3086, (unsigned short)3102, (unsigned short)3103, (unsigned short)3108, (unsigned short)3109, (unsigned short)3113, (unsigned short)3114, (unsigned short)3115, (unsigned short)3116, (unsigned short)3119, (unsigned short)3120, (unsigned short)3124, (unsigned short)3125, (unsigned short)3126, (unsigned short)3130, (unsigned short)3134, (unsigned short)3138, (unsigned short)3139, (unsigned short)3140, (unsigned short)3141, (unsigned short)3142, (unsigned short)3151, (unsigned short)3160, (unsigned short)3161, (unsigned short)3162, (unsigned short)3163, (unsigned short)3167, (unsigned short)3168, (unsigned short)3172, (unsigned short)3173, (unsigned short)3178, (unsigned short)3179, (unsigned short)3180, (unsigned short)3181, (unsigned short)3182, (unsigned short)3183, (unsigned short)3202, (unsigned short)3203, (unsigned short)3207, (unsigned short)3208, (unsigned short)3209, (unsigned short)3210, (unsigned short)3211, (unsigned short)3212, (unsigned short)3214, (unsigned short)3215, (unsigned short)3216, (unsigned short)3217, (unsigned short)3221, (unsigned short)3222, (unsigned short)3223, (unsigned short)3224, (unsigned short)3225, (unsigned short)3227, (unsigned short)3228, (unsigned short)3229, (unsigned short)3233, (unsigned short)3234, (unsigned short)3235, (unsigned short)3236, (unsigned short)3237, (unsigned short)3238, (unsigned short)3242, (unsigned short)3243, (unsigned short)3244, (unsigned short)3249, (unsigned short)3250, (unsigned short)3251, (unsigned short)3252, (unsigned short)3253, (unsigned short)3254, (unsigned short)3255, (unsigned short)3256, (unsigned short)3257, (unsigned short)3258, (unsigned short)3259, (unsigned short)3260, (unsigned short)3261, (unsigned short)3265, (unsigned short)3266, (unsigned short)3267, (unsigned short)3268, (unsigned short)3269, (unsigned short)3270, (unsigned short)3271, (unsigned short)3275, (unsigned short)3276, (unsigned short)3280, (unsigned short)3281, (unsigned short)3282, (unsigned short)3286, (unsigned short)3287, (unsigned short)3288, (unsigned short)3289, (unsigned short)3291, (unsigned short)3292, (unsigned short)3293, (unsigned short)3295, (unsigned short)3296, (unsigned short)3297, (unsigned short)3298, (unsigned short)3300, (unsigned short)3301, (unsigned short)3302, (unsigned short)3306, (unsigned short)3307, (unsigned short)3308, (unsigned short)3309, (unsigned short)3310, (unsigned short)3314, (unsigned short)3315, (unsigned short)3316, (unsigned short)3317, (unsigned short)3318, (unsigned short)3319, (unsigned short)3320, (unsigned short)3324, (unsigned short)3325, (unsigned short)3326, (unsigned short)3330, (unsigned short)3331, (unsigned short)3335, (unsigned short)3336, (unsigned short)3337, (unsigned short)3338, (unsigned short)3342, (unsigned short)3343, (unsigned short)3344, (unsigned short)3346, (unsigned short)3347, (unsigned short)3348, (unsigned short)3352, (unsigned short)3356, (unsigned short)3357, (unsigned short)3359, (unsigned short)3360, (unsigned short)3361, (unsigned short)3365, (unsigned short)3366, (unsigned short)3367, (unsigned short)3368, (unsigned short)3372, (unsigned short)3373, (unsigned short)3377, (unsigned short)3378, (unsigned short)3379, (unsigned short)3383, (unsigned short)3384, (unsigned short)3385, (unsigned short)3386, (unsigned short)3387, (unsigned short)3388, (unsigned short)3389, (unsigned short)3393, (unsigned short)3394, (unsigned short)3395, (unsigned short)3396, (unsigned short)3400, (unsigned short)3401, (unsigned short)3402, (unsigned short)3403, (unsigned short)3407, (unsigned short)3411, (unsigned short)3415, (unsigned short)3417, (unsigned short)3420, (unsigned short)3426, (unsigned short)3427, (unsigned short)3428, (unsigned short)3432, (unsigned short)3433, (unsigned short)3434, (unsigned short)3435, (unsigned short)3436, (unsigned short)3437, (unsigned short)3441, (unsigned short)3442, (unsigned short)3446, (unsigned short)3447, (unsigned short)3448, (unsigned short)3450, (unsigned short)3451, (unsigned short)3453, (unsigned short)3454, (unsigned short)3455, (unsigned short)3456, (unsigned short)3457, (unsigned short)3459, (unsigned short)3460, (unsigned short)3464, (unsigned short)3465, (unsigned short)3466, (unsigned short)3467, (unsigned short)3471, (unsigned short)3472, (unsigned short)3473, (unsigned short)3474, (unsigned short)3476, (unsigned short)3477, (unsigned short)3478, (unsigned short)3479, (unsigned short)3480, (unsigned short)3481, (unsigned short)3482, (unsigned short)3485, (unsigned short)3489, (unsigned short)3490, (unsigned short)3494, (unsigned short)3495, (unsigned short)3499, (unsigned short)3500, (unsigned short)3501, (unsigned short)3502, (unsigned short)3503, (unsigned short)3504, (unsigned short)3505, (unsigned short)3506, (unsigned short)3510, (unsigned short)3511, (unsigned short)3512, (unsigned short)3513, (unsigned short)3519, (unsigned short)3520, (unsigned short)3522, (unsigned short)3523, (unsigned short)3526, (unsigned short)3527, (unsigned short)3530, (unsigned short)3531, (unsigned short)3532, (unsigned short)3533, (unsigned short)3534, (unsigned short)3535, (unsigned short)3539, (unsigned short)3540, (unsigned short)3552, (unsigned short)3553, (unsigned short)3556, (unsigned short)3559, (unsigned short)3561, (unsigned short)3562, (unsigned short)3563, (unsigned short)3573, (unsigned short)3575, (unsigned short)3576, (unsigned short)3578, (unsigned short)3579, (unsigned short)3580, (unsigned short)3581, (unsigned short)3591, (unsigned short)3592, (unsigned short)3593, (unsigned short)3594, (unsigned short)3595, (unsigned short)3596, (unsigned short)3600, (unsigned short)3601, (unsigned short)3609, (unsigned short)3611, (unsigned short)3612, (unsigned short)3614, (unsigned short)3616, (unsigned short)3620, (unsigned short)3621, (unsigned short)3622, (unsigned short)3623, (unsigned short)3624, (unsigned short)3628, (unsigned short)3629, (unsigned short)3630, (unsigned short)3632, (unsigned short)3637, (unsigned short)3638, (unsigned short)3639, (unsigned short)3643, (unsigned short)3644, (unsigned short)3645, (unsigned short)3649, (unsigned short)3653, (unsigned short)3654, (unsigned short)3655, (unsigned short)3659, (unsigned short)3660, (unsigned short)3664, (unsigned short)3665, (unsigned short)3669, (unsigned short)3670, (unsigned short)3671, (unsigned short)3672, (unsigned short)3676, (unsigned short)3680, (unsigned short)3684, (unsigned short)3688
+(unsigned short)0, (unsigned short)278, (unsigned short)278, (unsigned short)307, (unsigned short)366, (unsigned short)367, (unsigned short)467, (unsigned short)471, (unsigned short)474, (unsigned short)475, (unsigned short)476, (unsigned short)525, (unsigned short)527, (unsigned short)532, (unsigned short)537, (unsigned short)542, (unsigned short)544, (unsigned short)549, (unsigned short)551, (unsigned short)556, (unsigned short)558, (unsigned short)563, (unsigned short)565, (unsigned short)567, (unsigned short)569, (unsigned short)571, (unsigned short)575, (unsigned short)580, (unsigned short)582, (unsigned short)584, (unsigned short)586, (unsigned short)588, (unsigned short)594, (unsigned short)596, (unsigned short)601, (unsigned short)606, (unsigned short)611, (unsigned short)613, (unsigned short)615, (unsigned short)620, (unsigned short)621, (unsigned short)625, (unsigned short)626, (unsigned short)637, (unsigned short)641, (unsigned short)642, (unsigned short)644, (unsigned short)649, (unsigned short)650, (unsigned short)652, (unsigned short)655, (unsigned short)667, (unsigned short)678, (unsigned short)697, (unsigned short)699, (unsigned short)704, (unsigned short)705, (unsigned short)706, (unsigned short)707, (unsigned short)708, (unsigned short)709, (unsigned short)710, (unsigned short)711, (unsigned short)712, (unsigned short)716, (unsigned short)717, (unsigned short)718, (unsigned short)719, (unsigned short)723, (unsigned short)724, (unsigned short)725, (unsigned short)726, (unsigned short)727, (unsigned short)728, (unsigned short)729, (unsigned short)733, (unsigned short)735, (unsigned short)740, (unsigned short)742, (unsigned short)744, (unsigned short)746, (unsigned short)748, (unsigned short)778, (unsigned short)780, (unsigned short)785, (unsigned short)787, (unsigned short)789, (unsigned short)791, (unsigned short)793, (unsigned short)822, (unsigned short)824, (unsigned short)826, (unsigned short)831, (unsigned short)833, (unsigned short)838, (unsigned short)840, (unsigned short)844, (unsigned short)846, (unsigned short)848, (unsigned short)850, (unsigned short)855, (unsigned short)858, (unsigned short)861, (unsigned short)864, (unsigned short)929, (unsigned short)931, (unsigned short)936, (unsigned short)938, (unsigned short)940, (unsigned short)942, (unsigned short)944, (unsigned short)975, (unsigned short)979, (unsigned short)980, (unsigned short)981, (unsigned short)985, (unsigned short)986, (unsigned short)987, (unsigned short)991, (unsigned short)992, (unsigned short)993, (unsigned short)994, (unsigned short)998, (unsigned short)1001, (unsigned short)1004, (unsigned short)1007, (unsigned short)1010, (unsigned short)1015, (unsigned short)1016, (unsigned short)1018, (unsigned short)1020, (unsigned short)1022, (unsigned short)1024, (unsigned short)1029, (unsigned short)1033, (unsigned short)1036, (unsigned short)1039, (unsigned short)1042, (unsigned short)1045, (unsigned short)1050, (unsigned short)1051, (unsigned short)1053, (unsigned short)1058, (unsigned short)1062, (unsigned short)1064, (unsigned short)1069, (unsigned short)1071, (unsigned short)1076, (unsigned short)1078, (unsigned short)1083, (unsigned short)1088, (unsigned short)1090, (unsigned short)1095, (unsigned short)1097, (unsigned short)1099, (unsigned short)1101, (unsigned short)1106, (unsigned short)1108, (unsigned short)1110, (unsigned short)1112, (unsigned short)1117, (unsigned short)1118, (unsigned short)1119, (unsigned short)1120, (unsigned short)1121, (unsigned short)1122, (unsigned short)1123, (unsigned short)1124, (unsigned short)1125, (unsigned short)1126, (unsigned short)1127, (unsigned short)1129, (unsigned short)1130, (unsigned short)1132, (unsigned short)1136, (unsigned short)1139, (unsigned short)1140, (unsigned short)1141, (unsigned short)1142, (unsigned short)1143, (unsigned short)1144, (unsigned short)1145, (unsigned short)1146, (unsigned short)1147, (unsigned short)1148, (unsigned short)1149, (unsigned short)1150, (unsigned short)1151, (unsigned short)1152, (unsigned short)1154, (unsigned short)1155, (unsigned short)1159, (unsigned short)1160, (unsigned short)1161, (unsigned short)1165, (unsigned short)1169, (unsigned short)1170, (unsigned short)1171, (unsigned short)1175, (unsigned short)1176, (unsigned short)1177, (unsigned short)1178, (unsigned short)1179, (unsigned short)1183, (unsigned short)1184, (unsigned short)1185, (unsigned short)1189, (unsigned short)1193, (unsigned short)1194, (unsigned short)1195, (unsigned short)1196, (unsigned short)1197, (unsigned short)1198, (unsigned short)1199, (unsigned short)1200, (unsigned short)1204, (unsigned short)1208, (unsigned short)1209, (unsigned short)1213, (unsigned short)1217, (unsigned short)1218, (unsigned short)1222, (unsigned short)1223, (unsigned short)1224, (unsigned short)1228, (unsigned short)1229, (unsigned short)1233, (unsigned short)1234, (unsigned short)1235, (unsigned short)1236, (unsigned short)1237, (unsigned short)1238, (unsigned short)1239, (unsigned short)1251, (unsigned short)1263, (unsigned short)1278, (unsigned short)1279, (unsigned short)1283, (unsigned short)1291, (unsigned short)1292, (unsigned short)1300, (unsigned short)1301, (unsigned short)1303, (unsigned short)1304, (unsigned short)1313, (unsigned short)1314, (unsigned short)1318, (unsigned short)1325, (unsigned short)1332, (unsigned short)1338, (unsigned short)1345, (unsigned short)1351, (unsigned short)1360, (unsigned short)1367, (unsigned short)1373, (unsigned short)1379, (unsigned short)1385, (unsigned short)1391, (unsigned short)1397, (unsigned short)1408, (unsigned short)1413, (unsigned short)1414, (unsigned short)1419, (unsigned short)1420, (unsigned short)1421, (unsigned short)1425, (unsigned short)1426, (unsigned short)1427, (unsigned short)1428, (unsigned short)1429, (unsigned short)1430, (unsigned short)1431, (unsigned short)1432, (unsigned short)1433, (unsigned short)1434, (unsigned short)1435, (unsigned short)1436, (unsigned short)1437, (unsigned short)1438, (unsigned short)1439, (unsigned short)1440, (unsigned short)1441, (unsigned short)1442, (unsigned short)1443, (unsigned short)1444, (unsigned short)1445, (unsigned short)1446, (unsigned short)1447, (unsigned short)1448, (unsigned short)1449, (unsigned short)1450, (unsigned short)1451, (unsigned short)1452, (unsigned short)1453, (unsigned short)1455, (unsigned short)1456, (unsigned short)1457, (unsigned short)1458, (unsigned short)1459, (unsigned short)1461, (unsigned short)1465, (unsigned short)1469, (unsigned short)1473, (unsigned short)1474, (unsigned short)1478, (unsigned short)1480, (unsigned short)1481, (unsigned short)1482, (unsigned short)1483, (unsigned short)1484, (unsigned short)1485, (unsigned short)1486, (unsigned short)1487, (unsigned short)1488, (unsigned short)1490, (unsigned short)1491, (unsigned short)1492, (unsigned short)1493, (unsigned short)1494, (unsigned short)1495, (unsigned short)1496, (unsigned short)1497, (unsigned short)1501, (unsigned short)1503, (unsigned short)1504, (unsigned short)1505, (unsigned short)1506, (unsigned short)1507, (unsigned short)1508, (unsigned short)1509, (unsigned short)1510, (unsigned short)1511, (unsigned short)1513, (unsigned short)1514, (unsigned short)1515, (unsigned short)1516, (unsigned short)1517, (unsigned short)1518, (unsigned short)1519, (unsigned short)1520, (unsigned short)1524, (unsigned short)1525, (unsigned short)1526, (unsigned short)1527, (unsigned short)1531, (unsigned short)1532, (unsigned short)1533, (unsigned short)1534, (unsigned short)1535, (unsigned short)1539, (unsigned short)1540, (unsigned short)1541, (unsigned short)1542, (unsigned short)1543, (unsigned short)1544, (unsigned short)1545, (unsigned short)1546, (unsigned short)1547, (unsigned short)1549, (unsigned short)1550, (unsigned short)1551, (unsigned short)1555, (unsigned short)1556, (unsigned short)1560, (unsigned short)1561, (unsigned short)1565, (unsigned short)1566, (unsigned short)1567, (unsigned short)1568, (unsigned short)1569, (unsigned short)1570, (unsigned short)1571, (unsigned short)1572, (unsigned short)1576, (unsigned short)1577, (unsigned short)1581, (unsigned short)1582, (unsigned short)1583, (unsigned short)1584, (unsigned short)1585, (unsigned short)1586, (unsigned short)1587, (unsigned short)1591, (unsigned short)1592, (unsigned short)1593, (unsigned short)1594, (unsigned short)1595, (unsigned short)1599, (unsigned short)1600, (unsigned short)1601, (unsigned short)1602, (unsigned short)1603, (unsigned short)1607, (unsigned short)1615, (unsigned short)1616, (unsigned short)1617, (unsigned short)1618, (unsigned short)1619, (unsigned short)1620, (unsigned short)1621, (unsigned short)1622, (unsigned short)1623, (unsigned short)1627, (unsigned short)1628, (unsigned short)1629, (unsigned short)1630, (unsigned short)1631, (unsigned short)1633, (unsigned short)1634, (unsigned short)1635, (unsigned short)1636, (unsigned short)1640, (unsigned short)1641, (unsigned short)1642, (unsigned short)1644, (unsigned short)1645, (unsigned short)1649, (unsigned short)1650, (unsigned short)1651, (unsigned short)1653, (unsigned short)1654, (unsigned short)1658, (unsigned short)1659, (unsigned short)1660, (unsigned short)1662, (unsigned short)1663, (unsigned short)1667, (unsigned short)1668, (unsigned short)1669, (unsigned short)1673, (unsigned short)1674, (unsigned short)1675, (unsigned short)1679, (unsigned short)1680, (unsigned short)1681, (unsigned short)1682, (unsigned short)1683, (unsigned short)1685, (unsigned short)1686, (unsigned short)1687, (unsigned short)1688, (unsigned short)1690, (unsigned short)1691, (unsigned short)1692, (unsigned short)1693, (unsigned short)1695, (unsigned short)1696, (unsigned short)1697, (unsigned short)1698, (unsigned short)1702, (unsigned short)1703, (unsigned short)1704, (unsigned short)1705, (unsigned short)1706, (unsigned short)1708, (unsigned short)1709, (unsigned short)1710, (unsigned short)1711, (unsigned short)1715, (unsigned short)1716, (unsigned short)1717, (unsigned short)1718, (unsigned short)1719, (unsigned short)1720, (unsigned short)1721, (unsigned short)1722, (unsigned short)1723, (unsigned short)1724, (unsigned short)1725, (unsigned short)1729, (unsigned short)1730, (unsigned short)1731, (unsigned short)1732, (unsigned short)1736, (unsigned short)1737, (unsigned short)1738, (unsigned short)1742, (unsigned short)1743, (unsigned short)1744, (unsigned short)1745, (unsigned short)1747, (unsigned short)1748, (unsigned short)1750, (unsigned short)1751, (unsigned short)1756, (unsigned short)1758, (unsigned short)1763, (unsigned short)1767, (unsigned short)1768, (unsigned short)1769, (unsigned short)1771, (unsigned short)1772, (unsigned short)1774, (unsigned short)1775, (unsigned short)1780, (unsigned short)1782, (unsigned short)1787, (unsigned short)1791, (unsigned short)1792, (unsigned short)1793, (unsigned short)1794, (unsigned short)1795, (unsigned short)1796, (unsigned short)1797, (unsigned short)1798, (unsigned short)1799, (unsigned short)1800, (unsigned short)1801, (unsigned short)1802, (unsigned short)1806, (unsigned short)1807, (unsigned short)1811, (unsigned short)1812, (unsigned short)1817, (unsigned short)1818, (unsigned short)1822, (unsigned short)1823, (unsigned short)1824, (unsigned short)1825, (unsigned short)1826, (unsigned short)1827, (unsigned short)1828, (unsigned short)1832, (unsigned short)1833, (unsigned short)1837, (unsigned short)1841, (unsigned short)1845, (unsigned short)1852, (unsigned short)1853, (unsigned short)1854, (unsigned short)1855, (unsigned short)1856, (unsigned short)1860, (unsigned short)1861, (unsigned short)1912, (unsigned short)1913, (unsigned short)1914, (unsigned short)1915, (unsigned short)1916, (unsigned short)1917, (unsigned short)1918, (unsigned short)1922, (unsigned short)1923, (unsigned short)1924, (unsigned short)1925, (unsigned short)1926, (unsigned short)1933, (unsigned short)1934, (unsigned short)1935, (unsigned short)1936, (unsigned short)1940, (unsigned short)1941, (unsigned short)1942, (unsigned short)1944, (unsigned short)1945, (unsigned short)1949, (unsigned short)1950, (unsigned short)1951, (unsigned short)1953, (unsigned short)1954, (unsigned short)1958, (unsigned short)1959, (unsigned short)1960, (unsigned short)1962, (unsigned short)1963, (unsigned short)1967, (unsigned short)1968, (unsigned short)1969, (unsigned short)1973, (unsigned short)1974, (unsigned short)1975, (unsigned short)1979, (unsigned short)1980, (unsigned short)1981, (unsigned short)1982, (unsigned short)1983, (unsigned short)1984, (unsigned short)1985, (unsigned short)1986, (unsigned short)1987, (unsigned short)1989, (unsigned short)1990, (unsigned short)1991, (unsigned short)1992, (unsigned short)1993, (unsigned short)1994, (unsigned short)1995, (unsigned short)1996, (unsigned short)1998, (unsigned short)1999, (unsigned short)2000, (unsigned short)2001, (unsigned short)2003, (unsigned short)2004, (unsigned short)2005, (unsigned short)2006, (unsigned short)2008, (unsigned short)2015, (unsigned short)2019, (unsigned short)2023, (unsigned short)2030, (unsigned short)2031, (unsigned short)2035, (unsigned short)2040, (unsigned short)2041, (unsigned short)2045, (unsigned short)2046, (unsigned short)2047, (unsigned short)2048, (unsigned short)2054, (unsigned short)2055, (unsigned short)2056, (unsigned short)2060, (unsigned short)2061, (unsigned short)2062, (unsigned short)2063, (unsigned short)2067, (unsigned short)2069, (unsigned short)2073, (unsigned short)2074, (unsigned short)2075, (unsigned short)2076, (unsigned short)2077, (unsigned short)2081, (unsigned short)2082, (unsigned short)2083, (unsigned short)2084, (unsigned short)2085, (unsigned short)2089, (unsigned short)2090, (unsigned short)2091, (unsigned short)2095, (unsigned short)2096, (unsigned short)2097, (unsigned short)2101, (unsigned short)2105, (unsigned short)2106, (unsigned short)2110, (unsigned short)2111, (unsigned short)2112, (unsigned short)2116, (unsigned short)2117, (unsigned short)2119, (unsigned short)2120, (unsigned short)2121, (unsigned short)2122, (unsigned short)2123, (unsigned short)2125, (unsigned short)2126, (unsigned short)2127, (unsigned short)2128, (unsigned short)2129, (unsigned short)2133, (unsigned short)2134, (unsigned short)2138, (unsigned short)2139, (unsigned short)2140, (unsigned short)2144, (unsigned short)2145, (unsigned short)2146, (unsigned short)2147, (unsigned short)2148, (unsigned short)2149, (unsigned short)2150, (unsigned short)2151, (unsigned short)2152, (unsigned short)2154, (unsigned short)2155, (unsigned short)2157, (unsigned short)2158, (unsigned short)2159, (unsigned short)2160, (unsigned short)2161, (unsigned short)2165, (unsigned short)2166, (unsigned short)2170, (unsigned short)2171, (unsigned short)2175, (unsigned short)2179, (unsigned short)2180, (unsigned short)2181, (unsigned short)2186, (unsigned short)2187, (unsigned short)2191, (unsigned short)2192, (unsigned short)2193, (unsigned short)2194, (unsigned short)2195, (unsigned short)2196, (unsigned short)2197, (unsigned short)2198, (unsigned short)2199, (unsigned short)2200, (unsigned short)2201, (unsigned short)2202, (unsigned short)2203, (unsigned short)2204, (unsigned short)2205, (unsigned short)2206, (unsigned short)2207, (unsigned short)2208, (unsigned short)2209, (unsigned short)2210, (unsigned short)2211, (unsigned short)2212, (unsigned short)2216, (unsigned short)2217, (unsigned short)2218, (unsigned short)2219, (unsigned short)2220, (unsigned short)2221, (unsigned short)2222, (unsigned short)2223, (unsigned short)2224, (unsigned short)2225, (unsigned short)2226, (unsigned short)2227, (unsigned short)2228, (unsigned short)2229, (unsigned short)2230, (unsigned short)2231, (unsigned short)2232, (unsigned short)2233, (unsigned short)2234, (unsigned short)2235, (unsigned short)2241, (unsigned short)2243, (unsigned short)2245, (unsigned short)2247, (unsigned short)2249, (unsigned short)2251, (unsigned short)2253, (unsigned short)2255, (unsigned short)2257, (unsigned short)2259, (unsigned short)2264, (unsigned short)2265, (unsigned short)2269, (unsigned short)2275, (unsigned short)2281, (unsigned short)2288, (unsigned short)2298, (unsigned short)2299, (unsigned short)2300, (unsigned short)2301, (unsigned short)2305, (unsigned short)2306, (unsigned short)2307, (unsigned short)2309, (unsigned short)2310, (unsigned short)2311, (unsigned short)2313, (unsigned short)2314, (unsigned short)2315, (unsigned short)2319, (unsigned short)2323, (unsigned short)2331, (unsigned short)2340, (unsigned short)2349, (unsigned short)2350, (unsigned short)2352, (unsigned short)2353, (unsigned short)2357, (unsigned short)2364, (unsigned short)2371, (unsigned short)2374, (unsigned short)2387, (unsigned short)2401, (unsigned short)2404, (unsigned short)2406, (unsigned short)2408, (unsigned short)2413, (unsigned short)2414, (unsigned short)2418, (unsigned short)2419, (unsigned short)2420, (unsigned short)2421, (unsigned short)2422, (unsigned short)2423, (unsigned short)2424, (unsigned short)2425, (unsigned short)2429, (unsigned short)2430, (unsigned short)2431, (unsigned short)2432, (unsigned short)2433, (unsigned short)2434, (unsigned short)2435, (unsigned short)2436, (unsigned short)2437, (unsigned short)2438, (unsigned short)2442, (unsigned short)2443, (unsigned short)2444, (unsigned short)2445, (unsigned short)2446, (unsigned short)2447, (unsigned short)2448, (unsigned short)2449, (unsigned short)2450, (unsigned short)2451, (unsigned short)2455, (unsigned short)2456, (unsigned short)2457, (unsigned short)2458, (unsigned short)2459, (unsigned short)2460, (unsigned short)2461, (unsigned short)2462, (unsigned short)2463, (unsigned short)2464, (unsigned short)2465, (unsigned short)2466, (unsigned short)2470, (unsigned short)2471, (unsigned short)2472, (unsigned short)2473, (unsigned short)2474, (unsigned short)2475, (unsigned short)2476, (unsigned short)2477, (unsigned short)2478, (unsigned short)2479, (unsigned short)2483, (unsigned short)2484, (unsigned short)2488, (unsigned short)2489, (unsigned short)2490, (unsigned short)2491, (unsigned short)2492, (unsigned short)2493, (unsigned short)2494, (unsigned short)2495, (unsigned short)2496, (unsigned short)2498, (unsigned short)2500, (unsigned short)2518, (unsigned short)2536, (unsigned short)2537, (unsigned short)2541, (unsigned short)2542, (unsigned short)2543, (unsigned short)2544, (unsigned short)2545, (unsigned short)2546, (unsigned short)2547, (unsigned short)2548, (unsigned short)2549, (unsigned short)2567, (unsigned short)2584, (unsigned short)2585, (unsigned short)2586, (unsigned short)2587, (unsigned short)2588, (unsigned short)2589, (unsigned short)2590, (unsigned short)2591, (unsigned short)2592, (unsigned short)2593, (unsigned short)2594, (unsigned short)2595, (unsigned short)2596, (unsigned short)2614, (unsigned short)2631, (unsigned short)2632, (unsigned short)2633, (unsigned short)2634, (unsigned short)2635, (unsigned short)2636, (unsigned short)2637, (unsigned short)2638, (unsigned short)2639, (unsigned short)2640, (unsigned short)2641, (unsigned short)2642, (unsigned short)2643, (unsigned short)2661, (unsigned short)2678, (unsigned short)2679, (unsigned short)2683, (unsigned short)2684, (unsigned short)2685, (unsigned short)2686, (unsigned short)2687, (unsigned short)2691, (unsigned short)2692, (unsigned short)2699, (unsigned short)2701, (unsigned short)2710, (unsigned short)2719, (unsigned short)2728, (unsigned short)2737, (unsigned short)2738, (unsigned short)2739, (unsigned short)2740, (unsigned short)2744, (unsigned short)2745, (unsigned short)2746, (unsigned short)2747, (unsigned short)2748, (unsigned short)2749, (unsigned short)2750, (unsigned short)2751, (unsigned short)2752, (unsigned short)2756, (unsigned short)2760, (unsigned short)2761, (unsigned short)2762, (unsigned short)2763, (unsigned short)2764, (unsigned short)2769, (unsigned short)2778, (unsigned short)2787, (unsigned short)2796, (unsigned short)2810, (unsigned short)2811, (unsigned short)2816, (unsigned short)2820, (unsigned short)2821, (unsigned short)2822, (unsigned short)2823, (unsigned short)2824, (unsigned short)2829, (unsigned short)2838, (unsigned short)2847, (unsigned short)2856, (unsigned short)2870, (unsigned short)2871, (unsigned short)2920, (unsigned short)2921, (unsigned short)2922, (unsigned short)2923, (unsigned short)2935, (unsigned short)2936, (unsigned short)2937, (unsigned short)2942, (unsigned short)2943, (unsigned short)2944, (unsigned short)2945, (unsigned short)2946, (unsigned short)2950, (unsigned short)2951, (unsigned short)2955, (unsigned short)2956, (unsigned short)2957, (unsigned short)2961, (unsigned short)2962, (unsigned short)2966, (unsigned short)2967, (unsigned short)2968, (unsigned short)2969, (unsigned short)2970, (unsigned short)2971, (unsigned short)2972, (unsigned short)2973, (unsigned short)2974, (unsigned short)2975, (unsigned short)2976, (unsigned short)2977, (unsigned short)2978, (unsigned short)2979, (unsigned short)2980, (unsigned short)2981, (unsigned short)2985, (unsigned short)2986, (unsigned short)2987, (unsigned short)2988, (unsigned short)2989, (unsigned short)2990, (unsigned short)2991, (unsigned short)2992, (unsigned short)2996, (unsigned short)2997, (unsigned short)2998, (unsigned short)2999, (unsigned short)3003, (unsigned short)3004, (unsigned short)3005, (unsigned short)3006, (unsigned short)3007, (unsigned short)3011, (unsigned short)3012, (unsigned short)3013, (unsigned short)3014, (unsigned short)3015, (unsigned short)3019, (unsigned short)3020, (unsigned short)3022, (unsigned short)3024, (unsigned short)3026, (unsigned short)3031, (unsigned short)3032, (unsigned short)3034, (unsigned short)3036, (unsigned short)3041, (unsigned short)3042, (unsigned short)3043, (unsigned short)3044, (unsigned short)3048, (unsigned short)3049, (unsigned short)3050, (unsigned short)3051, (unsigned short)3055, (unsigned short)3056, (unsigned short)3057, (unsigned short)3058, (unsigned short)3062, (unsigned short)3063, (unsigned short)3064, (unsigned short)3065, (unsigned short)3069, (unsigned short)3070, (unsigned short)3071, (unsigned short)3072, (unsigned short)3076, (unsigned short)3077, (unsigned short)3078, (unsigned short)3094, (unsigned short)3095, (unsigned short)3096, (unsigned short)3097, (unsigned short)3110, (unsigned short)3126, (unsigned short)3127, (unsigned short)3132, (unsigned short)3133, (unsigned short)3137, (unsigned short)3138, (unsigned short)3139, (unsigned short)3140, (unsigned short)3143, (unsigned short)3144, (unsigned short)3148, (unsigned short)3149, (unsigned short)3150, (unsigned short)3154, (unsigned short)3158, (unsigned short)3162, (unsigned short)3163, (unsigned short)3164, (unsigned short)3165, (unsigned short)3166, (unsigned short)3175, (unsigned short)3184, (unsigned short)3185, (unsigned short)3186, (unsigned short)3187, (unsigned short)3191, (unsigned short)3192, (unsigned short)3196, (unsigned short)3197, (unsigned short)3202, (unsigned short)3203, (unsigned short)3204, (unsigned short)3205, (unsigned short)3206, (unsigned short)3207, (unsigned short)3226, (unsigned short)3227, (unsigned short)3231, (unsigned short)3232, (unsigned short)3233, (unsigned short)3234, (unsigned short)3235, (unsigned short)3236, (unsigned short)3238, (unsigned short)3239, (unsigned short)3240, (unsigned short)3241, (unsigned short)3245, (unsigned short)3246, (unsigned short)3247, (unsigned short)3248, (unsigned short)3249, (unsigned short)3251, (unsigned short)3252, (unsigned short)3253, (unsigned short)3257, (unsigned short)3258, (unsigned short)3259, (unsigned short)3260, (unsigned short)3261, (unsigned short)3262, (unsigned short)3266, (unsigned short)3267, (unsigned short)3268, (unsigned short)3273, (unsigned short)3274, (unsigned short)3275, (unsigned short)3276, (unsigned short)3277, (unsigned short)3278, (unsigned short)3279, (unsigned short)3280, (unsigned short)3281, (unsigned short)3282, (unsigned short)3283, (unsigned short)3284, (unsigned short)3285, (unsigned short)3289, (unsigned short)3290, (unsigned short)3291, (unsigned short)3292, (unsigned short)3293, (unsigned short)3294, (unsigned short)3295, (unsigned short)3299, (unsigned short)3300, (unsigned short)3304, (unsigned short)3305, (unsigned short)3306, (unsigned short)3310, (unsigned short)3311, (unsigned short)3312, (unsigned short)3313, (unsigned short)3315, (unsigned short)3316, (unsigned short)3317, (unsigned short)3319, (unsigned short)3320, (unsigned short)3321, (unsigned short)3322, (unsigned short)3324, (unsigned short)3325, (unsigned short)3326, (unsigned short)3330, (unsigned short)3331, (unsigned short)3332, (unsigned short)3333, (unsigned short)3334, (unsigned short)3338, (unsigned short)3339, (unsigned short)3340, (unsigned short)3341, (unsigned short)3342, (unsigned short)3343, (unsigned short)3344, (unsigned short)3348, (unsigned short)3349, (unsigned short)3350, (unsigned short)3354, (unsigned short)3355, (unsigned short)3359, (unsigned short)3360, (unsigned short)3361, (unsigned short)3362, (unsigned short)3366, (unsigned short)3367, (unsigned short)3368, (unsigned short)3370, (unsigned short)3371, (unsigned short)3372, (unsigned short)3376, (unsigned short)3380, (unsigned short)3381, (unsigned short)3383, (unsigned short)3384, (unsigned short)3385, (unsigned short)3389, (unsigned short)3390, (unsigned short)3391, (unsigned short)3392, (unsigned short)3396, (unsigned short)3397, (unsigned short)3401, (unsigned short)3402, (unsigned short)3403, (unsigned short)3407, (unsigned short)3408, (unsigned short)3409, (unsigned short)3410, (unsigned short)3411, (unsigned short)3412, (unsigned short)3413, (unsigned short)3417, (unsigned short)3418, (unsigned short)3419, (unsigned short)3420, (unsigned short)3424, (unsigned short)3425, (unsigned short)3426, (unsigned short)3427, (unsigned short)3431, (unsigned short)3435, (unsigned short)3439, (unsigned short)3441, (unsigned short)3444, (unsigned short)3450, (unsigned short)3451, (unsigned short)3452, (unsigned short)3456, (unsigned short)3457, (unsigned short)3458, (unsigned short)3459, (unsigned short)3460, (unsigned short)3461, (unsigned short)3465, (unsigned short)3466, (unsigned short)3470, (unsigned short)3471, (unsigned short)3472, (unsigned short)3474, (unsigned short)3475, (unsigned short)3477, (unsigned short)3478, (unsigned short)3479, (unsigned short)3480, (unsigned short)3481, (unsigned short)3483, (unsigned short)3484, (unsigned short)3488, (unsigned short)3489, (unsigned short)3490, (unsigned short)3491, (unsigned short)3495, (unsigned short)3496, (unsigned short)3497, (unsigned short)3498, (unsigned short)3500, (unsigned short)3501, (unsigned short)3502, (unsigned short)3503, (unsigned short)3504, (unsigned short)3505, (unsigned short)3506, (unsigned short)3509, (unsigned short)3513, (unsigned short)3514, (unsigned short)3518, (unsigned short)3519, (unsigned short)3523, (unsigned short)3524, (unsigned short)3525, (unsigned short)3526, (unsigned short)3527, (unsigned short)3528, (unsigned short)3529, (unsigned short)3530, (unsigned short)3534, (unsigned short)3535, (unsigned short)3536, (unsigned short)3537, (unsigned short)3543, (unsigned short)3544, (unsigned short)3546, (unsigned short)3547, (unsigned short)3550, (unsigned short)3551, (unsigned short)3554, (unsigned short)3555, (unsigned short)3556, (unsigned short)3557, (unsigned short)3558, (unsigned short)3559, (unsigned short)3563, (unsigned short)3564, (unsigned short)3576, (unsigned short)3577, (unsigned short)3580, (unsigned short)3583, (unsigned short)3585, (unsigned short)3586, (unsigned short)3587, (unsigned short)3597, (unsigned short)3599, (unsigned short)3600, (unsigned short)3602, (unsigned short)3603, (unsigned short)3604, (unsigned short)3605, (unsigned short)3615, (unsigned short)3616, (unsigned short)3617, (unsigned short)3618, (unsigned short)3619, (unsigned short)3620, (unsigned short)3624, (unsigned short)3625, (unsigned short)3633, (unsigned short)3635, (unsigned short)3636, (unsigned short)3638, (unsigned short)3640, (unsigned short)3644, (unsigned short)3645, (unsigned short)3646, (unsigned short)3647, (unsigned short)3648, (unsigned short)3652, (unsigned short)3653, (unsigned short)3654, (unsigned short)3656, (unsigned short)3661, (unsigned short)3662, (unsigned short)3663, (unsigned short)3667, (unsigned short)3668, (unsigned short)3669, (unsigned short)3673, (unsigned short)3677, (unsigned short)3678, (unsigned short)3679, (unsigned short)3683, (unsigned short)3684, (unsigned short)3688, (unsigned short)3689, (unsigned short)3693, (unsigned short)3694, (unsigned short)3695, (unsigned short)3696, (unsigned short)3700, (unsigned short)3704, (unsigned short)3708, (unsigned short)3712
 };
 
 static const char * const yytname[] = 
@@ -9599,19 +9599,37 @@ yyval.declarator = MkDeclaratorArray(decl, yyvsp[(3) - (4)].exp);
 break;
 case 888:
 {
-yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (4)].specifier, yyvsp[(3) - (4)].exp);
+struct Declarator * decl;
+char * colon = __ecereFunction___ecereNameSpace__ecere__sys__RSearchString(yyvsp[(1) - (4)].specifier->name, "::", strlen(yyvsp[(1) - (4)].specifier->name), 0x1, 0x0);
+char * s = colon ? colon + 2 : yyvsp[(1) - (4)].specifier->name;
+
+decl = MkDeclaratorIdentifier(MkIdentifier(s));
+FreeSpecifier(yyvsp[(1) - (4)].specifier);
+yyval.declarator = MkDeclaratorArray(decl, yyvsp[(3) - (4)].exp);
 ;
 }
 break;
 case 889:
 {
-yyval.declarator = MkDeclaratorEnumArray(yyvsp[(1) - (4)].specifier, yyvsp[(3) - (4)].specifier);
+struct Declarator * decl;
+char * colon = __ecereFunction___ecereNameSpace__ecere__sys__RSearchString(yyvsp[(1) - (4)].specifier->name, "::", strlen(yyvsp[(1) - (4)].specifier->name), 0x1, 0x0);
+char * s = colon ? colon + 2 : yyvsp[(1) - (4)].specifier->name;
+
+decl = MkDeclaratorIdentifier(MkIdentifier(s));
+FreeSpecifier(yyvsp[(1) - (4)].specifier);
+yyval.declarator = MkDeclaratorEnumArray(decl, yyvsp[(3) - (4)].specifier);
 ;
 }
 break;
 case 890:
 {
-yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (3)].specifier, (((void *)0)));
+struct Declarator * decl;
+char * colon = __ecereFunction___ecereNameSpace__ecere__sys__RSearchString(yyvsp[(1) - (3)].specifier->name, "::", strlen(yyvsp[(1) - (3)].specifier->name), 0x1, 0x0);
+char * s = colon ? colon + 2 : yyvsp[(1) - (3)].specifier->name;
+
+decl = MkDeclaratorIdentifier(MkIdentifier(s));
+FreeSpecifier(yyvsp[(1) - (3)].specifier);
+yyval.declarator = MkDeclaratorEnumArray(decl, (((void *)0)));
 ;
 }
 break;
index 1d6a21e..21ce91c 100644 (file)
@@ -608,12 +608,44 @@ InitDeclarator MkInitDeclarator(Declarator declarator, Initializer initializer)
 
 public TypeName MkTypeName(OldList qualifiers, Declarator declarator)
 {
+   if(qualifiers != null)
+   {
+      Declarator parentDecl = declarator;
+      Declarator decl = declarator;
+      while(decl && decl.type == arrayDeclarator)
+         decl = decl.declarator;
+      if(decl && decl.type == identifierDeclarator && decl.identifier.string && CheckType(decl.identifier.string) == TYPE_NAME)
+      {
+         Specifier spec;
+         // Check if we're missing a real type specifier here
+         for(spec = qualifiers.first; spec; spec = spec.next)
+         {
+            if(spec.type == baseSpecifier)
+            {
+               if(spec.specifier == CONST || spec.specifier == VOLATILE ||
+                  spec.specifier == EXTERN || spec.specifier == STATIC ||
+                  spec.specifier == AUTO || spec.specifier == REGISTER)
+                  continue;
+               break;
+            }
+            else if(spec.type != extendedSpecifier)
+               break;
+         }
+         if(!spec)
+         {
+            // This is actually a type
+            ListAdd(qualifiers, MkSpecifierName(decl.identifier.string));
+            decl.identifier.string = null;
+            FreeDeclarator(decl);
+            parentDecl.declarator = null;
+         }
+      }
+   }
    return { qualifiers = qualifiers, declarator = declarator };
 }
 
 public TypeName MkTypeNameGuessDecl(OldList qualifiers, Declarator declarator)
 {
-   TypeName typeName { qualifiers = qualifiers, declarator = declarator };
    if(qualifiers != null)
    {
       bool gotType = false;
@@ -636,7 +668,7 @@ public TypeName MkTypeNameGuessDecl(OldList qualifiers, Declarator declarator)
             }
             if(s)
             {
-               typeName.declarator = declarator = MkDeclaratorIdentifier(MkIdentifier(s));
+               declarator = MkDeclaratorIdentifier(MkIdentifier(s));
                qualifiers.Remove(spec);
                FreeSpecifier(spec);
                spec = null;
@@ -644,13 +676,25 @@ public TypeName MkTypeNameGuessDecl(OldList qualifiers, Declarator declarator)
          }
          if(spec && spec.type != extendedSpecifier)
          {
-            if(spec.type != baseSpecifier || (spec.specifier != UNSIGNED && spec.specifier != SIGNED && spec.specifier != LONG))
+            if(spec.type == baseSpecifier)
+            {
+               if(spec.specifier == CONST || spec.specifier == VOLATILE ||
+                  spec.specifier == EXTERN || spec.specifier == STATIC ||
+                  spec.specifier == AUTO || spec.specifier == REGISTER)
+                  continue;
+               else if(spec.specifier != UNSIGNED && spec.specifier != SIGNED && spec.specifier != LONG)
+                  gotFullType = true;
+               gotType = true;
+            }
+            else
+            {
                gotFullType = true;
-            gotType = true;
+               gotType = true;
+            }
          }
       }
    }
-   return typeName;
+   return { qualifiers = qualifiers, declarator = declarator };
 }
 
 public Identifier GetDeclId(Declarator decl)
@@ -1065,6 +1109,35 @@ Statement MkReturnStmt(OldList exp)
 
 FunctionDefinition MkFunction(OldList specifiers, Declarator declarator, OldList declarationList)
 {
+   _MkFunction(specifiers, declarator, declarationList, true);
+}
+
+FunctionDefinition _MkFunction(OldList specifiers, Declarator declarator, OldList declarationList, bool errorOnOmit)
+{
+   if(errorOnOmit)
+   {
+      Declarator funcDecl = GetFuncDecl(declarator);
+      if(funcDecl && funcDecl.function.parameters)
+      {
+         TypeName tn;
+         for(tn = funcDecl.function.parameters->first; tn; tn = tn.next)
+         {
+            if(tn.qualifiers || tn.declarator)
+            {
+               Identifier declID = tn.declarator ? GetDeclId(tn.declarator) : null;
+               if(!declID)
+               {
+                  // Check for (void)
+                  Specifier spec = tn.qualifiers ? tn.qualifiers->first : null;
+                  if(!tn.declarator && !tn.prev && !tn.next && spec && !spec.next && spec.type == baseSpecifier && spec.specifier == VOID);
+                  else
+                     Compiler_Error("parameter name omitted\n");
+                  break;
+               }
+            }
+         }
+      }
+   }
    return { specifiers = specifiers, declarator = declarator, declarations = declarationList };
 }
 
index 525b0a9..22a4a9e 100644 (file)
@@ -1312,50 +1312,50 @@ static const yytype_uint16 yyrline[] =
     2585,  2586,  2587,  2588,  2589,  2590,  2591,  2592,  2593,  2594,
     2595,  2596,  2614,  2631,  2632,  2633,  2634,  2635,  2636,  2637,
     2638,  2639,  2640,  2641,  2642,  2643,  2661,  2678,  2679,  2683,
-    2684,  2685,  2686,  2687,  2691,  2692,  2699,  2700,  2709,  2710,
-    2711,  2713,  2714,  2715,  2716,  2720,  2721,  2722,  2723,  2724,
-    2725,  2726,  2727,  2728,  2732,  2736,  2737,  2738,  2739,  2740,
-    2745,  2754,  2763,  2772,  2786,  2787,  2792,  2796,  2797,  2798,
-    2799,  2800,  2805,  2814,  2823,  2832,  2846,  2847,  2896,  2897,
-    2898,  2899,  2911,  2912,  2913,  2918,  2919,  2920,  2921,  2922,
-    2926,  2927,  2931,  2932,  2933,  2937,  2938,  2942,  2943,  2944,
-    2945,  2946,  2947,  2948,  2949,  2950,  2951,  2952,  2953,  2954,
-    2955,  2956,  2957,  2961,  2962,  2963,  2964,  2965,  2966,  2967,
-    2968,  2972,  2973,  2974,  2975,  2979,  2980,  2981,  2982,  2983,
-    2987,  2988,  2989,  2990,  2991,  2995,  2996,  2998,  3000,  3002,
-    3007,  3008,  3010,  3012,  3017,  3018,  3019,  3020,  3024,  3025,
-    3026,  3027,  3031,  3032,  3033,  3034,  3038,  3039,  3040,  3041,
-    3045,  3046,  3047,  3048,  3052,  3053,  3054,  3070,  3071,  3072,
-    3073,  3086,  3102,  3103,  3108,  3109,  3113,  3114,  3115,  3116,
-    3119,  3120,  3124,  3125,  3126,  3130,  3134,  3138,  3139,  3140,
-    3141,  3142,  3151,  3160,  3161,  3162,  3163,  3167,  3168,  3172,
-    3173,  3178,  3179,  3180,  3181,  3182,  3183,  3202,  3203,  3207,
-    3208,  3209,  3210,  3211,  3212,  3214,  3215,  3216,  3217,  3221,
-    3222,  3223,  3224,  3225,  3227,  3228,  3229,  3233,  3234,  3235,
-    3236,  3237,  3238,  3242,  3243,  3244,  3249,  3250,  3251,  3252,
-    3253,  3254,  3255,  3256,  3257,  3258,  3259,  3260,  3261,  3265,
-    3266,  3267,  3268,  3269,  3270,  3271,  3275,  3276,  3280,  3281,
-    3282,  3286,  3287,  3288,  3289,  3291,  3292,  3293,  3295,  3296,
-    3297,  3298,  3300,  3301,  3302,  3306,  3307,  3308,  3309,  3310,
-    3314,  3315,  3316,  3317,  3318,  3319,  3320,  3324,  3325,  3326,
-    3330,  3331,  3335,  3336,  3337,  3338,  3342,  3343,  3344,  3346,
-    3347,  3348,  3352,  3356,  3357,  3359,  3360,  3361,  3365,  3366,
-    3367,  3368,  3372,  3373,  3377,  3378,  3379,  3383,  3384,  3385,
-    3386,  3387,  3388,  3389,  3393,  3394,  3395,  3396,  3400,  3401,
-    3402,  3403,  3407,  3411,  3415,  3417,  3420,  3426,  3427,  3428,
-    3432,  3433,  3434,  3435,  3436,  3437,  3441,  3442,  3446,  3447,
-    3448,  3450,  3451,  3453,  3454,  3455,  3456,  3457,  3459,  3460,
-    3464,  3465,  3466,  3467,  3471,  3472,  3473,  3474,  3476,  3477,
-    3478,  3479,  3480,  3481,  3482,  3485,  3489,  3490,  3494,  3495,
-    3499,  3500,  3501,  3502,  3503,  3504,  3505,  3506,  3510,  3511,
-    3512,  3513,  3519,  3520,  3522,  3523,  3526,  3527,  3530,  3531,
-    3532,  3533,  3534,  3535,  3539,  3540,  3552,  3553,  3556,  3559,
-    3561,  3562,  3563,  3573,  3575,  3576,  3578,  3579,  3580,  3581,
-    3591,  3592,  3593,  3594,  3595,  3596,  3600,  3601,  3609,  3611,
-    3612,  3614,  3616,  3620,  3621,  3622,  3623,  3624,  3628,  3629,
-    3630,  3632,  3637,  3638,  3639,  3643,  3644,  3645,  3649,  3653,
-    3654,  3655,  3659,  3660,  3664,  3665,  3669,  3670,  3671,  3672,
-    3676,  3680,  3684,  3688
+    2684,  2685,  2686,  2687,  2691,  2692,  2699,  2701,  2710,  2719,
+    2728,  2737,  2738,  2739,  2740,  2744,  2745,  2746,  2747,  2748,
+    2749,  2750,  2751,  2752,  2756,  2760,  2761,  2762,  2763,  2764,
+    2769,  2778,  2787,  2796,  2810,  2811,  2816,  2820,  2821,  2822,
+    2823,  2824,  2829,  2838,  2847,  2856,  2870,  2871,  2920,  2921,
+    2922,  2923,  2935,  2936,  2937,  2942,  2943,  2944,  2945,  2946,
+    2950,  2951,  2955,  2956,  2957,  2961,  2962,  2966,  2967,  2968,
+    2969,  2970,  2971,  2972,  2973,  2974,  2975,  2976,  2977,  2978,
+    2979,  2980,  2981,  2985,  2986,  2987,  2988,  2989,  2990,  2991,
+    2992,  2996,  2997,  2998,  2999,  3003,  3004,  3005,  3006,  3007,
+    3011,  3012,  3013,  3014,  3015,  3019,  3020,  3022,  3024,  3026,
+    3031,  3032,  3034,  3036,  3041,  3042,  3043,  3044,  3048,  3049,
+    3050,  3051,  3055,  3056,  3057,  3058,  3062,  3063,  3064,  3065,
+    3069,  3070,  3071,  3072,  3076,  3077,  3078,  3094,  3095,  3096,
+    3097,  3110,  3126,  3127,  3132,  3133,  3137,  3138,  3139,  3140,
+    3143,  3144,  3148,  3149,  3150,  3154,  3158,  3162,  3163,  3164,
+    3165,  3166,  3175,  3184,  3185,  3186,  3187,  3191,  3192,  3196,
+    3197,  3202,  3203,  3204,  3205,  3206,  3207,  3226,  3227,  3231,
+    3232,  3233,  3234,  3235,  3236,  3238,  3239,  3240,  3241,  3245,
+    3246,  3247,  3248,  3249,  3251,  3252,  3253,  3257,  3258,  3259,
+    3260,  3261,  3262,  3266,  3267,  3268,  3273,  3274,  3275,  3276,
+    3277,  3278,  3279,  3280,  3281,  3282,  3283,  3284,  3285,  3289,
+    3290,  3291,  3292,  3293,  3294,  3295,  3299,  3300,  3304,  3305,
+    3306,  3310,  3311,  3312,  3313,  3315,  3316,  3317,  3319,  3320,
+    3321,  3322,  3324,  3325,  3326,  3330,  3331,  3332,  3333,  3334,
+    3338,  3339,  3340,  3341,  3342,  3343,  3344,  3348,  3349,  3350,
+    3354,  3355,  3359,  3360,  3361,  3362,  3366,  3367,  3368,  3370,
+    3371,  3372,  3376,  3380,  3381,  3383,  3384,  3385,  3389,  3390,
+    3391,  3392,  3396,  3397,  3401,  3402,  3403,  3407,  3408,  3409,
+    3410,  3411,  3412,  3413,  3417,  3418,  3419,  3420,  3424,  3425,
+    3426,  3427,  3431,  3435,  3439,  3441,  3444,  3450,  3451,  3452,
+    3456,  3457,  3458,  3459,  3460,  3461,  3465,  3466,  3470,  3471,
+    3472,  3474,  3475,  3477,  3478,  3479,  3480,  3481,  3483,  3484,
+    3488,  3489,  3490,  3491,  3495,  3496,  3497,  3498,  3500,  3501,
+    3502,  3503,  3504,  3505,  3506,  3509,  3513,  3514,  3518,  3519,
+    3523,  3524,  3525,  3526,  3527,  3528,  3529,  3530,  3534,  3535,
+    3536,  3537,  3543,  3544,  3546,  3547,  3550,  3551,  3554,  3555,
+    3556,  3557,  3558,  3559,  3563,  3564,  3576,  3577,  3580,  3583,
+    3585,  3586,  3587,  3597,  3599,  3600,  3602,  3603,  3604,  3605,
+    3615,  3616,  3617,  3618,  3619,  3620,  3624,  3625,  3633,  3635,
+    3636,  3638,  3640,  3644,  3645,  3646,  3647,  3648,  3652,  3653,
+    3654,  3656,  3661,  3662,  3663,  3667,  3668,  3669,  3673,  3677,
+    3678,  3679,  3683,  3684,  3688,  3689,  3693,  3694,  3695,  3696,
+    3700,  3704,  3708,  3712
 };
 #endif
 
@@ -19210,7 +19210,7 @@ yyreduce:
   case 887:
 
 /* Line 1464 of yacc.c  */
-#line 2701 "grammar.y"
+#line 2702 "grammar.y"
     {
          Declarator decl;
          char * colon = RSearchString((yyvsp[(1) - (4)].specifier).name, "::", strlen((yyvsp[(1) - (4)].specifier).name), true, false);
@@ -19224,154 +19224,175 @@ yyreduce:
   case 888:
 
 /* Line 1464 of yacc.c  */
-#line 2709 "grammar.y"
-    { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].specifier), (yyvsp[(3) - (4)].exp)); ;}
+#line 2711 "grammar.y"
+    {
+         Declarator decl;
+         char * colon = RSearchString((yyvsp[(1) - (4)].specifier).name, "::", strlen((yyvsp[(1) - (4)].specifier).name), true, false);
+         String s = colon ? colon + 2 : (yyvsp[(1) - (4)].specifier).name;
+         decl = MkDeclaratorIdentifier(MkIdentifier(s));
+         FreeSpecifier((yyvsp[(1) - (4)].specifier));
+         (yyval.declarator) = MkDeclaratorArray(decl, (yyvsp[(3) - (4)].exp));
+      ;}
     break;
 
   case 889:
 
 /* Line 1464 of yacc.c  */
-#line 2710 "grammar.y"
-    { (yyval.declarator) = MkDeclaratorEnumArray((yyvsp[(1) - (4)].specifier), (yyvsp[(3) - (4)].specifier)); ;}
+#line 2720 "grammar.y"
+    {
+         Declarator decl;
+         char * colon = RSearchString((yyvsp[(1) - (4)].specifier).name, "::", strlen((yyvsp[(1) - (4)].specifier).name), true, false);
+         String s = colon ? colon + 2 : (yyvsp[(1) - (4)].specifier).name;
+         decl = MkDeclaratorIdentifier(MkIdentifier(s));
+         FreeSpecifier((yyvsp[(1) - (4)].specifier));
+         (yyval.declarator) = MkDeclaratorEnumArray(decl, (yyvsp[(3) - (4)].specifier));
+      ;}
     break;
 
   case 890:
 
 /* Line 1464 of yacc.c  */
-#line 2711 "grammar.y"
-    { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (3)].specifier), null); ;}
+#line 2729 "grammar.y"
+    {
+         Declarator decl;
+         char * colon = RSearchString((yyvsp[(1) - (3)].specifier).name, "::", strlen((yyvsp[(1) - (3)].specifier).name), true, false);
+         String s = colon ? colon + 2 : (yyvsp[(1) - (3)].specifier).name;
+         decl = MkDeclaratorIdentifier(MkIdentifier(s));
+         FreeSpecifier((yyvsp[(1) - (3)].specifier));
+         (yyval.declarator) = MkDeclaratorEnumArray(decl, null);
+      ;}
     break;
 
   case 891:
 
 /* Line 1464 of yacc.c  */
-#line 2713 "grammar.y"
+#line 2737 "grammar.y"
     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
     break;
 
   case 892:
 
 /* Line 1464 of yacc.c  */
-#line 2714 "grammar.y"
+#line 2738 "grammar.y"
     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
     break;
 
   case 893:
 
 /* Line 1464 of yacc.c  */
-#line 2715 "grammar.y"
+#line 2739 "grammar.y"
     { (yyval.declarator) = MkDeclaratorEnumArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].specifier)); ;}
     break;
 
   case 894:
 
 /* Line 1464 of yacc.c  */
-#line 2716 "grammar.y"
+#line 2740 "grammar.y"
     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (3)].declarator), null); ;}
     break;
 
   case 895:
 
 /* Line 1464 of yacc.c  */
-#line 2720 "grammar.y"
+#line 2744 "grammar.y"
     { (yyval.declarator) = MkDeclaratorIdentifier((yyvsp[(1) - (1)].id)); ;}
     break;
 
   case 896:
 
 /* Line 1464 of yacc.c  */
-#line 2721 "grammar.y"
+#line 2745 "grammar.y"
     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
     break;
 
   case 897:
 
 /* Line 1464 of yacc.c  */
-#line 2722 "grammar.y"
+#line 2746 "grammar.y"
     { (yyval.declarator) = MkDeclaratorBrackets(MkDeclaratorExtended((yyvsp[(2) - (4)].extDecl), (yyvsp[(3) - (4)].declarator))); ;}
     break;
 
   case 898:
 
 /* Line 1464 of yacc.c  */
-#line 2723 "grammar.y"
+#line 2747 "grammar.y"
     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
     break;
 
   case 899:
 
 /* Line 1464 of yacc.c  */
-#line 2724 "grammar.y"
+#line 2748 "grammar.y"
     { (yyval.declarator) = MkDeclaratorBrackets(MkDeclaratorExtended((yyvsp[(2) - (4)].extDecl), (yyvsp[(3) - (4)].declarator))); ;}
     break;
 
   case 900:
 
 /* Line 1464 of yacc.c  */
-#line 2725 "grammar.y"
+#line 2749 "grammar.y"
     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
     break;
 
   case 901:
 
 /* Line 1464 of yacc.c  */
-#line 2726 "grammar.y"
+#line 2750 "grammar.y"
     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
     break;
 
   case 902:
 
 /* Line 1464 of yacc.c  */
-#line 2727 "grammar.y"
+#line 2751 "grammar.y"
     { (yyval.declarator) = MkDeclaratorEnumArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].specifier)); ;}
     break;
 
   case 903:
 
 /* Line 1464 of yacc.c  */
-#line 2728 "grammar.y"
+#line 2752 "grammar.y"
     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (3)].declarator), null); ;}
     break;
 
   case 905:
 
 /* Line 1464 of yacc.c  */
-#line 2736 "grammar.y"
+#line 2760 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 906:
 
 /* Line 1464 of yacc.c  */
-#line 2737 "grammar.y"
+#line 2761 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 907:
 
 /* Line 1464 of yacc.c  */
-#line 2738 "grammar.y"
+#line 2762 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 908:
 
 /* Line 1464 of yacc.c  */
-#line 2739 "grammar.y"
+#line 2763 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 909:
 
 /* Line 1464 of yacc.c  */
-#line 2740 "grammar.y"
+#line 2764 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (2)].declarator), null); ;}
     break;
 
   case 910:
 
 /* Line 1464 of yacc.c  */
-#line 2746 "grammar.y"
+#line 2770 "grammar.y"
     {
          (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (2)].declarator), (yyvsp[(2) - (2)].list)); 
          fileInput.Seek((yylsp[(1) - (2)]).end.pos, start); 
@@ -19385,7 +19406,7 @@ yyreduce:
   case 911:
 
 /* Line 1464 of yacc.c  */
-#line 2755 "grammar.y"
+#line 2779 "grammar.y"
     { 
          (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (2)].declarator), null); 
          fileInput.Seek((yylsp[(1) - (2)]).end.pos, start); 
@@ -19399,7 +19420,7 @@ yyreduce:
   case 912:
 
 /* Line 1464 of yacc.c  */
-#line 2764 "grammar.y"
+#line 2788 "grammar.y"
     { 
          (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); 
          fileInput.Seek((yylsp[(1) - (3)]).end.pos, start); 
@@ -19413,7 +19434,7 @@ yyreduce:
   case 913:
 
 /* Line 1464 of yacc.c  */
-#line 2773 "grammar.y"
+#line 2797 "grammar.y"
     { 
          (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), null); 
          fileInput.Seek((yylsp[(1) - (4)]).end.pos, start); 
@@ -19429,42 +19450,42 @@ yyreduce:
   case 917:
 
 /* Line 1464 of yacc.c  */
-#line 2796 "grammar.y"
+#line 2820 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 918:
 
 /* Line 1464 of yacc.c  */
-#line 2797 "grammar.y"
+#line 2821 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 919:
 
 /* Line 1464 of yacc.c  */
-#line 2798 "grammar.y"
+#line 2822 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 920:
 
 /* Line 1464 of yacc.c  */
-#line 2799 "grammar.y"
+#line 2823 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 921:
 
 /* Line 1464 of yacc.c  */
-#line 2800 "grammar.y"
+#line 2824 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (2)].declarator), null); ;}
     break;
 
   case 922:
 
 /* Line 1464 of yacc.c  */
-#line 2806 "grammar.y"
+#line 2830 "grammar.y"
     {
          (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (2)].declarator), (yyvsp[(2) - (2)].list)); 
          fileInput.Seek((yylsp[(1) - (2)]).end.pos, start); 
@@ -19478,7 +19499,7 @@ yyreduce:
   case 923:
 
 /* Line 1464 of yacc.c  */
-#line 2815 "grammar.y"
+#line 2839 "grammar.y"
     { 
          (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (2)].declarator), null); 
          fileInput.Seek((yylsp[(1) - (2)]).end.pos, start); 
@@ -19492,7 +19513,7 @@ yyreduce:
   case 924:
 
 /* Line 1464 of yacc.c  */
-#line 2824 "grammar.y"
+#line 2848 "grammar.y"
     { 
          (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); 
          fileInput.Seek((yylsp[(1) - (3)]).end.pos, start); 
@@ -19506,7 +19527,7 @@ yyreduce:
   case 925:
 
 /* Line 1464 of yacc.c  */
-#line 2833 "grammar.y"
+#line 2857 "grammar.y"
     { 
          (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), null); 
          fileInput.Seek((yylsp[(1) - (4)]).end.pos, start); 
@@ -19522,28 +19543,28 @@ yyreduce:
   case 928:
 
 /* Line 1464 of yacc.c  */
-#line 2896 "grammar.y"
+#line 2920 "grammar.y"
     { (yyval.extDecl) = MkExtDeclString(CopyString(yytext)); ;}
     break;
 
   case 929:
 
 /* Line 1464 of yacc.c  */
-#line 2897 "grammar.y"
+#line 2921 "grammar.y"
     { (yyval.extDecl) = MkExtDeclString(CopyString(yytext)); ;}
     break;
 
   case 930:
 
 /* Line 1464 of yacc.c  */
-#line 2898 "grammar.y"
+#line 2922 "grammar.y"
     { (yyval.extDecl) = MkExtDeclAttrib((yyvsp[(1) - (1)].attrib)); ;}
     break;
 
   case 931:
 
 /* Line 1464 of yacc.c  */
-#line 2900 "grammar.y"
+#line 2924 "grammar.y"
     {
          char temp[1024];
          strcpy(temp, "__asm__(");
@@ -19557,532 +19578,532 @@ yyreduce:
   case 932:
 
 /* Line 1464 of yacc.c  */
-#line 2911 "grammar.y"
+#line 2935 "grammar.y"
     { (yyval.i) = ATTRIB; ;}
     break;
 
   case 933:
 
 /* Line 1464 of yacc.c  */
-#line 2912 "grammar.y"
+#line 2936 "grammar.y"
     { (yyval.i) = ATTRIB_DEP; ;}
     break;
 
   case 934:
 
 /* Line 1464 of yacc.c  */
-#line 2913 "grammar.y"
+#line 2937 "grammar.y"
     { (yyval.i) = __ATTRIB; ;}
     break;
 
   case 935:
 
 /* Line 1464 of yacc.c  */
-#line 2918 "grammar.y"
+#line 2942 "grammar.y"
     { (yyval.string)  = CopyString(yytext); ;}
     break;
 
   case 936:
 
 /* Line 1464 of yacc.c  */
-#line 2919 "grammar.y"
+#line 2943 "grammar.y"
     { (yyval.string)  = CopyString(yytext); ;}
     break;
 
   case 937:
 
 /* Line 1464 of yacc.c  */
-#line 2920 "grammar.y"
+#line 2944 "grammar.y"
     { (yyval.string)  = CopyString(yytext); ;}
     break;
 
   case 938:
 
 /* Line 1464 of yacc.c  */
-#line 2921 "grammar.y"
+#line 2945 "grammar.y"
     { (yyval.string)  = CopyString(yytext); ;}
     break;
 
   case 939:
 
 /* Line 1464 of yacc.c  */
-#line 2922 "grammar.y"
+#line 2946 "grammar.y"
     { (yyval.string)  = CopyString(yytext); ;}
     break;
 
   case 940:
 
 /* Line 1464 of yacc.c  */
-#line 2926 "grammar.y"
+#line 2950 "grammar.y"
     { (yyval.attribute) = MkAttribute((yyvsp[(1) - (1)].string), null); (yyval.attribute).loc = (yyloc); ;}
     break;
 
   case 941:
 
 /* Line 1464 of yacc.c  */
-#line 2927 "grammar.y"
+#line 2951 "grammar.y"
     { (yyval.attribute) = MkAttribute((yyvsp[(1) - (4)].string), MkExpBrackets((yyvsp[(3) - (4)].list))); (yyval.attribute).loc = (yyloc); ;}
     break;
 
   case 942:
 
 /* Line 1464 of yacc.c  */
-#line 2931 "grammar.y"
+#line 2955 "grammar.y"
     { (yyval.list) = MkListOne((yyvsp[(1) - (1)].attribute)); ;}
     break;
 
   case 943:
 
 /* Line 1464 of yacc.c  */
-#line 2932 "grammar.y"
+#line 2956 "grammar.y"
     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].attribute)); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
     break;
 
   case 944:
 
 /* Line 1464 of yacc.c  */
-#line 2933 "grammar.y"
+#line 2957 "grammar.y"
     { ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].attribute)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
     break;
 
   case 945:
 
 /* Line 1464 of yacc.c  */
-#line 2937 "grammar.y"
+#line 2961 "grammar.y"
     { (yyval.attrib) = MkAttrib((yyvsp[(1) - (6)].i), (yyvsp[(4) - (6)].list)); (yyval.attrib).loc = (yyloc); ;}
     break;
 
   case 946:
 
 /* Line 1464 of yacc.c  */
-#line 2938 "grammar.y"
+#line 2962 "grammar.y"
     { (yyval.attrib) = MkAttrib((yyvsp[(1) - (5)].i), null); (yyval.attrib).loc = (yyloc); ;}
     break;
 
   case 947:
 
 /* Line 1464 of yacc.c  */
-#line 2942 "grammar.y"
+#line 2966 "grammar.y"
     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
     break;
 
   case 948:
 
 /* Line 1464 of yacc.c  */
-#line 2943 "grammar.y"
+#line 2967 "grammar.y"
     { (yyval.declarator) = MkDeclaratorBrackets(MkDeclaratorExtended((yyvsp[(2) - (4)].extDecl), (yyvsp[(3) - (4)].declarator))); ;}
     break;
 
   case 949:
 
 /* Line 1464 of yacc.c  */
-#line 2944 "grammar.y"
+#line 2968 "grammar.y"
     { (yyval.declarator) = MkDeclaratorArray(null, null); ;}
     break;
 
   case 950:
 
 /* Line 1464 of yacc.c  */
-#line 2945 "grammar.y"
+#line 2969 "grammar.y"
     { (yyval.declarator) = MkDeclaratorArray(null, (yyvsp[(2) - (3)].exp)); ;}
     break;
 
   case 951:
 
 /* Line 1464 of yacc.c  */
-#line 2946 "grammar.y"
+#line 2970 "grammar.y"
     { (yyval.declarator) = MkDeclaratorArray(null, (yyvsp[(2) - (3)].exp)); ;}
     break;
 
   case 952:
 
 /* Line 1464 of yacc.c  */
-#line 2947 "grammar.y"
+#line 2971 "grammar.y"
     { (yyval.declarator) = MkDeclaratorEnumArray(null, (yyvsp[(2) - (3)].specifier)); ;}
     break;
 
   case 953:
 
 /* Line 1464 of yacc.c  */
-#line 2948 "grammar.y"
+#line 2972 "grammar.y"
     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (3)].declarator), null); ;}
     break;
 
   case 954:
 
 /* Line 1464 of yacc.c  */
-#line 2949 "grammar.y"
+#line 2973 "grammar.y"
     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
     break;
 
   case 955:
 
 /* Line 1464 of yacc.c  */
-#line 2950 "grammar.y"
+#line 2974 "grammar.y"
     { (yyval.declarator) = MkDeclaratorEnumArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].specifier)); ;}
     break;
 
   case 956:
 
 /* Line 1464 of yacc.c  */
-#line 2951 "grammar.y"
+#line 2975 "grammar.y"
     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
     break;
 
   case 957:
 
 /* Line 1464 of yacc.c  */
-#line 2952 "grammar.y"
+#line 2976 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction(null, null); ;}
     break;
 
   case 958:
 
 /* Line 1464 of yacc.c  */
-#line 2953 "grammar.y"
+#line 2977 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 959:
 
 /* Line 1464 of yacc.c  */
-#line 2954 "grammar.y"
+#line 2978 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 960:
 
 /* Line 1464 of yacc.c  */
-#line 2955 "grammar.y"
+#line 2979 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), null); ;}
     break;
 
   case 961:
 
 /* Line 1464 of yacc.c  */
-#line 2956 "grammar.y"
+#line 2980 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].list)); ;}
     break;
 
   case 962:
 
 /* Line 1464 of yacc.c  */
-#line 2957 "grammar.y"
+#line 2981 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].list)); ;}
     break;
 
   case 963:
 
 /* Line 1464 of yacc.c  */
-#line 2961 "grammar.y"
+#line 2985 "grammar.y"
     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
     break;
 
   case 964:
 
 /* Line 1464 of yacc.c  */
-#line 2962 "grammar.y"
+#line 2986 "grammar.y"
     { (yyval.declarator) = MkDeclaratorBrackets(MkDeclaratorExtended((yyvsp[(2) - (4)].extDecl), (yyvsp[(3) - (4)].declarator))); ;}
     break;
 
   case 965:
 
 /* Line 1464 of yacc.c  */
-#line 2963 "grammar.y"
+#line 2987 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction(null, null); ;}
     break;
 
   case 966:
 
 /* Line 1464 of yacc.c  */
-#line 2964 "grammar.y"
+#line 2988 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 967:
 
 /* Line 1464 of yacc.c  */
-#line 2965 "grammar.y"
+#line 2989 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 968:
 
 /* Line 1464 of yacc.c  */
-#line 2966 "grammar.y"
+#line 2990 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), null); ;}
     break;
 
   case 969:
 
 /* Line 1464 of yacc.c  */
-#line 2967 "grammar.y"
+#line 2991 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].list)); ;}
     break;
 
   case 970:
 
 /* Line 1464 of yacc.c  */
-#line 2968 "grammar.y"
+#line 2992 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].list)); ;}
     break;
 
   case 971:
 
 /* Line 1464 of yacc.c  */
-#line 2972 "grammar.y"
+#line 2996 "grammar.y"
     { (yyval.pointer) = MkPointer(null, null); ;}
     break;
 
   case 972:
 
 /* Line 1464 of yacc.c  */
-#line 2973 "grammar.y"
+#line 2997 "grammar.y"
     { (yyval.pointer) = MkPointer((yyvsp[(2) - (2)].list), null); ;}
     break;
 
   case 973:
 
 /* Line 1464 of yacc.c  */
-#line 2974 "grammar.y"
+#line 2998 "grammar.y"
     { (yyval.pointer) = MkPointer(null, (yyvsp[(2) - (2)].pointer)); ;}
     break;
 
   case 974:
 
 /* Line 1464 of yacc.c  */
-#line 2975 "grammar.y"
+#line 2999 "grammar.y"
     { (yyval.pointer) = MkPointer((yyvsp[(2) - (3)].list), (yyvsp[(3) - (3)].pointer)); ;}
     break;
 
   case 975:
 
 /* Line 1464 of yacc.c  */
-#line 2979 "grammar.y"
+#line 3003 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (1)].pointer), null); ;}
     break;
 
   case 977:
 
 /* Line 1464 of yacc.c  */
-#line 2981 "grammar.y"
+#line 3005 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 978:
 
 /* Line 1464 of yacc.c  */
-#line 2982 "grammar.y"
+#line 3006 "grammar.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (2)].pointer), null)); ;}
     break;
 
   case 979:
 
 /* Line 1464 of yacc.c  */
-#line 2983 "grammar.y"
+#line 3007 "grammar.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 980:
 
 /* Line 1464 of yacc.c  */
-#line 2987 "grammar.y"
+#line 3011 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (1)].pointer), null); ;}
     break;
 
   case 982:
 
 /* Line 1464 of yacc.c  */
-#line 2989 "grammar.y"
+#line 3013 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 983:
 
 /* Line 1464 of yacc.c  */
-#line 2990 "grammar.y"
+#line 3014 "grammar.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (2)].pointer), null)); ;}
     break;
 
   case 984:
 
 /* Line 1464 of yacc.c  */
-#line 2991 "grammar.y"
+#line 3015 "grammar.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 986:
 
 /* Line 1464 of yacc.c  */
-#line 2997 "grammar.y"
+#line 3021 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 987:
 
 /* Line 1464 of yacc.c  */
-#line 2999 "grammar.y"
+#line 3023 "grammar.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 988:
 
 /* Line 1464 of yacc.c  */
-#line 3001 "grammar.y"
+#line 3025 "grammar.y"
     { (yyval.declarator) = MkDeclaratorExtendedEnd((yyvsp[(2) - (2)].extDecl), (yyvsp[(1) - (2)].declarator)); ;}
     break;
 
   case 989:
 
 /* Line 1464 of yacc.c  */
-#line 3003 "grammar.y"
+#line 3027 "grammar.y"
     { (yyval.declarator) = MkDeclaratorExtendedEnd((yyvsp[(2) - (2)].extDecl), (yyvsp[(1) - (2)].declarator)); ;}
     break;
 
   case 991:
 
 /* Line 1464 of yacc.c  */
-#line 3009 "grammar.y"
+#line 3033 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 992:
 
 /* Line 1464 of yacc.c  */
-#line 3011 "grammar.y"
+#line 3035 "grammar.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 993:
 
 /* Line 1464 of yacc.c  */
-#line 3013 "grammar.y"
+#line 3037 "grammar.y"
     { (yyval.declarator) = MkDeclaratorExtendedEnd((yyvsp[(2) - (2)].extDecl), (yyvsp[(1) - (2)].declarator)); ;}
     break;
 
   case 995:
 
 /* Line 1464 of yacc.c  */
-#line 3018 "grammar.y"
+#line 3042 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 996:
 
 /* Line 1464 of yacc.c  */
-#line 3019 "grammar.y"
+#line 3043 "grammar.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 997:
 
 /* Line 1464 of yacc.c  */
-#line 3020 "grammar.y"
+#line 3044 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (3)].pointer), MkDeclaratorExtended((yyvsp[(2) - (3)].extDecl), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 999:
 
 /* Line 1464 of yacc.c  */
-#line 3025 "grammar.y"
+#line 3049 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 1000:
 
 /* Line 1464 of yacc.c  */
-#line 3026 "grammar.y"
+#line 3050 "grammar.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 1001:
 
 /* Line 1464 of yacc.c  */
-#line 3027 "grammar.y"
+#line 3051 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (3)].pointer), MkDeclaratorExtended((yyvsp[(2) - (3)].extDecl), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 1003:
 
 /* Line 1464 of yacc.c  */
-#line 3032 "grammar.y"
+#line 3056 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 1004:
 
 /* Line 1464 of yacc.c  */
-#line 3033 "grammar.y"
+#line 3057 "grammar.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 1005:
 
 /* Line 1464 of yacc.c  */
-#line 3034 "grammar.y"
+#line 3058 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (3)].pointer), MkDeclaratorExtended((yyvsp[(2) - (3)].extDecl), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 1007:
 
 /* Line 1464 of yacc.c  */
-#line 3039 "grammar.y"
+#line 3063 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 1008:
 
 /* Line 1464 of yacc.c  */
-#line 3040 "grammar.y"
+#line 3064 "grammar.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 1009:
 
 /* Line 1464 of yacc.c  */
-#line 3041 "grammar.y"
+#line 3065 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (3)].pointer), MkDeclaratorExtended((yyvsp[(2) - (3)].extDecl), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 1011:
 
 /* Line 1464 of yacc.c  */
-#line 3046 "grammar.y"
+#line 3070 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 1012:
 
 /* Line 1464 of yacc.c  */
-#line 3047 "grammar.y"
+#line 3071 "grammar.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 1013:
 
 /* Line 1464 of yacc.c  */
-#line 3048 "grammar.y"
+#line 3072 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (3)].pointer), MkDeclaratorExtended((yyvsp[(2) - (3)].extDecl), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 1014:
 
 /* Line 1464 of yacc.c  */
-#line 3052 "grammar.y"
+#line 3076 "grammar.y"
     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
     break;
 
   case 1015:
 
 /* Line 1464 of yacc.c  */
-#line 3053 "grammar.y"
+#line 3077 "grammar.y"
     { (yyval.initializer) = MkInitializerList((yyvsp[(2) - (3)].list)); (yyval.initializer).loc = (yyloc); ;}
     break;
 
   case 1016:
 
 /* Line 1464 of yacc.c  */
-#line 3055 "grammar.y"
+#line 3079 "grammar.y"
     { 
          (yyval.initializer) = MkInitializerList((yyvsp[(2) - (4)].list)); 
          (yyval.initializer).loc = (yyloc); 
@@ -20100,28 +20121,28 @@ yyreduce:
   case 1017:
 
 /* Line 1464 of yacc.c  */
-#line 3070 "grammar.y"
+#line 3094 "grammar.y"
     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
     break;
 
   case 1018:
 
 /* Line 1464 of yacc.c  */
-#line 3071 "grammar.y"
+#line 3095 "grammar.y"
     { (yyval.initializer) = MkInitializerList((yyvsp[(2) - (4)].list)); (yyval.initializer).loc = (yyloc); ;}
     break;
 
   case 1019:
 
 /* Line 1464 of yacc.c  */
-#line 3072 "grammar.y"
+#line 3096 "grammar.y"
     { (yyval.initializer) = MkInitializerList((yyvsp[(2) - (2)].list)); (yyval.initializer).loc = (yyloc); ;}
     break;
 
   case 1020:
 
 /* Line 1464 of yacc.c  */
-#line 3074 "grammar.y"
+#line 3098 "grammar.y"
     { 
          (yyval.initializer) = MkInitializerList((yyvsp[(2) - (5)].list)); 
          (yyval.initializer).loc = (yyloc);
@@ -20139,7 +20160,7 @@ yyreduce:
   case 1021:
 
 /* Line 1464 of yacc.c  */
-#line 3087 "grammar.y"
+#line 3111 "grammar.y"
     { 
          (yyval.initializer) = MkInitializerList((yyvsp[(2) - (3)].list)); 
          (yyval.initializer).loc = (yyloc);
@@ -20157,140 +20178,140 @@ yyreduce:
   case 1022:
 
 /* Line 1464 of yacc.c  */
-#line 3102 "grammar.y"
+#line 3126 "grammar.y"
     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
     break;
 
   case 1023:
 
 /* Line 1464 of yacc.c  */
-#line 3104 "grammar.y"
+#line 3128 "grammar.y"
     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
     break;
 
   case 1024:
 
 /* Line 1464 of yacc.c  */
-#line 3108 "grammar.y"
+#line 3132 "grammar.y"
     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
     break;
 
   case 1025:
 
 /* Line 1464 of yacc.c  */
-#line 3109 "grammar.y"
+#line 3133 "grammar.y"
     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
     break;
 
   case 1026:
 
 /* Line 1464 of yacc.c  */
-#line 3113 "grammar.y"
+#line 3137 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].initializer)); ;}
     break;
 
   case 1027:
 
 /* Line 1464 of yacc.c  */
-#line 3114 "grammar.y"
+#line 3138 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].initializer)); ;}
     break;
 
   case 1028:
 
 /* Line 1464 of yacc.c  */
-#line 3115 "grammar.y"
+#line 3139 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initializer)); ;}
     break;
 
   case 1029:
 
 /* Line 1464 of yacc.c  */
-#line 3116 "grammar.y"
+#line 3140 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initializer)); ;}
     break;
 
   case 1030:
 
 /* Line 1464 of yacc.c  */
-#line 3119 "grammar.y"
+#line 3143 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].initializer)); ;}
     break;
 
   case 1031:
 
 /* Line 1464 of yacc.c  */
-#line 3120 "grammar.y"
+#line 3144 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].initializer)); ;}
     break;
 
   case 1032:
 
 /* Line 1464 of yacc.c  */
-#line 3124 "grammar.y"
+#line 3148 "grammar.y"
     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (1)].declarator), null); (yyval.initDeclarator).loc = (yyloc); ;}
     break;
 
   case 1033:
 
 /* Line 1464 of yacc.c  */
-#line 3125 "grammar.y"
+#line 3149 "grammar.y"
     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (1)].declarator), null); (yyval.initDeclarator).loc = (yyloc); ;}
     break;
 
   case 1034:
 
 /* Line 1464 of yacc.c  */
-#line 3126 "grammar.y"
+#line 3150 "grammar.y"
     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (3)].declarator), (yyvsp[(3) - (3)].initializer)); (yyval.initDeclarator).loc = (yyloc); (yyval.initDeclarator).initializer.loc.start = (yylsp[(2) - (3)]).end; ;}
     break;
 
   case 1035:
 
 /* Line 1464 of yacc.c  */
-#line 3130 "grammar.y"
+#line 3154 "grammar.y"
     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (2)].declarator), null); (yyval.initDeclarator).loc = (yyloc); ;}
     break;
 
   case 1036:
 
 /* Line 1464 of yacc.c  */
-#line 3134 "grammar.y"
+#line 3158 "grammar.y"
     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (3)].declarator), (yyvsp[(3) - (3)].initializer)); (yyval.initDeclarator).loc = (yyloc); (yyval.initDeclarator).initializer.loc.start = (yylsp[(2) - (3)]).end; ;}
     break;
 
   case 1037:
 
 /* Line 1464 of yacc.c  */
-#line 3138 "grammar.y"
+#line 3162 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].initDeclarator)); ;}
     break;
 
   case 1038:
 
 /* Line 1464 of yacc.c  */
-#line 3139 "grammar.y"
+#line 3163 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initDeclarator)); ;}
     break;
 
   case 1039:
 
 /* Line 1464 of yacc.c  */
-#line 3140 "grammar.y"
+#line 3164 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("uint")), null)); ListAdd((yyval.list), (yyvsp[(3) - (3)].initDeclarator)); ;}
     break;
 
   case 1040:
 
 /* Line 1464 of yacc.c  */
-#line 3141 "grammar.y"
+#line 3165 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("int64")), null)); ListAdd((yyval.list), (yyvsp[(3) - (3)].initDeclarator)); ;}
     break;
 
   case 1041:
 
 /* Line 1464 of yacc.c  */
-#line 3143 "grammar.y"
+#line 3167 "grammar.y"
     {
       char * colon = RSearchString((yyvsp[(1) - (3)].specifier).name, "::", strlen((yyvsp[(1) - (3)].specifier).name), true, false);
       String s = colon ? colon + 2 : (yyvsp[(1) - (3)].specifier).name;
@@ -20304,1407 +20325,1407 @@ yyreduce:
   case 1042:
 
 /* Line 1464 of yacc.c  */
-#line 3151 "grammar.y"
+#line 3175 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initDeclarator)); ;}
     break;
 
   case 1043:
 
 /* Line 1464 of yacc.c  */
-#line 3160 "grammar.y"
+#line 3184 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].initDeclarator)); ;}
     break;
 
   case 1044:
 
 /* Line 1464 of yacc.c  */
-#line 3161 "grammar.y"
+#line 3185 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (2)].initDeclarator)); ;}
     break;
 
   case 1045:
 
 /* Line 1464 of yacc.c  */
-#line 3162 "grammar.y"
+#line 3186 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initDeclarator)); ;}
     break;
 
   case 1046:
 
 /* Line 1464 of yacc.c  */
-#line 3163 "grammar.y"
+#line 3187 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initDeclarator)); ;}
     break;
 
   case 1047:
 
 /* Line 1464 of yacc.c  */
-#line 3167 "grammar.y"
+#line 3191 "grammar.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (1)].list), null); ;}
     break;
 
   case 1048:
 
 /* Line 1464 of yacc.c  */
-#line 3168 "grammar.y"
+#line 3192 "grammar.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 1049:
 
 /* Line 1464 of yacc.c  */
-#line 3172 "grammar.y"
+#line 3196 "grammar.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (1)].list), null); ;}
     break;
 
   case 1050:
 
 /* Line 1464 of yacc.c  */
-#line 3173 "grammar.y"
+#line 3197 "grammar.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 1051:
 
 /* Line 1464 of yacc.c  */
-#line 3178 "grammar.y"
+#line 3202 "grammar.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 1052:
 
 /* Line 1464 of yacc.c  */
-#line 3179 "grammar.y"
+#line 3203 "grammar.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 1053:
 
 /* Line 1464 of yacc.c  */
-#line 3180 "grammar.y"
+#line 3204 "grammar.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), MkDeclaratorPointer(MkPointer(null,null), null)); ;}
     break;
 
   case 1054:
 
 /* Line 1464 of yacc.c  */
-#line 3181 "grammar.y"
+#line 3205 "grammar.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (3)].list), MkDeclaratorPointer(MkPointer(null,null), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 1055:
 
 /* Line 1464 of yacc.c  */
-#line 3182 "grammar.y"
+#line 3206 "grammar.y"
     { (yyval.typeName) = MkTypeNameGuessDecl((yyvsp[(1) - (1)].list), null); ;}
     break;
 
   case 1056:
 
 /* Line 1464 of yacc.c  */
-#line 3184 "grammar.y"
+#line 3208 "grammar.y"
     { (yyval.typeName) = MkTypeName(MkListOne(MkSpecifier(CLASS)), null); ;}
     break;
 
   case 1057:
 
 /* Line 1464 of yacc.c  */
-#line 3202 "grammar.y"
+#line 3226 "grammar.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].declarator)); ;}
     break;
 
   case 1058:
 
 /* Line 1464 of yacc.c  */
-#line 3203 "grammar.y"
+#line 3227 "grammar.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].declarator)); ;}
     break;
 
   case 1059:
 
 /* Line 1464 of yacc.c  */
-#line 3207 "grammar.y"
+#line 3231 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].typeName)); ;}
     break;
 
   case 1060:
 
 /* Line 1464 of yacc.c  */
-#line 3208 "grammar.y"
+#line 3232 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
     break;
 
   case 1061:
 
 /* Line 1464 of yacc.c  */
-#line 3209 "grammar.y"
+#line 3233 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (4)].list); ListAdd((yyvsp[(1) - (4)].list), (yyvsp[(4) - (4)].typeName)); ;}
     break;
 
   case 1062:
 
 /* Line 1464 of yacc.c  */
-#line 3210 "grammar.y"
+#line 3234 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
     break;
 
   case 1063:
 
 /* Line 1464 of yacc.c  */
-#line 3211 "grammar.y"
+#line 3235 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (4)].list); ListAdd((yyvsp[(1) - (4)].list), (yyvsp[(4) - (4)].typeName)); ;}
     break;
 
   case 1064:
 
 /* Line 1464 of yacc.c  */
-#line 3212 "grammar.y"
+#line 3236 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), MkTypeName(MkList(), null)); ListAdd((yyval.list), (yyvsp[(3) - (3)].typeName)); ;}
     break;
 
   case 1065:
 
 /* Line 1464 of yacc.c  */
-#line 3214 "grammar.y"
+#line 3238 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
     break;
 
   case 1066:
 
 /* Line 1464 of yacc.c  */
-#line 3215 "grammar.y"
+#line 3239 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (4)].list); ListAdd((yyvsp[(1) - (4)].list), (yyvsp[(4) - (4)].typeName)); ;}
     break;
 
   case 1067:
 
 /* Line 1464 of yacc.c  */
-#line 3216 "grammar.y"
+#line 3240 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
     break;
 
   case 1068:
 
 /* Line 1464 of yacc.c  */
-#line 3217 "grammar.y"
+#line 3241 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (4)].list); ListAdd((yyvsp[(1) - (4)].list), (yyvsp[(4) - (4)].typeName)); ;}
     break;
 
   case 1069:
 
 /* Line 1464 of yacc.c  */
-#line 3221 "grammar.y"
+#line 3245 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].typeName)); ;}
     break;
 
   case 1070:
 
 /* Line 1464 of yacc.c  */
-#line 3222 "grammar.y"
+#line 3246 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
     break;
 
   case 1071:
 
 /* Line 1464 of yacc.c  */
-#line 3223 "grammar.y"
+#line 3247 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
     break;
 
   case 1072:
 
 /* Line 1464 of yacc.c  */
-#line 3224 "grammar.y"
+#line 3248 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (4)].list); ListAdd((yyvsp[(1) - (4)].list), (yyvsp[(4) - (4)].typeName)); ;}
     break;
 
   case 1073:
 
 /* Line 1464 of yacc.c  */
-#line 3225 "grammar.y"
+#line 3249 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), MkTypeName(MkList(), null)); ListAdd((yyval.list), (yyvsp[(3) - (3)].typeName)); ;}
     break;
 
   case 1074:
 
 /* Line 1464 of yacc.c  */
-#line 3227 "grammar.y"
+#line 3251 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
     break;
 
   case 1075:
 
 /* Line 1464 of yacc.c  */
-#line 3228 "grammar.y"
+#line 3252 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
     break;
 
   case 1076:
 
 /* Line 1464 of yacc.c  */
-#line 3229 "grammar.y"
+#line 3253 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (4)].list); ListAdd((yyvsp[(1) - (4)].list), (yyvsp[(4) - (4)].typeName)); ;}
     break;
 
   case 1078:
 
 /* Line 1464 of yacc.c  */
-#line 3234 "grammar.y"
+#line 3258 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, null)); ;}
     break;
 
   case 1079:
 
 /* Line 1464 of yacc.c  */
-#line 3235 "grammar.y"
+#line 3259 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, null)); ;}
     break;
 
   case 1080:
 
 /* Line 1464 of yacc.c  */
-#line 3236 "grammar.y"
+#line 3260 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, null)); ;}
     break;
 
   case 1081:
 
 /* Line 1464 of yacc.c  */
-#line 3237 "grammar.y"
+#line 3261 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, null)); ;}
     break;
 
   case 1082:
 
 /* Line 1464 of yacc.c  */
-#line 3238 "grammar.y"
+#line 3262 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), MkTypeName(null, null)); ;}
     break;
 
   case 1084:
 
 /* Line 1464 of yacc.c  */
-#line 3243 "grammar.y"
+#line 3267 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), null); ;}
     break;
 
   case 1087:
 
 /* Line 1464 of yacc.c  */
-#line 3250 "grammar.y"
+#line 3274 "grammar.y"
     { (yyval.stmt) = MkExpressionStmt(null); FreeAttrib((yyvsp[(1) - (1)].attrib)); ;}
     break;
 
   case 1089:
 
 /* Line 1464 of yacc.c  */
-#line 3252 "grammar.y"
+#line 3276 "grammar.y"
     { (yyval.stmt) = MkExpressionStmt(null); ;}
     break;
 
   case 1090:
 
 /* Line 1464 of yacc.c  */
-#line 3253 "grammar.y"
+#line 3277 "grammar.y"
     { (yyval.stmt) = MkExpressionStmt(null); ;}
     break;
 
   case 1091:
 
 /* Line 1464 of yacc.c  */
-#line 3254 "grammar.y"
+#line 3278 "grammar.y"
     { (yyval.stmt) = MkExpressionStmt((yyvsp[(1) - (2)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1099:
 
 /* Line 1464 of yacc.c  */
-#line 3265 "grammar.y"
+#line 3289 "grammar.y"
     { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); Compiler_Error($"syntax error\n"); ;}
     break;
 
   case 1100:
 
 /* Line 1464 of yacc.c  */
-#line 3266 "grammar.y"
+#line 3290 "grammar.y"
     { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); Compiler_Error($"syntax error\n"); ;}
     break;
 
   case 1101:
 
 /* Line 1464 of yacc.c  */
-#line 3267 "grammar.y"
+#line 3291 "grammar.y"
     { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); Compiler_Error($"syntax error\n"); ;}
     break;
 
   case 1102:
 
 /* Line 1464 of yacc.c  */
-#line 3268 "grammar.y"
+#line 3292 "grammar.y"
     { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); Compiler_Error($"syntax error\n"); ;}
     break;
 
   case 1103:
 
 /* Line 1464 of yacc.c  */
-#line 3269 "grammar.y"
+#line 3293 "grammar.y"
     { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); Compiler_Error($"syntax error\n"); ;}
     break;
 
   case 1104:
 
 /* Line 1464 of yacc.c  */
-#line 3270 "grammar.y"
+#line 3294 "grammar.y"
     { (yyval.stmt) = (yyvsp[(1) - (2)].stmt); Compiler_Error($"syntax error\n"); ;}
     break;
 
   case 1105:
 
 /* Line 1464 of yacc.c  */
-#line 3271 "grammar.y"
+#line 3295 "grammar.y"
     { (yyval.stmt) = MkExpressionStmt((yyvsp[(1) - (1)].list)); Compiler_Error($"syntax error\n"); (yyval.stmt).loc = (yylsp[(1) - (1)]); ;}
     break;
 
   case 1106:
 
 /* Line 1464 of yacc.c  */
-#line 3275 "grammar.y"
+#line 3299 "grammar.y"
     { (yyval.asmField) = MkAsmField((yyvsp[(1) - (1)].string), null); (yyval.asmField).loc = (yylsp[(1) - (1)]); ;}
     break;
 
   case 1107:
 
 /* Line 1464 of yacc.c  */
-#line 3276 "grammar.y"
+#line 3300 "grammar.y"
     { (yyval.asmField) = MkAsmField((yyvsp[(1) - (4)].string), (yyvsp[(3) - (4)].exp)); (yyval.asmField).loc = (yyloc); ;}
     break;
 
   case 1108:
 
 /* Line 1464 of yacc.c  */
-#line 3280 "grammar.y"
+#line 3304 "grammar.y"
     { (yyval.list) = MkListOne((yyvsp[(1) - (1)].asmField)); ;}
     break;
 
   case 1109:
 
 /* Line 1464 of yacc.c  */
-#line 3281 "grammar.y"
+#line 3305 "grammar.y"
     { ListAdd((yyval.list), (yyvsp[(3) - (3)].asmField)); ;}
     break;
 
   case 1110:
 
 /* Line 1464 of yacc.c  */
-#line 3282 "grammar.y"
+#line 3306 "grammar.y"
     { (yyval.list) = null; ;}
     break;
 
   case 1111:
 
 /* Line 1464 of yacc.c  */
-#line 3286 "grammar.y"
+#line 3310 "grammar.y"
     { (yyval.stmt) = MkAsmStmt((yyvsp[(2) - (6)].specifier), (yyvsp[(4) - (6)].string), null, null, null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1112:
 
 /* Line 1464 of yacc.c  */
-#line 3287 "grammar.y"
+#line 3311 "grammar.y"
     { (yyval.stmt) = MkAsmStmt((yyvsp[(2) - (8)].specifier), (yyvsp[(4) - (8)].string), (yyvsp[(6) - (8)].list), null, null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1113:
 
 /* Line 1464 of yacc.c  */
-#line 3288 "grammar.y"
+#line 3312 "grammar.y"
     { (yyval.stmt) = MkAsmStmt((yyvsp[(2) - (10)].specifier), (yyvsp[(4) - (10)].string), (yyvsp[(6) - (10)].list), (yyvsp[(8) - (10)].list), null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1114:
 
 /* Line 1464 of yacc.c  */
-#line 3289 "grammar.y"
+#line 3313 "grammar.y"
     { (yyval.stmt) = MkAsmStmt((yyvsp[(2) - (12)].specifier), (yyvsp[(4) - (12)].string), (yyvsp[(6) - (12)].list), (yyvsp[(8) - (12)].list), (yyvsp[(10) - (12)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1115:
 
 /* Line 1464 of yacc.c  */
-#line 3291 "grammar.y"
+#line 3315 "grammar.y"
     { (yyval.stmt) = MkAsmStmt((yyvsp[(2) - (8)].specifier), (yyvsp[(4) - (8)].string), null, (yyvsp[(6) - (8)].list), null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1116:
 
 /* Line 1464 of yacc.c  */
-#line 3292 "grammar.y"
+#line 3316 "grammar.y"
     { (yyval.stmt) = MkAsmStmt((yyvsp[(2) - (10)].specifier), (yyvsp[(4) - (10)].string), null, (yyvsp[(6) - (10)].list), (yyvsp[(8) - (10)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1117:
 
 /* Line 1464 of yacc.c  */
-#line 3293 "grammar.y"
+#line 3317 "grammar.y"
     { (yyval.stmt) = MkAsmStmt((yyvsp[(2) - (10)].specifier), (yyvsp[(4) - (10)].string), (yyvsp[(6) - (10)].list), null, (yyvsp[(8) - (10)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1118:
 
 /* Line 1464 of yacc.c  */
-#line 3295 "grammar.y"
+#line 3319 "grammar.y"
     { (yyval.stmt) = MkAsmStmt(null, (yyvsp[(3) - (5)].string), null, null, null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1119:
 
 /* Line 1464 of yacc.c  */
-#line 3296 "grammar.y"
+#line 3320 "grammar.y"
     { (yyval.stmt) = MkAsmStmt(null, (yyvsp[(3) - (7)].string), (yyvsp[(5) - (7)].list), null, null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1120:
 
 /* Line 1464 of yacc.c  */
-#line 3297 "grammar.y"
+#line 3321 "grammar.y"
     { (yyval.stmt) = MkAsmStmt(null, (yyvsp[(3) - (9)].string), (yyvsp[(5) - (9)].list), (yyvsp[(7) - (9)].list), null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1121:
 
 /* Line 1464 of yacc.c  */
-#line 3298 "grammar.y"
+#line 3322 "grammar.y"
     { (yyval.stmt) = MkAsmStmt(null, (yyvsp[(3) - (11)].string), (yyvsp[(5) - (11)].list), (yyvsp[(7) - (11)].list), (yyvsp[(9) - (11)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1122:
 
 /* Line 1464 of yacc.c  */
-#line 3300 "grammar.y"
+#line 3324 "grammar.y"
     { (yyval.stmt) = MkAsmStmt(null, (yyvsp[(3) - (7)].string), null, (yyvsp[(5) - (7)].list), null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1123:
 
 /* Line 1464 of yacc.c  */
-#line 3301 "grammar.y"
+#line 3325 "grammar.y"
     { (yyval.stmt) = MkAsmStmt(null, (yyvsp[(3) - (9)].string), null, (yyvsp[(5) - (9)].list), (yyvsp[(7) - (9)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1124:
 
 /* Line 1464 of yacc.c  */
-#line 3302 "grammar.y"
+#line 3326 "grammar.y"
     { (yyval.stmt) = MkAsmStmt(null, (yyvsp[(3) - (9)].string), (yyvsp[(5) - (9)].list), null, (yyvsp[(7) - (9)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1125:
 
 /* Line 1464 of yacc.c  */
-#line 3306 "grammar.y"
+#line 3330 "grammar.y"
     { (yyval.stmt) = MkLabeledStmt((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1126:
 
 /* Line 1464 of yacc.c  */
-#line 3307 "grammar.y"
+#line 3331 "grammar.y"
     { (yyval.stmt) = MkCaseStmt((yyvsp[(2) - (4)].exp), (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); (yyvsp[(2) - (4)].exp).loc.start = (yylsp[(1) - (4)]).end; ;}
     break;
 
   case 1127:
 
 /* Line 1464 of yacc.c  */
-#line 3308 "grammar.y"
+#line 3332 "grammar.y"
     { (yyval.stmt) = MkCaseStmt((yyvsp[(2) - (4)].exp), (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); (yyvsp[(2) - (4)].exp).loc.start = (yylsp[(1) - (4)]).end; ;}
     break;
 
   case 1128:
 
 /* Line 1464 of yacc.c  */
-#line 3309 "grammar.y"
+#line 3333 "grammar.y"
     { (yyval.stmt) = MkCaseStmt(MkExpDummy(), (yyvsp[(3) - (3)].stmt)); (yyval.stmt).caseStmt.exp.loc = (yylsp[(2) - (3)]); (yyval.stmt).loc = (yyloc); (yyval.stmt).caseStmt.exp.loc.start = (yylsp[(1) - (3)]).end; ;}
     break;
 
   case 1129:
 
 /* Line 1464 of yacc.c  */
-#line 3310 "grammar.y"
+#line 3334 "grammar.y"
     { (yyval.stmt) = MkCaseStmt(null, (yyvsp[(3) - (3)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1130:
 
 /* Line 1464 of yacc.c  */
-#line 3314 "grammar.y"
+#line 3338 "grammar.y"
     { (yyval.stmt) = MkLabeledStmt((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1131:
 
 /* Line 1464 of yacc.c  */
-#line 3315 "grammar.y"
+#line 3339 "grammar.y"
     { (yyval.stmt) = MkCaseStmt((yyvsp[(2) - (4)].exp), (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); (yyvsp[(2) - (4)].exp).loc.start = (yylsp[(1) - (4)]).end; ;}
     break;
 
   case 1132:
 
 /* Line 1464 of yacc.c  */
-#line 3316 "grammar.y"
+#line 3340 "grammar.y"
     { (yyval.stmt) = MkCaseStmt((yyvsp[(2) - (4)].exp), (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); (yyvsp[(2) - (4)].exp).loc.start = (yylsp[(1) - (4)]).end; ;}
     break;
 
   case 1133:
 
 /* Line 1464 of yacc.c  */
-#line 3317 "grammar.y"
+#line 3341 "grammar.y"
     { (yyval.stmt) = MkCaseStmt(MkExpDummy(), (yyvsp[(3) - (3)].stmt)); (yyval.stmt).caseStmt.exp.loc = (yylsp[(2) - (3)]); (yyval.stmt).loc = (yyloc); (yyval.stmt).caseStmt.exp.loc.start = (yylsp[(1) - (3)]).end; ;}
     break;
 
   case 1134:
 
 /* Line 1464 of yacc.c  */
-#line 3318 "grammar.y"
+#line 3342 "grammar.y"
     { (yyval.stmt) = MkCaseStmt(MkExpDummy(), null); (yyval.stmt).caseStmt.exp.loc = (yylsp[(2) - (2)]); (yyval.stmt).loc = (yyloc); (yyval.stmt).caseStmt.exp.loc.start = (yylsp[(1) - (2)]).end; ;}
     break;
 
   case 1135:
 
 /* Line 1464 of yacc.c  */
-#line 3319 "grammar.y"
+#line 3343 "grammar.y"
     { (yyval.stmt) = MkCaseStmt(null, (yyvsp[(3) - (3)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1136:
 
 /* Line 1464 of yacc.c  */
-#line 3320 "grammar.y"
+#line 3344 "grammar.y"
     { (yyval.stmt) = MkCaseStmt(null, null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1137:
 
 /* Line 1464 of yacc.c  */
-#line 3324 "grammar.y"
+#line 3348 "grammar.y"
     { (yyval.declMode) = declMode = publicAccess; ;}
     break;
 
   case 1138:
 
 /* Line 1464 of yacc.c  */
-#line 3325 "grammar.y"
+#line 3349 "grammar.y"
     { (yyval.declMode) = declMode = privateAccess; ;}
     break;
 
   case 1139:
 
 /* Line 1464 of yacc.c  */
-#line 3326 "grammar.y"
+#line 3350 "grammar.y"
     { (yyval.declMode) = declMode = defaultAccess; ;}
     break;
 
   case 1140:
 
 /* Line 1464 of yacc.c  */
-#line 3330 "grammar.y"
+#line 3354 "grammar.y"
     { (yyval.declMode) = publicAccess; ;}
     break;
 
   case 1141:
 
 /* Line 1464 of yacc.c  */
-#line 3331 "grammar.y"
+#line 3355 "grammar.y"
     { (yyval.declMode) = privateAccess; ;}
     break;
 
   case 1142:
 
 /* Line 1464 of yacc.c  */
-#line 3335 "grammar.y"
+#line 3359 "grammar.y"
     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (2)].list), null); (yyval.declaration).loc = (yyloc); ;}
     break;
 
   case 1143:
 
 /* Line 1464 of yacc.c  */
-#line 3336 "grammar.y"
+#line 3360 "grammar.y"
     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].list)); (yyval.declaration).loc = (yyloc); ;}
     break;
 
   case 1144:
 
 /* Line 1464 of yacc.c  */
-#line 3337 "grammar.y"
+#line 3361 "grammar.y"
     { (yyval.declaration) = MkDeclarationInst((yyvsp[(1) - (2)].instance)); (yyval.declaration).loc = (yyloc); ;}
     break;
 
   case 1145:
 
 /* Line 1464 of yacc.c  */
-#line 3338 "grammar.y"
+#line 3362 "grammar.y"
     { (yyval.declaration) = (yyvsp[(1) - (2)].declaration); ;}
     break;
 
   case 1146:
 
 /* Line 1464 of yacc.c  */
-#line 3342 "grammar.y"
+#line 3366 "grammar.y"
     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (2)].list), null); (yyval.declaration).loc = (yyloc); ;}
     break;
 
   case 1147:
 
 /* Line 1464 of yacc.c  */
-#line 3343 "grammar.y"
+#line 3367 "grammar.y"
     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].list)); (yyval.declaration).loc = (yyloc); ;}
     break;
 
   case 1148:
 
 /* Line 1464 of yacc.c  */
-#line 3344 "grammar.y"
+#line 3368 "grammar.y"
     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].list)); (yyval.declaration).loc = (yyloc); ;}
     break;
 
   case 1149:
 
 /* Line 1464 of yacc.c  */
-#line 3346 "grammar.y"
+#line 3370 "grammar.y"
     { (yyval.declaration) = MkDeclarationInst((yyvsp[(1) - (2)].instance)); (yyval.declaration).loc = (yyloc); ;}
     break;
 
   case 1150:
 
 /* Line 1464 of yacc.c  */
-#line 3347 "grammar.y"
+#line 3371 "grammar.y"
     { (yyval.declaration) = MkDeclarationDefine((yyvsp[(2) - (5)].id), (yyvsp[(4) - (5)].exp)); (yyval.declaration).loc = (yyloc); ;}
     break;
 
   case 1151:
 
 /* Line 1464 of yacc.c  */
-#line 3348 "grammar.y"
+#line 3372 "grammar.y"
     { declMode = staticAccess; (yyval.declaration) = MkDeclarationDefine((yyvsp[(3) - (6)].id), (yyvsp[(5) - (6)].exp)); (yyval.declaration).loc = (yyloc); ;}
     break;
 
   case 1152:
 
 /* Line 1464 of yacc.c  */
-#line 3352 "grammar.y"
+#line 3376 "grammar.y"
     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (2)].list), null); (yyval.declaration).loc = (yyloc); yyerrok; ;}
     break;
 
   case 1153:
 
 /* Line 1464 of yacc.c  */
-#line 3356 "grammar.y"
+#line 3380 "grammar.y"
     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (2)].list), null); (yyval.declaration).loc = (yyloc); ;}
     break;
 
   case 1154:
 
 /* Line 1464 of yacc.c  */
-#line 3357 "grammar.y"
+#line 3381 "grammar.y"
     {;}
     break;
 
   case 1155:
 
 /* Line 1464 of yacc.c  */
-#line 3359 "grammar.y"
+#line 3383 "grammar.y"
     { (yyval.declaration) = MkDeclarationInst((yyvsp[(1) - (2)].instance)); (yyval.declaration).loc = (yyloc); ;}
     break;
 
   case 1156:
 
 /* Line 1464 of yacc.c  */
-#line 3360 "grammar.y"
+#line 3384 "grammar.y"
     { (yyval.declaration) = MkDeclarationInst((yyvsp[(1) - (2)].instance)); (yyval.declaration).loc = (yyloc); ;}
     break;
 
   case 1157:
 
 /* Line 1464 of yacc.c  */
-#line 3361 "grammar.y"
+#line 3385 "grammar.y"
     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list)); (yyval.declaration).loc = (yyloc); ;}
     break;
 
   case 1158:
 
 /* Line 1464 of yacc.c  */
-#line 3365 "grammar.y"
+#line 3389 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].declaration)); /*declMode = defaultDeclMode;*/ ;}
     break;
 
   case 1159:
 
 /* Line 1464 of yacc.c  */
-#line 3366 "grammar.y"
+#line 3390 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declaration)); /*declMode = defaultDeclMode; */;}
     break;
 
   case 1160:
 
 /* Line 1464 of yacc.c  */
-#line 3367 "grammar.y"
+#line 3391 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declaration)); /*declMode = defaultDeclMode; */;}
     break;
 
   case 1161:
 
 /* Line 1464 of yacc.c  */
-#line 3368 "grammar.y"
+#line 3392 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ;}
     break;
 
   case 1162:
 
 /* Line 1464 of yacc.c  */
-#line 3372 "grammar.y"
+#line 3396 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].declaration)); ;}
     break;
 
   case 1163:
 
 /* Line 1464 of yacc.c  */
-#line 3373 "grammar.y"
+#line 3397 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declaration)); ;}
     break;
 
   case 1164:
 
 /* Line 1464 of yacc.c  */
-#line 3377 "grammar.y"
+#line 3401 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].stmt)); ;}
     break;
 
   case 1165:
 
 /* Line 1464 of yacc.c  */
-#line 3378 "grammar.y"
+#line 3402 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].stmt)); ;}
     break;
 
   case 1166:
 
 /* Line 1464 of yacc.c  */
-#line 3379 "grammar.y"
+#line 3403 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].stmt)); ;}
     break;
 
   case 1167:
 
 /* Line 1464 of yacc.c  */
-#line 3383 "grammar.y"
+#line 3407 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].stmt)); ;}
     break;
 
   case 1168:
 
 /* Line 1464 of yacc.c  */
-#line 3384 "grammar.y"
+#line 3408 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].stmt)); ;}
     break;
 
   case 1169:
 
 /* Line 1464 of yacc.c  */
-#line 3385 "grammar.y"
+#line 3409 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].stmt)); ;}
     break;
 
   case 1170:
 
 /* Line 1464 of yacc.c  */
-#line 3386 "grammar.y"
+#line 3410 "grammar.y"
     { Statement stmt = MkBadDeclStmt((yyvsp[(2) - (2)].declaration)); stmt.loc = (yylsp[(2) - (2)]); Compiler_Warning(C89_DECL_WARNING); (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), stmt); /*declMode = defaultDeclMode;*/ ;}
     break;
 
   case 1171:
 
 /* Line 1464 of yacc.c  */
-#line 3387 "grammar.y"
+#line 3411 "grammar.y"
     { Statement stmt = MkBadDeclStmt((yyvsp[(2) - (2)].declaration)); stmt.loc = (yylsp[(2) - (2)]); Compiler_Warning(C89_DECL_WARNING); (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), stmt); /*declMode = defaultDeclMode;*/ ;}
     break;
 
   case 1172:
 
 /* Line 1464 of yacc.c  */
-#line 3388 "grammar.y"
+#line 3412 "grammar.y"
     { Statement stmt = MkBadDeclStmt((yyvsp[(2) - (2)].declaration)); stmt.loc = (yylsp[(2) - (2)]); Compiler_Warning(C89_DECL_WARNING); (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), stmt); /*declMode = defaultDeclMode;*/ ;}
     break;
 
   case 1173:
 
 /* Line 1464 of yacc.c  */
-#line 3389 "grammar.y"
+#line 3413 "grammar.y"
     { Statement stmt = MkBadDeclStmt((yyvsp[(2) - (2)].declaration)); stmt.loc = (yylsp[(2) - (2)]); Compiler_Warning(C89_DECL_WARNING); (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), stmt); /*declMode = defaultDeclMode;*/ ;}
     break;
 
   case 1174:
 
 /* Line 1464 of yacc.c  */
-#line 3393 "grammar.y"
+#line 3417 "grammar.y"
     { (yyval.stmt) = MkCompoundStmt(null, (yyvsp[(1) - (1)].list)); ;}
     break;
 
   case 1175:
 
 /* Line 1464 of yacc.c  */
-#line 3394 "grammar.y"
+#line 3418 "grammar.y"
     { (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (1)].list), null); ;}
     break;
 
   case 1176:
 
 /* Line 1464 of yacc.c  */
-#line 3395 "grammar.y"
+#line 3419 "grammar.y"
     { (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list)); ;}
     break;
 
   case 1177:
 
 /* Line 1464 of yacc.c  */
-#line 3396 "grammar.y"
+#line 3420 "grammar.y"
     { (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list)); ;}
     break;
 
   case 1178:
 
 /* Line 1464 of yacc.c  */
-#line 3400 "grammar.y"
+#line 3424 "grammar.y"
     { (yyval.stmt) = MkCompoundStmt(null, (yyvsp[(1) - (1)].list)); ;}
     break;
 
   case 1179:
 
 /* Line 1464 of yacc.c  */
-#line 3401 "grammar.y"
+#line 3425 "grammar.y"
     { (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (1)].list), null); ;}
     break;
 
   case 1180:
 
 /* Line 1464 of yacc.c  */
-#line 3402 "grammar.y"
+#line 3426 "grammar.y"
     { (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list)); ;}
     break;
 
   case 1181:
 
 /* Line 1464 of yacc.c  */
-#line 3403 "grammar.y"
+#line 3427 "grammar.y"
     { (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list)); ;}
     break;
 
   case 1182:
 
 /* Line 1464 of yacc.c  */
-#line 3407 "grammar.y"
+#line 3431 "grammar.y"
     { (yyval.context) = PushContext(); ;}
     break;
 
   case 1183:
 
 /* Line 1464 of yacc.c  */
-#line 3411 "grammar.y"
+#line 3435 "grammar.y"
     { (yyval.stmt) = (yyvsp[(1) - (2)].stmt); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1184:
 
 /* Line 1464 of yacc.c  */
-#line 3416 "grammar.y"
+#line 3440 "grammar.y"
     { (yyval.stmt) = (yyvsp[(2) - (2)].stmt); (yyval.stmt).compound.context = (yyvsp[(1) - (2)].context); PopContext((yyvsp[(1) - (2)].context)); (yyval.stmt).loc = (yyloc); (yyval.stmt).loc.end.charPos++; (yyval.stmt).loc.end.pos++; ;}
     break;
 
   case 1185:
 
 /* Line 1464 of yacc.c  */
-#line 3418 "grammar.y"
+#line 3442 "grammar.y"
     { (yyval.stmt) = MkCompoundStmt(null, null); (yyval.stmt).compound.context = (yyvsp[(1) - (1)].context); PopContext((yyvsp[(1) - (1)].context)); (yyval.stmt).loc = (yyloc); (yyval.stmt).loc.end.charPos++; (yyval.stmt).loc.end.pos++; ;}
     break;
 
   case 1186:
 
 /* Line 1464 of yacc.c  */
-#line 3421 "grammar.y"
+#line 3445 "grammar.y"
     { (yyval.stmt) = (yyvsp[(2) - (2)].stmt); (yyval.stmt).compound.context = (yyvsp[(1) - (2)].context); PopContext((yyvsp[(1) - (2)].context)); (yyval.stmt).loc = (yyloc); (yyval.stmt).loc.end.charPos++; (yyval.stmt).loc.end.pos++; ;}
     break;
 
   case 1187:
 
 /* Line 1464 of yacc.c  */
-#line 3426 "grammar.y"
+#line 3450 "grammar.y"
     { (yyval.stmt) = MkExpressionStmt(null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1188:
 
 /* Line 1464 of yacc.c  */
-#line 3427 "grammar.y"
+#line 3451 "grammar.y"
     { (yyval.stmt) = MkExpressionStmt((yyvsp[(1) - (2)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1189:
 
 /* Line 1464 of yacc.c  */
-#line 3428 "grammar.y"
+#line 3452 "grammar.y"
     { (yyval.stmt) = MkExpressionStmt((yyvsp[(1) - (2)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1190:
 
 /* Line 1464 of yacc.c  */
-#line 3432 "grammar.y"
+#line 3456 "grammar.y"
     { (yyval.stmt) = MkIfStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt), null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1191:
 
 /* Line 1464 of yacc.c  */
-#line 3433 "grammar.y"
+#line 3457 "grammar.y"
     { (yyval.stmt) = MkIfStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt), null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1192:
 
 /* Line 1464 of yacc.c  */
-#line 3434 "grammar.y"
+#line 3458 "grammar.y"
     { (yyval.stmt) = MkIfStmt((yyvsp[(3) - (7)].list), (yyvsp[(5) - (7)].stmt), (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1193:
 
 /* Line 1464 of yacc.c  */
-#line 3435 "grammar.y"
+#line 3459 "grammar.y"
     { (yyval.stmt) = MkIfStmt((yyvsp[(3) - (7)].list), (yyvsp[(5) - (7)].stmt), (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1194:
 
 /* Line 1464 of yacc.c  */
-#line 3436 "grammar.y"
+#line 3460 "grammar.y"
     { (yyval.stmt) = MkSwitchStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1195:
 
 /* Line 1464 of yacc.c  */
-#line 3437 "grammar.y"
+#line 3461 "grammar.y"
     { (yyval.stmt) = MkSwitchStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1196:
 
 /* Line 1464 of yacc.c  */
-#line 3441 "grammar.y"
+#line 3465 "grammar.y"
     { (yyval.stmt) = MkIfStmt((yyvsp[(3) - (3)].list), null, null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1198:
 
 /* Line 1464 of yacc.c  */
-#line 3446 "grammar.y"
+#line 3470 "grammar.y"
     { (yyval.stmt) = MkWhileStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1199:
 
 /* Line 1464 of yacc.c  */
-#line 3447 "grammar.y"
+#line 3471 "grammar.y"
     { (yyval.stmt) = MkWhileStmt((yyvsp[(3) - (4)].list), (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1200:
 
 /* Line 1464 of yacc.c  */
-#line 3448 "grammar.y"
+#line 3472 "grammar.y"
     { (yyval.stmt) = MkWhileStmt(null, (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1201:
 
 /* Line 1464 of yacc.c  */
-#line 3450 "grammar.y"
+#line 3474 "grammar.y"
     { (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (7)].stmt), (yyvsp[(5) - (7)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1202:
 
 /* Line 1464 of yacc.c  */
-#line 3451 "grammar.y"
+#line 3475 "grammar.y"
     { (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (6)].stmt), (yyvsp[(5) - (6)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1203:
 
 /* Line 1464 of yacc.c  */
-#line 3453 "grammar.y"
+#line 3477 "grammar.y"
     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (6)].stmt), (yyvsp[(4) - (6)].stmt), null, (yyvsp[(6) - (6)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1204:
 
 /* Line 1464 of yacc.c  */
-#line 3454 "grammar.y"
+#line 3478 "grammar.y"
     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (5)].stmt), null, null, (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1205:
 
 /* Line 1464 of yacc.c  */
-#line 3455 "grammar.y"
+#line 3479 "grammar.y"
     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (7)].stmt), (yyvsp[(4) - (7)].stmt), (yyvsp[(5) - (7)].list), (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1206:
 
 /* Line 1464 of yacc.c  */
-#line 3456 "grammar.y"
+#line 3480 "grammar.y"
     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (6)].stmt), (yyvsp[(4) - (6)].stmt), (yyvsp[(5) - (6)].list), (yyvsp[(6) - (6)].stmt) ); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1207:
 
 /* Line 1464 of yacc.c  */
-#line 3457 "grammar.y"
+#line 3481 "grammar.y"
     { (yyval.stmt) = MkForStmt(null, null, null, (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1208:
 
 /* Line 1464 of yacc.c  */
-#line 3459 "grammar.y"
+#line 3483 "grammar.y"
     { (yyval.stmt) = MkForEachStmt((yyvsp[(3) - (7)].id), (yyvsp[(5) - (7)].list), null, (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1209:
 
 /* Line 1464 of yacc.c  */
-#line 3460 "grammar.y"
+#line 3484 "grammar.y"
     { (yyval.stmt) = MkForEachStmt((yyvsp[(3) - (9)].id), (yyvsp[(5) - (9)].list), (yyvsp[(7) - (9)].list), (yyvsp[(9) - (9)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1210:
 
 /* Line 1464 of yacc.c  */
-#line 3464 "grammar.y"
+#line 3488 "grammar.y"
     { (yyval.stmt) = MkForStmt(null, null, null, null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1211:
 
 /* Line 1464 of yacc.c  */
-#line 3465 "grammar.y"
+#line 3489 "grammar.y"
     { (yyval.stmt) = MkForStmt(MkExpressionStmt((yyvsp[(3) - (4)].list)), null, null, null); (yyval.stmt).forStmt.init.loc = (yylsp[(3) - (4)]); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1212:
 
 /* Line 1464 of yacc.c  */
-#line 3466 "grammar.y"
+#line 3490 "grammar.y"
     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (4)].stmt), null, null, null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1213:
 
 /* Line 1464 of yacc.c  */
-#line 3467 "grammar.y"
+#line 3491 "grammar.y"
     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (5)].stmt), MkExpressionStmt((yyvsp[(4) - (5)].list)), null, null); (yyval.stmt).loc = (yyloc); (yyval.stmt).forStmt.check.loc = (yylsp[(4) - (5)]); ;}
     break;
 
   case 1214:
 
 /* Line 1464 of yacc.c  */
-#line 3471 "grammar.y"
+#line 3495 "grammar.y"
     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (5)].stmt), (yyvsp[(4) - (5)].stmt), (yyvsp[(5) - (5)].list), null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1215:
 
 /* Line 1464 of yacc.c  */
-#line 3472 "grammar.y"
+#line 3496 "grammar.y"
     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (6)].stmt), (yyvsp[(4) - (6)].stmt), null, (yyvsp[(6) - (6)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1216:
 
 /* Line 1464 of yacc.c  */
-#line 3473 "grammar.y"
+#line 3497 "grammar.y"
     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (7)].stmt), (yyvsp[(4) - (7)].stmt), (yyvsp[(5) - (7)].list), (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1217:
 
 /* Line 1464 of yacc.c  */
-#line 3474 "grammar.y"
+#line 3498 "grammar.y"
     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (6)].stmt), (yyvsp[(4) - (6)].stmt), (yyvsp[(5) - (6)].list), (yyvsp[(6) - (6)].stmt) ); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1218:
 
 /* Line 1464 of yacc.c  */
-#line 3476 "grammar.y"
+#line 3500 "grammar.y"
     { (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (6)].stmt), (yyvsp[(5) - (6)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1219:
 
 /* Line 1464 of yacc.c  */
-#line 3477 "grammar.y"
+#line 3501 "grammar.y"
     { (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (5)].stmt), (yyvsp[(5) - (5)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1220:
 
 /* Line 1464 of yacc.c  */
-#line 3478 "grammar.y"
+#line 3502 "grammar.y"
     { (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (5)].stmt), (yyvsp[(5) - (5)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1221:
 
 /* Line 1464 of yacc.c  */
-#line 3479 "grammar.y"
+#line 3503 "grammar.y"
     { (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (4)].stmt), null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1222:
 
 /* Line 1464 of yacc.c  */
-#line 3480 "grammar.y"
+#line 3504 "grammar.y"
     { (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (3)].stmt), null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1223:
 
 /* Line 1464 of yacc.c  */
-#line 3481 "grammar.y"
+#line 3505 "grammar.y"
     { (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (2)].stmt), null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1224:
 
 /* Line 1464 of yacc.c  */
-#line 3482 "grammar.y"
+#line 3506 "grammar.y"
     { (yyval.stmt) = MkDoWhileStmt(null, null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1225:
 
 /* Line 1464 of yacc.c  */
-#line 3485 "grammar.y"
+#line 3509 "grammar.y"
     { (yyval.stmt) = MkWhileStmt(null, null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1226:
 
 /* Line 1464 of yacc.c  */
-#line 3489 "grammar.y"
+#line 3513 "grammar.y"
     { (yyval.stmt) = MkWhileStmt(null, null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1227:
 
 /* Line 1464 of yacc.c  */
-#line 3490 "grammar.y"
+#line 3514 "grammar.y"
     { (yyval.stmt) = MkWhileStmt((yyvsp[(3) - (3)].list), null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1228:
 
 /* Line 1464 of yacc.c  */
-#line 3494 "grammar.y"
+#line 3518 "grammar.y"
     { (yyval.stmt) = MkWhileStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1229:
 
 /* Line 1464 of yacc.c  */
-#line 3495 "grammar.y"
+#line 3519 "grammar.y"
     { (yyval.stmt) = MkWhileStmt((yyvsp[(3) - (4)].list), (yyvsp[(4) - (4)].stmt) ); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1230:
 
 /* Line 1464 of yacc.c  */
-#line 3499 "grammar.y"
+#line 3523 "grammar.y"
     { (yyval.stmt) = MkGotoStmt((yyvsp[(2) - (3)].id)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1231:
 
 /* Line 1464 of yacc.c  */
-#line 3500 "grammar.y"
+#line 3524 "grammar.y"
     { (yyval.stmt) = MkContinueStmt(); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1232:
 
 /* Line 1464 of yacc.c  */
-#line 3501 "grammar.y"
+#line 3525 "grammar.y"
     { (yyval.stmt) = MkBreakStmt(); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1233:
 
 /* Line 1464 of yacc.c  */
-#line 3502 "grammar.y"
+#line 3526 "grammar.y"
     { Expression exp = MkExpDummy(); (yyval.stmt) = MkReturnStmt(MkListOne(exp)); (yyval.stmt).loc = (yyloc); exp.loc = (yylsp[(2) - (2)]); ;}
     break;
 
   case 1234:
 
 /* Line 1464 of yacc.c  */
-#line 3503 "grammar.y"
+#line 3527 "grammar.y"
     { (yyval.stmt) = MkReturnStmt((yyvsp[(2) - (3)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1235:
 
 /* Line 1464 of yacc.c  */
-#line 3504 "grammar.y"
+#line 3528 "grammar.y"
     { (yyval.stmt) = MkReturnStmt((yyvsp[(2) - (3)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1236:
 
 /* Line 1464 of yacc.c  */
-#line 3505 "grammar.y"
+#line 3529 "grammar.y"
     { (yyval.stmt) = MkReturnStmt(MkListOne((yyvsp[(2) - (3)].exp))); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1237:
 
 /* Line 1464 of yacc.c  */
-#line 3506 "grammar.y"
+#line 3530 "grammar.y"
     { (yyval.stmt) = MkReturnStmt(MkListOne((yyvsp[(2) - (3)].exp))); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1238:
 
 /* Line 1464 of yacc.c  */
-#line 3510 "grammar.y"
+#line 3534 "grammar.y"
     { (yyval.stmt) = MkReturnStmt((yyvsp[(2) - (2)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1239:
 
 /* Line 1464 of yacc.c  */
-#line 3511 "grammar.y"
+#line 3535 "grammar.y"
     { (yyval.stmt) = MkReturnStmt(MkListOne((yyvsp[(2) - (2)].exp))); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1240:
 
 /* Line 1464 of yacc.c  */
-#line 3512 "grammar.y"
+#line 3536 "grammar.y"
     { Expression exp = MkExpDummy(); (yyval.stmt) = MkReturnStmt(MkListOne(exp)); (yyval.stmt).loc = (yyloc); exp.loc.start = exp.loc.end = (yylsp[(1) - (1)]).end; ;}
     break;
 
   case 1241:
 
 /* Line 1464 of yacc.c  */
-#line 3513 "grammar.y"
+#line 3537 "grammar.y"
     { (yyval.stmt) = MkGotoStmt(null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1242:
 
 /* Line 1464 of yacc.c  */
-#line 3519 "grammar.y"
+#line 3543 "grammar.y"
     { (yyval.function) = MkFunction((yyvsp[(1) - (4)].list), (yyvsp[(2) - (4)].declarator), (yyvsp[(3) - (4)].list)); ProcessFunctionBody((yyval.function), (yyvsp[(4) - (4)].stmt)); (yyval.function).loc = (yyloc); ;}
     break;
 
   case 1243:
 
 /* Line 1464 of yacc.c  */
-#line 3521 "grammar.y"
+#line 3545 "grammar.y"
     { (yyval.function) = MkFunction((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].declarator), null); ProcessFunctionBody((yyval.function), (yyvsp[(3) - (3)].stmt)); (yyval.function).loc = (yyloc); ;}
     break;
 
   case 1244:
 
 /* Line 1464 of yacc.c  */
-#line 3522 "grammar.y"
+#line 3546 "grammar.y"
     { (yyval.function) = MkFunction((yyvsp[(1) - (4)].list), (yyvsp[(2) - (4)].declarator), (yyvsp[(3) - (4)].list)); ProcessFunctionBody((yyval.function), (yyvsp[(4) - (4)].stmt)); (yyval.function).loc = (yyloc); ;}
     break;
 
   case 1245:
 
 /* Line 1464 of yacc.c  */
-#line 3524 "grammar.y"
+#line 3548 "grammar.y"
     { (yyval.function) = MkFunction((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].declarator), null); ProcessFunctionBody((yyval.function), (yyvsp[(3) - (3)].stmt)); (yyval.function).loc = (yyloc); ;}
     break;
 
   case 1246:
 
 /* Line 1464 of yacc.c  */
-#line 3526 "grammar.y"
+#line 3550 "grammar.y"
     { (yyval.function) = MkFunction(null, (yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ProcessFunctionBody((yyval.function), (yyvsp[(3) - (3)].stmt)); (yyval.function).loc = (yyloc); ;}
     break;
 
   case 1247:
 
 /* Line 1464 of yacc.c  */
-#line 3527 "grammar.y"
+#line 3551 "grammar.y"
     { (yyval.function) = MkFunction(null, (yyvsp[(1) - (2)].declarator), null); ProcessFunctionBody((yyval.function), (yyvsp[(2) - (2)].stmt)); (yyval.function).loc = (yyloc);;}
     break;
 
   case 1248:
 
 /* Line 1464 of yacc.c  */
-#line 3530 "grammar.y"
+#line 3554 "grammar.y"
     { (yyval.function) = MkFunction((yyvsp[(1) - (4)].list), (yyvsp[(2) - (4)].declarator), (yyvsp[(3) - (4)].list)); ProcessFunctionBody((yyval.function), (yyvsp[(4) - (4)].stmt)); (yyval.function).loc = (yyloc); (yyval.function).loc.end = (yyvsp[(4) - (4)].stmt).loc.end; ;}
     break;
 
   case 1249:
 
 /* Line 1464 of yacc.c  */
-#line 3531 "grammar.y"
+#line 3555 "grammar.y"
     { (yyval.function) = MkFunction((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].declarator), null); ProcessFunctionBody((yyval.function), (yyvsp[(3) - (3)].stmt)); (yyval.function).loc = (yyloc); (yyval.function).loc.end = (yyvsp[(3) - (3)].stmt).loc.end; ;}
     break;
 
   case 1250:
 
 /* Line 1464 of yacc.c  */
-#line 3532 "grammar.y"
+#line 3556 "grammar.y"
     { (yyval.function) = MkFunction((yyvsp[(1) - (4)].list), (yyvsp[(2) - (4)].declarator), (yyvsp[(3) - (4)].list)); ProcessFunctionBody((yyval.function), (yyvsp[(4) - (4)].stmt)); (yyval.function).loc = (yyloc); (yyval.function).loc.end = (yyvsp[(4) - (4)].stmt).loc.end; ;}
     break;
 
   case 1251:
 
 /* Line 1464 of yacc.c  */
-#line 3533 "grammar.y"
+#line 3557 "grammar.y"
     { (yyval.function) = MkFunction((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].declarator), null); ProcessFunctionBody((yyval.function), (yyvsp[(3) - (3)].stmt)); (yyval.function).loc = (yyloc); (yyval.function).loc.end = (yyvsp[(3) - (3)].stmt).loc.end; ;}
     break;
 
   case 1252:
 
 /* Line 1464 of yacc.c  */
-#line 3534 "grammar.y"
+#line 3558 "grammar.y"
     { (yyval.function) = MkFunction(null, (yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ProcessFunctionBody((yyval.function), (yyvsp[(3) - (3)].stmt)); (yyval.function).loc = (yyloc); (yyval.function).loc.end = (yyvsp[(3) - (3)].stmt).loc.end; ;}
     break;
 
   case 1253:
 
 /* Line 1464 of yacc.c  */
-#line 3535 "grammar.y"
+#line 3559 "grammar.y"
     { (yyval.function) = MkFunction(null, (yyvsp[(1) - (2)].declarator), null); ProcessFunctionBody((yyval.function), (yyvsp[(2) - (2)].stmt)); (yyval.function).loc = (yyloc); (yyval.function).loc.end = (yyvsp[(2) - (2)].stmt).loc.end; ;}
     break;
 
   case 1254:
 
 /* Line 1464 of yacc.c  */
-#line 3539 "grammar.y"
+#line 3563 "grammar.y"
     { (yyval.string) = CopyString(yytext); ;}
     break;
 
   case 1255:
 
 /* Line 1464 of yacc.c  */
-#line 3541 "grammar.y"
+#line 3565 "grammar.y"
     { 
       int len1 = strlen((yyvsp[(1) - (2)].string));
       int len2 = strlen(yytext);
@@ -21718,49 +21739,49 @@ yyreduce:
   case 1256:
 
 /* Line 1464 of yacc.c  */
-#line 3552 "grammar.y"
+#line 3576 "grammar.y"
     { (yyval.external) = MkExternalFunction((yyvsp[(1) - (1)].function)); (yyval.external).loc = (yyloc); (yyvsp[(1) - (1)].function).declMode = declMode; declMode = defaultDeclMode; ;}
     break;
 
   case 1257:
 
 /* Line 1464 of yacc.c  */
-#line 3554 "grammar.y"
+#line 3578 "grammar.y"
     { (yyval.external) = MkExternalClass((yyvsp[(1) - (1)]._class));  (yyval.external).loc = (yyloc); (yyvsp[(1) - (1)]._class).declMode = (declMode != defaultAccess) ? declMode : privateAccess; declMode = defaultDeclMode; ;}
     break;
 
   case 1258:
 
 /* Line 1464 of yacc.c  */
-#line 3557 "grammar.y"
+#line 3581 "grammar.y"
     { (yyval.external) = MkExternalClass((yyvsp[(2) - (2)]._class));  (yyval.external).loc = (yyloc); (yyvsp[(2) - (2)]._class).declMode = (declMode != defaultAccess) ? declMode : privateAccess; declMode = defaultDeclMode; FreeList((yyvsp[(1) - (2)].list), FreeSpecifier); ;}
     break;
 
   case 1259:
 
 /* Line 1464 of yacc.c  */
-#line 3560 "grammar.y"
+#line 3584 "grammar.y"
     { (yyval.external) = MkExternalDeclaration((yyvsp[(1) - (1)].declaration));  (yyval.external).loc = (yyloc); (yyvsp[(1) - (1)].declaration).declMode = declMode; declMode = defaultDeclMode; ;}
     break;
 
   case 1260:
 
 /* Line 1464 of yacc.c  */
-#line 3561 "grammar.y"
+#line 3585 "grammar.y"
     { (yyval.external) = MkExternalImport((yyvsp[(2) - (2)].string), normalImport, (declMode != defaultAccess) ? declMode : privateAccess);  (yyval.external).loc = (yyloc); ;}
     break;
 
   case 1261:
 
 /* Line 1464 of yacc.c  */
-#line 3562 "grammar.y"
+#line 3586 "grammar.y"
     { (yyval.external) = MkExternalImport((yyvsp[(3) - (3)].string), staticImport, (declMode != defaultAccess) ? declMode : privateAccess);  (yyval.external).loc = (yyloc); ;}
     break;
 
   case 1262:
 
 /* Line 1464 of yacc.c  */
-#line 3564 "grammar.y"
+#line 3588 "grammar.y"
     {
       bool isRemote = !strcmp((yyvsp[(2) - (3)].id).string, "remote");
       (yyval.external) = MkExternalImport((yyvsp[(3) - (3)].string), isRemote ? remoteImport : normalImport, (declMode != defaultAccess) ? declMode : privateAccess); 
@@ -21774,49 +21795,49 @@ yyreduce:
   case 1263:
 
 /* Line 1464 of yacc.c  */
-#line 3573 "grammar.y"
+#line 3597 "grammar.y"
     { (yyval.external) = null; ;}
     break;
 
   case 1264:
 
 /* Line 1464 of yacc.c  */
-#line 3575 "grammar.y"
+#line 3599 "grammar.y"
     { (yyval.external) = MkExternalFunction((yyvsp[(2) - (2)].function)); (yyval.external).loc = (yyloc); (yyvsp[(2) - (2)].function).declMode = (yyvsp[(1) - (2)].declMode); declMode = defaultDeclMode; ;}
     break;
 
   case 1265:
 
 /* Line 1464 of yacc.c  */
-#line 3577 "grammar.y"
+#line 3601 "grammar.y"
     { (yyval.external) = MkExternalClass((yyvsp[(2) - (2)]._class));  (yyval.external).loc = (yyloc); (yyvsp[(2) - (2)]._class).declMode = ((yyvsp[(1) - (2)].declMode) != defaultAccess) ? (yyvsp[(1) - (2)].declMode) : privateAccess; declMode = defaultDeclMode; ;}
     break;
 
   case 1266:
 
 /* Line 1464 of yacc.c  */
-#line 3578 "grammar.y"
+#line 3602 "grammar.y"
     { (yyval.external) = MkExternalDeclaration((yyvsp[(2) - (2)].declaration)); (yyval.external).loc = (yyloc); (yyvsp[(2) - (2)].declaration).declMode = (yyvsp[(1) - (2)].declMode); declMode = defaultDeclMode; ;}
     break;
 
   case 1267:
 
 /* Line 1464 of yacc.c  */
-#line 3579 "grammar.y"
+#line 3603 "grammar.y"
     { (yyval.external) = MkExternalImport((yyvsp[(3) - (3)].string), normalImport, ((yyvsp[(1) - (3)].declMode) != defaultAccess) ? (yyvsp[(1) - (3)].declMode) : privateAccess);  (yyval.external).loc = (yyloc); declMode = defaultDeclMode; ;}
     break;
 
   case 1268:
 
 /* Line 1464 of yacc.c  */
-#line 3580 "grammar.y"
+#line 3604 "grammar.y"
     { (yyval.external) = MkExternalImport((yyvsp[(4) - (4)].string), staticImport, ((yyvsp[(1) - (4)].declMode) != defaultAccess) ? (yyvsp[(1) - (4)].declMode) : privateAccess);  (yyval.external).loc = (yyloc); declMode = defaultDeclMode; ;}
     break;
 
   case 1269:
 
 /* Line 1464 of yacc.c  */
-#line 3582 "grammar.y"
+#line 3606 "grammar.y"
     {
       bool isRemote = !strcmp((yyvsp[(3) - (4)].id).string, "remote");
       (yyval.external) = MkExternalImport((yyvsp[(4) - (4)].string), isRemote ? remoteImport : normalImport, ((yyvsp[(1) - (4)].declMode) != defaultAccess) ? (yyvsp[(1) - (4)].declMode) : privateAccess);
@@ -21831,56 +21852,56 @@ yyreduce:
   case 1270:
 
 /* Line 1464 of yacc.c  */
-#line 3591 "grammar.y"
+#line 3615 "grammar.y"
     { defaultDeclMode = (yyvsp[(1) - (2)].declMode); (yyval.external) = null; ;}
     break;
 
   case 1271:
 
 /* Line 1464 of yacc.c  */
-#line 3592 "grammar.y"
+#line 3616 "grammar.y"
     { defaultDeclMode = staticAccess; (yyval.external) = null; ;}
     break;
 
   case 1272:
 
 /* Line 1464 of yacc.c  */
-#line 3593 "grammar.y"
+#line 3617 "grammar.y"
     { (yyval.external) = MkExternalNameSpace((yyvsp[(2) - (2)].id)); (yyval.external).loc = (yyloc); ;}
     break;
 
   case 1273:
 
 /* Line 1464 of yacc.c  */
-#line 3594 "grammar.y"
+#line 3618 "grammar.y"
     { (yyval.external) = MkExternalNameSpace(MkIdentifier((yyvsp[(2) - (2)].specifier).name)); FreeSpecifier((yyvsp[(2) - (2)].specifier)); (yyval.external).loc = (yyloc); ;}
     break;
 
   case 1274:
 
 /* Line 1464 of yacc.c  */
-#line 3595 "grammar.y"
+#line 3619 "grammar.y"
     { (yyval.external) = MkExternalDBTable((yyvsp[(1) - (1)].dbtableDef)); (yyval.external).loc = (yyloc);  (yyvsp[(1) - (1)].dbtableDef).declMode = (declMode != defaultAccess) ? declMode : privateAccess; declMode = defaultDeclMode; ;}
     break;
 
   case 1275:
 
 /* Line 1464 of yacc.c  */
-#line 3596 "grammar.y"
+#line 3620 "grammar.y"
     { (yyval.external) = MkExternalDBTable((yyvsp[(2) - (2)].dbtableDef)); (yyval.external).loc = (yyloc);  (yyvsp[(2) - (2)].dbtableDef).declMode = ((yyvsp[(1) - (2)].declMode) != defaultAccess) ? declMode : privateAccess; declMode = defaultDeclMode; ;}
     break;
 
   case 1276:
 
 /* Line 1464 of yacc.c  */
-#line 3600 "grammar.y"
+#line 3624 "grammar.y"
     { (yyval.external) = MkExternalClass((yyvsp[(1) - (1)]._class));  (yyval.external).loc = (yyvsp[(1) - (1)]._class).loc; (yyvsp[(1) - (1)]._class).declMode = (declMode != defaultAccess) ? declMode : privateAccess; declMode = defaultDeclMode; ;}
     break;
 
   case 1277:
 
 /* Line 1464 of yacc.c  */
-#line 3602 "grammar.y"
+#line 3626 "grammar.y"
     {
       FreeList((yyvsp[(1) - (2)].list), FreeSpecifier);
       (yyval.external) = MkExternalClass((yyvsp[(2) - (2)]._class));
@@ -21893,231 +21914,231 @@ yyreduce:
   case 1278:
 
 /* Line 1464 of yacc.c  */
-#line 3609 "grammar.y"
+#line 3633 "grammar.y"
     { (yyval.external) = MkExternalFunction((yyvsp[(1) - (1)].function)); (yyval.external).loc = (yyvsp[(1) - (1)].function).loc;  (yyvsp[(1) - (1)].function).declMode = declMode; declMode = defaultDeclMode; ;}
     break;
 
   case 1279:
 
 /* Line 1464 of yacc.c  */
-#line 3611 "grammar.y"
+#line 3635 "grammar.y"
     { (yyval.external) = MkExternalClass((yyvsp[(2) - (2)]._class));  (yyval.external).loc = (yyvsp[(2) - (2)]._class).loc; (yyvsp[(2) - (2)]._class).declMode = ((yyvsp[(1) - (2)].declMode) != defaultAccess) ? (yyvsp[(1) - (2)].declMode) : privateAccess; declMode = defaultDeclMode; ;}
     break;
 
   case 1280:
 
 /* Line 1464 of yacc.c  */
-#line 3612 "grammar.y"
+#line 3636 "grammar.y"
     { (yyval.external) = MkExternalFunction((yyvsp[(2) - (2)].function)); (yyval.external).loc = (yyvsp[(2) - (2)].function).loc; (yyvsp[(2) - (2)].function).declMode = (yyvsp[(1) - (2)].declMode); declMode = defaultDeclMode; ;}
     break;
 
   case 1281:
 
 /* Line 1464 of yacc.c  */
-#line 3615 "grammar.y"
+#line 3639 "grammar.y"
     { (yyval.external) = MkExternalDeclaration((yyvsp[(1) - (1)].declaration));  (yyval.external).loc = (yyloc); (yyvsp[(1) - (1)].declaration).declMode = declMode; declMode = defaultDeclMode; ;}
     break;
 
   case 1282:
 
 /* Line 1464 of yacc.c  */
-#line 3616 "grammar.y"
+#line 3640 "grammar.y"
     { (yyval.external) = MkExternalDeclaration((yyvsp[(2) - (2)].declaration)); (yyval.external).loc = (yyloc); (yyvsp[(2) - (2)].declaration).declMode = (yyvsp[(1) - (2)].declMode); declMode = defaultDeclMode; ;}
     break;
 
   case 1283:
 
 /* Line 1464 of yacc.c  */
-#line 3620 "grammar.y"
+#line 3644 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].external)); ast = (yyval.list); ;}
     break;
 
   case 1284:
 
 /* Line 1464 of yacc.c  */
-#line 3621 "grammar.y"
+#line 3645 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].external)); ;}
     break;
 
   case 1285:
 
 /* Line 1464 of yacc.c  */
-#line 3622 "grammar.y"
+#line 3646 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].external)); ;}
     break;
 
   case 1288:
 
 /* Line 1464 of yacc.c  */
-#line 3628 "grammar.y"
+#line 3652 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].external)); ast = (yyval.list); ;}
     break;
 
   case 1289:
 
 /* Line 1464 of yacc.c  */
-#line 3629 "grammar.y"
+#line 3653 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].external)); ;}
     break;
 
   case 1290:
 
 /* Line 1464 of yacc.c  */
-#line 3631 "grammar.y"
+#line 3655 "grammar.y"
     { External _class = MkExternalClass((yyvsp[(2) - (2)]._class)); (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), _class); _class.loc = (yylsp[(2) - (2)]);  (yyvsp[(2) - (2)]._class).declMode = (declMode != defaultAccess) ? declMode : privateAccess; declMode = defaultDeclMode; ;}
     break;
 
   case 1291:
 
 /* Line 1464 of yacc.c  */
-#line 3633 "grammar.y"
+#line 3657 "grammar.y"
     { External _class = MkExternalClass((yyvsp[(3) - (3)]._class)); (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), _class); _class.loc = (yylsp[(3) - (3)]);  (yyvsp[(3) - (3)]._class).declMode = ((yyvsp[(2) - (3)].declMode) != defaultAccess) ? (yyvsp[(2) - (3)].declMode) : privateAccess; declMode = defaultDeclMode; ;}
     break;
 
   case 1294:
 
 /* Line 1464 of yacc.c  */
-#line 3639 "grammar.y"
+#line 3663 "grammar.y"
     { ast = MkList(); ;}
     break;
 
   case 1295:
 
 /* Line 1464 of yacc.c  */
-#line 3643 "grammar.y"
+#line 3667 "grammar.y"
     { Symbol symbol = DeclClassAddNameSpace(globalContext.nextID++, (yyvsp[(3) - (6)].id).string); FreeIdentifier((yyvsp[(3) - (6)].id)); (yyval.dbtableDef) = MkDBTableDef((yyvsp[(2) - (6)].string), symbol, (yyvsp[(5) - (6)].list)); ;}
     break;
 
   case 1296:
 
 /* Line 1464 of yacc.c  */
-#line 3644 "grammar.y"
+#line 3668 "grammar.y"
     { Symbol symbol = DeclClass(globalContext.nextID++, (yyvsp[(3) - (6)].specifier).name); FreeSpecifier((yyvsp[(3) - (6)].specifier)); (yyval.dbtableDef) = MkDBTableDef((yyvsp[(2) - (6)].string), symbol, (yyvsp[(5) - (6)].list)); ;}
     break;
 
   case 1297:
 
 /* Line 1464 of yacc.c  */
-#line 3645 "grammar.y"
+#line 3669 "grammar.y"
     { (yyval.dbtableDef) = MkDBTableDef((yyvsp[(2) - (5)].string), null, (yyvsp[(4) - (5)].list)); ;}
     break;
 
   case 1298:
 
 /* Line 1464 of yacc.c  */
-#line 3649 "grammar.y"
+#line 3673 "grammar.y"
     { (yyval.dbtableEntry) = MkDBFieldEntry(MkTypeName((yyvsp[(1) - (4)].list), null), (yyvsp[(2) - (4)].id), (yyvsp[(3) - (4)].string)); ;}
     break;
 
   case 1299:
 
 /* Line 1464 of yacc.c  */
-#line 3653 "grammar.y"
+#line 3677 "grammar.y"
     { (yyval.dbindexItem) = MkDBIndexItem((yyvsp[(1) - (1)].id), ascending); ;}
     break;
 
   case 1300:
 
 /* Line 1464 of yacc.c  */
-#line 3654 "grammar.y"
+#line 3678 "grammar.y"
     { (yyval.dbindexItem) = MkDBIndexItem((yyvsp[(2) - (2)].id), descending); ;}
     break;
 
   case 1301:
 
 /* Line 1464 of yacc.c  */
-#line 3655 "grammar.y"
+#line 3679 "grammar.y"
     { (yyval.dbindexItem) = MkDBIndexItem((yyvsp[(2) - (2)].id), ascending); ;}
     break;
 
   case 1302:
 
 /* Line 1464 of yacc.c  */
-#line 3659 "grammar.y"
+#line 3683 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].dbindexItem)); ;}
     break;
 
   case 1303:
 
 /* Line 1464 of yacc.c  */
-#line 3660 "grammar.y"
+#line 3684 "grammar.y"
     { ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].dbindexItem)); ;}
     break;
 
   case 1304:
 
 /* Line 1464 of yacc.c  */
-#line 3664 "grammar.y"
+#line 3688 "grammar.y"
     { (yyval.dbtableEntry) = MkDBIndexEntry((yyvsp[(2) - (3)].list), null); ;}
     break;
 
   case 1305:
 
 /* Line 1464 of yacc.c  */
-#line 3665 "grammar.y"
+#line 3689 "grammar.y"
     { (yyval.dbtableEntry) = MkDBIndexEntry((yyvsp[(2) - (4)].list), (yyvsp[(3) - (4)].id)); ;}
     break;
 
   case 1306:
 
 /* Line 1464 of yacc.c  */
-#line 3669 "grammar.y"
+#line 3693 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].dbtableEntry)); ;}
     break;
 
   case 1307:
 
 /* Line 1464 of yacc.c  */
-#line 3670 "grammar.y"
+#line 3694 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].dbtableEntry)); ;}
     break;
 
   case 1308:
 
 /* Line 1464 of yacc.c  */
-#line 3671 "grammar.y"
+#line 3695 "grammar.y"
     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].dbtableEntry)); ;}
     break;
 
   case 1309:
 
 /* Line 1464 of yacc.c  */
-#line 3672 "grammar.y"
+#line 3696 "grammar.y"
     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].dbtableEntry)); ;}
     break;
 
   case 1310:
 
 /* Line 1464 of yacc.c  */
-#line 3676 "grammar.y"
+#line 3700 "grammar.y"
     { (yyval.exp) = MkExpDBOpen((yyvsp[(3) - (6)].exp), (yyvsp[(5) - (6)].exp)); ;}
     break;
 
   case 1311:
 
 /* Line 1464 of yacc.c  */
-#line 3680 "grammar.y"
+#line 3704 "grammar.y"
     { (yyval.exp) = MkExpDBField((yyvsp[(3) - (6)].string), (yyvsp[(5) - (6)].id)); ;}
     break;
 
   case 1312:
 
 /* Line 1464 of yacc.c  */
-#line 3684 "grammar.y"
+#line 3708 "grammar.y"
     { (yyval.exp) = MkExpDBIndex((yyvsp[(3) - (6)].string), (yyvsp[(5) - (6)].id)); ;}
     break;
 
   case 1313:
 
 /* Line 1464 of yacc.c  */
-#line 3688 "grammar.y"
+#line 3712 "grammar.y"
     { (yyval.exp) = MkExpDBTable((yyvsp[(3) - (4)].string)); ;}
     break;
 
 
 
 /* Line 1464 of yacc.c  */
-#line 22121 "grammar.ec"
+#line 22142 "grammar.ec"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -22336,6 +22357,6 @@ yyreturn:
 
 
 /* Line 1684 of yacc.c  */
-#line 3691 "grammar.y"
+#line 3715 "grammar.y"
 
 
index 7a87626..f9b9941 100644 (file)
@@ -2697,6 +2697,7 @@ direct_declarator_nofunction_type_ok:
       $$ = MkDeclaratorIdentifier(MkIdentifier(s));
    }
    | UINT { $$ = MkDeclaratorIdentifier(MkIdentifier("uint")); }
+   // These rules need to be reviewed in lights of prototypes with types only...
        | base_strict_type '[' constant_expression ']'
       {
          Declarator decl;
@@ -2706,10 +2707,33 @@ direct_declarator_nofunction_type_ok:
          FreeSpecifier($1);
          $$ = MkDeclaratorArray(decl, $3);
       }
-   | base_strict_type '[' constant_expression_error ']' { $$ = MkDeclaratorArray($1, $3); }
-       | base_strict_type '[' type ']' { $$ = MkDeclaratorEnumArray($1, $3); }
-       | base_strict_type '[' ']'                     { $$ = MkDeclaratorArray($1, null); }
-
+   | base_strict_type '[' constant_expression_error ']'
+      {
+         Declarator decl;
+         char * colon = RSearchString($1.name, "::", strlen($1.name), true, false);
+         String s = colon ? colon + 2 : $1.name;
+         decl = MkDeclaratorIdentifier(MkIdentifier(s));
+         FreeSpecifier($1);
+         $$ = MkDeclaratorArray(decl, $3);
+      }
+       | base_strict_type '[' type ']'
+      {
+         Declarator decl;
+         char * colon = RSearchString($1.name, "::", strlen($1.name), true, false);
+         String s = colon ? colon + 2 : $1.name;
+         decl = MkDeclaratorIdentifier(MkIdentifier(s));
+         FreeSpecifier($1);
+         $$ = MkDeclaratorEnumArray(decl, $3);
+      }
+       | base_strict_type '[' ']'
+      {
+         Declarator decl;
+         char * colon = RSearchString($1.name, "::", strlen($1.name), true, false);
+         String s = colon ? colon + 2 : $1.name;
+         decl = MkDeclaratorIdentifier(MkIdentifier(s));
+         FreeSpecifier($1);
+         $$ = MkDeclaratorEnumArray(decl, null);
+      }
        | direct_declarator_nofunction_type_ok '[' constant_expression ']' { $$ = MkDeclaratorArray($1, $3); }
    | direct_declarator_nofunction_type_ok '[' constant_expression_error ']' { $$ = MkDeclaratorArray($1, $3); }
        | direct_declarator_nofunction_type_ok '[' type ']' { $$ = MkDeclaratorEnumArray($1, $3); }
index 8b5d6f9..99137de 100644 (file)
@@ -62,7 +62,7 @@ External ProcessClassFunction(Class owningClass, ClassFunction func, OldList def
 
       //if(inCompiler)
       {
-         /*FunctionDefinition*/ function = MkFunction(func.specifiers, func.declarator, null);
+         /*FunctionDefinition*/ function = _MkFunction(func.specifiers, func.declarator, null, false);
          function.propSet = func.propSet;
          function.type = func.type;
          if(func.type) func.type.refCount++;
@@ -298,7 +298,7 @@ void CreateRegisterModuleBody()
          MkListOne(moduleParam));
 
       {
-         FunctionDefinition function = MkFunction(specifiers, declarator, null);
+         FunctionDefinition function = _MkFunction(specifiers, declarator, null, false);
          ProcessFunctionBody(function, registerModuleBody);
          function.declMode = defaultAccess;
          if(!ast) ast = MkList();
@@ -336,7 +336,7 @@ void CreateRegisterModuleBody()
          MkListOne(moduleParam));
 
       {
-         FunctionDefinition function = MkFunction(specifiers, declarator, null);
+         FunctionDefinition function = _MkFunction(specifiers, declarator, null, false);
          ProcessFunctionBody(function, unregisterModuleBody);
          function.declMode = defaultAccess;
          if(!ast) ast = MkList();
index 74f527a..c259027 100644 (file)
@@ -33,7 +33,7 @@ static void CreateInstancesBody()
       declarator = MkDeclaratorFunction(MkDeclaratorIdentifier(MkIdentifier(registerName)), null);
 
       {
-         FunctionDefinition function = MkFunction(specifiers, declarator, null);
+         FunctionDefinition function = _MkFunction(specifiers, declarator, null, false);
          ProcessFunctionBody(function, createInstancesBody);
          ListAdd(ast, MkExternalFunction(function));
       }
@@ -50,7 +50,7 @@ static void CreateInstancesBody()
       declarator = MkDeclaratorFunction(MkDeclaratorIdentifier(MkIdentifier(registerName)), null);
 
       {
-         FunctionDefinition function = MkFunction(specifiers, declarator, null);
+         FunctionDefinition function = _MkFunction(specifiers, declarator, null, false);
          ProcessFunctionBody(function, destroyInstancesBody);
          ListAdd(ast, MkExternalFunction(function));
       }