From: José Fonseca Date: Tue, 27 Sep 2011 17:47:13 +0000 (+0100) Subject: Tweaks to the cdecl.py script. X-Git-Url: https://git.cworth.org/git?a=commitdiff_plain;h=78708c495e6d48d24e9a3007c80713746639581c;p=apitrace Tweaks to the cdecl.py script. --- diff --git a/specs/scripts/cdecl.py b/specs/scripts/cdecl.py index 4f36b3c..4f3a6b9 100755 --- a/specs/scripts/cdecl.py +++ b/specs/scripts/cdecl.py @@ -36,7 +36,7 @@ import optparse class Parser: - token_re = re.compile(r'(\w+|\s+|.)') + token_re = re.compile(r'(\d[x0-9a-fA-F.UL]*|\w+|\s+|.)') multi_comment_re = re.compile(r'/\*.*?\*/', flags = re.DOTALL) single_comment_re = re.compile(r'//.*',) @@ -93,7 +93,9 @@ class Parser: def parse_declaration(self): self.parse_tags() - if self.match('enum'): + if self.match('#'): + self.parse_define() + elif self.match('enum'): self.parse_enum() elif self.match('interface'): self.parse_interface() @@ -162,17 +164,21 @@ class Parser: print '%s = %s(%s, [' % (name, constructor, type) while self.lookahead() != '}': - self.consume('#') - self.consume('define') - name = self.consume() - value = self.consume() - #print ' "%s",\t# %s' % (name, value) - print ' "%s",' % (name,) + name, value = self.parse_define() self.consume('}') print '])' print + def parse_define(self): + self.consume('#') + self.consume('define') + name = self.consume() + value = self.consume() + #print ' "%s",\t# %s' % (name, value) + print ' "%s",' % (name,) + return name, value + def parse_struct(self): self.consume('struct') name = self.consume()