aboutsummaryrefslogtreecommitdiff
path: root/scripts/parameter_validation_generator.py
diff options
context:
space:
mode:
authorMike Schuchardt <mikes@lunarg.com>2017-12-28 11:23:48 -0700
committerMike Schuchardt <mikes@lunarg.com>2018-03-09 13:54:31 -0700
commit9b3669f17e475f0d713eb8a0ae794d04b3ea63ca (patch)
treee0fbf6f681ed2d9767227b39873a0b4cbf74715d /scripts/parameter_validation_generator.py
parentdb1b42a438ee40104034ba3ee613f3799b5fcd07 (diff)
downloadusermoji-9b3669f17e475f0d713eb8a0ae794d04b3ea63ca.tar.xz
scripts: Update codegen to work with new aliasing
Change-Id: I3739f7b7b6eb17a5e3e1bc9cc18e74569cb50f95
Diffstat (limited to 'scripts/parameter_validation_generator.py')
-rw-r--r--scripts/parameter_validation_generator.py24
1 files changed, 15 insertions, 9 deletions
diff --git a/scripts/parameter_validation_generator.py b/scripts/parameter_validation_generator.py
index 4246eeae..66662086 100644
--- a/scripts/parameter_validation_generator.py
+++ b/scripts/parameter_validation_generator.py
@@ -410,14 +410,14 @@ class ParameterValidationOutputGenerator(OutputGenerator):
OutputGenerator.endFeature(self)
#
# Type generation
- def genType(self, typeinfo, name):
- OutputGenerator.genType(self, typeinfo, name)
+ def genType(self, typeinfo, name, alias):
+ OutputGenerator.genType(self, typeinfo, name, alias)
typeElem = typeinfo.elem
# If the type is a struct type, traverse the imbedded <member> tags generating a structure. Otherwise, emit the tag text.
category = typeElem.get('category')
if (category == 'struct' or category == 'union'):
self.structNames.append(name)
- self.genStruct(typeinfo, name)
+ self.genStruct(typeinfo, name, alias)
elif (category == 'handle'):
self.handleTypes.add(name)
elif (category == 'bitmask'):
@@ -432,8 +432,10 @@ class ParameterValidationOutputGenerator(OutputGenerator):
# This is a special case of the <type> tag where the contents are interpreted as a set of <member> tags instead of freeform C
# type declarations. The <member> tags are just like <param> tags - they are a declaration of a struct or union member.
# Only simple member declarations are supported (no nested structs etc.)
- def genStruct(self, typeinfo, typeName):
- OutputGenerator.genStruct(self, typeinfo, typeName)
+ def genStruct(self, typeinfo, typeName, alias):
+ if alias:
+ print("genStruct {} {}".format(typeName, alias))
+ OutputGenerator.genStruct(self, typeinfo, typeName, alias)
conditions = self.structMemberValidationConditions[typeName] if typeName in self.structMemberValidationConditions else None
members = typeinfo.elem.findall('.//member')
#
@@ -497,8 +499,10 @@ class ParameterValidationOutputGenerator(OutputGenerator):
#
# Capture group (e.g. C "enum" type) info to be used for param check code generation.
# These are concatenated together with other types.
- def genGroup(self, groupinfo, groupName):
- OutputGenerator.genGroup(self, groupinfo, groupName)
+ def genGroup(self, groupinfo, groupName, alias):
+ if alias:
+ print("genGroup {} {}".format(groupName, alias))
+ OutputGenerator.genGroup(self, groupinfo, groupName, alias)
groupElem = groupinfo.elem
# Store the sType values
if groupName == 'VkStructureType':
@@ -533,8 +537,10 @@ class ParameterValidationOutputGenerator(OutputGenerator):
self.enumValueLists += enum_entry
#
# Capture command parameter info to be used for param check code generation.
- def genCmd(self, cmdinfo, name):
- OutputGenerator.genCmd(self, cmdinfo, name)
+ def genCmd(self, cmdinfo, name, alias):
+ if alias:
+ print("genCmd {} {}".format(name, alias))
+ OutputGenerator.genCmd(self, cmdinfo, name, alias)
decls = self.makeCDecls(cmdinfo.elem)
typedef = decls[1]
typedef = typedef.split(')',1)[1]