X-Git-Url: http://git.draconx.ca/gitweb/gob-dx.git/blobdiff_plain/4f7cfa972623842e64e3a8468696f1f6f40fd202..509cf0693fc440c71bdd3e71ea8947a6b4eb0bcf:/src/parse.c diff --git a/src/parse.c b/src/parse.c index 9b63335..a3b796c 100644 --- a/src/parse.c +++ b/src/parse.c @@ -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"