X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=specs%2Fscripts%2Fgltxt.py;h=08b6a5774a77cf1a15f30353f30d1a658ec5f138;hb=3801952b80cd7a7160f6410518f6e3740d461b60;hp=4ce92320114b1d52ba101739310a78baf7837b40;hpb=27ced2422a87714c5c2afea10b946cea977a512c;p=apitrace diff --git a/specs/scripts/gltxt.py b/specs/scripts/gltxt.py index 4ce9232..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): @@ -187,7 +212,7 @@ class TxtParser(LineParser): if token == 'void': type = 'Void' else: - type = 'GL' + token + type = self.prefix.upper() + token while self.tokens[0] == '*': type = 'OpaquePointer(%s)' % type self.tokens.pop(0)