diff options
Diffstat (limited to 'python')
-rwxr-xr-x | python/generator.py | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/python/generator.py b/python/generator.py index 454b3552..1327ce7f 100755 --- a/python/generator.py +++ b/python/generator.py @@ -4,6 +4,7 @@ # functions = {} +enums = {} # { enumType: { enumConstant: enumValue } } import string @@ -136,6 +137,9 @@ class docParser: self.function_return_info = attrs['info'] if attrs.has_key('field'): self.function_return_field = attrs['field'] + elif tag == 'enum': + enum(attrs['type'],attrs['name'],attrs['value']) + def end(self, tag): @@ -166,10 +170,13 @@ class docParser: def function(name, desc, ret, args, file): - global functions - functions[name] = (desc, ret, args, file) +def enum(type, name, value): + if not enums.has_key(type): + enums[type] = {} + enums[type][name] = value + ####################################################################### # # Some filtering rukes to drop functions/types which should not @@ -943,6 +950,17 @@ def buildWrappers(): classes.write(" return ret\n"); classes.write("\n"); + # + # Generate enum constants + # + for type,enum in enums.items(): + classes.write("# %s\n" % type) + items = enum.items() + items.sort(lambda i1,i2: cmp(long(i1[1]),long(i2[1]))) + for name,value in items: + classes.write("%s = %s\n" % (name,value)) + classes.write("\n"); + txt.close() classes.close() |