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
|
|
|
}
|
2015-12-16 04:02:59 +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},
|
2015-12-16 04:02:59 +03:00
|
|
|
}
|
2016-12-11 23:03:06 +03:00
|
|
|
} else {
|
|
|
|
c.Enums = append(c.Enums, e)
|
2015-12-16 04:02:59 +03:00
|
|
|
}
|
|
|
|
}
|