]> git.draconx.ca Git - gob-dx.git/blobdiff - src/parse.c
Release 2.0.3
[gob-dx.git] / src / parse.c
index 85d2b225954d59af96a2b3de1a098a0c20ce3eb6..c0ac2d080428e63b8a95be885da229ba575c71c4 100644 (file)
@@ -537,7 +537,7 @@ property_link_and_export (Node *node)
                        if (prop->extra_gtktype != NULL) {
                                cast = remove_sep (prop->extra_gtktype);
                        } else {
-                               cast = "void";
+                               cast = g_strdup ("void");
                        }
                        set = g_strdup_printf("{ GObject *___old = (GObject *)%s->%s; "
                                              "%s->%s = (%s *)g_value_dup_object (VAL); "
@@ -817,20 +817,20 @@ static const short yyrline[] =
      714,   721,   735,   736,   748,   757,   771,   772,   775,   776,
      785,   797,   798,   799,   800,   803,   804,   805,   806,   809,
      829,   853,   857,   865,   866,   867,   868,   869,   875,   878,
-     883,   951,  1005,  1093,  1101,  1106,  1154,  1190,  1206,  1207,
-    1210,  1211,  1214,  1215,  1227,  1228,  1231,  1237,  1243,  1249,
-    1255,  1261,  1267,  1274,  1280,  1286,  1292,  1298,  1304,  1310,
-    1316,  1322,  1328,  1334,  1354,  1363,  1369,  1370,  1373,  1376,
-    1382,  1389,  1398,  1401,  1404,  1408,  1412,  1416,  1421,  1429,
-    1433,  1438,  1442,  1445,  1449,  1452,  1457,  1458,  1459,  1460,
-    1461,  1462,  1463,  1464,  1465,  1468,  1469,  1470,  1473,  1474,
-    1475,  1479,  1486,  1498,  1504,  1516,  1528,  1531,  1537,  1542,
-    1545,  1550,  1551,  1555,  1571,  1587,  1603,  1619,  1630,  1636,
-    1646,  1669,  1680,  1699,  1705,  1706,  1712,  1713,  1724,  1735,
-    1746,  1756,  1766,  1776,  1779,  1780,  1783,  1784,  1787,  1790,
-    1793,  1801,  1811,  1812,  1815,  1832,  1839,  1846,  1853,  1860,
-    1867,  1876,  1885,  1896,  1897,  1900,  1920,  1930,  1939,  1950,
-    1953,  1958,  1967,  1978,  1981,  1987,  1988,  1992,  1993
+     883,   951,  1005,  1094,  1102,  1107,  1155,  1191,  1207,  1208,
+    1211,  1212,  1215,  1216,  1228,  1229,  1232,  1238,  1244,  1250,
+    1256,  1262,  1268,  1275,  1281,  1287,  1293,  1299,  1305,  1311,
+    1317,  1323,  1329,  1335,  1355,  1364,  1370,  1371,  1374,  1377,
+    1383,  1390,  1399,  1402,  1405,  1409,  1413,  1417,  1422,  1430,
+    1434,  1439,  1443,  1446,  1450,  1453,  1458,  1459,  1460,  1461,
+    1462,  1463,  1464,  1465,  1466,  1469,  1470,  1471,  1474,  1475,
+    1476,  1480,  1487,  1499,  1505,  1517,  1529,  1532,  1538,  1543,
+    1546,  1551,  1552,  1556,  1572,  1588,  1604,  1620,  1631,  1637,
+    1647,  1670,  1681,  1700,  1706,  1707,  1713,  1714,  1725,  1736,
+    1747,  1757,  1767,  1777,  1780,  1781,  1784,  1785,  1788,  1791,
+    1794,  1802,  1812,  1813,  1816,  1833,  1840,  1847,  1854,  1861,
+    1868,  1877,  1886,  1897,  1898,  1901,  1921,  1931,  1940,  1951,
+    1954,  1959,  1968,  1979,  1982,  1988,  1989,  1993,  1994
 };
 #endif
 
@@ -2358,7 +2358,7 @@ case 52:
                        char *get, *set = NULL;
                        Variable *var;
                        Type *type;
