X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=specs%2Fscripts%2Fcdecl.py;h=940ce4424a6c948390be1f8647c704a923dba461;hb=48412ffde3dd4710c96d5e8d9cfdf1789e4d703a;hp=d6ee05850df2159ff0e7b2246ed9be3e650c8220;hpb=7a6a32e2271a34d530c6914b0ad2bc95700f2cb2;p=apitrace diff --git a/specs/scripts/cdecl.py b/specs/scripts/cdecl.py index d6ee058..940ce44 100755 --- a/specs/scripts/cdecl.py +++ b/specs/scripts/cdecl.py @@ -189,6 +189,11 @@ class DeclParser: value = 0 while self.lookahead() != '}': type, name = self.parse_named_type() + + if self.match(':'): + self.consume() + self.consume() + if self.match(','): self.consume(',') self.consume(';') @@ -205,6 +210,8 @@ class DeclParser: if self.match(';'): return self.consume(':') + if self.lookahead() in ('public', 'protected'): + self.consume() base = self.consume() self.consume('{') @@ -225,7 +232,7 @@ class DeclParser: ret = self.parse_type() - if self.match('__stdcall'): + if self.match('__stdcall', 'WINAPI'): self.consume() creator = 'StdFunction' @@ -244,7 +251,10 @@ class DeclParser: args.append(arg) if self.match(','): self.consume() - self.consume() == ')' + self.consume(')') + if self.lookahead() == 'const': + self.consume() + extra = ', const=True' + extra print ' %s(%s, "%s", [%s]%s),' % (creator, ret, name, ', '.join(args), extra) @@ -256,6 +266,12 @@ class DeclParser: arg = '(%s, "%s")' % (type, name) if 'out' in tags: arg = 'Out' + arg + + if self.match('='): + self.consume() + while not self.match(',', ')'): + self.consume() + return arg def parse_tags(self):