Index: mojo/public/bindings/parse/mojo_translate.py |
diff --git a/mojo/public/bindings/parse/mojo_translate.py b/mojo/public/bindings/parse/mojo_translate.py |
index 3b802f17c8eca57d4c859a1a57b64c3b78527c9b..469dec9fcc2b02701885beda645b6bc722829e61 100755 |
--- a/mojo/public/bindings/parse/mojo_translate.py |
+++ b/mojo/public/bindings/parse/mojo_translate.py |
@@ -75,6 +75,7 @@ def MapMethods(methods): |
'ordinal': MapOrdinal(method[3])}) |
return out |
+ |
def MapEnumFields(fields): |
out = [] |
for field in fields: |
@@ -83,24 +84,36 @@ def MapEnumFields(fields): |
'value': field[2]}) |
return out |
+ |
+def MapEnums(enums): |
+ out = [] |
+ for enum in enums: |
+ if enum[0] == 'ENUM': |
+ out.append({'name': enum[1], |
+ 'fields': MapEnumFields(enum[2])}) |
+ return out |
+ |
+ |
class MojomBuilder(): |
def __init__(self): |
self.mojom = {} |
- def AddStruct(self, name, attributes, fields): |
+ def AddStruct(self, name, attributes, body): |
struct = {} |
struct['name'] = name |
# TODO(darin): Add support for |attributes| |
#struct['attributes'] = MapAttributes(attributes) |
- struct['fields'] = MapFields(fields) |
+ struct['fields'] = MapFields(body) |
+ struct['enums'] = MapEnums(body) |
self.mojom['structs'].append(struct) |
- def AddInterface(self, name, attributes, methods): |
+ def AddInterface(self, name, attributes, body): |
interface = {} |
interface['name'] = name |
interface['peer'] = GetAttribute(attributes, 'Peer') |
- interface['methods'] = MapMethods(methods) |
+ interface['methods'] = MapMethods(body) |
+ interface['enums'] = MapEnums(body) |
self.mojom['interfaces'].append(interface) |
def AddEnum(self, name, fields): |
@@ -119,9 +132,9 @@ class MojomBuilder(): |
self.mojom['enums'] = [] |
for item in contents: |
if item[0] == 'STRUCT': |
- self.AddStruct(name=item[1], attributes=item[2], fields=item[3]) |
+ self.AddStruct(name=item[1], attributes=item[2], body=item[3]) |
elif item[0] == 'INTERFACE': |
- self.AddInterface(name=item[1], attributes=item[2], methods=item[3]) |
+ self.AddInterface(name=item[1], attributes=item[2], body=item[3]) |
elif item[0] == 'ENUM': |
self.AddEnum(name=item[1], fields=item[2]) |