summaryrefslogtreecommitdiff
path: root/deps/v8/build/fuchsia/fidlgen_js/fidl.py
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/build/fuchsia/fidlgen_js/fidl.py')
-rw-r--r--deps/v8/build/fuchsia/fidlgen_js/fidl.py549
1 files changed, 549 insertions, 0 deletions
diff --git a/deps/v8/build/fuchsia/fidlgen_js/fidl.py b/deps/v8/build/fuchsia/fidlgen_js/fidl.py
new file mode 100644
index 0000000000..6f8b99f441
--- /dev/null
+++ b/deps/v8/build/fuchsia/fidlgen_js/fidl.py
@@ -0,0 +1,549 @@
+# Copyright 2018 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# This was generated (and can be regenerated) by pasting
+# zircon/system/host/fidl/schema.json from Fuchsia into
+# https://app.quicktype.io and choosing Python 2.7 output. The only manual
+# change is to modify the import path for Enum.
+
+from third_party.enum34 import Enum
+
+
+def from_str(x):
+ assert isinstance(x, (str, unicode))
+ return x
+
+
+def from_int(x):
+ assert isinstance(x, int) and not isinstance(x, bool)
+ return x
+
+
+def from_none(x):
+ assert x is None
+ return x
+
+
+def from_union(fs, x):
+ for f in fs:
+ try:
+ return f(x)
+ except:
+ pass
+ assert False
+
+
+def from_bool(x):
+ assert isinstance(x, bool)
+ return x
+
+
+def to_class(c, x):
+ assert isinstance(x, c)
+ return x.to_dict()
+
+
+def to_enum(c, x):
+ assert isinstance(x, c)
+ return x.value
+
+
+def from_list(f, x):
+ assert isinstance(x, list)
+ return [f(y) for y in x]
+
+
+def from_dict(f, x):
+ assert isinstance(x, dict)
+ return { k: f(v) for (k, v) in x.items() }
+
+
+class Attribute:
+ def __init__(self, name, value):
+ self.name = name
+ self.value = value
+
+ @staticmethod
+ def from_dict(obj):
+ assert isinstance(obj, dict)
+ name = from_str(obj.get(u"name"))
+ value = from_str(obj.get(u"value"))
+ return Attribute(name, value)
+
+ def to_dict(self):
+ result = {}
+ result[u"name"] = from_str(self.name)
+ result[u"value"] = from_str(self.value)
+ return result
+
+
+class TypeKind(Enum):
+ ARRAY = u"array"
+ HANDLE = u"handle"
+ IDENTIFIER = u"identifier"
+ PRIMITIVE = u"primitive"
+ REQUEST = u"request"
+ STRING = u"string"
+ VECTOR = u"vector"
+
+
+class TypeClass:
+ def __init__(self, element_count, element_type, kind, maybe_element_count, nullable, subtype, identifier):
+ self.element_count = element_count
+ self.element_type = element_type
+ self.kind = kind
+ self.maybe_element_count = maybe_element_count
+ self.nullable = nullable
+ self.subtype = subtype
+ self.identifier = identifier
+
+ @staticmethod
+ def from_dict(obj):
+ assert isinstance(obj, dict)
+ element_count = from_union([from_int, from_none], obj.get(u"element_count"))
+ element_type = from_union([TypeClass.from_dict, from_none], obj.get(u"element_type"))
+ kind = TypeKind(obj.get(u"kind"))
+ maybe_element_count = from_union([from_int, from_none], obj.get(u"maybe_element_count"))
+ nullable = from_union([from_bool, from_none], obj.get(u"nullable"))
+ subtype = from_union([from_str, from_none], obj.get(u"subtype"))
+ identifier = from_union([from_str, from_none], obj.get(u"identifier"))
+ return TypeClass(element_count, element_type, kind, maybe_element_count, nullable, subtype, identifier)
+
+ def to_dict(self):
+ result = {}
+ result[u"element_count"] = from_union([from_int, from_none], self.element_count)
+ result[u"element_type"] = from_union([lambda x: to_class(TypeClass, x), from_none], self.element_type)
+ result[u"kind"] = to_enum(TypeKind, self.kind)
+ result[u"maybe_element_count"] = from_union([from_int, from_none], self.maybe_element_count)
+ result[u"nullable"] = from_union([from_bool, from_none], self.nullable)
+ result[u"subtype"] = from_union([from_str, from_none], self.subtype)
+ result[u"identifier"] = from_union([from_str, from_none], self.identifier)
+ return result
+
+
+class ConstantKind(Enum):
+ IDENTIFIER = u"identifier"
+ LITERAL = u"literal"
+
+
+class LiteralKind(Enum):
+ DEFAULT = u"default"
+ FALSE = u"false"
+ NUMERIC = u"numeric"
+ STRING = u"string"
+ TRUE = u"true"
+
+
+class Literal:
+ def __init__(self, kind, value):
+ self.kind = kind
+ self.value = value
+
+ @staticmethod
+ def from_dict(obj):
+ assert isinstance(obj, dict)
+ kind = LiteralKind(obj.get(u"kind"))
+ value = from_union([from_str, from_none], obj.get(u"value"))
+ return Literal(kind, value)
+
+ def to_dict(self):
+ result = {}
+ result[u"kind"] = to_enum(LiteralKind, self.kind)
+ result[u"value"] = from_union([from_str, from_none], self.value)
+ return result
+
+
+class Constant:
+ def __init__(self, identifier, kind, literal):
+ self.identifier = identifier
+ self.kind = kind
+ self.literal = literal
+
+ @staticmethod
+ def from_dict(obj):
+ assert isinstance(obj, dict)
+ identifier = from_union([from_str, from_none], obj.get(u"identifier"))
+ kind = ConstantKind(obj.get(u"kind"))
+ literal = from_union([Literal.from_dict, from_none], obj.get(u"literal"))
+ return Constant(identifier, kind, literal)
+
+ def to_dict(self):
+ result = {}
+ result[u"identifier"] = from_union([from_str, from_none], self.identifier)
+ result[u"kind"] = to_enum(ConstantKind, self.kind)
+ result[u"literal"] = from_union([lambda x: to_class(Literal, x), from_none], self.literal)
+ return result
+
+
+class Const:
+ def __init__(self, maybe_attributes, name, type, value):
+ self.maybe_attributes = maybe_attributes
+ self.name = name
+ self.type = type
+ self.value = value
+
+ @staticmethod
+ def from_dict(obj):
+ assert isinstance(obj, dict)
+ maybe_attributes = from_union([lambda x: from_list(Attribute.from_dict, x), from_none], obj.get(u"maybe_attributes"))
+ name = from_str(obj.get(u"name"))
+ type = TypeClass.from_dict(obj.get(u"type"))
+ value = Constant.from_dict(obj.get(u"value"))
+ return Const(maybe_attributes, name, type, value)
+
+ def to_dict(self):
+ result = {}
+ result[u"maybe_attributes"] = from_union([lambda x: from_list(lambda x: to_class(Attribute, x), x), from_none], self.maybe_attributes)
+ result[u"name"] = from_str(self.name)
+ result[u"type"] = to_class(TypeClass, self.type)
+ result[u"value"] = to_class(Constant, self.value)
+ return result
+
+
+class DeclarationsMap(Enum):
+ CONST = u"const"
+ ENUM = u"enum"
+ INTERFACE = u"interface"
+ STRUCT = u"struct"
+ UNION = u"union"
+
+
+class EnumMember:
+ def __init__(self, name, value):
+ self.name = name
+ self.value = value
+
+ @staticmethod
+ def from_dict(obj):
+ assert isinstance(obj, dict)
+ name = from_str(obj.get(u"name"))
+ value = Constant.from_dict(obj.get(u"value"))
+ return EnumMember(name, value)
+
+ def to_dict(self):
+ result = {}
+ result[u"name"] = from_str(self.name)
+ result[u"value"] = to_class(Constant, self.value)
+ return result
+
+
+class IntegerType(Enum):
+ INT16 = u"int16"
+ INT32 = u"int32"
+ INT64 = u"int64"
+ INT8 = u"int8"
+ UINT16 = u"uint16"
+ UINT32 = u"uint32"
+ UINT64 = u"uint64"
+ UINT8 = u"uint8"
+
+
+class EnumDeclarationElement:
+ def __init__(self, maybe_attributes, members, name, type):
+ self.maybe_attributes = maybe_attributes
+ self.members = members
+ self.name = name
+ self.type = type
+
+ @staticmethod
+ def from_dict(obj):
+ assert isinstance(obj, dict)
+ maybe_attributes = from_union([lambda x: from_list(Attribute.from_dict, x), from_none], obj.get(u"maybe_attributes"))
+ members = from_list(EnumMember.from_dict, obj.get(u"members"))
+ name = from_str(obj.get(u"name"))
+ type = IntegerType(obj.get(u"type"))
+ return EnumDeclarationElement(maybe_attributes, members, name, type)
+
+ def to_dict(self):
+ result = {}
+ result[u"maybe_attributes"] = from_union([lambda x: from_list(lambda x: to_class(Attribute, x), x), from_none], self.maybe_attributes)
+ result[u"members"] = from_list(lambda x: to_class(EnumMember, x), self.members)
+ result[u"name"] = from_str(self.name)
+ result[u"type"] = to_enum(IntegerType, self.type)
+ return result
+
+
+class InterfaceMethodParameter:
+ def __init__(self, alignment, name, offset, size, type):
+ self.alignment = alignment
+ self.name = name
+ self.offset = offset
+ self.size = size
+ self.type = type
+
+ @staticmethod
+ def from_dict(obj):
+ assert isinstance(obj, dict)
+ alignment = from_int(obj.get(u"alignment"))
+ name = from_str(obj.get(u"name"))
+ offset = from_int(obj.get(u"offset"))
+ size = from_int(obj.get(u"size"))
+ type = TypeClass.from_dict(obj.get(u"type"))
+ return InterfaceMethodParameter(alignment, name, offset, size, type)
+
+ def to_dict(self):
+ result = {}
+ result[u"alignment"] = from_int(self.alignment)
+ result[u"name"] = from_str(self.name)
+ result[u"offset"] = from_int(self.offset)
+ result[u"size"] = from_int(self.size)
+ result[u"type"] = to_class(TypeClass, self.type)
+ return result
+
+
+class InterfaceMethod:
+ def __init__(self, has_request, has_response, maybe_attributes, maybe_request, maybe_request_alignment, maybe_request_size, maybe_response, maybe_response_alignment, maybe_response_size, name, ordinal):
+ self.has_request = has_request
+ self.has_response = has_response
+ self.maybe_attributes = maybe_attributes
+ self.maybe_request = maybe_request
+ self.maybe_request_alignment = maybe_request_alignment
+ self.maybe_request_size = maybe_request_size
+ self.maybe_response = maybe_response
+ self.maybe_response_alignment = maybe_response_alignment
+ self.maybe_response_size = maybe_response_size
+ self.name = name
+ self.ordinal = ordinal
+
+ @staticmethod
+ def from_dict(obj):
+ assert isinstance(obj, dict)
+ has_request = from_bool(obj.get(u"has_request"))
+ has_response = from_bool(obj.get(u"has_response"))
+ maybe_attributes = from_union([lambda x: from_list(Attribute.from_dict, x), from_none], obj.get(u"maybe_attributes"))
+ maybe_request = from_union([lambda x: from_list(InterfaceMethodParameter.from_dict, x), from_none], obj.get(u"maybe_request"))
+ maybe_request_alignment = from_union([from_int, from_none], obj.get(u"maybe_request_alignment"))
+ maybe_request_size = from_union([from_int, from_none], obj.get(u"maybe_request_size"))
+ maybe_response = from_union([lambda x: from_list(InterfaceMethodParameter.from_dict, x), from_none], obj.get(u"maybe_response"))
+ maybe_response_alignment = from_union([from_int, from_none], obj.get(u"maybe_response_alignment"))
+ maybe_response_size = from_union([from_int, from_none], obj.get(u"maybe_response_size"))
+ name = from_str(obj.get(u"name"))
+ ordinal = from_int(obj.get(u"ordinal"))
+ return InterfaceMethod(has_request, has_response, maybe_attributes, maybe_request, maybe_request_alignment, maybe_request_size, maybe_response, maybe_response_alignment, maybe_response_size, name, ordinal)
+
+ def to_dict(self):
+ result = {}
+ result[u"has_request"] = from_bool(self.has_request)
+ result[u"has_response"] = from_bool(self.has_response)
+ result[u"maybe_attributes"] = from_union([lambda x: from_list(lambda x: to_class(Attribute, x), x), from_none], self.maybe_attributes)
+ result[u"maybe_request"] = from_union([lambda x: from_list(lambda x: to_class(InterfaceMethodParameter, x), x), from_none], self.maybe_request)
+ result[u"maybe_request_alignment"] = from_union([from_int, from_none], self.maybe_request_alignment)
+ result[u"maybe_request_size"] = from_union([from_int, from_none], self.maybe_request_size)
+ result[u"maybe_response"] = from_union([lambda x: from_list(lambda x: to_class(InterfaceMethodParameter, x), x), from_none], self.maybe_response)
+ result[u"maybe_response_alignment"] = from_union([from_int, from_none], self.maybe_response_alignment)
+ result[u"maybe_response_size"] = from_union([from_int, from_none], self.maybe_response_size)
+ result[u"name"] = from_str(self.name)
+ result[u"ordinal"] = from_int(self.ordinal)
+ return result
+
+
+class Interface:
+ def __init__(self, maybe_attributes, methods, name):
+ self.maybe_attributes = maybe_attributes
+ self.methods = methods
+ self.name = name
+
+ @staticmethod
+ def from_dict(obj):
+ assert isinstance(obj, dict)
+ maybe_attributes = from_union([lambda x: from_list(Attribute.from_dict, x), from_none], obj.get(u"maybe_attributes"))
+ methods = from_list(InterfaceMethod.from_dict, obj.get(u"methods"))
+ name = from_str(obj.get(u"name"))
+ return Interface(maybe_attributes, methods, name)
+
+ def to_dict(self):
+ result = {}
+ result[u"maybe_attributes"] = from_union([lambda x: from_list(lambda x: to_class(Attribute, x), x), from_none], self.maybe_attributes)
+ result[u"methods"] = from_list(lambda x: to_class(InterfaceMethod, x), self.methods)
+ result[u"name"] = from_str(self.name)
+ return result
+
+
+class Library:
+ def __init__(self, declarations, name):
+ self.declarations = declarations
+ self.name = name
+
+ @staticmethod
+ def from_dict(obj):
+ assert isinstance(obj, dict)
+ declarations = from_dict(DeclarationsMap, obj.get(u"declarations"))
+ name = from_str(obj.get(u"name"))
+ return Library(declarations, name)
+
+ def to_dict(self):
+ result = {}
+ result[u"declarations"] = from_dict(lambda x: to_enum(DeclarationsMap, x), self.declarations)
+ result[u"name"] = from_str(self.name)
+ return result
+
+
+class StructMember:
+ def __init__(self, alignment, maybe_default_value, name, offset, size, type):
+ self.alignment = alignment
+ self.maybe_default_value = maybe_default_value
+ self.name = name
+ self.offset = offset
+ self.size = size
+ self.type = type
+
+ @staticmethod
+ def from_dict(obj):
+ assert isinstance(obj, dict)
+ alignment = from_int(obj.get(u"alignment"))
+ maybe_default_value = from_union([Constant.from_dict, from_none], obj.get(u"maybe_default_value"))
+ name = from_str(obj.get(u"name"))
+ offset = from_int(obj.get(u"offset"))
+ size = from_int(obj.get(u"size"))
+ type = TypeClass.from_dict(obj.get(u"type"))
+ return StructMember(alignment, maybe_default_value, name, offset, size, type)
+
+ def to_dict(self):
+ result = {}
+ result[u"alignment"] = from_int(self.alignment)
+ result[u"maybe_default_value"] = from_union([lambda x: to_class(Constant, x), from_none], self.maybe_default_value)
+ result[u"name"] = from_str(self.name)
+ result[u"offset"] = from_int(self.offset)
+ result[u"size"] = from_int(self.size)
+ result[u"type"] = to_class(TypeClass, self.type)
+ return result
+
+
+class Struct:
+ def __init__(self, max_handles, maybe_attributes, members, name, size):
+ self.max_handles = max_handles
+ self.maybe_attributes = maybe_attributes
+ self.members = members
+ self.name = name
+ self.size = size
+
+ @staticmethod
+ def from_dict(obj):
+ assert isinstance(obj, dict)
+ max_handles = from_union([from_int, from_none], obj.get(u"max_handles"))
+ maybe_attributes = from_union([lambda x: from_list(Attribute.from_dict, x), from_none], obj.get(u"maybe_attributes"))
+ members = from_list(StructMember.from_dict, obj.get(u"members"))
+ name = from_str(obj.get(u"name"))
+ size = from_int(obj.get(u"size"))
+ return Struct(max_handles, maybe_attributes, members, name, size)
+
+ def to_dict(self):
+ result = {}
+ result[u"max_handles"] = from_union([from_int, from_none], self.max_handles)
+ result[u"maybe_attributes"] = from_union([lambda x: from_list(lambda x: to_class(Attribute, x), x), from_none], self.maybe_attributes)
+ result[u"members"] = from_list(lambda x: to_class(StructMember, x), self.members)
+ result[u"name"] = from_str(self.name)
+ result[u"size"] = from_int(self.size)
+ return result
+
+
+class UnionMember:
+ def __init__(self, alignment, name, offset, size, type):
+ self.alignment = alignment
+ self.name = name
+ self.offset = offset
+ self.size = size
+ self.type = type
+
+ @staticmethod
+ def from_dict(obj):
+ assert isinstance(obj, dict)
+ alignment = from_int(obj.get(u"alignment"))
+ name = from_str(obj.get(u"name"))
+ offset = from_int(obj.get(u"offset"))
+ size = from_int(obj.get(u"size"))
+ type = TypeClass.from_dict(obj.get(u"type"))
+ return UnionMember(alignment, name, offset, size, type)
+
+ def to_dict(self):
+ result = {}
+ result[u"alignment"] = from_int(self.alignment)
+ result[u"name"] = from_str(self.name)
+ result[u"offset"] = from_int(self.offset)
+ result[u"size"] = from_int(self.size)
+ result[u"type"] = to_class(TypeClass, self.type)
+ return result
+
+
+class UnionDeclarationElement:
+ def __init__(self, alignment, max_handles, maybe_attributes, members, name, size):
+ self.alignment = alignment
+ self.max_handles = max_handles
+ self.maybe_attributes = maybe_attributes
+ self.members = members
+ self.name = name
+ self.size = size
+
+ @staticmethod
+ def from_dict(obj):
+ assert isinstance(obj, dict)
+ alignment = from_int(obj.get(u"alignment"))
+ max_handles = from_union([from_int, from_none], obj.get(u"max_handles"))
+ maybe_attributes = from_union([lambda x: from_list(Attribute.from_dict, x), from_none], obj.get(u"maybe_attributes"))
+ members = from_list(UnionMember.from_dict, obj.get(u"members"))
+ name = from_str(obj.get(u"name"))
+ size = from_int(obj.get(u"size"))
+ return UnionDeclarationElement(alignment, max_handles, maybe_attributes, members, name, size)
+
+ def to_dict(self):
+ result = {}
+ result[u"alignment"] = from_int(self.alignment)
+ result[u"max_handles"] = from_union([from_int, from_none], self.max_handles)
+ result[u"maybe_attributes"] = from_union([lambda x: from_list(lambda x: to_class(Attribute, x), x), from_none], self.maybe_attributes)
+ result[u"members"] = from_list(lambda x: to_class(UnionMember, x), self.members)
+ result[u"name"] = from_str(self.name)
+ result[u"size"] = from_int(self.size)
+ return result
+
+
+class Fidl:
+ def __init__(self, const_declarations, declaration_order, declarations, enum_declarations, interface_declarations, library_dependencies, name, struct_declarations, union_declarations, version):
+ self.const_declarations = const_declarations
+ self.declaration_order = declaration_order
+ self.declarations = declarations
+ self.enum_declarations = enum_declarations
+ self.interface_declarations = interface_declarations
+ self.library_dependencies = library_dependencies
+ self.name = name
+ self.struct_declarations = struct_declarations
+ self.union_declarations = union_declarations
+ self.version = version
+
+ @staticmethod
+ def from_dict(obj):
+ assert isinstance(obj, dict)
+ const_declarations = from_list(Const.from_dict, obj.get(u"const_declarations"))
+ declaration_order = from_list(from_str, obj.get(u"declaration_order"))
+ declarations = from_dict(DeclarationsMap, obj.get(u"declarations"))
+ enum_declarations = from_list(EnumDeclarationElement.from_dict, obj.get(u"enum_declarations"))
+ interface_declarations = from_list(Interface.from_dict, obj.get(u"interface_declarations"))
+ library_dependencies = from_list(Library.from_dict, obj.get(u"library_dependencies"))
+ name = from_str(obj.get(u"name"))
+ struct_declarations = from_list(Struct.from_dict, obj.get(u"struct_declarations"))
+ union_declarations = from_list(UnionDeclarationElement.from_dict, obj.get(u"union_declarations"))
+ version = from_str(obj.get(u"version"))
+ return Fidl(const_declarations, declaration_order, declarations, enum_declarations, interface_declarations, library_dependencies, name, struct_declarations, union_declarations, version)
+
+ def to_dict(self):
+ result = {}
+ result[u"const_declarations"] = from_list(lambda x: to_class(Const, x), self.const_declarations)
+ result[u"declaration_order"] = from_list(from_str, self.declaration_order)
+ result[u"declarations"] = from_dict(lambda x: to_enum(DeclarationsMap, x), self.declarations)
+ result[u"enum_declarations"] = from_list(lambda x: to_class(EnumDeclarationElement, x), self.enum_declarations)
+ result[u"interface_declarations"] = from_list(lambda x: to_class(Interface, x), self.interface_declarations)
+ result[u"library_dependencies"] = from_list(lambda x: to_class(Library, x), self.library_dependencies)
+ result[u"name"] = from_str(self.name)
+ result[u"struct_declarations"] = from_list(lambda x: to_class(Struct, x), self.struct_declarations)
+ result[u"union_declarations"] = from_list(lambda x: to_class(UnionDeclarationElement, x), self.union_declarations)
+ result[u"version"] = from_str(self.version)
+ return result
+
+
+def fidl_from_dict(s):
+ return Fidl.from_dict(s)
+
+
+def fidl_to_dict(x):
+ return to_class(Fidl, x)
+