X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=stdapi.py;h=1f8b81e72bd8d632711fbeeb5dba5eee210c1610;hb=94215537cc85e6aecbbeea9bc5a08741b1618ac6;hp=122b89f84821d099c2d6754169a35925161fdea0;hpb=6fac5ae3f768d5f8b87324482155f5f8e2d23cb2;p=apitrace diff --git a/stdapi.py b/stdapi.py index 122b89f..1f8b81e 100644 --- a/stdapi.py +++ b/stdapi.py @@ -109,11 +109,12 @@ class Pointer(Type): 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) @@ -434,7 +435,7 @@ class Rebuilder(Visitor): 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) @@ -509,7 +510,7 @@ class Collector(Visitor): class API: - def __init__(self, name): + def __init__(self, name = None): self.name = name self.headers = [] self.functions = [] @@ -542,6 +543,17 @@ class API: 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")