+ g_string_free($<cbuf>5,TRUE);
+ yyerror(_("parse error "
+ "(untyped blocks must be init or "
+ "class_init)"));
+ YYERROR;
+ }
+ }
+ ;
+
+returnvals: TOKEN retcode {
+ g_free(onerror); onerror = NULL;
+ g_free(defreturn); defreturn = NULL;
+ if(!set_return_value($<id>1, $<id>2)) {
+ g_free($<id>1);
+ g_free($<id>2);
+ yyerror(_("parse error"));
+ YYERROR;
+ }
+ g_free($<id>1);
+ }
+ | TOKEN retcode TOKEN retcode {
+ g_free(onerror); onerror = NULL;
+ g_free(defreturn); defreturn = NULL;
+ if(!set_return_value($<id>1, $<id>2)) {
+ g_free($<id>1); g_free($<id>2);
+ g_free($<id>3); g_free($<id>4);
+ yyerror(_("parse error"));
+ YYERROR;
+ }
+ if(!set_return_value($<id>3, $<id>4)) {
+ onerror = defreturn = NULL;
+ g_free($<id>1); g_free($<id>2);
+ g_free($<id>3); g_free($<id>4);