]> git.draconx.ca Git - gob-dx.git/blobdiff - src/parse.c
Release 1.0.4
[gob-dx.git] / src / parse.c
index c41f9e41d5851e6f31b3d8f2a2fab80283c1494c..9fdfed3c50279b80f71c3af2fb7679d09900901a 100644 (file)
@@ -163,18 +163,18 @@ push_function(int scope, int method, char *oid, char *id,
           !(g_list_length(funcargs) == 1 &&
             g_list_length(gtktypes) == 2 &&
             strcmp(gtktypes->next->data, "NONE")==0)) {
-               print_error(TRUE, _("The number of GTK arguments and "
-                                   "function arguments for a signal "
-                                   "don't seem to match"), line_no);
+               error_print(GOB_WARN, line_no,
+                           _("The number of GTK arguments and "
+                             "function arguments for a signal "
+                             "don't seem to match"));
        }
        if(g_list_length(gtktypes) > 2) {
                GList *li;
                for(li = gtktypes->next; li; li = li->next) {
                        if(strcmp(li->data, "NONE")==0) {
-                               print_error(FALSE,
+                               error_print(GOB_ERROR, line_no,
                                            _("NONE can only appear in an "
-                                             "argument list by itself"),
-                                           line_no);
+                                             "argument list by itself"));
                        }
                }
        }
@@ -274,7 +274,6 @@ static Variable *
 find_var_or_die(const char *id, int line)
 {
        GList *li;
-       char *s;
 
        for(li = class_nodes; li != NULL; li = li->next) {
                Variable *var;
@@ -286,8 +285,7 @@ find_var_or_die(const char *id, int line)
                        return var;
        }
 
-       s = g_strdup_printf(_("Variable %s not defined here"), id);
-       print_error(FALSE, s, line);
+       error_printf(GOB_ERROR, line, _("Variable %s not defined here"), id);
 
        g_assert_not_reached();
        return NULL;
@@ -313,7 +311,7 @@ set_return_value(char *type, char *val)
 }
 
 
