def c_define(self, writer): writer.write("typedef enum ") writer.write(self.c_name()) writer.begin_block() values = self.names.keys() values.sort() mask = 0 for i in values: writer.write(self.c_enumname(i)) mask = mask | (1 << i) writer.write(" = (1 << %d)" % (i)) writer.write(",") writer.newline() current_default = i + 1 writer.newline() writer.write(codegen.prefix_underscore_upper(self.name.upper(), "MASK")) writer.write(" = 0x%x" % (mask)) writer.newline() writer.end_block(newline=False) writer.write(" ") writer.write(self.c_name()) writer.write(";") writer.newline() writer.newline()
def c_define(self, writer): writer.write("enum ") writer.write(self.c_name()) writer.begin_block() values = self.names.keys() values.sort() current_default = 0 for i in values: writer.write(self.c_enumname(i)) if i != current_default: writer.write(" = %d" % (i)) writer.write(",") writer.newline() current_default = i + 1 writer.newline() writer.write(codegen.prefix_underscore_upper(self.name.upper(), "ENUM_END")) writer.newline() writer.end_block(semicolon=True) writer.newline()
def c_define(self, writer): writer.write("enum ") writer.write(self.c_name()) writer.begin_block() values = self.names.keys() values.sort() mask = 0 for i in values: writer.write(self.c_enumname(i)) mask = mask | (1<<i) writer.write(" = (1 << %d)" % (i)) writer.write(",") writer.newline() current_default = i + 1 writer.newline() writer.write(codegen.prefix_underscore_upper(self.name.upper(), "MASK")) writer.write(" = 0x%x" % (mask)) writer.newline() writer.end_block(semicolon=True) writer.newline()
def c_enumname_by_name(self, name): if self.has_attr("prefix"): return self.attributes["prefix"][0] + name return codegen.prefix_underscore_upper(self.name.upper(), name)
def c_enumname(self, value): if self.has_attr("prefix"): return self.attributes["prefix"][0] + self.names[value] return codegen.prefix_underscore_upper(self.name.upper(), self.names[value])