/Tools/bgen/bgen/bgenGeneratorGroup.py
http://unladen-swallow.googlecode.com/ · Python · 40 lines · 33 code · 7 blank · 0 comment · 5 complexity · 1384b78dda372603d36876242a245c07 MD5 · raw file
- from bgenOutput import *
- class GeneratorGroup:
- def __init__(self, prefix):
- self.prefix = prefix
- self.generators = []
- def add(self, g, dupcheck=0):
- if dupcheck:
- if g in self.generators:
- print 'DUP', g.name
- return
- g.setprefix(self.prefix)
- self.generators.append(g)
- def generate(self):
- for g in self.generators:
- g.generate()
- Output()
- Output("static PyMethodDef %s_methods[] = {", self.prefix)
- IndentLevel()
- for g in self.generators:
- g.reference()
- Output("{NULL, NULL, 0}")
- DedentLevel()
- Output("};")
- def _test():
- void = None
- from bgenGenerator import FunctionGenerator
- group = GeneratorGroup("spam")
- eggs = FunctionGenerator(void, "eggs")
- group.add(eggs)
- print "/* START */"
- group.generate()
- if __name__ == "__main__":
- _test()