]> git.draconx.ca Git - gob-dx.git/blobdiff - src/parse.c
Release 0.93.5
[gob-dx.git] / src / parse.c
index 9b63335891798ffda0a061ce246777ca05c99a85..a3b796c8aab6d1db39d922a0e2fadf7544226b01 100644 (file)
@@ -189,7 +189,7 @@ push_function(int scope, int method, char *oid, char *id,
 
        node = new_method(scope, method, type, oid, gtktypes, flags,
                          id, funcargs, onerror, defreturn, c_cbuf, line_no,
-                         ccode_line, vararg);
+                         ccode_line, vararg, method_unique_id++);
 
        if(cbuf)
                g_string_free(cbuf,
@@ -442,9 +442,9 @@ static const short yyrline[] = { 0,
    662,   667,   670,   673,   676,   679,   684,   687,   690,   695,
    696,   700,   712,   718,   730,   742,   745,   751,   756,   759,
    764,   765,   769,   785,   801,   817,   833,   844,   850,   860,
-   881,   892,   911,   917,   918,   924,   925,   936,   946,   949,
-   950,   953,   954,   957,   960,   963,   971,   981,   982,   985,
-   998,  1002,  1006,  1010,  1014,  1018,  1024,  1025,  1029
+   883,   894,   913,   919,   920,   926,   927,   938,   948,   951,
+   952,   955,   956,   959,   962,   965,   973,   983,   984,   987,
+  1000,  1004,  1008,  1012,  1016,  1020,  1026,  1027,  1031
 };
 #endif
 
@@ -1964,14 +1964,16 @@ case 90:
                        } else {
                                g_free(yyvsp[-4].id);
                                g_free(yyvsp[-2].id);
-                               g_string_free(yyvsp[-2].cbuf,TRUE);
-                               yyerror(_("parse error"));
+                               g_string_free(yyvsp[0].cbuf,TRUE);
+                               yyerror(_("parse error "
+                                         "(untyped blocks must be init or "
+                                         "class_init)"));
                                YYERROR;
                        }
                                                ;
     break;}
 case 91:
-#line 881 "parse.y"
+#line 883 "parse.y"
 {
                        g_free(onerror); onerror = NULL;
                        g_free(defreturn); defreturn = NULL;
@@ -1985,7 +1987,7 @@ case 91:
                                        ;
     break;}
 case 92:
-#line 892 "parse.y"
+#line 894 "parse.y"
 {
                        g_free(onerror); onerror = NULL;
                        g_free(defreturn); defreturn = NULL;
@@ -2007,29 +2009,29 @@ case 92:
                                                ;
     break;}
 case 93:
-#line 911 "parse.y"
+#line 913 "parse.y"
 {
                        g_free(onerror); onerror = NULL;
                        g_free(defreturn); defreturn = NULL;
                                        ;
     break;}
 case 94:
-#line 917 "parse.y"
+#line 919 "parse.y"
 { yyval.id = yyvsp[0].id; ;
     break;}
 case 95:
-#line 918 "parse.y"
+#line 920 "parse.y"
 {
                        yyval.id = (yyvsp[1].cbuf)->str;
                        g_string_free(yyvsp[1].cbuf, FALSE);
                                        ;
     break;}
 case 96:
-#line 924 "parse.y"
+#line 926 "parse.y"
 { vararg = FALSE; has_self = FALSE; ;
     break;}
 case 97:
-#line 925 "parse.y"
+#line 927 "parse.y"
 {
                        vararg = FALSE;
                        has_self = TRUE;
@@ -2043,7 +2045,7 @@ case 97:
                                                ;
     break;}
 case 98:
-#line 936 "parse.y"
+#line 938 "parse.y"
 {
                        has_self = TRUE;
                        if(strcmp(yyvsp[-2].id,"self")==0)
@@ -2056,39 +2058,39 @@ case 98:
                                        ;
     break;}
 case 99:
-#line 946 "parse.y"
+#line 948 "parse.y"
 { has_self = FALSE; ;
     break;}
 case 100:
