class Handle(Type):
- def __init__(self, name, type, range=None):
+ def __init__(self, name, type, range=None, key=None):
Type.__init__(self, type.expr, 'P' + type.id)
self.name = name
self.type = type
self.range = range
+ self.key = key
def visit(self, visitor, *args, **kwargs):
return visitor.visit_handle(self, *args, **kwargs)
def visit_handle(self, handle):
type = self.visit(handle.type)
- return Handle(handle.name, type, handle.range)
+ return Handle(handle.name, type, range=handle.range, key=handle.key)
def visit_alias(self, alias):
type = self.visit(alias.type)
class API:
- def __init__(self, name):
+ def __init__(self, name = None):
self.name = name
self.headers = []
self.functions = []
def add_interfaces(self, interfaces):
self.interfaces.extend(interfaces)
+ def add_api(self, api):
+ self.headers.extend(api.headers)
+ self.add_functions(api.functions)
+ self.add_interfaces(api.interfaces)
+
+ def get_function_by_name(self, name):
+ for function in self.functions:
+ if function.name == name:
+ return function
+ return None
+
Bool = Literal("bool", "Bool")
SChar = Literal("signed char", "SInt")