<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -368,6 +368,7 @@ static int getTransfer(optFlags *);
 static int getReleaseGIL(optFlags *);
 static int getHoldGIL(optFlags *);
 static int getDeprecated(optFlags *);
+static int getMainThreadDestructor(optFlags *);
 static void templateSignature(signatureDef *sd, int result, classTmplDef *tcd, templateDef *td, classDef *ncd);
 static void templateType(argDef *ad, classTmplDef *tcd, templateDef *td, classDef *ncd);
 static int search_back(const char *end, const char *start, const char *target);
@@ -417,7 +418,7 @@ static argType convertEncoding(const char *encoding);
 
 #if ! defined YYSTYPE &amp;&amp; ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
-#line 123 &quot;parser.y&quot;
+#line 124 &quot;parser.y&quot;
 {
     char            qchar;
     char            *text;
@@ -439,7 +440,7 @@ typedef union YYSTYPE
     classDef        *klass;
 }
 /* Line 187 of yacc.c.  */
-#line 443 &quot;parser.c&quot;
+#line 444 &quot;parser.c&quot;
 	YYSTYPE;
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
@@ -452,7 +453,7 @@ typedef union YYSTYPE
 
 
 /* Line 216 of yacc.c.  */
-#line 456 &quot;parser.c&quot;
+#line 457 &quot;parser.c&quot;
 
 #ifdef short
 # undef short
@@ -878,42 +879,42 @@ static const yytype_int16 yyrhs[] =
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   320,   320,   321,   324,   324,   343,   344,   345,   346,
-     347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
-     357,   358,   362,   366,   370,   371,   372,   373,   374,   375,
-     376,   377,   378,   379,   380,   383,   384,   385,   386,   387,
-     388,   389,   390,   391,   392,   393,   394,   407,   416,   421,
-     456,   460,   534,   539,   539,   545,   545,   594,   608,   609,
-     612,   616,   625,   636,   636,   667,   668,   671,   671,   698,
-     699,   702,   707,   712,   712,   737,   738,   741,   746,   759,
-     762,   765,   768,   773,   774,   779,   785,   812,   823,   834,
-     847,   860,   893,   896,   901,   902,   918,   921,   924,   929,
-     934,   939,   942,   947,   950,   955,   958,   963,   968,   973,
-     978,   983,   986,   989,   994,   999,  1004,  1009,  1014,  1019,
-    1024,  1029,  1034,  1039,  1044,  1050,  1056,  1062,  1068,  1077,
-    1083,  1088,  1094,  1097,  1098,  1109,  1109,  1120,  1123,  1128,
-    1131,  1136,  1137,  1140,  1141,  1144,  1145,  1146,  1173,  1174,
-    1177,  1178,  1181,  1184,  1189,  1190,  1208,  1211,  1214,  1217,
-    1220,  1223,  1228,  1231,  1234,  1237,  1240,  1245,  1263,  1264,
-    1272,  1277,  1286,  1296,  1300,  1304,  1308,  1312,  1316,  1320,
-    1326,  1331,  1337,  1355,  1362,  1387,  1387,  1407,  1407,  1434,
-    1439,  1439,  1454,  1455,  1458,  1459,  1462,  1501,  1504,  1509,
-    1510,  1513,  1514,  1515,  1516,  1517,  1518,  1519,  1520,  1521,
-    1525,  1529,  1540,  1551,  1562,  1573,  1584,  1595,  1606,  1617,
-    1628,  1629,  1630,  1631,  1642,  1653,  1660,  1667,  1674,  1683,
-    1686,  1691,  1740,  1740,  1741,  1744,  1770,  1773,  1780,  1783,
-    1791,  1794,  1799,  1818,  1845,  1923,  1924,  1925,  1926,  1927,
-    1928,  1929,  1930,  1931,  1932,  1933,  1934,  1935,  1936,  1937,
-    1938,  1939,  1940,  1941,  1942,  1943,  1944,  1945,  1946,  1947,
-    1948,  1949,  1950,  1951,  1954,  1957,  1962,  1965,  1973,  1976,
-    1982,  1986,  1998,  2002,  2008,  2012,  2016,  2022,  2025,  2030,
-    2033,  2038,  2086,  2091,  2097,  2124,  2133,  2142,  2151,  2162,
-    2170,  2185,  2200,  2206,  2212,  2212,  2213,  2216,  2217,  2220,
-    2220,  2221,  2224,  2259,  2265,  2273,  2341,  2344,  2352,  2355,
-    2360,  2371,  2385,  2402,  2409,  2416,  2423,  2430,  2437,  2444,
-    2451,  2458,  2465,  2472,  2479,  2486,  2493,  2500,  2507,  2514,
-    2521,  2528,  2535,  2542,  2549,  2556,  2563,  2570,  2579,  2585,
-    2601,  2604,  2612,  2618,  2625
+       0,   321,   321,   322,   325,   325,   344,   345,   346,   347,
+     348,   349,   350,   351,   352,   353,   354,   355,   356,   357,
+     358,   359,   363,   367,   371,   372,   373,   374,   375,   376,
+     377,   378,   379,   380,   381,   384,   385,   386,   387,   388,
+     389,   390,   391,   392,   393,   394,   395,   408,   417,   422,
+     457,   461,   535,   540,   540,   546,   546,   595,   609,   610,
+     613,   617,   626,   637,   637,   668,   669,   672,   672,   699,
+     700,   703,   708,   713,   713,   738,   739,   742,   747,   760,
+     763,   766,   769,   774,   775,   780,   786,   813,   824,   835,
+     848,   861,   894,   897,   902,   903,   919,   922,   925,   930,
+     935,   940,   943,   948,   951,   956,   959,   964,   969,   974,
+     979,   984,   987,   990,   995,  1000,  1005,  1010,  1015,  1020,
+    1025,  1030,  1035,  1040,  1045,  1051,  1057,  1063,  1069,  1078,
+    1084,  1089,  1095,  1098,  1099,  1110,  1110,  1121,  1124,  1129,
+    1132,  1137,  1138,  1141,  1142,  1145,  1146,  1147,  1174,  1175,
+    1178,  1179,  1182,  1185,  1190,  1191,  1209,  1212,  1215,  1218,
+    1221,  1224,  1229,  1232,  1235,  1238,  1241,  1246,  1264,  1265,
+    1273,  1278,  1287,  1297,  1301,  1305,  1309,  1313,  1317,  1321,
+    1327,  1332,  1338,  1356,  1363,  1388,  1388,  1408,  1408,  1435,
+    1440,  1440,  1455,  1456,  1459,  1460,  1463,  1502,  1505,  1510,
+    1511,  1514,  1515,  1516,  1517,  1518,  1519,  1520,  1521,  1522,
+    1526,  1530,  1541,  1552,  1563,  1574,  1585,  1596,  1607,  1618,
+    1629,  1630,  1631,  1632,  1643,  1654,  1661,  1668,  1675,  1684,
+    1687,  1692,  1741,  1741,  1742,  1745,  1771,  1774,  1781,  1784,
+    1792,  1795,  1800,  1819,  1846,  1924,  1925,  1926,  1927,  1928,
+    1929,  1930,  1931,  1932,  1933,  1934,  1935,  1936,  1937,  1938,
+    1939,  1940,  1941,  1942,  1943,  1944,  1945,  1946,  1947,  1948,
+    1949,  1950,  1951,  1952,  1955,  1958,  1963,  1966,  1974,  1977,
+    1983,  1987,  1999,  2003,  2009,  2013,  2017,  2023,  2026,  2031,
+    2034,  2039,  2087,  2092,  2098,  2125,  2134,  2143,  2152,  2163,
+    2171,  2186,  2201,  2207,  2213,  2213,  2214,  2217,  2218,  2221,
+    2221,  2222,  2225,  2260,  2266,  2274,  2342,  2345,  2353,  2356,
+    2361,  2372,  2386,  2403,  2410,  2417,  2424,  2431,  2438,  2445,
+    2452,  2459,  2466,  2473,  2480,  2487,  2494,  2501,  2508,  2515,
+    2522,  2529,  2536,  2543,  2550,  2557,  2564,  2571,  2580,  2586,
+    2602,  2605,  2613,  2619,  2626
 };
 #endif
 