-#line 295 "parse.y"
+#line 293 "parse.y"
 typedef union {
        char *id;
        GString *cbuf;
@@ -445,20 +443,20 @@ static const short yyrhs[] = {    52,
 
 #if YYDEBUG != 0
 static const short yyrline[] = { 0,
-   313,   314,   315,   316,   319,   325,   331,   337,   343,   349,
-   357,   358,   361,   366,   373,   378,   379,   387,   398,   399,
-   402,   403,   404,   405,   408,   409,   410,   411,   414,   427,
-   443,   447,   455,   456,   457,   458,   459,   465,   468,   472,
-   508,   537,   612,   621,   627,   628,   631,   634,   640,   644,
-   651,   654,   657,   661,   665,   669,   674,   682,   686,   691,
-   695,   698,   702,   705,   710,   711,   712,   713,   714,   715,
-   716,   717,   718,   721,   722,   723,   726,   727,   728,   732,
-   739,   751,   757,   769,   781,   784,   790,   795,   798,   803,
-   804,   808,   824,   840,   856,   872,   883,   889,   899,   922,
-   933,   952,   958,   959,   965,   966,   977,   988,   999,  1009,
-  1019,  1029,  1032,  1033,  1036,  1037,  1040,  1043,  1046,  1054,
-  1064,  1065,  1068,  1081,  1085,  1089,  1093,  1097,  1101,  1107,
-  1108,  1112
+   311,   312,   313,   314,   317,   323,   329,   335,   341,   347,
+   355,   356,   359,   364,   371,   376,   377,   385,   396,   397,
+   400,   401,   402,   403,   406,   407,   408,   409,   412,   425,
+   441,   445,   453,   454,   455,   456,   457,   463,   466,   470,
+   506,   535,   609,   618,   624,   625,   628,   631,   637,   641,
+   648,   651,   654,   658,   662,   666,   671,   679,   683,   688,
+   692,   695,   699,   702,   707,   708,   709,   710,   711,   712,
+   713,   714,   715,   718,   719,   720,   723,   724,   725,   729,
+   736,   748,   754,   766,   778,   781,   787,   792,   795,   800,
+   801,   805,   821,   837,   853,   869,   880,   886,   896,   919,
+   930,   949,   955,   956,   962,   963,   974,   985,   996,  1006,
+  1016,  1026,  1029,  1030,  1033,  1034,  1037,  1040,  1043,  1051,
+  1061,  1062,  1065,  1078,  1082,  1086,  1090,  1094,  1098,  1104,
+  1105,  1109
 };
 #endif
 
@@ -1224,23 +1222,23 @@ yyreduce:
   switch (yyn) {
 
 case 1:
-#line 313 "parse.y"
+#line 311 "parse.y"
 { ; ;
     break;}
 case 2:
-#line 314 "parse.y"
+#line 312 "parse.y"
 { ; ;
     break;}
 case 3:
-#line 315 "parse.y"
+#line 313 "parse.y"
 { ; ;
     break;}
 case 4:
-#line 316 "parse.y"
+#line 314 "parse.y"
 { ; ;
     break;}
 case 5:
-#line 319 "parse.y"
+#line 317 "parse.y"
 {
                        Node *node = new_ccode(C_CCODE,(yyvsp[0].cbuf)->str,
                                               ccode_line);
@@ -1249,7 +1247,7 @@ case 5:
                                        ;
     break;}
 case 6:
-#line 325 "parse.y"
+#line 323 "parse.y"
 {
                        Node *node = new_ccode(H_CCODE,(yyvsp[0].cbuf)->str,
                                               ccode_line);
@@ -1258,7 +1256,7 @@ case 6:
                                        ;
     break;}
 case 7:
-#line 331 "parse.y"
+#line 329 "parse.y"
 {
                        Node *node = new_ccode(HT_CCODE,(yyvsp[0].cbuf)->str,
                                               ccode_line);
@@ -1267,7 +1265,7 @@ case 7:
                                        ;
     break;}
 case 8:
-#line 337 "parse.y"
+#line 335 "parse.y"
 {
                        Node *node = new_ccode(PH_CCODE,(yyvsp[0].cbuf)->str,
                                               ccode_line);
@@ -1276,7 +1274,7 @@ case 8:
                                        ;
     break;}
 case 9:
-#line 343 "parse.y"
+#line 341 "parse.y"
 {
                        Node *node = new_ccode(A_CCODE,(yyvsp[0].cbuf)->str,
                                               ccode_line);
@@ -1285,7 +1283,7 @@ case 9:
                                        ;
     break;}
 case 10:
-#line 349 "parse.y"
+#line 347 "parse.y"
 {
                        Node *node = new_ccode(AT_CCODE,(yyvsp[0].cbuf)->str,
                                               ccode_line);
@@ -1294,15 +1292,15 @@ case 10:
                                        ;
     break;}
 case 11:
-#line 357 "parse.y"
+#line 355 "parse.y"
 { ; ;
     break;}
 case 12:
-#line 358 "parse.y"
+#line 356 "parse.y"
 { ; ;
     break;}
 case 13:
-#line 361 "parse.y"
+#line 359 "parse.y"
 {
                        ((Class *)class)->nodes = class_nodes;
                        class_nodes = NULL;
@@ -1310,7 +1308,7 @@ case 13:
                                                ;
     break;}
 case 14:
-#line 366 "parse.y"
+#line 364 "parse.y"
 {
                        ((Class *)class)->nodes = NULL;
                        class_nodes = NULL;
@@ -1318,13 +1316,13 @@ case 14:
                                                ;
     break;}
 case 15:
-#line 373 "parse.y"
+#line 371 "parse.y"
 {
                        class = new_class(yyvsp[-3].id,yyvsp[-1].id,chunk_size,NULL);
                                                ;
     break;}
 case 17:
-#line 379 "parse.y"
+#line 377 "parse.y"
 {
                        if(strcmp(yyvsp[-2].id,"chunks") == 0) {
                                        chunk_size = g_strdup(yyvsp[0].id);
@@ -1335,7 +1333,7 @@ case 17:
                ;
     break;}
 case 18:
-#line 387 "parse.y"
+#line 385 "parse.y"
 {
                        if(strcmp(yyvsp[-2].id,"chunks") == 0) {
                                if(atoi(yyvsp[0].id) != 0)
@@ -1347,47 +1345,47 @@ case 18:
                ;
     break;}
 case 19:
-#line 398 "parse.y"
+#line 396 "parse.y"
 { ; ;
     break;}
 case 20:
-#line 399 "parse.y"
+#line 397 "parse.y"
 { ; ;
     break;}
 case 21:
-#line 402 "parse.y"
+#line 400 "parse.y"
 { ; ;
     break;}
 case 22:
-#line 403 "parse.y"
+#line 401 "parse.y"
 { ; ;
     break;}
 case 23:
-#line 404 "parse.y"
+#line 402 "parse.y"
 { ; ;
     break;}
 case 24:
-#line 405 "parse.y"
+#line 403 "parse.y"
 { ; ;
     break;}
 case 25:
-#line 408 "parse.y"
+#line 406 "parse.y"
 { the_scope = PUBLIC_SCOPE; ;
     break;}
 case 26:
-#line 409 "parse.y"
+#line 407 "parse.y"
 { the_scope = PRIVATE_SCOPE; ;
     break;}
 case 27:
-#line 410 "parse.y"
+#line 408 "parse.y"
 { the_scope = PROTECTED_SCOPE; ;
     break;}
 case 28:
-#line 411 "parse.y"
+#line 409 "parse.y"
 { the_scope = CLASS_SCOPE; ;
     break;}
 case 29:
-#line 414 "parse.y"
+#line 412 "parse.y"
 {
                        if(strcmp(yyvsp[-1].id, "destroywith")==0) {
                                g_free(yyvsp[-1].id);
@@ -1403,7 +1401,7 @@ case 29:
                                ;
     break;}
 case 30:
-#line 427 "parse.y"
+#line 425 "parse.y"
 {
                        if(strcmp(yyvsp[-2].id, "destroy")==0) {
                                g_free(yyvsp[-2].id);
@@ -1420,14 +1418,14 @@ case 30:
                                        ;
     break;}
 case 31:
-#line 443 "parse.y"
+#line 441 "parse.y"
 {
                        initializer = yyvsp[0].id;
                        initializer_line = ccode_line;
                                ;
     break;}
 case 32:
-#line 447 "parse.y"
+#line 445 "parse.y"
 {
                        initializer = (yyvsp[0].cbuf)->str;
                        initializer_line = ccode_line;
@@ -1435,42 +1433,42 @@ case 32:
                                ;
     break;}
 case 33:
-#line 455 "parse.y"
+#line 453 "parse.y"
 { ; ;
     break;}
 case 34:
-#line 456 "parse.y"
+#line 454 "parse.y"
 { ; ;
     break;}
 case 35:
-#line 457 "parse.y"
+#line 455 "parse.y"
 { destructor = NULL; ;
     break;}
 case 36:
-#line 458 "parse.y"
+#line 456 "parse.y"
 { initializer = NULL; ;
     break;}
 case 37:
-#line 459 "parse.y"
+#line 457 "parse.y"
 {
                        destructor = NULL;
                        initializer = NULL;
                                        ;
     break;}
 case 38:
-#line 465 "parse.y"
+#line 463 "parse.y"
 {
                        push_variable(yyvsp[-2].id, the_scope,yyvsp[-4].line, NULL);
                                                ;
     break;}
 case 39:
-#line 468 "parse.y"
+#line 466 "parse.y"
 {
                        push_variable(yyvsp[-3].id, the_scope, yyvsp[-5].line, yyvsp[-2].id);
                                                ;
     break;}
 case 40:
-#line 472 "parse.y"
+#line 470 "parse.y"
 {
                        if(strcmp(yyvsp[-6].id,"get")==0 &&
                           strcmp(yyvsp[-3].id,"set")==0) {
@@ -1509,7 +1507,7 @@ case 40:
                                                ;
     break;}
 case 41:
-#line 508 "parse.y"
+#line 506 "parse.y"
 {
                        if(strcmp(yyvsp[-3].id, "get") == 0) {
                                Node *node;
@@ -1541,7 +1539,7 @@ case 41:
                                                ;
     break;}
 case 42:
-#line 537 "parse.y"
+#line 535 "parse.y"
 {
                        Node *node;
                        char *get, *set = NULL;
@@ -1568,9 +1566,8 @@ case 42:
                        else if(var->scope == CLASS_SCOPE) {
                                root = "SELF_GET_CLASS(self)";
                                if(no_self_alias)
-                                       print_error(FALSE,
-                                                   _("Self aliases needed when autolinking to a classwide member"),
-                                                   yyvsp[-4].line);
+                                       error_print(GOB_ERROR, yyvsp[-4].line,
+                                                   _("Self aliases needed when autolinking to a classwide member"));
                        } else
                                root = "self";
 
@@ -1617,7 +1614,7 @@ case 42:
                                                ;
     break;}
 case 43:
-#line 612 "parse.y"
+#line 609 "parse.y"
 {
                        if(strcmp(yyvsp[-2].id,"type")!=0) {
                                g_free(yyvsp[-4].id);
@@ -1629,81 +1626,81 @@ case 43:
                                                ;
     break;}
 case 44:
-#line 621 "parse.y"
+#line 618 "parse.y"
 {
                        yyval.id = yyvsp[0].id;
                        typestack = g_list_prepend(typestack,NULL);
                                                ;
     break;}
 case 45:
-#line 627 "parse.y"
+#line 624 "parse.y"
 { yyval.list = yyvsp[-1].list; ;
     break;}
 case 46:
-#line 628 "parse.y"
+#line 625 "parse.y"
 { yyval.list = NULL; ;
     break;}
 case 47:
-#line 631 "parse.y"
+#line 628 "parse.y"
 {
                        yyval.list = g_list_append(yyvsp[0].list,yyvsp[-2].id);
                                                ;
     break;}
 case 48:
-#line 634 "parse.y"
+#line 631 "parse.y"
 {
                        yyval.list = g_list_append(NULL,yyvsp[0].id);
                                                ;
     break;}
 case 49:
-#line 640 "parse.y"
+#line 637 "parse.y"
 {
                        Node *node = new_type(yyvsp[-1].id, yyvsp[0].id, NULL);
                        typestack = g_list_prepend(typestack,node);
                                                        ;
     break;}
 case 50:
-#line 644 "parse.y"
+#line 641 "parse.y"
 {
                        Node *node = new_type(yyvsp[0].id, NULL, NULL);
                        typestack = g_list_prepend(typestack,node);
                                                        ;
     break;}
 case 51:
-#line 651 "parse.y"
+#line 648 "parse.y"
 {
                        yyval.id = yyvsp[0].id;
                                                        ;
     break;}
 case 52:
-#line 654 "parse.y"
+#line 651 "parse.y"
 {
                        yyval.id = yyvsp[0].id;
                                                        ;
     break;}
 case 53:
-#line 657 "parse.y"
+#line 654 "parse.y"
 {
                        yyval.id = g_strconcat("const ", yyvsp[0].id, NULL);
                        g_free(yyvsp[0].id);
                                                        ;
     break;}
 case 54:
-#line 661 "parse.y"
+#line 658 "parse.y"
 {
                        yyval.id = g_strconcat(yyvsp[-1].id, " const", NULL);
                        g_free(yyvsp[-1].id);
                                                        ;
     break;}
 case 55:
-#line 665 "parse.y"
+#line 662 "parse.y"
 {
                        yyval.id = g_strconcat(yyvsp[-1].id, " ", yyvsp[0].id, NULL);
                        g_free(yyvsp[0].id);
                                                        ;
     break;}
 case 56:
-#line 669 "parse.y"
+#line 666 "parse.y"
 {
                        yyval.id = g_strconcat("const ", yyvsp[-1].id, " ",
                                             yyvsp[0].id, NULL);
@@ -1711,7 +1708,7 @@ case 56:
                                                        ;
     break;}
 case 57:
-#line 674 "parse.y"
+#line 671 "parse.y"
 {
                        yyval.id = g_strconcat(yyvsp[-2].id, " ",
                                             yyvsp[-1].id, " const", NULL);
@@ -1719,14 +1716,14 @@ case 57:
                                                        ;
     break;}
 case 58:
-#line 682 "parse.y"
+#line 679 "parse.y"
 {
                        yyval.id = g_strconcat(yyvsp[-1].id, " ", yyvsp[0].id, NULL);
                        g_free(yyvsp[0].id);
                                                        ;
     break;}
 case 59:
-#line 686 "parse.y"
+#line 683 "parse.y"
 {
                        yyval.id = g_strconcat(yyvsp[-1].id, " ", yyvsp[0].id, NULL);
                        g_free(yyvsp[-1].id);
@@ -1734,109 +1731,109 @@ case 59:
                                                        ;
     break;}
 case 60:
-#line 691 "parse.y"
+#line 688 "parse.y"
 {
                        yyval.id = g_strconcat("const ", yyvsp[0].id, NULL);
                        g_free(yyvsp[0].id);
                                                        ;
     break;}
 case 61:
-#line 695 "parse.y"
+#line 692 "parse.y"
 {
                        yyval.id = yyvsp[0].id;
                                                        ;
     break;}
 case 62:
-#line 698 "parse.y"
+#line 695 "parse.y"
 {
                        yyval.id = g_strconcat(yyvsp[-1].id, " const", NULL);
                        g_free(yyvsp[-1].id);
                                                        ;
     break;}
 case 63:
-#line 702 "parse.y"
+#line 699 "parse.y"
 {
                        yyval.id = g_strdup(yyvsp[0].id);
                                                        ;
     break;}
 case 64:
-#line 705 "parse.y"
+#line 702 "parse.y"
 {
                        yyval.id = g_strconcat(yyvsp[-1].id, " const", NULL);
                                                        ;
     break;}
 case 65:
-#line 710 "parse.y"
+#line 707 "parse.y"
 { yyval.id = "void"; ;
     break;}
 case 66:
-#line 711 "parse.y"
+#line 708 "parse.y"
 { yyval.id = "char"; ;
     break;}
 case 67:
-#line 712 "parse.y"
+#line 709 "parse.y"
 { yyval.id = "short"; ;
     break;}
 case 68:
-#line 713 "parse.y"
+#line 710 "parse.y"
 { yyval.id = "int"; ;
     break;}
 case 69:
-#line 714 "parse.y"
+#line 711 "parse.y"
 { yyval.id = "long"; ;
     break;}
 case 70:
-#line 715 "parse.y"
+#line 712 "parse.y"
 { yyval.id = "float"; ;
     break;}
 case 71:
-#line 716 "parse.y"
+#line 713 "parse.y"
 { yyval.id = "double"; ;
     break;}
 case 72:
-#line 717 "parse.y"
+#line 714 "parse.y"
 { yyval.id = "signed"; ;
     break;}
 case 73:
-#line 718 "parse.y"
+#line 715 "parse.y"
 { yyval.id = "unsigned"; ;
     break;}
 case 74:
-#line 721 "parse.y"
+#line 718 "parse.y"
 { yyval.id = "struct"; ;
     break;}
 case 75:
-#line 722 "parse.y"
+#line 719 "parse.y"
 { yyval.id = "union"; ;
     break;}
 case 76:
-#line 723 "parse.y"
+#line 720 "parse.y"
 { yyval.id = "enum"; ;
     break;}
 case 77:
-#line 726 "parse.y"
+#line 723 "parse.y"
 { yyval.id = g_strdup("*"); ;
     break;}
 case 78:
-#line 727 "parse.y"
+#line 724 "parse.y"
 { yyval.id = g_strdup("* const"); ;
     break;}
 case 79:
-#line 728 "parse.y"
+#line 725 "parse.y"
 {
                                yyval.id = g_strconcat("*", yyvsp[0].id, NULL);
                                g_free(yyvsp[0].id);
                                        ;
     break;}
 case 80:
-#line 732 "parse.y"
+#line 729 "parse.y"
 {
                                yyval.id = g_strconcat("* const", yyvsp[0].id, NULL);
                                g_free(yyvsp[0].id);
                                        ;
     break;}
 case 81:
-#line 739 "parse.y"
+#line 736 "parse.y"
 {
                        if(strcmp(yyvsp[-1].id, "first")==0)
                                yyval.sigtype = SIGNAL_FIRST_METHOD;
@@ -1851,13 +1848,13 @@ case 81:
                                        ;
     break;}
 case 82:
-#line 751 "parse.y"
+#line 748 "parse.y"
 {
                        yyval.sigtype = SIGNAL_LAST_METHOD;
                                        ;
     break;}
 case 83:
-#line 757 "parse.y"
+#line 754 "parse.y"
 {
                        if(strcmp(yyvsp[-1].id,"first")==0)
                                yyval.sigtype = SIGNAL_FIRST_METHOD;
@@ -1872,7 +1869,7 @@ case 83:
                                        ;
     break;}
 case 84:
-#line 769 "parse.y"
+#line 766 "parse.y"
 {
                        if(strcmp(yyvsp[-2].id,"first")==0)
                                yyval.sigtype = SIGNAL_FIRST_METHOD;
@@ -1887,46 +1884,46 @@ case 84:
                                        ;
     break;}
 case 85:
-#line 781 "parse.y"
+#line 778 "parse.y"
 {
                        yyval.sigtype = SIGNAL_LAST_METHOD;
                                        ;
     break;}
 case 86:
-#line 784 "parse.y"
+#line 781 "parse.y"
 {
                        /* the_scope was default thus public */
                        the_scope = PUBLIC_SCOPE;
                                        ;
     break;}
 case 87:
-#line 790 "parse.y"
+#line 787 "parse.y"
 {
                        gtktypes = g_list_prepend(gtktypes, yyvsp[-3].id);
                                                ;
     break;}
 case 88:
-#line 795 "parse.y"
+#line 792 "parse.y"
 {
                        gtktypes = g_list_append(gtktypes, yyvsp[0].id);
                                                ;
     break;}
 case 89:
-#line 798 "parse.y"
+#line 795 "parse.y"
 { 
                        gtktypes = g_list_append(gtktypes, yyvsp[0].id);
                                                        ;
     break;}
 case 90:
-#line 803 "parse.y"
+#line 800 "parse.y"
 { yyval.cbuf = yyvsp[0].cbuf; ;
     break;}
 case 91:
-#line 804 "parse.y"
+#line 801 "parse.y"
 { yyval.cbuf = NULL; ;
     break;}
 case 92:
-#line 808 "parse.y"
+#line 805 "parse.y"
 {
                        if(!has_self) {
                                yyerror(_("signal without 'self' as "
@@ -1945,7 +1942,7 @@ case 92:
                                                                        ;
     break;}
 case 93:
-#line 824 "parse.y"
+#line 821 "parse.y"
 {
                        if(!has_self) {
                                yyerror(_("signal without 'self' as "
@@ -1964,7 +1961,7 @@ case 93:
                                                                        ;
     break;}
 case 94:
-#line 840 "parse.y"
+#line 837 "parse.y"
 {
                        if(!has_self) {
                                yyerror(_("virtual method without 'self' as "
@@ -1983,7 +1980,7 @@ case 94:
                                                                        ;
     break;}
 case 95:
-#line 856 "parse.y"
+#line 853 "parse.y"
 {
                        if(!has_self) {
                                yyerror(_("virtual method without 'self' as "
@@ -2002,7 +1999,7 @@ case 95:
                                                                        ;
     break;}
 case 96:
-#line 872 "parse.y"
+#line 869 "parse.y"
 {
                        if(!has_self) {
                                yyerror(_("virtual method without 'self' as "
@@ -2016,7 +2013,7 @@ case 96:
                                                                        ;
     break;}
 case 97:
-#line 883 "parse.y"
+#line 880 "parse.y"
 {
                        push_function(NO_SCOPE, OVERRIDE_METHOD, yyvsp[-8].id,
                                      yyvsp[-5].id, yyvsp[0].cbuf,
@@ -2025,7 +2022,7 @@ case 97:
                                                                        ;
     break;}
 case 98:
-#line 889 "parse.y"
+#line 886 "parse.y"
 {
                        if(the_scope == CLASS_SCOPE) {
                                yyerror(_("a method cannot be of class scope"));
@@ -2038,7 +2035,7 @@ case 98:
                                                                ;
     break;}
 case 99:
-#line 899 "parse.y"
+#line 896 "parse.y"
 {
                        if(strcmp(yyvsp[-4].id, "init")==0) {
                                push_init_arg(yyvsp[-2].id,FALSE);
@@ -2062,7 +2059,7 @@ case 99:
                                                ;
     break;}
 case 100:
-#line 922 "parse.y"
+#line 919 "parse.y"
 {
                        g_free(onerror); onerror = NULL;
                        g_free(defreturn); defreturn = NULL;
@@ -2076,7 +2073,7 @@ case 100:
                                        ;
     break;}
 case 101:
-#line 933 "parse.y"
+#line 930 "parse.y"
 {
                        g_free(onerror); onerror = NULL;
                        g_free(defreturn); defreturn = NULL;
@@ -2098,29 +2095,29 @@ case 101:
                                                ;
     break;}
 case 102:
-#line 952 "parse.y"
+#line 949 "parse.y"
 {
                        g_free(onerror); onerror = NULL;
                        g_free(defreturn); defreturn = NULL;
                                        ;
     break;}
 case 103:
-#line 958 "parse.y"
+#line 955 "parse.y"
 { yyval.id = yyvsp[0].id; ;
     break;}
 case 104:
-#line 959 "parse.y"
+#line 956 "parse.y"
 {
                        yyval.id = (yyvsp[1].cbuf)->str;
                        g_string_free(yyvsp[1].cbuf, FALSE);
                                        ;
     break;}
 case 105:
-#line 965 "parse.y"
+#line 962 "parse.y"
 { vararg = FALSE; has_self = FALSE; ;
     break;}
 case 106:
-#line 966 "parse.y"
+#line 963 "parse.y"
 {
                        vararg = FALSE;
                        has_self = TRUE;
@@ -2134,7 +2131,7 @@ case 106:
                                                ;
     break;}
 case 107:
-#line 977 "parse.y"
+#line 974 "parse.y"
 {
                        vararg = FALSE;
                        has_self = TRUE;
@@ -2148,7 +2145,7 @@ case 107:
                                                ;
     break;}
 case 108:
-#line 988 "parse.y"
+#line 985 "parse.y"
 {
                        vararg = FALSE;
                        has_self = TRUE;
@@ -2162,7 +2159,7 @@ case 108:
                                                ;
     break;}
 case 109:
-#line 999 "parse.y"
+#line 996 "parse.y"
 {
                        has_self = TRUE;
                        if(strcmp(yyvsp[-2].id,"self")==0)
@@ -2175,7 +2172,7 @@ case 109:
                                        ;
     break;}
 case 110:
-#line 1009 "parse.y"
+#line 1006 "parse.y"
 {
                        has_self = TRUE;
                        if(strcmp(yyvsp[-3].id,"self")==0)
@@ -2188,7 +2185,7 @@ case 110:
                                        ;
     break;}
 case 111:
-#line 1019 "parse.y"
+#line 1016 "parse.y"
 {
                        has_self = TRUE;
                        if(strcmp(yyvsp[-2].id,"self")==0)
@@ -2201,39 +2198,39 @@ case 111:
                                        ;
     break;}
 case 112:
-#line 1029 "parse.y"
+#line 1026 "parse.y"
 { has_self = FALSE; ;
     break;}
 case 113:
-#line 1032 "parse.y"
+#line 1029 "parse.y"
 { vararg = TRUE; ;
     break;}
 case 114:
-#line 1033 "parse.y"
+#line 1030 "parse.y"
 { vararg = FALSE; ;
     break;}
 case 115:
-#line 1036 "parse.y"
+#line 1033 "parse.y"
 { ; ;
     break;}
 case 116:
-#line 1037 "parse.y"
+#line 1034 "parse.y"
 { ; ;
     break;}
 case 117:
-#line 1040 "parse.y"
+#line 1037 "parse.y"
 {
                        push_funcarg(yyvsp[0].id,NULL);
                                                                ;
     break;}
 case 118:
-#line 1043 "parse.y"
+#line 1040 "parse.y"
 {
                        push_funcarg(yyvsp[-1].id,yyvsp[0].id);
                                                                ;
     break;}
 case 119:
-#line 1046 "parse.y"
+#line 1043 "parse.y"
 {
                        if(strcmp(yyvsp[-2].id,"check")!=0) {
                                yyerror(_("parse error"));
@@ -2244,7 +2241,7 @@ case 119:
                                                                ;
     break;}
 case 120:
-#line 1054 "parse.y"
+#line 1051 "parse.y"
 {
                        if(strcmp(yyvsp[-2].id,"check")!=0) {
                                yyerror(_("parse error"));
@@ -2255,15 +2252,15 @@ case 120:
                                                                ;
     break;}
 case 121:
-#line 1064 "parse.y"
+#line 1061 "parse.y"
 { ; ;
     break;}
 case 122:
-#line 1065 "parse.y"
+#line 1062 "parse.y"
 { ; ;
     break;}
 case 123:
-#line 1068 "parse.y"
+#line 1065 "parse.y"
 {
                        if(strcmp(yyvsp[0].id,"type")==0) {
                                Node *node = new_check(TYPE_CHECK,NULL);
@@ -2279,60 +2276,60 @@ case 123:
                                        ;
     break;}
 case 124:
-#line 1081 "parse.y"
+#line 1078 "parse.y"
 {
                        Node *node = new_check(GT_CHECK,yyvsp[0].id);
                        checks = g_list_append(checks,node);
                                        ;
     break;}
 case 125:
-#line 1085 "parse.y"
+#line 1082 "parse.y"
 {
                        Node *node = new_check(LT_CHECK,yyvsp[0].id);
                        checks = g_list_append(checks,node);
                                        ;
     break;}
 case 126:
-#line 1089 "parse.y"
+#line 1086 "parse.y"
 {
                        Node *node = new_check(GE_CHECK,yyvsp[0].id);
                        checks = g_list_append(checks,node);
                                        ;
     break;}
 case 127:
-#line 1093 "parse.y"
+#line 1090 "parse.y"
 {
                        Node *node = new_check(LE_CHECK,yyvsp[0].id);
                        checks = g_list_append(checks,node);
                                        ;
     break;}
 case 128:
-#line 1097 "parse.y"
+#line 1094 "parse.y"
 {
                        Node *node = new_check(EQ_CHECK,yyvsp[0].id);
                        checks = g_list_append(checks,node);
                                        ;
     break;}
 case 129:
-#line 1101 "parse.y"
+#line 1098 "parse.y"
 {
                        Node *node = new_check(NE_CHECK,yyvsp[0].id);
                        checks = g_list_append(checks,node);
                                        ;
     break;}
 case 130:
-#line 1107 "parse.y"
+#line 1104 "parse.y"
 { yyval.id = yyvsp[0].id; ;
     break;}
 case 131:
-#line 1108 "parse.y"
+#line 1105 "parse.y"
 {
                        yyval.id = g_strconcat("-",yyvsp[0].id,NULL);
                        g_free(yyvsp[0].id);
                                        ;
     break;}
 case 132:
-#line 1112 "parse.y"
+#line 1109 "parse.y"
 { yyval.id = yyvsp[0].id; ;
     break;}
 }
@@ -2557,5 +2554,5 @@ yyerrhandle:
     }
   return 1;
 }
-#line 1115 "parse.y"
+#line 1112 "parse.y"