package pkg import "regexp" type PolicyList struct { Name string `json:"name"` Rules []*Rule `json:"rules"` } func ParsePolicyList(v []string) *PolicyList { p := new(PolicyList) b := braceParse(v[2]) for _, v1 := range b { var r1 Rule r1.parse(v1) p.Rules = append(p.Rules, &r1) } return p } func ParsePolicyLists(s string) ([]*PolicyList, error) { var r []*PolicyList for _, v := range regexp.MustCompile(`security\s+firewall\s+policy\s+(\S+)\s+{\s+rules\s+{\s+(\S(.|\n)*?)(\n}|$)`).FindAllStringSubmatch(s, -1) { l := ParsePolicyList(v) l.Name = v[1] r = append(r, l) } return r, nil }