-#line 949 "parse.y"
+#line 951 "parse.y"
 { vararg = TRUE; ;
     break;}
 case 101:
-#line 950 "parse.y"
+#line 952 "parse.y"
 { vararg = FALSE; ;
     break;}
 case 102:
-#line 953 "parse.y"
+#line 955 "parse.y"
 { ; ;
     break;}
 case 103:
-#line 954 "parse.y"
+#line 956 "parse.y"
 { ; ;
     break;}
 case 104:
-#line 957 "parse.y"
+#line 959 "parse.y"
 {
                        push_funcarg(yyvsp[0].id,NULL);
                                                                ;
     break;}
 case 105:
-#line 960 "parse.y"
+#line 962 "parse.y"
 {
                        push_funcarg(yyvsp[-1].id,yyvsp[0].id);
                                                                ;
     break;}
 case 106:
-#line 963 "parse.y"
+#line 965 "parse.y"
 {
                        if(strcmp(yyvsp[-2].id,"check")!=0) {
                                yyerror(_("parse error"));
@@ -2099,7 +2101,7 @@ case 106:
                                                                ;
     break;}
 case 107:
-#line 971 "parse.y"
+#line 973 "parse.y"
 {
                        if(strcmp(yyvsp[-2].id,"check")!=0) {
                                yyerror(_("parse error"));
@@ -2110,15 +2112,15 @@ case 107:
                                                                ;
     break;}
 case 108:
-#line 981 "parse.y"
+#line 983 "parse.y"
 { ; ;
     break;}
 case 109:
-#line 982 "parse.y"
+#line 984 "parse.y"
 { ; ;
     break;}
 case 110:
-#line 985 "parse.y"
+#line 987 "parse.y"
 {
                        if(strcmp(yyvsp[0].id,"type")==0) {
                                Node *node = new_check(TYPE_CHECK,NULL);
@@ -2134,60 +2136,60 @@ case 110:
                                        ;
     break;}
 case 111:
-#line 998 "parse.y"
+#line 1000 "parse.y"
 {
                        Node *node = new_check(GT_CHECK,yyvsp[0].id);
                        checks = g_list_append(checks,node);
                                        ;
     break;}
 case 112:
-#line 1002 "parse.y"
+#line 1004 "parse.y"
 {
                        Node *node = new_check(LT_CHECK,yyvsp[0].id);
                        checks = g_list_append(checks,node);
                                        ;
     break;}
 case 113:
-#line 1006 "parse.y"
+#line 1008 "parse.y"
 {
                        Node *node = new_check(GE_CHECK,yyvsp[0].id);
                        checks = g_list_append(checks,node);
                                        ;
     break;}
 case 114:
-#line 1010 "parse.y"
+#line 1012 "parse.y"
 {
                        Node *node = new_check(LE_CHECK,yyvsp[0].id);
                        checks = g_list_append(checks,node);
                                        ;
     break;}
 case 115:
-#line 1014 "parse.y"
+#line 1016 "parse.y"
 {
                        Node *node = new_check(EQ_CHECK,yyvsp[0].id);
                        checks = g_list_append(checks,node);
                                        ;
     break;}
 case 116:
-#line 1018 "parse.y"
+#line 1020 "parse.y"
 {
                        Node *node = new_check(NE_CHECK,yyvsp[0].id);
                        checks = g_list_append(checks,node);
                                        ;
     break;}
 case 117:
-#line 1024 "parse.y"
+#line 1026 "parse.y"
 { yyval.id = yyvsp[0].id; ;
     break;}
 case 118:
-#line 1025 "parse.y"
+#line 1027 "parse.y"
 {
                        yyval.id = g_strconcat("-",yyvsp[0].id,NULL);
                        g_free(yyvsp[0].id);
                                        ;
     break;}
 case 119:
-#line 1029 "parse.y"
+#line 1031 "parse.y"
 { yyval.id = yyvsp[0].id; ;
     break;}
 }
@@ -2412,5 +2414,5 @@ yyerrhandle:
     }
   return 1;
 }
-#line 1032 "parse.y"
+#line 1034 "parse.y"