From a062a5f0d20f07b4722c8c1995461b21aafe1782 Mon Sep 17 00:00:00 2001 From: Nigel Stewart Date: Fri, 25 Jul 2014 20:43:48 +1000 Subject: [PATCH] Add filter_spec Python script for filtering OpenGL specification files. --- auto/bin/filter_spec.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100755 auto/bin/filter_spec.py diff --git a/auto/bin/filter_spec.py b/auto/bin/filter_spec.py new file mode 100755 index 0000000..7fc334b --- /dev/null +++ b/auto/bin/filter_spec.py @@ -0,0 +1,32 @@ +#!/usr/bin/python + +import re + +section = re.compile('^(Name|Name Strings?|Number|Dependencies|New Procedures and Functions|New Tokens|Additions to .*|Changes to .*|Modifications to .*|Add new Section .*)\s*$') +token = re.compile('^\s+(([A-Z0-9][A-Z0-9_x]*):?\s+((?:0x)?[0-9A-F]+)([^\?]*))?\s*$') + +if __name__ == '__main__': + + from optparse import OptionParser + import os + + parser = OptionParser('usage: %prog [options] [SOURCES...]') + (options, args) = parser.parse_args() + + for i in args: + lines = open(i).readlines() + f = open(i,'w') + current = '' + for j in lines: + m = section.match(j) + if m: + current = m.group(1).strip() + if current in [ 'Name', 'Name String', 'Name Strings', 'Number', 'Dependencies', 'New Procedures and Functions', 'New Tokens']: + print >>f, j, + continue + if current=='New Tokens': + if token.match(j): + print >>f, j, + elif current in [ 'Name', 'Name String', 'Name Strings', 'Number', 'Dependencies', 'New Procedures and Functions']: + print >>f, j, +