func cppFunction(f *parser.Function) string { if isGeneric(f) { var tmp string for _, m := range jniGenericModes(f) { f.TemplateMode = m tmp += fmt.Sprintf("%v{\n\t%v\n}\n", cppFunctionHeader(f), cppFunctionBody(f)) } f.TemplateMode = "" return tmp } return fmt.Sprintf("%v{\n\t%v\n}", cppFunctionHeader(f), cppFunctionBody(f)) }
func goFunction(f *parser.Function) string { if f.Meta == "signal" || strings.Contains(f.Virtual, "impure") && f.Output == "void" { var tmp string for _, signalMode := range []string{"Connect", "Disconnect", "callback"} { f.SignalMode = signalMode if signalMode == "callback" { tmp += fmt.Sprintf("//export callback%v%v", f.Class(), strings.Replace(strings.Title(f.Name), "~", "Destroy", -1)) if f.Overload { tmp += f.OverloadNumber } tmp += "\n" } tmp += fmt.Sprintf("%v{\n%v\n}\n\n", goFunctionHeader(f), goFunctionBody(f)) } f.SignalMode = "" var isPrivate bool if f.Meta == "signal" { isPrivate = converter.IsPrivateSignal(f) } var tmpMeta = f.Meta f.Meta = "plain" if !isPrivate { tmp += fmt.Sprintf("%v{\n%v\n}\n\n", goFunctionHeader(f), goFunctionBody(f)) if tmpMeta != "signal" { var tmpTmp = strings.Replace(fmt.Sprintf("%v{\n%v\n}\n\n", goFunctionHeader(f), goFunctionBody(f)), "_"+strings.Title(f.Name)+"(", "_"+strings.Title(f.Name)+"Default(", -1) tmp += strings.Replace(tmpTmp, ")"+strings.Title(f.Name)+"(", ")"+strings.Title(f.Name)+"Default(", -1) } } f.Meta = tmpMeta return tmp } if isGeneric(f) { var tmp string for _, m := range jniGenericModes(f) { f.TemplateMode = m tmp += fmt.Sprintf("%v{\n%v\n}\n", goFunctionHeader(f), goFunctionBody(f)) } f.TemplateMode = "" return tmp } return fmt.Sprintf("%v{\n%v\n}", goFunctionHeader(f), goFunctionBody(f)) }