package lib import ( "go/ast" "regexp" "strings" ) func manageComments(a *ast.CommentGroup) map[string]string { ret := make(map[string]string) if a == nil { return ret } var myExp = regexp.MustCompile(`\/?\*?@(?P.*)\s*:\s*(?P.*)\*?\/?`) var myExp2 = regexp.MustCompile(`\/?\*?@(?P.*?)\*?\/?$`) for _, v := range a.List { lines := strings.Split(v.Text, "\n") for _, l := range lines { m := myExp.FindStringSubmatch(l) if m != nil { ret[m[1]] = m[2] } else { m := myExp2.FindStringSubmatch(l) if m != nil { ret[m[1]] = "OK" } } } } return ret } func manageCommentsGroups(as []*ast.CommentGroup) map[string]string { ret := make(map[string]string) if as == nil { return ret } for _, a := range as { var myExp = regexp.MustCompile(`\/?\*?@(?P.*)\s*:\s*(?P.*)\*?\/?`) var myExp2 = regexp.MustCompile(`\/?\*?@(?P.*?)\*?\/?$`) for _, v := range a.List { lines := strings.Split(v.Text, "\n") for _, l := range lines { m := myExp.FindStringSubmatch(l) if m != nil { ret[m[1]] = m[2] } else { m := myExp2.FindStringSubmatch(l) if m != nil { ret[m[1]] = "OK" } } } } } return ret }