Lines Matching refs:grammar
28 """Generates a C language headers from a SPIR-V JSON grammar file"""
79 """The grammar for an extended instruction set"""
120 def generate(self, grammar):
121 """Returns a string that is the language-specific header for the given grammar"""
124 if grammar.copyright:
125 parts.extend(["{}{}".format(self.comment_prefix(), f) for f in grammar.copyright])
128 guard = 'SPIRV_UNIFIED1_{}_H_'.format(grammar.name)
136 if grammar.version:
137 parts.append(self.const_definition(grammar.name, 'Version', grammar.version))
139 if grammar.revision is not None:
140 parts.append(self.const_definition(grammar.name, 'Revision', grammar.revision))
144 if grammar.instructions:
145 parts.append(self.enum_prefix(grammar.name, 'Instructions'))
146 for inst in grammar.instructions:
147 parts.append(self.enum_value(grammar.name, inst['opname'], inst['opcode']))
148 parts.append(self.enum_end(grammar.name, 'Instructions'))
151 if grammar.operand_kinds:
152 for kind in grammar.operand_kinds:
153 parts.append(self.enum_prefix(grammar.name, kind['kind']))
155 parts.append(self.enum_value(grammar.name, e['enumerant'], e['value']))
156 parts.append(self.enum_end(grammar.name, kind['kind']))
202 parser = argparse.ArgumentParser(description='Generate language headers from a JSON grammar')
207 parser.add_argument('--extinst-grammar', metavar='<path>',
209 help='input JSON grammar file for extended instruction set')
230 grammar = ExtInstGrammar(name = args.extinst_name,
238 f.write(CGenerator().generate(grammar))