diff --git a/pkg/service/service.go b/pkg/service/service.go index 48b5c93..ca647d4 100644 --- a/pkg/service/service.go +++ b/pkg/service/service.go @@ -606,52 +606,3 @@ func handleReturnStmt(stmt *ast.ReturnStmt) string { code += ";" return code } - -func handleValueSpec(spec ast.Spec) string { - s := spec.(*ast.ValueSpec) - code := "" - code += handleValueSpecType(s.Type) - code += " " - code += handleValueSpecNames(s.Names) - if s.Values != nil { - code += " = " - code += handleValueSpecValues(s.Values) - } - return code -} - -func handleValueSpecNames(names []*ast.Ident) string { - code := "" - for _, name := range names { - code += handleIdent(name) - } - return code -} - -func handleValueSpecType(expr ast.Expr) string { - code := "" - switch t := expr.(type) { - case *ast.SelectorExpr: - code += handleSelectorExpr(t) - case *ast.Ident: - code += handleIdent(t) - } - return code -} - -func handleValueSpecValues(values []ast.Expr) string { - code := "" - for _, value := range values { - switch v := value.(type) { - case *ast.BasicLit: - code += handleBasicLit(v) - case *ast.BinaryExpr: - code += handleBinaryExpr(v) - case *ast.SelectorExpr: - code += handleSelectorExpr(value) - case *ast.CallExpr: - code += handleCallExpr(v) - } - } - return code -} diff --git a/pkg/service/value.go b/pkg/service/value.go new file mode 100644 index 0000000..33fc618 --- /dev/null +++ b/pkg/service/value.go @@ -0,0 +1,54 @@ +package service + +import ( + "go/ast" +) + +func handleValueSpec(spec ast.Spec) string { + s := spec.(*ast.ValueSpec) + code := "" + code += handleValueSpecType(s.Type) + code += " " + code += handleValueSpecNames(s.Names) + if s.Values != nil { + code += " = " + code += handleValueSpecValues(s.Values) + } + return code +} + +func handleValueSpecNames(names []*ast.Ident) string { + code := "" + for _, name := range names { + code += handleIdent(name) + } + return code +} + +func handleValueSpecType(expr ast.Expr) string { + code := "" + switch t := expr.(type) { + case *ast.SelectorExpr: + code += handleSelectorExpr(t) + case *ast.Ident: + code += handleIdent(t) + } + return code +} + +func handleValueSpecValues(values []ast.Expr) string { + code := "" + for _, value := range values { + switch v := value.(type) { + case *ast.BasicLit: + code += handleBasicLit(v) + case *ast.BinaryExpr: + code += handleBinaryExpr(v) + case *ast.SelectorExpr: + code += handleSelectorExpr(value) + case *ast.CallExpr: + code += handleCallExpr(v) + } + } + return code +}