summaryrefslogtreecommitdiffstats
path: root/src/vpp-api/vapi/vapi_json_parser.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/vpp-api/vapi/vapi_json_parser.py')
-rw-r--r--src/vpp-api/vapi/vapi_json_parser.py30
1 files changed, 17 insertions, 13 deletions
diff --git a/src/vpp-api/vapi/vapi_json_parser.py b/src/vpp-api/vapi/vapi_json_parser.py
index d7669365ce8..98143e26756 100644
--- a/src/vpp-api/vapi/vapi_json_parser.py
+++ b/src/vpp-api/vapi/vapi_json_parser.py
@@ -377,19 +377,6 @@ class JsonParser(object):
self.unions[union.name] = union
self.logger.debug("Parsed union: %s" % union)
self.unions_by_json[path].append(union)
- for name, body in j['aliases'].iteritems():
- if name in self.aliases:
- progress = progress + 1
- continue
- if 'length' in body:
- array_len = body['length']
- else:
- array_len = None
- t = self.types[body['type']]
- alias = self.alias_class(name, t, array_len)
- self.aliases[name] = alias
- self.logger.debug("Parsed alias: %s" % alias)
- self.aliases_by_json[path].append(alias)
for t in j['types']:
if t[0] in self.types:
progress = progress + 1
@@ -408,6 +395,23 @@ class JsonParser(object):
self.types[type_.name] = type_
self.types_by_json[path].append(type_)
self.logger.debug("Parsed type: %s" % type_)
+ for name, body in j['aliases'].iteritems():
+ if name in self.aliases:
+ progress = progress + 1
+ continue
+ if 'length' in body:
+ array_len = body['length']
+ else:
+ array_len = None
+ try:
+ t = self.lookup_type_like_id(body['type'])
+ except ParseError as e:
+ exceptions.append(e)
+ continue
+ alias = self.alias_class(name, t, array_len)
+ self.aliases[name] = alias
+ self.logger.debug("Parsed alias: %s" % alias)
+ self.aliases_by_json[path].append(alias)
if not exceptions:
# finished parsing
break