-                       char *root;
+                       const char *root;
                        
                        if(strcmp(yyvsp[0].id, "link")!=0 &&
                           strcmp(yyvsp[0].id, "stringlink")!=0 && 
@@ -2375,15 +2375,16 @@ case 52:
                        type = pop_type();
 
                        var = find_var_or_die(yyvsp[-2].id, yyvsp[-5].line);
-                       if(var->scope == PRIVATE_SCOPE)
+                       if(var->scope == PRIVATE_SCOPE) {
                                root = "self->_priv";
-                       else if(var->scope == CLASS_SCOPE) {
+                       else if(var->scope == CLASS_SCOPE) {
                                root = "SELF_GET_CLASS(self)";
                                if(no_self_alias)
                                        error_print(GOB_ERROR, yyvsp[-5].line,
                                                    _("Self aliases needed when autolinking to a classwide member"));
-                       } else
+                       } else {
                                root = "self";
+                       }
 
                        if(strcmp(yyvsp[0].id, "link")==0) {
                                set = g_strdup_printf("%s->%s = ARG;",
@@ -2441,7 +2442,7 @@ case 52:
                                                }
     break;
 case 53:
-#line 1093 "parse.y"
+#line 1094 "parse.y"
 {
                        if (strcmp (yyvsp[-1].id, "export")!=0) {
                                g_free (yyvsp[-1].id); 
@@ -2452,13 +2453,13 @@ case 53:
                                                }
     break;
 case 54:
-#line 1101 "parse.y"
+#line 1102 "parse.y"
 {
                        yyval.id = NULL;
                                                }
     break;
 case 55:
-#line 1106 "parse.y"
+#line 1107 "parse.y"
 {
                        ensure_property ();
                        node_set ((Node *)property,
@@ -2509,7 +2510,7 @@ case 55:
                }
     break;
 case 56:
-#line 1154 "parse.y"
+#line 1155 "parse.y"
 {
                        ensure_property ();
                        node_set ((Node *)property,
@@ -2548,7 +2549,7 @@ case 56:
                }
     break;
 case 57:
-#line 1190 "parse.y"
+#line 1191 "parse.y"
 {
                        ensure_property ();
                        node_set ((Node *)property,
@@ -2565,27 +2566,27 @@ case 57:
                }
     break;
 case 58:
-#line 1206 "parse.y"
+#line 1207 "parse.y"
 { ; }
     break;
 case 59:
-#line 1207 "parse.y"
+#line 1208 "parse.y"
 { ; }
     break;
 case 60:
-#line 1210 "parse.y"
+#line 1211 "parse.y"
 { ; }
     break;
 case 61:
-#line 1211 "parse.y"
+#line 1212 "parse.y"
 { ; }
     break;
 case 62:
-#line 1214 "parse.y"
+#line 1215 "parse.y"
 { yyval.id = yyvsp[0].id; }
     break;
 case 63:
-#line 1215 "parse.y"
+#line 1216 "parse.y"
 {
                        if (strcmp (yyvsp[-3].id, "_") != 0) {
                                g_free (yyvsp[-3].id);
@@ -2598,15 +2599,15 @@ case 63:
                }
     break;
 case 64:
-#line 1227 "parse.y"
+#line 1228 "parse.y"
 { yyval.id = yyvsp[0].id; }
     break;
 case 65:
-#line 1228 "parse.y"
+#line 1229 "parse.y"
 { yyval.id = yyvsp[0].id; }
     break;
 case 66:
-#line 1231 "parse.y"
+#line 1232 "parse.y"
 {
                ensure_property ();
                node_set ((Node *)property,
@@ -2615,7 +2616,7 @@ case 66:
                  }
     break;
 case 67:
-#line 1237 "parse.y"
+#line 1238 "parse.y"
 {
                ensure_property ();
                node_set ((Node *)property,
@@ -2624,7 +2625,7 @@ case 67:
                  }
     break;
 case 68:
-#line 1243 "parse.y"
+#line 1244 "parse.y"
 {
                ensure_property ();
                node_set ((Node *)property,
@@ -2633,7 +2634,7 @@ case 68:
                  }
     break;
 case 69:
-#line 1249 "parse.y"
+#line 1250 "parse.y"
 {
                ensure_property ();
                node_set ((Node *)property,
@@ -2642,7 +2643,7 @@ case 69:
                  }
     break;
 case 70:
-#line 1255 "parse.y"
+#line 1256 "parse.y"
 {
                ensure_property ();
                node_set ((Node *)property,
@@ -2651,7 +2652,7 @@ case 70:
                  }
     break;
 case 71:
-#line 1261 "parse.y"
+#line 1262 "parse.y"
 {
                ensure_property ();
                node_set ((Node *)property,
@@ -2660,7 +2661,7 @@ case 71:
                  }
     break;
 case 72:
-#line 1267 "parse.y"
+#line 1268 "parse.y"
 {
                Type *type = pop_type ();
                ensure_property ();
@@ -2670,7 +2671,7 @@ case 72:
                  }
     break;
 case 73:
-#line 1274 "parse.y"
+#line 1275 "parse.y"
 {
                ensure_property ();
                node_set ((Node *)property,
@@ -2679,7 +2680,7 @@ case 73:
                  }
     break;
 case 74:
-#line 1280 "parse.y"
+#line 1281 "parse.y"
 {
                ensure_property ();
                node_set ((Node *)property,
@@ -2688,7 +2689,7 @@ case 74:
                  }
     break;
 case 75:
-#line 1286 "parse.y"
+#line 1287 "parse.y"
 {
                ensure_property ();
                node_set ((Node *)property,
@@ -2697,7 +2698,7 @@ case 75:
                  }
     break;
 case 76:
-#line 1292 "parse.y"
+#line 1293 "parse.y"
 {
                ensure_property ();
                node_set ((Node *)property,
@@ -2706,7 +2707,7 @@ case 76:
                  }
     break;
 case 77:
-#line 1298 "parse.y"
+#line 1299 "parse.y"
 {
                ensure_property ();
                node_set ((Node *)property,
@@ -2715,7 +2716,7 @@ case 77:
                  }
     break;
 case 78:
-#line 1304 "parse.y"
+#line 1305 "parse.y"
 {
                ensure_property ();
                node_set ((Node *)property,
@@ -2724,7 +2725,7 @@ case 78:
                  }
     break;
 case 79:
-#line 1310 "parse.y"
+#line 1311 "parse.y"
 {
                ensure_property ();
                node_set ((Node *)property,
@@ -2733,7 +2734,7 @@ case 79:
                  }
     break;
 case 80:
-#line 1316 "parse.y"
+#line 1317 "parse.y"
 {
                ensure_property ();
                node_set ((Node *)property,
@@ -2742,7 +2743,7 @@ case 80:
                  }
     break;
 case 81:
-#line 1322 "parse.y"
+#line 1323 "parse.y"
 {
                ensure_property ();
                node_set ((Node *)property,
@@ -2751,7 +2752,7 @@ case 81:
                  }
     break;
 case 82:
-#line 1328 "parse.y"
+#line 1329 "parse.y"
 {
                ensure_property ();
                node_set ((Node *)property,
@@ -2760,7 +2761,7 @@ case 82:
                  }
     break;
 case 83:
-#line 1334 "parse.y"
+#line 1335 "parse.y"
 {
                ensure_property ();
                if (strcmp (yyvsp[0].id, "link") == 0) {
@@ -2781,7 +2782,7 @@ case 83:
                  }
     break;
 case 84:
-#line 1354 "parse.y"
+#line 1355 "parse.y"
 {
                        if(strcmp(yyvsp[-2].id,"type")!=0) {
                                g_free(yyvsp[-4].id);
@@ -2793,34 +2794,34 @@ case 84:
                                                }
     break;
 case 85:
-#line 1363 "parse.y"
+#line 1364 "parse.y"
 {
                        yyval.id = debool (yyvsp[0].id);
                        typestack = g_list_prepend(typestack,NULL);
                                                }
     break;
 case 86:
-#line 1369 "parse.y"
+#line 1370 "parse.y"
 { yyval.list = yyvsp[-1].list; }
     break;
 case 87:
-#line 1370 "parse.y"
+#line 1371 "parse.y"
 { yyval.list = NULL; }
     break;
 case 88:
-#line 1373 "parse.y"
+#line 1374 "parse.y"
 {
                        yyval.list = g_list_append(yyvsp[0].list,yyvsp[-2].id);
                                                }
     break;
 case 89:
-#line 1376 "parse.y"
+#line 1377 "parse.y"
 {
                        yyval.list = g_list_append(NULL,yyvsp[0].id);
                                                }
     break;
 case 90:
-#line 1382 "parse.y"
+#line 1383 "parse.y"
 {
                        Node *node = node_new (TYPE_NODE, 
                                               "name:steal", yyvsp[-1].id,
@@ -2830,7 +2831,7 @@ case 90:
                                                        }
     break;
 case 91:
-#line 1389 "parse.y"
+#line 1390 "parse.y"
 {
                        Node *node = node_new (TYPE_NODE, 
                                               "name:steal", yyvsp[0].id,
@@ -2839,40 +2840,40 @@ case 91:
                                                        }
     break;
 case 92:
-#line 1398 "parse.y"
+#line 1399 "parse.y"
 {
                        yyval.id = yyvsp[0].id;
                                                        }
     break;
 case 93:
-#line 1401 "parse.y"
+#line 1402 "parse.y"
 {
                        yyval.id = yyvsp[0].id;
                                                        }
     break;
 case 94:
-#line 1404 "parse.y"
+#line 1405 "parse.y"
 {
                        yyval.id = g_strconcat("const ", yyvsp[0].id, NULL);
                        g_free(yyvsp[0].id);
                                                        }
     break;
 case 95:
-#line 1408 "parse.y"
+#line 1409 "parse.y"
 {
                        yyval.id = g_strconcat(yyvsp[-1].id, " const", NULL);
                        g_free(yyvsp[-1].id);
                                                        }
     break;
 case 96:
-#line 1412 "parse.y"
+#line 1413 "parse.y"
 {
                        yyval.id = g_strconcat(yyvsp[-1].id, " ", yyvsp[0].id, NULL);
                        g_free(yyvsp[0].id);
                                                        }
     break;
 case 97:
-#line 1416 "parse.y"
+#line 1417 "parse.y"
 {
                        yyval.id = g_strconcat("const ", yyvsp[-1].id, " ",
                                             yyvsp[0].id, NULL);
@@ -2880,7 +2881,7 @@ case 97:
                                                        }
     break;
 case 98:
-#line 1421 "parse.y"
+#line 1422 "parse.y"
 {
                        yyval.id = g_strconcat(yyvsp[-2].id, " ",
                                             yyvsp[-1].id, " const", NULL);
@@ -2888,14 +2889,14 @@ case 98:
                                                        }
     break;
 case 99:
-#line 1429 "parse.y"
+#line 1430 "parse.y"
 {
                        yyval.id = g_strconcat(yyvsp[-1].id, " ", yyvsp[0].id, NULL);
                        g_free(yyvsp[0].id);
                                                        }
     break;
 case 100:
-#line 1433 "parse.y"
+#line 1434 "parse.y"
 {
                        yyval.id = g_strconcat(yyvsp[-1].id, " ", yyvsp[0].id, NULL);
                        g_free(yyvsp[-1].id);
@@ -2903,109 +2904,109 @@ case 100:
                                                        }
     break;
 case 101:
-#line 1438 "parse.y"
+#line 1439 "parse.y"
 {
                        yyval.id = g_strconcat("const ", yyvsp[0].id, NULL);
                        g_free(yyvsp[0].id);
                                                        }
     break;
 case 102:
-#line 1442 "parse.y"
+#line 1443 "parse.y"
 {
                        yyval.id = yyvsp[0].id;
                                                        }
     break;
 case 103:
-#line 1445 "parse.y"
+#line 1446 "parse.y"
 {
                        yyval.id = g_strconcat(yyvsp[-1].id, " const", NULL);
                        g_free(yyvsp[-1].id);
                                                        }
     break;
 case 104:
-#line 1449 "parse.y"
+#line 1450 "parse.y"
 {
                        yyval.id = g_strdup(yyvsp[0].id);
                                                        }
     break;
 case 105:
-#line 1452 "parse.y"
+#line 1453 "parse.y"
 {
                        yyval.id = g_strconcat(yyvsp[-1].id, " const", NULL);
                                                        }
     break;
 case 106:
-#line 1457 "parse.y"
+#line 1458 "parse.y"
 { yyval.id = "void"; }
     break;
 case 107:
-#line 1458 "parse.y"
+#line 1459 "parse.y"
 { yyval.id = "char"; }
     break;
 case 108:
-#line 1459 "parse.y"
+#line 1460 "parse.y"
 { yyval.id = "short"; }
     break;
 case 109:
-#line 1460 "parse.y"
+#line 1461 "parse.y"
 { yyval.id = "int"; }
     break;
 case 110:
-#line 1461 "parse.y"
+#line 1462 "parse.y"
 { yyval.id = "long"; }
     break;
 case 111:
-#line 1462 "parse.y"
+#line 1463 "parse.y"
 { yyval.id = "float"; }
     break;
 case 112:
-#line 1463 "parse.y"
+#line 1464 "parse.y"
 { yyval.id = "double"; }
     break;
 case 113:
-#line 1464 "parse.y"
+#line 1465 "parse.y"
 { yyval.id = "signed"; }
     break;
 case 114:
-#line 1465 "parse.y"
+#line 1466 "parse.y"
 { yyval.id = "unsigned"; }
     break;
 case 115:
-#line 1468 "parse.y"
+#line 1469 "parse.y"
 { yyval.id = "struct"; }
     break;
 case 116:
-#line 1469 "parse.y"
+#line 1470 "parse.y"
 { yyval.id = "union"; }
     break;
 case 117:
-#line 1470 "parse.y"
+#line 1471 "parse.y"
 { yyval.id = "enum"; }
     break;
 case 118:
-#line 1473 "parse.y"
+#line 1474 "parse.y"
 { yyval.id = g_strdup("*"); }
     break;
 case 119:
-#line 1474 "parse.y"
+#line 1475 "parse.y"
 { yyval.id = g_strdup("* const"); }
     break;
 case 120:
-#line 1475 "parse.y"
+#line 1476 "parse.y"
 {
                                yyval.id = g_strconcat("*", yyvsp[0].id, NULL);
                                g_free(yyvsp[0].id);
                                        }
     break;
 case 121:
-#line 1479 "parse.y"
+#line 1480 "parse.y"
 {
                                yyval.id = g_strconcat("* const", yyvsp[0].id, NULL);
                                g_free(yyvsp[0].id);
                                        }
     break;
 case 122:
-#line 1486 "parse.y"
+#line 1487 "parse.y"
 {
                        if(strcmp(yyvsp[-1].id, "first")==0)
                                yyval.sigtype = SIGNAL_FIRST_METHOD;
@@ -3020,13 +3021,13 @@ case 122:
                                        }
     break;
 case 123:
-#line 1498 "parse.y"
+#line 1499 "parse.y"
 {
                        yyval.sigtype = SIGNAL_LAST_METHOD;
                                        }
     break;
 case 124:
-#line 1504 "parse.y"
+#line 1505 "parse.y"
 {
                        if(strcmp(yyvsp[-1].id,"first")==0)
                                yyval.sigtype = SIGNAL_FIRST_METHOD;
@@ -3041,7 +3042,7 @@ case 124:
                                        }
     break;
 case 125:
-#line 1516 "parse.y"
+#line 1517 "parse.y"
 {
                        if(strcmp(yyvsp[-2].id,"first")==0)
                                yyval.sigtype = SIGNAL_FIRST_METHOD;
@@ -3056,46 +3057,46 @@ case 125:
                                        }
     break;
 case 126:
-#line 1528 "parse.y"
+#line 1529 "parse.y"
 {
                        yyval.sigtype = SIGNAL_LAST_METHOD;
                                        }
     break;
 case 127:
-#line 1531 "parse.y"
+#line 1532 "parse.y"
 {
                        /* the_scope was default thus public */
                        the_scope = PUBLIC_SCOPE;
                                        }
     break;
 case 128:
-#line 1537 "parse.y"
+#line 1538 "parse.y"
 {
                        gtktypes = g_list_prepend(gtktypes, debool (yyvsp[-3].id));
                                                }
     break;
 case 129:
-#line 1542 "parse.y"
+#line 1543 "parse.y"
 {
                        gtktypes = g_list_append(gtktypes, debool (yyvsp[0].id));
                                                }
     break;
 case 130:
-#line 1545 "parse.y"
+#line 1546 "parse.y"
 { 
                        gtktypes = g_list_append(gtktypes, debool (yyvsp[0].id));
                                                        }
     break;
 case 131:
-#line 1550 "parse.y"
+#line 1551 "parse.y"
 { yyval.cbuf = yyvsp[0].cbuf; }
     break;
 case 132:
-#line 1551 "parse.y"
+#line 1552 "parse.y"
 { yyval.cbuf = NULL; }
     break;
 case 133:
-#line 1555 "parse.y"
+#line 1556 "parse.y"
 {
                        if(!has_self) {
                                yyerror(_("signal without 'self' as "
@@ -3114,7 +3115,7 @@ case 133:
                                                                        }
     break;
 case 134:
-#line 1571 "parse.y"
+#line 1572 "parse.y"
 {
                        if(!has_self) {
                                yyerror(_("signal without 'self' as "
@@ -3133,7 +3134,7 @@ case 134:
                                                                        }
     break;
 case 135:
-#line 1587 "parse.y"
+#line 1588 "parse.y"
 {
                        if(!has_self) {
                                yyerror(_("virtual method without 'self' as "
@@ -3152,7 +3153,7 @@ case 135:
                                                                        }
     break;
 case 136:
-#line 1603 "parse.y"
+#line 1604 "parse.y"
 {
                        if(!has_self) {
                                yyerror(_("virtual method without 'self' as "
@@ -3171,7 +3172,7 @@ case 136:
                                                                        }
     break;
 case 137:
-#line 1619 "parse.y"
+#line 1620 "parse.y"
 {
                        if(!has_self) {
                                yyerror(_("virtual method without 'self' as "
@@ -3185,7 +3186,7 @@ case 137:
                                                                        }
     break;
 case 138:
-#line 1630 "parse.y"
+#line 1631 "parse.y"
 {
                        push_function(NO_SCOPE, OVERRIDE_METHOD, yyvsp[-8].id,
                                      yyvsp[-5].id, yyvsp[0].cbuf,
@@ -3194,7 +3195,7 @@ case 138:
                                                                        }
     break;
 case 139:
-#line 1636 "parse.y"
+#line 1637 "parse.y"
 {
                        if(the_scope == CLASS_SCOPE) {
                                yyerror(_("a method cannot be of class scope"));
@@ -3207,7 +3208,7 @@ case 139:
                                                                }
     break;
 case 140:
-#line 1646 "parse.y"
+#line 1647 "parse.y"
 {
                        if(strcmp(yyvsp[-4].id, "init")==0) {
                                push_init_arg(yyvsp[-2].id,FALSE);
@@ -3231,7 +3232,7 @@ case 140:
                                                }
     break;
 case 141:
-#line 1669 "parse.y"
+#line 1670 "parse.y"
 {
                        g_free(onerror); onerror = NULL;
                        g_free(defreturn); defreturn = NULL;
@@ -3245,7 +3246,7 @@ case 141:
                                        }
     break;
 case 142:
-#line 1680 "parse.y"
+#line 1681 "parse.y"
 {
                        g_free(onerror); onerror = NULL;
                        g_free(defreturn); defreturn = NULL;
@@ -3267,29 +3268,29 @@ case 142:
                                                }
     break;
 case 143:
-#line 1699 "parse.y"
+#line 1700 "parse.y"
 {
                        g_free(onerror); onerror = NULL;
                        g_free(defreturn); defreturn = NULL;
                                        }
     break;
 case 144:
-#line 1705 "parse.y"
+#line 1706 "parse.y"
 { yyval.id = yyvsp[0].id; }
     break;
 case 145:
-#line 1706 "parse.y"
+#line 1707 "parse.y"
 {
-                       yyval.id = (yyvsp[1].cbuf)->str;
-                       g_string_free(yyvsp[1].cbuf, FALSE);
+                       yyval.id = (yyvsp[0].cbuf)->str;
+                       g_string_free(yyvsp[0].cbuf, FALSE);
                                        }
     break;
 case 146:
-#line 1712 "parse.y"
+#line 1713 "parse.y"
 { vararg = FALSE; has_self = FALSE; }
     break;
 case 147:
-#line 1713 "parse.y"
+#line 1714 "parse.y"
 {
                        vararg = FALSE;
                        has_self = TRUE;
@@ -3303,7 +3304,7 @@ case 147:
                                                }
     break;
 case 148:
-#line 1724 "parse.y"
+#line 1725 "parse.y"
 {
                        vararg = FALSE;
                        has_self = TRUE;
@@ -3317,7 +3318,7 @@ case 148:
                                                }
     break;
 case 149:
-#line 1735 "parse.y"
+#line 1736 "parse.y"
 {
                        vararg = FALSE;
                        has_self = TRUE;
@@ -3331,7 +3332,7 @@ case 149:
                                                }
     break;
 case 150:
-#line 1746 "parse.y"
+#line 1747 "parse.y"
 {
                        has_self = TRUE;
                        if(strcmp(yyvsp[-2].id,"self")==0)
@@ -3344,7 +3345,7 @@ case 150:
                                        }
     break;
 case 151:
-#line 1756 "parse.y"
+#line 1757 "parse.y"
 {
                        has_self = TRUE;
                        if(strcmp(yyvsp[-3].id,"self")==0)
@@ -3357,7 +3358,7 @@ case 151:
                                        }
     break;
 case 152:
-#line 1766 "parse.y"
+#line 1767 "parse.y"
 {
                        has_self = TRUE;
                        if(strcmp(yyvsp[-2].id,"self")==0)
@@ -3370,39 +3371,39 @@ case 152:
                                        }
     break;
 case 153:
-#line 1776 "parse.y"
+#line 1777 "parse.y"
 { has_self = FALSE; }
     break;
 case 154:
-#line 1779 "parse.y"
+#line 1780 "parse.y"
 { vararg = TRUE; }
     break;
 case 155:
-#line 1780 "parse.y"
+#line 1781 "parse.y"
 { vararg = FALSE; }
     break;
 case 156:
-#line 1783 "parse.y"
+#line 1784 "parse.y"
 { ; }
     break;
 case 157:
-#line 1784 "parse.y"
+#line 1785 "parse.y"
 { ; }
     break;
 case 158:
-#line 1787 "parse.y"
+#line 1788 "parse.y"
 {
                        push_funcarg(yyvsp[0].id,NULL);
                                                                }
     break;
 case 159:
-#line 1790 "parse.y"
+#line 1791 "parse.y"
 {
                        push_funcarg(yyvsp[-1].id,yyvsp[0].id);
                                                                }
     break;
 case 160:
-#line 1793 "parse.y"
+#line 1794 "parse.y"
 {
                        if(strcmp(yyvsp[-2].id,"check")!=0) {
                                yyerror(_("parse error"));
@@ -3413,7 +3414,7 @@ case 160:
                                                                }
     break;
 case 161:
-#line 1801 "parse.y"
+#line 1802 "parse.y"
 {
                        if(strcmp(yyvsp[-2].id,"check")!=0) {
                                yyerror(_("parse error"));
@@ -3424,15 +3425,15 @@ case 161:
                                                                }
     break;
 case 162:
-#line 1811 "parse.y"
+#line 1812 "parse.y"
 { ; }
     break;
 case 163:
-#line 1812 "parse.y"
+#line 1813 "parse.y"
 { ; }
     break;
 case 164:
-#line 1815 "parse.y"
+#line 1816 "parse.y"
 {
                        if(strcmp(yyvsp[0].id,"type")==0) {
                                Node *node = node_new (CHECK_NODE,
@@ -3452,7 +3453,7 @@ case 164:
                                        }
     break;
 case 165:
-#line 1832 "parse.y"
+#line 1833 "parse.y"
 {
                        Node *node = node_new (CHECK_NODE,
                                               "chtype", GT_CHECK,
@@ -3462,7 +3463,7 @@ case 165:
                                        }
     break;
 case 166:
-#line 1839 "parse.y"
+#line 1840 "parse.y"
 {
                        Node *node = node_new (CHECK_NODE,
                                               "chtype", LT_CHECK,
@@ -3472,7 +3473,7 @@ case 166:
                                        }
     break;
 case 167:
-#line 1846 "parse.y"
+#line 1847 "parse.y"
 {
                        Node *node = node_new (CHECK_NODE,
                                               "chtype", GE_CHECK,
@@ -3482,7 +3483,7 @@ case 167:
                                        }
     break;
 case 168:
-#line 1853 "parse.y"
+#line 1854 "parse.y"
 {
                        Node *node = node_new (CHECK_NODE,
                                               "chtype", LE_CHECK,
@@ -3492,7 +3493,7 @@ case 168:
                                        }
     break;
 case 169:
-#line 1860 "parse.y"
+#line 1861 "parse.y"
 {
                        Node *node = node_new (CHECK_NODE,
                                               "chtype", EQ_CHECK,
@@ -3502,7 +3503,7 @@ case 169:
                                        }
     break;
 case 170:
-#line 1867 "parse.y"
+#line 1868 "parse.y"
 {
                        Node *node = node_new (CHECK_NODE,
                                               "chtype", NE_CHECK,
@@ -3512,7 +3513,7 @@ case 170:
                                        }
     break;
 case 171:
-#line 1876 "parse.y"
+#line 1877 "parse.y"
 {
                        Node *node = node_new (ENUMDEF_NODE,
                                               "etype:steal", yyvsp[-1].id,
@@ -3524,7 +3525,7 @@ case 171:
                        }
     break;
 case 172:
-#line 1885 "parse.y"
+#line 1886 "parse.y"
 {
                        Node *node = node_new (ENUMDEF_NODE,
                                               "etype:steal", yyvsp[-1].id,
@@ -3536,15 +3537,15 @@ case 172:
                        }
     break;
 case 173:
-#line 1896 "parse.y"
+#line 1897 "parse.y"
 {;}
     break;
 case 174:
-#line 1897 "parse.y"
+#line 1898 "parse.y"
 {;}
     break;
 case 175:
-#line 1900 "parse.y"
+#line 1901 "parse.y"
 {
                        Node *node;
                        char *num = yyvsp[0].id;
@@ -3567,7 +3568,7 @@ case 175:
                        }
     break;
 case 176:
-#line 1920 "parse.y"
+#line 1921 "parse.y"
 {
                        Node *node;
 
@@ -3578,7 +3579,7 @@ case 176:
        }
     break;
 case 177:
-#line 1930 "parse.y"
+#line 1931 "parse.y"
 {
                        Node *node = node_new (FLAGS_NODE,
                                               "ftype:steal", yyvsp[-1].id,
@@ -3590,7 +3591,7 @@ case 177:
                        }
     break;
 case 178:
-#line 1939 "parse.y"
+#line 1940 "parse.y"
 {
                        Node *node = node_new (FLAGS_NODE,
                                               "ftype:steal", yyvsp[-1].id,
@@ -3602,19 +3603,19 @@ case 178:
                        }
     break;
 case 179:
-#line 1950 "parse.y"
+#line 1951 "parse.y"
 {
                        flag_vals = g_list_append (flag_vals, yyvsp[0].id);
                }
     break;
 case 180:
-#line 1953 "parse.y"
+#line 1954 "parse.y"
 {
                        flag_vals = g_list_append (flag_vals, yyvsp[0].id);
                }
     break;
 case 181:
-#line 1958 "parse.y"
+#line 1959 "parse.y"
 {
                        Node *node = node_new (ERROR_NODE,
                                               "etype:steal", yyvsp[-1].id,
@@ -3626,7 +3627,7 @@ case 181:
                        }
     break;
 case 182:
-#line 1967 "parse.y"
+#line 1968 "parse.y"
 {
                        Node *node = node_new (ERROR_NODE,
                                               "etype:steal", yyvsp[-1].id,
@@ -3638,34 +3639,34 @@ case 182:
                        }
     break;
 case 183:
-#line 1978 "parse.y"
+#line 1979 "parse.y"
 {
                        error_vals = g_list_append (error_vals, yyvsp[0].id);
                }
     break;
 case 184:
-#line 1981 "parse.y"
+#line 1982 "parse.y"
 {
                        error_vals = g_list_append (error_vals, yyvsp[0].id);
                }
     break;
 case 185:
-#line 1987 "parse.y"
+#line 1988 "parse.y"
 { yyval.id = yyvsp[0].id; }
     break;
 case 186:
-#line 1988 "parse.y"
+#line 1989 "parse.y"
 {
                        yyval.id = g_strconcat("-",yyvsp[0].id,NULL);
                        g_free(yyvsp[0].id);
                                        }
     break;
 case 187:
-#line 1992 "parse.y"
+#line 1993 "parse.y"
 { yyval.id = yyvsp[0].id; }
     break;
 case 188:
-#line 1993 "parse.y"
+#line 1994 "parse.y"
 { yyval.id = yyvsp[0].id; }
     break;
 }
@@ -3901,5 +3902,5 @@ yyreturn:
 #endif
   return yyresult;
 }
-#line 1996 "parse.y"
+#line 1997 "parse.y"