X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;ds=sidebyside;f=specs%2Fscripts%2Fgltxt.py;h=08b6a5774a77cf1a15f30353f30d1a658ec5f138;hb=04b70cf9a1c8295dfc357947d3895f19c7f8bac9;hp=c1a0aeaf1039baccc456b0436e46ea4ac35ef631;hpb=382d662aabebe85e8bc6f941eafc76454be24577;p=apitrace diff --git a/specs/scripts/gltxt.py b/specs/scripts/gltxt.py index c1a0aea..08b6a57 100755 --- a/specs/scripts/gltxt.py +++ b/specs/scripts/gltxt.py @@ -97,6 +97,9 @@ class TxtParser(LineParser): property_re = re.compile(r'^\w+:') prototype_re = re.compile(r'^(\w+)\((.*)\)$') + comment_start_re = re.compile(r'^/\*') + comment_end_re = re.compile(r'.*\*/$') + def __init__(self, stream, prefix=''): LineParser.__init__(self, stream) self.prefix = prefix @@ -133,9 +136,23 @@ class TxtParser(LineParser): name = line.strip() print ' # %s' % name + def skip_c_comments(self): + while not self.eof(): + line = self.lookahead().strip() + mo = self.comment_start_re.match(line) + if not mo: + return + while not self.eof(): + self.consume() + mo = self.comment_end_re.match(line) + if mo: + return + line = self.lookahead().strip() + def parse_procs(self): lines = [] while not self.eof(): + self.skip_c_comments() line = self.lookahead() if not line.strip(): self.consume() @@ -177,7 +194,15 @@ class TxtParser(LineParser): def parse_arg(self): type = self.parse_type() + if self.tokens[0] == ')': + assert type == 'Void' + return '' name = self.tokens.pop(0) + if self.tokens[0] == '[': + self.tokens.pop(0) + n = int(self.tokens.pop(0)) + assert self.tokens.pop(0) == ']' + type = 'Array(%s, %d)' % (type, n) return '(%s, "%s")' % (type, name) def parse_type(self):