cutego/internal/binding/parser/enum.go

43 lines
863 B
Go
Raw Normal View History

2015-10-24 18:18:24 +03:00
package parser
import "strings"
type Enum struct {
Name string `xml:"name,attr"`
Fullname string `xml:"fullname,attr"`
Status string `xml:"status,attr"`
Access string `xml:"access,attr"`
Typedef string `xml:"typedef,attr"`
Values []*Value `xml:"value"`
2015-11-09 20:23:42 +03:00
NoConst bool
2015-10-24 18:18:24 +03:00
}
type Value struct {
Name string `xml:"name,attr"`
Value string `xml:"value,attr"`
}
2016-12-11 23:03:06 +03:00
func (e *Enum) Class() (*Class, bool) {
2017-01-02 19:01:18 +03:00
var class, exists = State.ClassMap[e.ClassName()]
2016-12-11 23:03:06 +03:00
return class, exists
}
2015-10-24 18:18:24 +03:00
2016-12-11 23:03:06 +03:00
func (e *Enum) ClassName() string {
return strings.Split(e.Fullname, "::")[0]
2015-10-24 18:18:24 +03:00
}
2016-12-11 23:03:06 +03:00
func (e *Enum) register(m string) {
if c, exists := e.Class(); !exists {
2017-01-02 19:01:18 +03:00
State.ClassMap[e.ClassName()] = &Class{
2016-12-11 23:03:06 +03:00
Name: e.ClassName(),
Status: "commendable",
Module: m,
Access: "public",
Enums: []*Enum{e},
}
2016-12-11 23:03:06 +03:00
} else {
c.Enums = append(c.Enums, e)
}
}