aboutsummaryrefslogtreecommitdiffstats
path: root/binapigen/vppapi/parse_json.go
diff options
context:
space:
mode:
Diffstat (limited to 'binapigen/vppapi/parse_json.go')
-rw-r--r--binapigen/vppapi/parse_json.go15
1 files changed, 15 insertions, 0 deletions
diff --git a/binapigen/vppapi/parse_json.go b/binapigen/vppapi/parse_json.go
index d14865c..a2ca257 100644
--- a/binapigen/vppapi/parse_json.go
+++ b/binapigen/vppapi/parse_json.go
@@ -41,6 +41,7 @@ const (
fileMessages = "messages"
fileUnions = "unions"
fileEnums = "enums"
+ fileEnumflags = "enumflags"
fileAliases = "aliases"
fileServices = "services"
fileImports = "imports"
@@ -129,6 +130,20 @@ func parseJSON(data []byte) (module *File, err error) {
module.EnumTypes = append(module.EnumTypes, *enum)
}
+ // parse enumflags types
+ enumflagsNode := jsonRoot.Map(fileEnumflags)
+ module.EnumflagTypes = make([]EnumType, 0)
+ for i := 0; i < enumflagsNode.Len(); i++ {
+ enumflag, err := parseEnum(enumflagsNode.At(i))
+ if err != nil {
+ return nil, err
+ }
+ if exists(enumflag.Name) {
+ continue
+ }
+ module.EnumflagTypes = append(module.EnumflagTypes, *enumflag)
+ }
+
// parse alias types
aliasesNode := jsonRoot.Map(fileAliases)
if aliasesNode.GetType() == jsongo.TypeMap {