@@ -2364,7 +2365,7 @@ yyreduce:
   switch (yyn)
     {
         case 4:
-#line 324 &quot;parser.y&quot;
+#line 325 &quot;parser.y&quot;
     {
             /*
              * We don't do these in parserEOF() because the parser is reading
@@ -2385,7 +2386,7 @@ yyreduce:
     break;
 
   case 21:
-#line 358 &quot;parser.y&quot;
+#line 359 &quot;parser.y&quot;
     {
             if (notSkipping())
                 appendCodeBlock(&amp;currentSpec-&gt;exphdrcode, (yyvsp[(1) - (1)].codeb));
@@ -2393,7 +2394,7 @@ yyreduce:
     break;
 
   case 22:
-#line 362 &quot;parser.y&quot;
+#line 363 &quot;parser.y&quot;
     {
             if (notSkipping())
                 appendCodeBlock(&amp;currentModule-&gt;hdrcode, (yyvsp[(1) - (1)].codeb));
@@ -2401,7 +2402,7 @@ yyreduce:
     break;
 
   case 23:
-#line 366 &quot;parser.y&quot;
+#line 367 &quot;parser.y&quot;
     {
             if (notSkipping())
                 appendCodeBlock(&amp;currentModule-&gt;cppcode, (yyvsp[(1) - (1)].codeb));
@@ -2409,7 +2410,7 @@ yyreduce:
     break;
 
   case 46:
-#line 394 &quot;parser.y&quot;
+#line 395 &quot;parser.y&quot;
     {
             if (notSkipping())
             {
@@ -2424,7 +2425,7 @@ yyreduce:
     break;
 
   case 47:
-#line 407 &quot;parser.y&quot;
+#line 408 &quot;parser.y&quot;
     {
             if (notSkipping())
             {
@@ -2435,14 +2436,14 @@ yyreduce:
     break;
 
   case 48:
-#line 416 &quot;parser.y&quot;
+#line 417 &quot;parser.y&quot;
     {
             appendString(&amp;currentSpec-&gt;plugins, (yyvsp[(2) - (2)].text));
         ;}
     break;
 
   case 49:
-#line 421 &quot;parser.y&quot;
+#line 422 &quot;parser.y&quot;
     {
             if (notSkipping())
             {
@@ -2479,7 +2480,7 @@ yyreduce:
     break;
 
   case 50:
-#line 456 &quot;parser.y&quot;
+#line 457 &quot;parser.y&quot;
     {
             (yyval.exceptionbase).bibase = NULL;
             (yyval.exceptionbase).base = NULL;
@@ -2487,7 +2488,7 @@ yyreduce:
     break;
 
   case 51:
-#line 460 &quot;parser.y&quot;
+#line 461 &quot;parser.y&quot;
     {
             exceptionDef *xd;
 
@@ -2563,14 +2564,14 @@ yyreduce:
     break;
 
   case 52:
-#line 534 &quot;parser.y&quot;
+#line 535 &quot;parser.y&quot;
     {
             (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
         ;}
     break;
 
   case 53:
-#line 539 &quot;parser.y&quot;
+#line 540 &quot;parser.y&quot;
     {
             if (notSkipping())
                 currentMappedType = newMappedType(currentSpec, &amp;(yyvsp[(2) - (3)].memArg), &amp;(yyvsp[(3) - (3)].optflags));
@@ -2578,7 +2579,7 @@ yyreduce:
     break;
 
   case 55:
-#line 545 &quot;parser.y&quot;
+#line 546 &quot;parser.y&quot;
     {
             int a;
 
@@ -2629,7 +2630,7 @@ yyreduce:
     break;
 
   case 57:
-#line 594 &quot;parser.y&quot;
+#line 595 &quot;parser.y&quot;
     {
             if (notSkipping())
             {
@@ -2645,7 +2646,7 @@ yyreduce:
     break;
 
   case 60:
-#line 612 &quot;parser.y&quot;
+#line 613 &quot;parser.y&quot;
     {
             if (notSkipping())
                 appendCodeBlock(&amp;currentMappedType-&gt;iff-&gt;hdrcode, (yyvsp[(1) - (1)].codeb));
@@ -2653,7 +2654,7 @@ yyreduce:
     break;
 
   case 61:
-#line 616 &quot;parser.y&quot;
+#line 617 &quot;parser.y&quot;
     {
             if (notSkipping())
             {
@@ -2666,7 +2667,7 @@ yyreduce:
     break;
 
   case 62:
-#line 625 &quot;parser.y&quot;
+#line 626 &quot;parser.y&quot;
     {
             if (notSkipping())
             {
@@ -2679,7 +2680,7 @@ yyreduce:
     break;
 
   case 63:
-#line 636 &quot;parser.y&quot;
+#line 637 &quot;parser.y&quot;
     {
             if (currentSpec -&gt; genc)
                 yyerror(&quot;namespace definition not allowed in a C module&quot;);
@@ -2699,7 +2700,7 @@ yyreduce:
     break;
 
   case 64:
-#line 651 &quot;parser.y&quot;
+#line 652 &quot;parser.y&quot;
     {
             if (notSkipping())
             {
@@ -2717,7 +2718,7 @@ yyreduce:
     break;
 
   case 67:
-#line 671 &quot;parser.y&quot;
+#line 672 &quot;parser.y&quot;
     {
             qualDef *qd;
 
@@ -2728,7 +2729,7 @@ yyreduce:
     break;
 
   case 68:
-#line 678 &quot;parser.y&quot;
+#line 679 &quot;parser.y&quot;
     {
             qualDef *qd;
             int nrneeded;
@@ -2750,28 +2751,28 @@ yyreduce:
     break;
 
   case 71:
-#line 702 &quot;parser.y&quot;
+#line 703 &quot;parser.y&quot;
     {
             newQualifier(currentModule,-1,-1,(yyvsp[(1) - (1)].text),platform_qualifier);
         ;}
     break;
 
   case 72:
-#line 707 &quot;parser.y&quot;
+#line 708 &quot;parser.y&quot;
     {
             newQualifier(currentModule,-1,-1,(yyvsp[(2) - (2)].text),feature_qualifier);
         ;}
     break;
 
   case 73:
-#line 712 &quot;parser.y&quot;
+#line 713 &quot;parser.y&quot;
     {
             currentTimelineOrder = 0;
         ;}
     break;
 
   case 74:
-#line 715 &quot;parser.y&quot;
+#line 716 &quot;parser.y&quot;
     {
             qualDef *qd;
             int nrneeded;
@@ -2795,14 +2796,14 @@ yyreduce:
     break;
 
   case 77:
-#line 741 &quot;parser.y&quot;
+#line 742 &quot;parser.y&quot;
     {
             newQualifier(currentModule,currentModule -&gt; nrtimelines,currentTimelineOrder++,(yyvsp[(1) - (1)].text),time_qualifier);
         ;}
     break;
 
   case 78:
-#line 746 &quot;parser.y&quot;
+#line 747 &quot;parser.y&quot;
     {
             if (skipStackPtr &gt;= MAX_NESTED_IF)
                 yyerror(&quot;Internal error: increase the value of MAX_NESTED_IF&quot;);
@@ -2817,42 +2818,42 @@ yyreduce:
     break;
 
   case 79:
-#line 759 &quot;parser.y&quot;
+#line 760 &quot;parser.y&quot;
     {
             (yyval.boolean) = platOrFeature((yyvsp[(1) - (1)].text),FALSE);
         ;}
     break;
 
   case 80:
-#line 762 &quot;parser.y&quot;
+#line 763 &quot;parser.y&quot;
     {
             (yyval.boolean) = platOrFeature((yyvsp[(2) - (2)].text),TRUE);
         ;}
     break;
 
   case 81:
-#line 765 &quot;parser.y&quot;
+#line 766 &quot;parser.y&quot;
     {
             (yyval.boolean) = (platOrFeature((yyvsp[(3) - (3)].text),FALSE) || (yyvsp[(1) - (3)].boolean));
         ;}
     break;
 
   case 82:
-#line 768 &quot;parser.y&quot;
+#line 769 &quot;parser.y&quot;
     {
             (yyval.boolean) = (platOrFeature((yyvsp[(4) - (4)].text),TRUE) || (yyvsp[(1) - (4)].boolean));
         ;}
     break;
 
   case 84:
-#line 774 &quot;parser.y&quot;
+#line 775 &quot;parser.y&quot;
     {
             (yyval.boolean) = timePeriod((yyvsp[(1) - (3)].text),(yyvsp[(3) - (3)].text));
         ;}
     break;
 
   case 85:
-#line 779 &quot;parser.y&quot;
+#line 780 &quot;parser.y&quot;
     {
             if (skipStackPtr-- &lt;= 0)
                 yyerror(&quot;Too many %End directives&quot;);
@@ -2860,7 +2861,7 @@ yyreduce:
     break;
 
   case 86:
-#line 785 &quot;parser.y&quot;
+#line 786 &quot;parser.y&quot;
     {
             optFlag *of;
 
@@ -2889,7 +2890,7 @@ yyreduce:
     break;
 
   case 87:
-#line 812 &quot;parser.y&quot;
+#line 813 &quot;parser.y&quot;
     {
             if (notSkipping())
             {
@@ -2902,7 +2903,7 @@ yyreduce:
     break;
 
   case 88:
-#line 823 &quot;parser.y&quot;
+#line 824 &quot;parser.y&quot;
     {
             if (notSkipping())
             {
@@ -2915,7 +2916,7 @@ yyreduce:
     break;
 
   case 89:
-#line 834 &quot;parser.y&quot;
+#line 835 &quot;parser.y&quot;
     {
             /* Make sure this is the first mention of a module. */
             if (currentSpec-&gt;module != currentModule)
@@ -2930,7 +2931,7 @@ yyreduce:
     break;
 
   case 90:
-#line 847 &quot;parser.y&quot;
+#line 848 &quot;parser.y&quot;
     {
             /* Make sure this is the first mention of a module. */
             if (currentSpec-&gt;module != currentModule)
@@ -2945,7 +2946,7 @@ yyreduce:
     break;
 
   case 91:
-#line 860 &quot;parser.y&quot;
+#line 861 &quot;parser.y&quot;
     {
             /* Check the module hasn't already been defined. */
 
@@ -2980,21 +2981,21 @@ yyreduce:
     break;
 
   case 92:
-#line 893 &quot;parser.y&quot;
+#line 894 &quot;parser.y&quot;
     {
             (yyval.boolean) = FALSE;
         ;}
     break;
 
   case 93:
-#line 896 &quot;parser.y&quot;
+#line 897 &quot;parser.y&quot;
     {
             (yyval.boolean) = TRUE;
         ;}
     break;
 
   case 95:
-#line 902 &quot;parser.y&quot;
+#line 903 &quot;parser.y&quot;
     {
             /*
              * The grammar design is a bit broken and this is the easiest way
@@ -3012,189 +3013,189 @@ yyreduce:
     break;
 
   case 96:
-#line 918 &quot;parser.y&quot;
+#line 919 &quot;parser.y&quot;
     {
             (yyval.number) = -1;
         ;}
     break;
 
   case 98:
-#line 924 &quot;parser.y&quot;
+#line 925 &quot;parser.y&quot;
     {
             parseFile(NULL, (yyvsp[(2) - (2)].text), NULL, FALSE);
         ;}
     break;
 
   case 99:
-#line 929 &quot;parser.y&quot;
+#line 930 &quot;parser.y&quot;
     {
             parseFile(NULL, (yyvsp[(2) - (2)].text), NULL, TRUE);
         ;}
     break;
 
   case 100:
-#line 934 &quot;parser.y&quot;
+#line 935 &quot;parser.y&quot;
     {
             newImport((yyvsp[(2) - (2)].text));
         ;}
     break;
 
   case 101:
-#line 939 &quot;parser.y&quot;
+#line 940 &quot;parser.y&quot;
     {
             (yyval.codeb) = NULL;
         ;}
     break;
 
   case 102:
-#line 942 &quot;parser.y&quot;
+#line 943 &quot;parser.y&quot;
     {
             (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
         ;}
     break;
 
   case 103:
-#line 947 &quot;parser.y&quot;
+#line 948 &quot;parser.y&quot;
     {
             (yyval.codeb) = NULL;
         ;}
     break;
 
   case 104:
-#line 950 &quot;parser.y&quot;
+#line 951 &quot;parser.y&quot;
     {
             (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
         ;}
     break;
 
   case 105:
-#line 955 &quot;parser.y&quot;
+#line 956 &quot;parser.y&quot;
     {
             (yyval.codeb) = NULL;
         ;}
     break;
 
   case 106:
-#line 958 &quot;parser.y&quot;
+#line 959 &quot;parser.y&quot;
     {
             (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
         ;}
     break;
 
   case 107:
-#line 963 &quot;parser.y&quot;
+#line 964 &quot;parser.y&quot;
     {
             appendCodeBlock(&amp;currentModule-&gt;copying, (yyvsp[(2) - (2)].codeb));
         ;}
     break;
 
   case 108:
-#line 968 &quot;parser.y&quot;
+#line 969 &quot;parser.y&quot;
     {
             (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
         ;}
     break;
 
   case 109:
-#line 973 &quot;parser.y&quot;
+#line 974 &quot;parser.y&quot;
     {
             (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
         ;}
     break;
 
   case 110:
-#line 978 &quot;parser.y&quot;
+#line 979 &quot;parser.y&quot;
     {
             (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
         ;}
     break;
 
   case 111:
-#line 983 &quot;parser.y&quot;
+#line 984 &quot;parser.y&quot;
     {
             (yyval.codeb) = NULL;
         ;}
     break;
 
   case 113:
-#line 989 &quot;parser.y&quot;
+#line 990 &quot;parser.y&quot;
     {
             (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
         ;}
     break;
 
   case 114:
-#line 994 &quot;parser.y&quot;
+#line 995 &quot;parser.y&quot;
     {
             (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
         ;}
     break;
 
   case 115:
-#line 999 &quot;parser.y&quot;
+#line 1000 &quot;parser.y&quot;
     {
             (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
         ;}
     break;
 
   case 116:
-#line 1004 &quot;parser.y&quot;
+#line 1005 &quot;parser.y&quot;
     {
             (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
         ;}
     break;
 
   case 117:
-#line 1009 &quot;parser.y&quot;
+#line 1010 &quot;parser.y&quot;
     {
             (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
         ;}
     break;
 
   case 118:
-#line 1014 &quot;parser.y&quot;
+#line 1015 &quot;parser.y&quot;
     {
             (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
         ;}
     break;
 
   case 119:
-#line 1019 &quot;parser.y&quot;
+#line 1020 &quot;parser.y&quot;
     {
             (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
         ;}
     break;
 
   case 120:
-#line 1024 &quot;parser.y&quot;
+#line 1025 &quot;parser.y&quot;
     {
             (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
         ;}
     break;
 
   case 121:
-#line 1029 &quot;parser.y&quot;
+#line 1030 &quot;parser.y&quot;
     {
             (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
         ;}
     break;
 
   case 122:
-#line 1034 &quot;parser.y&quot;
+#line 1035 &quot;parser.y&quot;
     {
             (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
         ;}
     break;
 
   case 123:
-#line 1039 &quot;parser.y&quot;
+#line 1040 &quot;parser.y&quot;
     {
             (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
         ;}
     break;
 
   case 124:
-#line 1044 &quot;parser.y&quot;
+#line 1045 &quot;parser.y&quot;
     {
             if (notSkipping())
                 appendCodeBlock(&amp;currentModule-&gt;preinitcode, (yyvsp[(2) - (2)].codeb));
@@ -3202,7 +3203,7 @@ yyreduce:
     break;
 
   case 125:
-#line 1050 &quot;parser.y&quot;
+#line 1051 &quot;parser.y&quot;
     {
             if (notSkipping())
                 appendCodeBlock(&amp;currentModule-&gt;initcode, (yyvsp[(2) - (2)].codeb));
@@ -3210,7 +3211,7 @@ yyreduce:
     break;
 
   case 126:
-#line 1056 &quot;parser.y&quot;
+#line 1057 &quot;parser.y&quot;
     {
             if (notSkipping())
                 appendCodeBlock(&amp;currentModule-&gt;postinitcode, (yyvsp[(2) - (2)].codeb));
@@ -3218,7 +3219,7 @@ yyreduce:
     break;
 
   case 127:
-#line 1062 &quot;parser.y&quot;
+#line 1063 &quot;parser.y&quot;
     {
             if (notSkipping())
                 appendCodeBlock(&amp;currentModule-&gt;unitcode, (yyvsp[(2) - (2)].codeb));
@@ -3226,7 +3227,7 @@ yyreduce:
     break;
 
   case 128:
-#line 1068 &quot;parser.y&quot;
+#line 1069 &quot;parser.y&quot;
     {
             /*
              * This is a no-op and is retained for compatibility
@@ -3237,7 +3238,7 @@ yyreduce:
     break;
 
   case 129:
-#line 1077 &quot;parser.y&quot;
+#line 1078 &quot;parser.y&quot;
     {
             if (inMainModule())
                 appendCodeBlock(&amp;currentSpec -&gt; docs,(yyvsp[(2) - (2)].codeb));
@@ -3245,14 +3246,14 @@ yyreduce:
     break;
 
   case 130:
-#line 1083 &quot;parser.y&quot;
+#line 1084 &quot;parser.y&quot;
     {
             appendCodeBlock(&amp;currentSpec -&gt; docs,(yyvsp[(2) - (2)].codeb));
         ;}
     break;
 
   case 131:
-#line 1088 &quot;parser.y&quot;
+#line 1089 &quot;parser.y&quot;
     {
             if (inMainModule())
                 yywarning(&quot;%Makefile is ignored, please use the -b flag instead&quot;);
@@ -3260,7 +3261,7 @@ yyreduce:
     break;
 
   case 134:
-#line 1098 &quot;parser.y&quot;
+#line 1099 &quot;parser.y&quot;
     {
             (yyval.codeb) = (yyvsp[(1) - (2)].codeb);
 
@@ -3273,7 +3274,7 @@ yyreduce:
     break;
 
   case 135:
-#line 1109 &quot;parser.y&quot;
+#line 1110 &quot;parser.y&quot;
     {
             if (notSkipping())
             {
@@ -3286,35 +3287,35 @@ yyreduce:
     break;
 
   case 137:
-#line 1120 &quot;parser.y&quot;
+#line 1121 &quot;parser.y&quot;
     {
             (yyval.text) = NULL;
         ;}
     break;
 
   case 138:
-#line 1123 &quot;parser.y&quot;
+#line 1124 &quot;parser.y&quot;
     {
             (yyval.text) = (yyvsp[(1) - (1)].text);
         ;}
     break;
 
   case 139:
-#line 1128 &quot;parser.y&quot;
+#line 1129 &quot;parser.y&quot;
     {
             (yyval.text) = NULL;
         ;}
     break;
 
   case 140:
-#line 1131 &quot;parser.y&quot;
+#line 1132 &quot;parser.y&quot;
     {
             (yyval.text) = (yyvsp[(1) - (1)].text);
         ;}
     break;
 
   case 147:
-#line 1146 &quot;parser.y&quot;
+#line 1147 &quot;parser.y&quot;
     {
             if (notSkipping())
             {
@@ -3343,21 +3344,21 @@ yyreduce:
     break;
 
   case 152:
-#line 1181 &quot;parser.y&quot;
+#line 1182 &quot;parser.y&quot;
     {
             (yyval.valp) = NULL;
         ;}
     break;
 
   case 153:
-#line 1184 &quot;parser.y&quot;
+#line 1185 &quot;parser.y&quot;
     {
             (yyval.valp) = (yyvsp[(2) - (2)].valp);
         ;}
     break;
 
   case 155:
-#line 1190 &quot;parser.y&quot;
+#line 1191 &quot;parser.y&quot;
     {
             valueDef *vd;
  
@@ -3377,84 +3378,84 @@ yyreduce:
     break;
 
   case 156:
-#line 1208 &quot;parser.y&quot;
+#line 1209 &quot;parser.y&quot;
     {
             (yyval.qchar) = '-';
         ;}
     break;
 
   case 157:
-#line 1211 &quot;parser.y&quot;
+#line 1212 &quot;parser.y&quot;
     {
             (yyval.qchar) = '+';
         ;}
     break;
 
   case 158:
-#line 1214 &quot;parser.y&quot;
+#line 1215 &quot;parser.y&quot;
     {
             (yyval.qchar) = '*';
         ;}
     break;
 
   case 159:
-#line 1217 &quot;parser.y&quot;
+#line 1218 &quot;parser.y&quot;
     {
             (yyval.qchar) = '/';
         ;}
     break;
 
   case 160:
-#line 1220 &quot;parser.y&quot;
+#line 1221 &quot;parser.y&quot;
     {
             (yyval.qchar) = '&amp;';
         ;}
     break;
 
   case 161:
-#line 1223 &quot;parser.y&quot;
+#line 1224 &quot;parser.y&quot;
     {
             (yyval.qchar) = '|';
         ;}
     break;
 
   case 162:
-#line 1228 &quot;parser.y&quot;
+#line 1229 &quot;parser.y&quot;
     {
             (yyval.qchar) = '\0';
         ;}
     break;
 
   case 163:
-#line 1231 &quot;parser.y&quot;
+#line 1232 &quot;parser.y&quot;
     {
             (yyval.qchar) = '!';
         ;}
     break;
 
   case 164:
-#line 1234 &quot;parser.y&quot;
+#line 1235 &quot;parser.y&quot;
     {
             (yyval.qchar) = '~';
         ;}
     break;
 
   case 165:
-#line 1237 &quot;parser.y&quot;
+#line 1238 &quot;parser.y&quot;
     {
             (yyval.qchar) = '-';
         ;}
     break;
 
   case 166:
-#line 1240 &quot;parser.y&quot;
+#line 1241 &quot;parser.y&quot;
     {
             (yyval.qchar) = '+';
         ;}
     break;
 
   case 167:
-#line 1245 &quot;parser.y&quot;
+#line 1246 &quot;parser.y&quot;
     {
             if ((yyvsp[(1) - (2)].qchar) != '\0' &amp;&amp; (yyvsp[(2) - (2)].value).vtype == string_value)
                 yyerror(&quot;Invalid unary operator for string&quot;);
@@ -3474,7 +3475,7 @@ yyreduce:
     break;
 
   case 169:
-#line 1264 &quot;parser.y&quot;
+#line 1265 &quot;parser.y&quot;
     {
             if (currentSpec -&gt; genc)
                 yyerror(&quot;Scoped names are not allowed in a C module&quot;);
@@ -3484,14 +3485,14 @@ yyreduce:
     break;
 
   case 170:
-#line 1272 &quot;parser.y&quot;
+#line 1273 &quot;parser.y&quot;
     {
             (yyval.scpvalp) = text2scopePart((yyvsp[(1) - (1)].text));
         ;}
     break;
 
   case 171:
-#line 1277 &quot;parser.y&quot;
+#line 1278 &quot;parser.y&quot;
     {
             /*
              * We let the C++ compiler decide if the value is a valid one - no
@@ -3504,7 +3505,7 @@ yyreduce:
     break;
 
   case 172:
-#line 1286 &quot;parser.y&quot;
+#line 1287 &quot;parser.y&quot;
     {
             fcallDef *fcd;
 
@@ -3518,7 +3519,7 @@ yyreduce:
     break;
 
   case 173:
-#line 1296 &quot;parser.y&quot;
+#line 1297 &quot;parser.y&quot;
     {
             (yyval.value).vtype = real_value;
             (yyval.value).u.vreal = (yyvsp[(1) - (1)].real);
@@ -3526,7 +3527,7 @@ yyreduce:
     break;
 
   case 174:
-#line 1300 &quot;parser.y&quot;
+#line 1301 &quot;parser.y&quot;
     {
             (yyval.value).vtype = numeric_value;
             (yyval.value).u.vnum = (yyvsp[(1) - (1)].number);
@@ -3534,7 +3535,7 @@ yyreduce:
     break;
 
   case 175:
-#line 1304 &quot;parser.y&quot;
+#line 1305 &quot;parser.y&quot;
     {
             (yyval.value).vtype = numeric_value;
             (yyval.value).u.vnum = 1;
@@ -3542,7 +3543,7 @@ yyreduce:
     break;
 
   case 176:
-#line 1308 &quot;parser.y&quot;
+#line 1309 &quot;parser.y&quot;
     {
             (yyval.value).vtype = numeric_value;
             (yyval.value).u.vnum = 0;
@@ -3550,7 +3551,7 @@ yyreduce:
     break;
 
   case 177:
-#line 1312 &quot;parser.y&quot;
+#line 1313 &quot;parser.y&quot;
     {
             (yyval.value).vtype = numeric_value;
             (yyval.value).u.vnum = 0;
@@ -3558,7 +3559,7 @@ yyreduce:
     break;
 
   case 178:
-#line 1316 &quot;parser.y&quot;
+#line 1317 &quot;parser.y&quot;
     {
             (yyval.value).vtype = string_value;
             (yyval.value).u.vstr = (yyvsp[(1) - (1)].text);
@@ -3566,7 +3567,7 @@ yyreduce:
     break;
 
   case 179:
-#line 1320 &quot;parser.y&quot;
+#line 1321 &quot;parser.y&quot;
     {
             (yyval.value).vtype = qchar_value;
             (yyval.value).u.vqchar = (yyvsp[(1) - (1)].qchar);
@@ -3574,7 +3575,7 @@ yyreduce:
     break;
 
   case 180:
-#line 1326 &quot;parser.y&quot;
+#line 1327 &quot;parser.y&quot;
     {
             /* No values. */
 
@@ -3583,7 +3584,7 @@ yyreduce:
     break;
 
   case 181:
-#line 1331 &quot;parser.y&quot;
+#line 1332 &quot;parser.y&quot;
     {
             /* The single or first expression. */
 
@@ -3593,7 +3594,7 @@ yyreduce:
     break;
 
   case 182:
-#line 1337 &quot;parser.y&quot;
+#line 1338 &quot;parser.y&quot;
     {
             /* Check that it wasn't ...(,expression...). */
 
@@ -3613,7 +3614,7 @@ yyreduce:
     break;
 
   case 183:
-#line 1355 &quot;parser.y&quot;
+#line 1356 &quot;parser.y&quot;
     {
             if (notSkipping())
             {
@@ -3624,7 +3625,7 @@ yyreduce:
     break;
 
   case 184:
-#line 1362 &quot;parser.y&quot;
+#line 1363 &quot;parser.y&quot;
     {
             if (notSkipping())
             {
@@ -3651,7 +3652,7 @@ yyreduce:
     break;
 
   case 185:
-#line 1387 &quot;parser.y&quot;
+#line 1388 &quot;parser.y&quot;
     {
             if (currentSpec -&gt; genc &amp;&amp; (yyvsp[(2) - (2)].scpvalp)-&gt;next != NULL)
                 yyerror(&quot;Namespaces not allowed in a C module&quot;);
@@ -3665,7 +3666,7 @@ yyreduce:
     break;
 
   case 186:
-#line 1396 &quot;parser.y&quot;
+#line 1397 &quot;parser.y&quot;
     {
             if (notSkipping())
             {
@@ -3678,12 +3679,12 @@ yyreduce:
     break;
 
   case 187:
-#line 1407 &quot;parser.y&quot;
+#line 1408 &quot;parser.y&quot;
     {currentIsTemplate = TRUE;;}
     break;
 
   case 188:
-#line 1407 &quot;parser.y&quot;
+#line 1408 &quot;parser.y&quot;
     {
             if (currentSpec-&gt;genc)
                 yyerror(&quot;Class templates not allowed in a C module&quot;);
@@ -3712,14 +3713,14 @@ yyreduce:
     break;
 
   case 189:
-#line 1434 &quot;parser.y&quot;
+#line 1435 &quot;parser.y&quot;
     {
             (yyval.signature) = (yyvsp[(3) - (4)].signature);
         ;}
     break;
 
   case 190:
-#line 1439 &quot;parser.y&quot;
+#line 1440 &quot;parser.y&quot;
     {
             if (currentSpec -&gt; genc)
                 yyerror(&quot;Class definition not allowed in a C module&quot;);
@@ -3733,7 +3734,7 @@ yyreduce:
     break;
 
   case 191:
-#line 1448 &quot;parser.y&quot;
+#line 1449 &quot;parser.y&quot;
     {
             if (notSkipping())
                 (yyval.klass) = completeClass((yyvsp[(2) - (7)].scpvalp), &amp;(yyvsp[(5) - (7)].optflags), (yyvsp[(6) - (7)].boolean));
@@ -3741,7 +3742,7 @@ yyreduce:
     break;
 
   case 196:
-#line 1462 &quot;parser.y&quot;
+#line 1463 &quot;parser.y&quot;
     {
             if (notSkipping())
             {
@@ -3782,21 +3783,21 @@ yyreduce:
     break;
 
   case 197:
-#line 1501 &quot;parser.y&quot;
+#line 1502 &quot;parser.y&quot;
     {
             (yyval.boolean) = FALSE;
         ;}
     break;
 
   case 198:
-#line 1504 &quot;parser.y&quot;
+#line 1505 &quot;parser.y&quot;
     {
             (yyval.boolean) = TRUE;
         ;}
     break;
 
   case 209:
-#line 1521 &quot;parser.y&quot;
+#line 1522 &quot;parser.y&quot;
     {
             if (notSkipping())
                 appendCodeBlock(&amp;currentScope()-&gt;cppcode, (yyvsp[(1) - (1)].codeb));
@@ -3804,7 +3805,7 @@ yyreduce:
     break;
 
   case 210:
-#line 1525 &quot;parser.y&quot;
+#line 1526 &quot;parser.y&quot;
     {
             if (notSkipping())
                 appendCodeBlock(&amp;currentScope()-&gt;iff-&gt;hdrcode, (yyvsp[(1) - (1)].codeb));
@@ -3812,7 +3813,7 @@ yyreduce:
     break;
 
   case 211:
-#line 1529 &quot;parser.y&quot;
+#line 1530 &quot;parser.y&quot;
     {
             if (notSkipping())
             {
@@ -3827,7 +3828,7 @@ yyreduce:
     break;
 
   case 212:
-#line 1540 &quot;parser.y&quot;
+#line 1541 &quot;parser.y&quot;
     {
             if (notSkipping())
             {
@@ -3842,7 +3843,7 @@ yyreduce:
     break;
 
   case 213:
-#line 1551 &quot;parser.y&quot;
+#line 1552 &quot;parser.y&quot;
     {
             if (notSkipping())
             {
@@ -3857,7 +3858,7 @@ yyreduce:
     break;
 
   case 214:
-#line 1562 &quot;parser.y&quot;
+#line 1563 &quot;parser.y&quot;
     {
             if (notSkipping())
             {
@@ -3872,7 +3873,7 @@ yyreduce:
     break;
 
   case 215:
-#line 1573 &quot;parser.y&quot;
+#line 1574 &quot;parser.y&quot;
     {
             if (notSkipping())
             {
@@ -3887,7 +3888,7 @@ yyreduce:
     break;
 
   case 216:
-#line 1584 &quot;parser.y&quot;
+#line 1585 &quot;parser.y&quot;
     {
             if (notSkipping())
             {
@@ -3902,7 +3903,7 @@ yyreduce:
     break;
 
   case 217:
-#line 1595 &quot;parser.y&quot;
+#line 1596 &quot;parser.y&quot;
     {
             if (notSkipping())
             {
@@ -3917,7 +3918,7 @@ yyreduce:
     break;
 
   case 218:
-#line 1606 &quot;parser.y&quot;
+#line 1607 &quot;parser.y&quot;
     {
             if (notSkipping())
             {
@@ -3932,7 +3933,7 @@ yyreduce:
     break;
 
   case 219:
-#line 1617 &quot;parser.y&quot;
+#line 1618 &quot;parser.y&quot;
     {
             if (notSkipping())
             {
@@ -3947,7 +3948,7 @@ yyreduce:
     break;
 
   case 223:
-#line 1631 &quot;parser.y&quot;
+#line 1632 &quot;parser.y&quot;
     {
             if (notSkipping())
             {
@@ -3962,7 +3963,7 @@ yyreduce:
     break;
 
   case 224:
-#line 1642 &quot;parser.y&quot;
+#line 1643 &quot;parser.y&quot;
     {
             if (notSkipping())
             {
@@ -3977,7 +3978,7 @@ yyreduce:
     break;
 
   case 225:
-#line 1653 &quot;parser.y&quot;
+#line 1654 &quot;parser.y&quot;
     {
             if (currentSpec -&gt; genc)
                 yyerror(&quot;public section not allowed in a C module&quot;);
@@ -3988,7 +3989,7 @@ yyreduce:
     break;
 
   case 226:
-#line 1660 &quot;parser.y&quot;
+#line 1661 &quot;parser.y&quot;
     {
             if (currentSpec -&gt; genc)
                 yyerror(&quot;protected section not allowed in a C module&quot;);
@@ -3999,7 +4000,7 @@ yyreduce:
     break;
 
   case 227:
-#line 1667 &quot;parser.y&quot;
+#line 1668 &quot;parser.y&quot;
     {
             if (currentSpec -&gt; genc)
                 yyerror(&quot;private section not allowed in a C module&quot;);
@@ -4010,7 +4011,7 @@ yyreduce:
     break;
 
   case 228:
-#line 1674 &quot;parser.y&quot;
+#line 1675 &quot;parser.y&quot;
     {
             if (currentSpec -&gt; genc)
                 yyerror(&quot;signals section not allowed in a C module&quot;);
@@ -4021,21 +4022,21 @@ yyreduce:
     break;
 
   case 229:
-#line 1683 &quot;parser.y&quot;
+#line 1684 &quot;parser.y&quot;
     {
             (yyval.number) = 0;
         ;}
     break;
 
   case 230:
-#line 1686 &quot;parser.y&quot;
+#line 1687 &quot;parser.y&quot;
     {
             (yyval.number) = SECT_IS_SLOT;
         ;}
     break;
 
   case 231:
-#line 1691 &quot;parser.y&quot;
+#line 1692 &quot;parser.y&quot;
     {
             /* Note that we allow non-virtual dtors in C modules. */
 
@@ -4086,12 +4087,12 @@ yyreduce:
     break;
 
   case 232:
-#line 1740 &quot;parser.y&quot;
+#line 1741 &quot;parser.y&quot;
     {currentCtorIsExplicit = TRUE;;}
     break;
 
   case 235:
-#line 1744 &quot;parser.y&quot;
+#line 1745 &quot;parser.y&quot;
     {
             /* Note that we allow ctors in C modules. */
 
@@ -4119,14 +4120,14 @@ yyreduce:
     break;
 
   case 236:
-#line 1770 &quot;parser.y&quot;
+#line 1771 &quot;parser.y&quot;
     {
             (yyval.optsignature) = NULL;
         ;}
     break;
 
   case 237:
-#line 1773 &quot;parser.y&quot;
+#line 1774 &quot;parser.y&quot;
     {
             (yyval.optsignature) = sipMalloc(sizeof (signatureDef));
 
@@ -4135,14 +4136,14 @@ yyreduce:
     break;
 
   case 238:
-#line 1780 &quot;parser.y&quot;
+#line 1781 &quot;parser.y&quot;
     {
             (yyval.optsignature) = NULL;
         ;}
     break;
 
   case 239:
-#line 1783 &quot;parser.y&quot;
+#line 1784 &quot;parser.y&quot;
     {
             (yyval.optsignature) = sipMalloc(sizeof (signatureDef));
 
@@ -4152,21 +4153,21 @@ yyreduce:
     break;
 
   case 240:
-#line 1791 &quot;parser.y&quot;
+#line 1792 &quot;parser.y&quot;
     {
             (yyval.number) = FALSE;
         ;}
     break;
 
   case 241:
-#line 1794 &quot;parser.y&quot;
+#line 1795 &quot;parser.y&quot;
     {
             (yyval.number) = TRUE;
         ;}
     break;
 
   case 242:
-#line 1799 &quot;parser.y&quot;
+#line 1800 &quot;parser.y&quot;
     {
             if (notSkipping())
             {
@@ -4189,7 +4190,7 @@ yyreduce:
     break;
 
   case 243:
-#line 1818 &quot;parser.y&quot;
+#line 1819 &quot;parser.y&quot;
     {
             if (notSkipping())
             {
@@ -4220,7 +4221,7 @@ yyreduce:
     break;
 
   case 244:
-#line 1845 &quot;parser.y&quot;
+#line 1846 &quot;parser.y&quot;
     {
             if (notSkipping())
             {
@@ -4300,173 +4301,173 @@ yyreduce:
     break;
 
   case 245:
-#line 1923 &quot;parser.y&quot;
+#line 1924 &quot;parser.y&quot;
     {(yyval.text) = &quot;__add__&quot;;;}
     break;
 
   case 246:
-#line 1924 &quot;parser.y&quot;
+#line 1925 &quot;parser.y&quot;
     {(yyval.text) = &quot;__sub__&quot;;;}
     break;
 
   case 247:
-#line 1925 &quot;parser.y&quot;
+#line 1926 &quot;parser.y&quot;
     {(yyval.text) = &quot;__mul__&quot;;;}
     break;
 
   case 248:
-#line 1926 &quot;parser.y&quot;
+#line 1927 &quot;parser.y&quot;
     {(yyval.text) = &quot;__div__&quot;;;}
     break;
 
   case 249:
-#line 1927 &quot;parser.y&quot;
+#line 1928 &quot;parser.y&quot;
     {(yyval.text) = &quot;__mod__&quot;;;}
     break;
 
   case 250:
-#line 1928 &quot;parser.y&quot;
+#line 1929 &quot;parser.y&quot;
     {(yyval.text) = &quot;__and__&quot;;;}
     break;
 
   case 251:
-#line 1929 &quot;parser.y&quot;
+#line 1930 &quot;parser.y&quot;
     {(yyval.text) = &quot;__or__&quot;;;}
     break;
 
   case 252:
-#line 1930 &quot;parser.y&quot;
+#line 1931 &quot;parser.y&quot;
     {(yyval.text) = &quot;__xor__&quot;;;}
     break;
 
   case 253:
-#line 1931 &quot;parser.y&quot;
+#line 1932 &quot;parser.y&quot;
     {(yyval.text) = &quot;__lshift__&quot;;;}
     break;
 
   case 254:
-#line 1932 &quot;parser.y&quot;
+#line 1933 &quot;parser.y&quot;
     {(yyval.text) = &quot;__rshift__&quot;;;}
     break;
 
   case 255:
-#line 1933 &quot;parser.y&quot;
+#line 1934 &quot;parser.y&quot;
     {(yyval.text) = &quot;__iadd__&quot;;;}
     break;
 
   case 256:
-#line 1934 &quot;parser.y&quot;
+#line 1935 &quot;parser.y&quot;
     {(yyval.text) = &quot;__isub__&quot;;;}
     break;
 
   case 257:
-#line 1935 &quot;parser.y&quot;
+#line 1936 &quot;parser.y&quot;
     {(yyval.text) = &quot;__imul__&quot;;;}
     break;
 
   case 258:
-#line 1936 &quot;parser.y&quot;
+#line 1937 &quot;parser.y&quot;
     {(yyval.text) = &quot;__idiv__&quot;;;}
     break;
 
   case 259:
-#line 1937 &quot;parser.y&quot;
+#line 1938 &quot;parser.y&quot;
     {(yyval.text) = &quot;__imod__&quot;;;}
     break;
 
   case 260:
-#line 1938 &quot;parser.y&quot;
+#line 1939 &quot;parser.y&quot;
     {(yyval.text) = &quot;__iand__&quot;;;}
     break;
 
   case 261:
-#line 1939 &quot;parser.y&quot;
+#line 1940 &quot;parser.y&quot;
     {(yyval.text) = &quot;__ior__&quot;;;}
     break;
 
   case 262:
-#line 1940 &quot;parser.y&quot;
+#line 1941 &quot;parser.y&quot;
     {(yyval.text) = &quot;__ixor__&quot;;;}
     break;
 
   case 263:
-#line 1941 &quot;parser.y&quot;
+#line 1942 &quot;parser.y&quot;
     {(yyval.text) = &quot;__ilshift__&quot;;;}
     break;
 
   case 264:
-#line 1942 &quot;parser.y&quot;
+#line 1943 &quot;parser.y&quot;
     {(yyval.text) = &quot;__irshift__&quot;;;}
     break;
 
   case 265:
-#line 1943 &quot;parser.y&quot;
+#line 1944 &quot;parser.y&quot;
     {(yyval.text) = &quot;__invert__&quot;;;}
     break;
 
   case 266:
-#line 1944 &quot;parser.y&quot;
+#line 1945 &quot;parser.y&quot;
     {(yyval.text) = &quot;__call__&quot;;;}
     break;
 
   case 267:
-#line 1945 &quot;parser.y&quot;
+#line 1946 &quot;parser.y&quot;
     {(yyval.text) = &quot;__getitem__&quot;;;}
     break;
 
   case 268:
-#line 1946 &quot;parser.y&quot;
+#line 1947 &quot;parser.y&quot;
     {(yyval.text) = &quot;__lt__&quot;;;}
     break;
 
   case 269:
-#line 1947 &quot;parser.y&quot;
+#line 1948 &quot;parser.y&quot;
     {(yyval.text) = &quot;__le__&quot;;;}
     break;
 
   case 270:
-#line 1948 &quot;parser.y&quot;
+#line 1949 &quot;parser.y&quot;
     {(yyval.text) = &quot;__eq__&quot;;;}
     break;
 
   case 271:
-#line 1949 &quot;parser.y&quot;
+#line 1950 &quot;parser.y&quot;
     {(yyval.text) = &quot;__ne__&quot;;;}
     break;
 
   case 272:
-#line 1950 &quot;parser.y&quot;
+#line 1951 &quot;parser.y&quot;
     {(yyval.text) = &quot;__gt__&quot;;;}
     break;
 
   case 273:
-#line 1951 &quot;parser.y&quot;
+#line 1952 &quot;parser.y&quot;
     {(yyval.text) = &quot;__ge__&quot;;;}
     break;
 
   case 274:
-#line 1954 &quot;parser.y&quot;
+#line 1955 &quot;parser.y&quot;
     {
             (yyval.number) = FALSE;
         ;}
     break;
 
   case 275:
-#line 1957 &quot;parser.y&quot;
+#line 1958 &quot;parser.y&quot;
     {
             (yyval.number) = TRUE;
         ;}
     break;
 
   case 276:
-#line 1962 &quot;parser.y&quot;
+#line 1963 &quot;parser.y&quot;
     {
             (yyval.number) = 0;
         ;}
     break;
 
   case 277:
-#line 1965 &quot;parser.y&quot;
+#line 1966 &quot;parser.y&quot;
     {
             if ((yyvsp[(2) - (2)].number) != 0)
                 yyerror(&quot;Abstract virtual function '= 0' expected&quot;);
@@ -4476,21 +4477,21 @@ yyreduce:
     break;
 
   case 278:
-#line 1973 &quot;parser.y&quot;
+#line 1974 &quot;parser.y&quot;
     {
             (yyval.optflags).nrFlags = 0;
         ;}
     break;
 
   case 279:
-#line 1976 &quot;parser.y&quot;
+#line 1977 &quot;parser.y&quot;
     {
             (yyval.optflags) = (yyvsp[(2) - (3)].optflags);
         ;}
     break;
 
   case 280:
-#line 1982 &quot;parser.y&quot;
+#line 1983 &quot;parser.y&quot;
     {
             (yyval.optflags).flags[0] = (yyvsp[(1) - (1)].flag);
             (yyval.optflags).nrFlags = 1;
@@ -4498,7 +4499,7 @@ yyreduce:
     break;
 
   case 281:
-#line 1986 &quot;parser.y&quot;
+#line 1987 &quot;parser.y&quot;
     {
             /* Check there is room. */
 
@@ -4512,7 +4513,7 @@ yyreduce:
     break;
 
   case 282:
-#line 1998 &quot;parser.y&quot;
+#line 1999 &quot;parser.y&quot;
     {
             (yyval.flag).ftype = bool_flag;
             (yyval.flag).fname = (yyvsp[(1) - (1)].text);
@@ -4520,7 +4521,7 @@ yyreduce:
     break;
 
   case 283:
-#line 2002 &quot;parser.y&quot;
+#line 2003 &quot;parser.y&quot;
     {
             (yyval.flag) = (yyvsp[(3) - (3)].flag);
             (yyval.flag).fname = (yyvsp[(1) - (3)].text);
@@ -4528,7 +4529,7 @@ yyreduce:
     break;
 
   case 284:
-#line 2008 &quot;parser.y&quot;
+#line 2009 &quot;parser.y&quot;
     {
             (yyval.flag).ftype = (strchr((yyvsp[(1) - (1)].text), '.') != NULL) ? dotted_name_flag : name_flag;
             (yyval.flag).fvalue.sval = (yyvsp[(1) - (1)].text);
@@ -4536,7 +4537,7 @@ yyreduce:
     break;
 
   case 285:
-#line 2012 &quot;parser.y&quot;
+#line 2013 &quot;parser.y&quot;
     {
             (yyval.flag).ftype = string_flag;
             (yyval.flag).fvalue.sval = (yyvsp[(1) - (1)].text);
@@ -4544,7 +4545,7 @@ yyreduce:
     break;
 
   case 286:
-#line 2016 &quot;parser.y&quot;
+#line 2017 &quot;parser.y&quot;
     {
             (yyval.flag).ftype = integer_flag;
             (yyval.flag).fvalue.ival = (yyvsp[(1) - (1)].number);
@@ -4552,35 +4553,35 @@ yyreduce:
     break;
 
   case 287:
-#line 2022 &quot;parser.y&quot;
+#line 2023 &quot;parser.y&quot;
     {
             (yyval.codeb) = NULL;
         ;}
     break;
 
   case 288:
-#line 2025 &quot;parser.y&quot;
+#line 2026 &quot;parser.y&quot;
     {
             (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
         ;}
     break;
 
   case 289:
-#line 2030 &quot;parser.y&quot;
+#line 2031 &quot;parser.y&quot;
     {
             (yyval.codeb) = NULL;
         ;}
     break;
 
   case 290:
-#line 2033 &quot;parser.y&quot;
+#line 2034 &quot;parser.y&quot;
     {
             (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
         ;}
     break;
 
   case 291:
-#line 2038 &quot;parser.y&quot;
+#line 2039 &quot;parser.y&quot;
     {
             int a, nrrxcon, nrrxdis, nrslotcon, nrslotdis, nrarray, nrarraysize;
 
@@ -4630,7 +4631,7 @@ yyreduce:
     break;
 
   case 292:
-#line 2086 &quot;parser.y&quot;
+#line 2087 &quot;parser.y&quot;
     {
             /* No arguments. */
 
@@ -4639,7 +4640,7 @@ yyreduce:
     break;
 
   case 293:
-#line 2091 &quot;parser.y&quot;
+#line 2092 &quot;parser.y&quot;
     {
             /* The single or first argument. */
 
@@ -4649,7 +4650,7 @@ yyreduce:
     break;
 
   case 294:
-#line 2097 &quot;parser.y&quot;
+#line 2098 &quot;parser.y&quot;
     {
             /* Check that it wasn't ...(,arg...). */
             if ((yyvsp[(1) - (3)].signature).nrArgs == 0)
@@ -4678,7 +4679,7 @@ yyreduce:
     break;
 
   case 295:
-#line 2124 &quot;parser.y&quot;
+#line 2125 &quot;parser.y&quot;
     {
             (yyval.memArg).atype = signal_type;
             (yyval.memArg).argflags = ARG_IS_CONST;
@@ -4691,7 +4692,7 @@ yyreduce:
     break;
 
   case 296:
-#line 2133 &quot;parser.y&quot;
+#line 2134 &quot;parser.y&quot;
     {
             (yyval.memArg).atype = slot_type;
             (yyval.memArg).argflags = ARG_IS_CONST;
@@ -4704,7 +4705,7 @@ yyreduce:
     break;
 
   case 297:
-#line 2142 &quot;parser.y&quot;
+#line 2143 &quot;parser.y&quot;
     {
             (yyval.memArg).atype = anyslot_type;
             (yyval.memArg).argflags = ARG_IS_CONST;
@@ -4717,7 +4718,7 @@ yyreduce:
     break;
 
   case 298:
-#line 2151 &quot;parser.y&quot;
+#line 2152 &quot;parser.y&quot;
     {
             (yyval.memArg).atype = rxcon_type;
             (yyval.memArg).argflags = 0;
@@ -4732,7 +4733,7 @@ yyreduce:
     break;
 
   case 299:
-#line 2162 &quot;parser.y&quot;
+#line 2163 &quot;parser.y&quot;
     {
             (yyval.memArg).atype = rxdis_type;
             (yyval.memArg).argflags = 0;
@@ -4744,7 +4745,7 @@ yyreduce:
     break;
 
   case 300:
-#line 2170 &quot;parser.y&quot;
+#line 2171 &quot;parser.y&quot;
     {
             (yyval.memArg).atype = slotcon_type;
             (yyval.memArg).argflags = ARG_IS_CONST;
@@ -4763,7 +4764,7 @@ yyreduce:
     break;
 
   case 301:
-#line 2185 &quot;parser.y&quot;
+#line 2186 &quot;parser.y&quot;
     {
             (yyval.memArg).atype = slotdis_type;
             (yyval.memArg).argflags = ARG_IS_CONST;
@@ -4782,7 +4783,7 @@ yyreduce:
     break;
 
   case 302:
-#line 2200 &quot;parser.y&quot;
+#line 2201 &quot;parser.y&quot;
     {
             (yyval.memArg).atype = qobject_type;
             (yyval.memArg).argflags = 0;
@@ -4792,7 +4793,7 @@ yyreduce:
     break;
 
   case 303:
-#line 2206 &quot;parser.y&quot;
+#line 2207 &quot;parser.y&quot;
     {
             (yyval.memArg) = (yyvsp[(1) - (2)].memArg);
             (yyval.memArg).defval = (yyvsp[(2) - (2)].valp);
@@ -4800,17 +4801,17 @@ yyreduce:
     break;
 
   case 304:
-#line 2212 &quot;parser.y&quot;
+#line 2213 &quot;parser.y&quot;
     {currentIsStatic = TRUE;;}
     break;
 
   case 309:
-#line 2220 &quot;parser.y&quot;
+#line 2221 &quot;parser.y&quot;
     {currentOverIsVirt = TRUE;;}
     break;
 
   case 312:
-#line 2224 &quot;parser.y&quot;
+#line 2225 &quot;parser.y&quot;
     {
             if (notSkipping())
             {
@@ -4847,7 +4848,7 @@ yyreduce:
     break;
 
   case 313:
-#line 2259 &quot;parser.y&quot;
+#line 2260 &quot;parser.y&quot;
     {
             (yyval.memArg) = (yyvsp[(2) - (4)].memArg);
             (yyval.memArg).nrderefs += (yyvsp[(3) - (4)].number);
@@ -4857,7 +4858,7 @@ yyreduce:
     break;
 
   case 314:
-#line 2265 &quot;parser.y&quot;
+#line 2266 &quot;parser.y&quot;
     {
             (yyval.memArg) = (yyvsp[(1) - (3)].memArg);
             (yyval.memArg).nrderefs += (yyvsp[(2) - (3)].number);
@@ -4867,7 +4868,7 @@ yyreduce:
     break;
 
   case 315:
-#line 2273 &quot;parser.y&quot;
+#line 2274 &quot;parser.y&quot;
     {
             (yyval.memArg) = (yyvsp[(1) - (3)].memArg);
             (yyval.memArg).name = (yyvsp[(2) - (3)].text);
@@ -4937,14 +4938,14 @@ yyreduce:
     break;
 
   case 316:
-#line 2341 &quot;parser.y&quot;
+#line 2342 &quot;parser.y&quot;
     {
             (yyval.number) = 0;
         ;}
     break;
 
   case 317:
-#line 2344 &quot;parser.y&quot;
+#line 2345 &quot;parser.y&quot;
     {
             if (currentSpec -&gt; genc)
                 yyerror(&quot;References not allowed in a C module&quot;);
@@ -4954,21 +4955,21 @@ yyreduce:
     break;
 
   case 318:
-#line 2352 &quot;parser.y&quot;
+#line 2353 &quot;parser.y&quot;
     {
             (yyval.number) = 0;
         ;}
     break;
 
   case 319:
-#line 2355 &quot;parser.y&quot;
+#line 2356 &quot;parser.y&quot;
     {
             (yyval.number) = (yyvsp[(1) - (2)].number) + 1;
         ;}
     break;
 
   case 320:
-#line 2360 &quot;parser.y&quot;
+#line 2361 &quot;parser.y&quot;
     {
             (yyval.memArg).nrderefs = 0;
             (yyval.memArg).argflags = 0;
@@ -4983,7 +4984,7 @@ yyreduce:
     break;
 
   case 321:
-#line 2371 &quot;parser.y&quot;
+#line 2372 &quot;parser.y&quot;
     {
             templateDef *td;
 
@@ -5001,7 +5002,7 @@ yyreduce:
     break;
 
   case 322:
-#line 2385 &quot;parser.y&quot;
+#line 2386 &quot;parser.y&quot;
     {
             (yyval.memArg).nrderefs = 0;
             (yyval.memArg).argflags = 0;
@@ -5022,7 +5023,7 @@ yyreduce:
     break;
 
   case 323:
-#line 2402 &quot;parser.y&quot;
+#line 2403 &quot;parser.y&quot;
     {
             (yyval.memArg).nrderefs = 0;
             (yyval.memArg).argflags = 0;
@@ -5033,7 +5034,7 @@ yyreduce:
     break;
 
   case 324:
-#line 2409 &quot;parser.y&quot;
+#line 2410 &quot;parser.y&quot;
     {
             (yyval.memArg).nrderefs = 0;
             (yyval.memArg).argflags = 0;
@@ -5044,7 +5045,7 @@ yyreduce:
     break;
 
   case 325:
-#line 2416 &quot;parser.y&quot;
+#line 2417 &quot;parser.y&quot;
     {
             (yyval.memArg).nrderefs = 0;
             (yyval.memArg).argflags = 0;
@@ -5055,7 +5056,7 @@ yyreduce:
     break;
 
   case 326:
-#line 2423 &quot;parser.y&quot;
+#line 2424 &quot;parser.y&quot;
     {
             (yyval.memArg).nrderefs = 0;
             (yyval.memArg).argflags = 0;
@@ -5066,7 +5067,7 @@ yyreduce:
     break;
 
   case 327:
-#line 2430 &quot;parser.y&quot;
+#line 2431 &quot;parser.y&quot;
     {
             (yyval.memArg).nrderefs = 0;
             (yyval.memArg).argflags = 0;
@@ -5077,7 +5078,7 @@ yyreduce:
     break;
 
   case 328:
-#line 2437 &quot;parser.y&quot;
+#line 2438 &quot;parser.y&quot;
     {
             (yyval.memArg).nrderefs = 0;
             (yyval.memArg).argflags = 0;
@@ -5088,7 +5089,7 @@ yyreduce:
     break;
 
   case 329:
-#line 2444 &quot;parser.y&quot;
+#line 2445 &quot;parser.y&quot;
     {
             (yyval.memArg).nrderefs = 0;
             (yyval.memArg).argflags = 0;
@@ -5099,7 +5100,7 @@ yyreduce:
     break;
 
   case 330:
-#line 2451 &quot;parser.y&quot;
+#line 2452 &quot;parser.y&quot;
     {
             (yyval.memArg).nrderefs = 0;
             (yyval.memArg).argflags = 0;
@@ -5110,7 +5111,7 @@ yyreduce:
     break;
 
   case 331:
-#line 2458 &quot;parser.y&quot;
+#line 2459 &quot;parser.y&quot;
     {
             (yyval.memArg).nrderefs = 0;
             (yyval.memArg).argflags = 0;
@@ -5121,7 +5122,7 @@ yyreduce:
     break;
 
   case 332:
-#line 2465 &quot;parser.y&quot;
+#line 2466 &quot;parser.y&quot;
     {
             (yyval.memArg).nrderefs = 0;
             (yyval.memArg).argflags = 0;
@@ -5132,7 +5133,7 @@ yyreduce:
     break;
 
   case 333:
-#line 2472 &quot;parser.y&quot;
+#line 2473 &quot;parser.y&quot;
     {
             (yyval.memArg).nrderefs = 0;
             (yyval.memArg).argflags = 0;
@@ -5143,7 +5144,7 @@ yyreduce:
     break;
 
   case 334:
-#line 2479 &quot;parser.y&quot;
+#line 2480 &quot;parser.y&quot;
     {
             (yyval.memArg).nrderefs = 0;
             (yyval.memArg).argflags = 0;
@@ -5154,7 +5155,7 @@ yyreduce:
     break;
 
   case 335:
-#line 2486 &quot;parser.y&quot;
+#line 2487 &quot;parser.y&quot;
     {
             (yyval.memArg).nrderefs = 0;
             (yyval.memArg).argflags = 0;
@@ -5165,7 +5166,7 @@ yyreduce:
     break;
 
   case 336:
-#line 2493 &quot;parser.y&quot;
+#line 2494 &quot;parser.y&quot;
     {
             (yyval.memArg).nrderefs = 0;
             (yyval.memArg).argflags = 0;
@@ -5176,7 +5177,7 @@ yyreduce:
     break;
 
   case 337:
-#line 2500 &quot;parser.y&quot;
+#line 2501 &quot;parser.y&quot;
     {
             (yyval.memArg).nrderefs = 0;
             (yyval.memArg).argflags = 0;
@@ -5187,7 +5188,7 @@ yyreduce:
     break;
 
   case 338:
-#line 2507 &quot;parser.y&quot;
+#line 2508 &quot;parser.y&quot;
     {
             (yyval.memArg).nrderefs = 0;
             (yyval.memArg).argflags = 0;
@@ -5198,7 +5199,7 @@ yyreduce:
     break;
 
   case 339:
-#line 2514 &quot;parser.y&quot;
+#line 2515 &quot;parser.y&quot;
     {
             (yyval.memArg).nrderefs = 0;
             (yyval.memArg).argflags = 0;
@@ -5209,7 +5210,7 @@ yyreduce:
     break;
 
   case 340:
-#line 2521 &quot;parser.y&quot;
+#line 2522 &quot;parser.y&quot;
     {
             (yyval.memArg).nrderefs = 0;
             (yyval.memArg).argflags = 0;
@@ -5220,7 +5221,7 @@ yyreduce:
     break;
 
   case 341:
-#line 2528 &quot;parser.y&quot;
+#line 2529 &quot;parser.y&quot;
     {
             (yyval.memArg).nrderefs = 0;
             (yyval.memArg).argflags = 0;
@@ -5231,7 +5232,7 @@ yyreduce:
     break;
 
   case 342:
-#line 2535 &quot;parser.y&quot;
+#line 2536 &quot;parser.y&quot;
     {
             (yyval.memArg).nrderefs = 0;
             (yyval.memArg).argflags = 0;
@@ -5242,7 +5243,7 @@ yyreduce:
     break;
 
   case 343:
-#line 2542 &quot;parser.y&quot;
+#line 2543 &quot;parser.y&quot;
     {
             (yyval.memArg).nrderefs = 0;
             (yyval.memArg).argflags = 0;
@@ -5253,7 +5254,7 @@ yyreduce:
     break;
 
   case 344:
-#line 2549 &quot;parser.y&quot;
+#line 2550 &quot;parser.y&quot;
     {
             (yyval.memArg).nrderefs = 0;
             (yyval.memArg).argflags = 0;
@@ -5264,7 +5265,7 @@ yyreduce:
     break;
 
   case 345:
-#line 2556 &quot;parser.y&quot;
+#line 2557 &quot;parser.y&quot;
     {
             (yyval.memArg).nrderefs = 0;
             (yyval.memArg).argflags = 0;
@@ -5275,7 +5276,7 @@ yyreduce:
     break;
 
   case 346:
-#line 2563 &quot;parser.y&quot;
+#line 2564 &quot;parser.y&quot;
     {
             (yyval.memArg).nrderefs = 0;
             (yyval.memArg).argflags = 0;
@@ -5286,7 +5287,7 @@ yyreduce:
     break;
 
   case 347:
-#line 2570 &quot;parser.y&quot;
+#line 2571 &quot;parser.y&quot;
     {
             (yyval.memArg).nrderefs = 0;
             (yyval.memArg).argflags = 0;
@@ -5297,7 +5298,7 @@ yyreduce:
     break;
 
   case 348:
-#line 2579 &quot;parser.y&quot;
+#line 2580 &quot;parser.y&quot;
     {
             /* The single or first type. */
 
@@ -5307,7 +5308,7 @@ yyreduce:
     break;
 
   case 349:
-#line 2585 &quot;parser.y&quot;
+#line 2586 &quot;parser.y&quot;
     {
             /* Check there is nothing after an ellipsis. */
             if ((yyvsp[(1) - (3)].signature).args[(yyvsp[(1) - (3)].signature).nrArgs - 1].atype == ellipsis_type)
@@ -5325,14 +5326,14 @@ yyreduce:
     break;
 
   case 350:
-#line 2601 &quot;parser.y&quot;
+#line 2602 &quot;parser.y&quot;
     {
             (yyval.throwlist) = NULL;
         ;}
     break;
 
   case 351:
-#line 2604 &quot;parser.y&quot;
+#line 2605 &quot;parser.y&quot;
     {
             if (currentSpec-&gt;genc)
                 yyerror(&quot;Exceptions not allowed in a C module&quot;);
@@ -5342,7 +5343,7 @@ yyreduce:
     break;
 
   case 352:
-#line 2612 &quot;parser.y&quot;
+#line 2613 &quot;parser.y&quot;
     {
             /* Empty list so use a blank. */
 
@@ -5352,7 +5353,7 @@ yyreduce:
     break;
 
   case 353:
-#line 2618 &quot;parser.y&quot;
+#line 2619 &quot;parser.y&quot;
     {
             /* The only or first exception. */
 
@@ -5363,7 +5364,7 @@ yyreduce:
     break;
 
   case 354:
-#line 2625 &quot;parser.y&quot;
+#line 2626 &quot;parser.y&quot;
     {
             /* Check that it wasn't ...(,arg...). */
 
@@ -5382,7 +5383,7 @@ yyreduce:
 
 
 /* Line 1267 of yacc.c.  */
-#line 5386 &quot;parser.c&quot;
+#line 5387 &quot;parser.c&quot;
       default: break;
     }
   YY_SYMBOL_PRINT (&quot;-&gt; $$ =&quot;, yyr1[yyn], &amp;yyval, &amp;yyloc);
@@ -5596,7 +5597,7 @@ yyreturn:
 }
 
 
-#line 2641 &quot;parser.y&quot;
+#line 2642 &quot;parser.y&quot;
 
 
 </diff>
      <filename>sipgen/parser.c</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>f8efebd21bcad65b3f6406f9c0aad26096c2bccf</id>
    </parent>
  </parents>
  <author>
    <name>Kevin Watters</name>
    <email>kevinwatters@gmail.com</email>
  </author>
  <url>http://github.com/kevinw/sip/commit/35e3cc26d72d1f4464840e7244a0f2cb63e42ea0</url>
  <id>35e3cc26d72d1f4464840e7244a0f2cb63e42ea0</id>
  <committed-date>2009-05-04T10:54:38-07:00</committed-date>
  <authored-date>2009-05-04T10:54:38-07:00</authored-date>
  <message>Do not version control parser.c, it is generated by parser.y</message>
  <tree>53076e579566eeb8b89401fd65818e54a4ac6aef</tree>
  <committer>
    <name>Kevin Watters</name>
    <email>kevinwatters@gmail.com</email>
  </committer>
</commit>
