| 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() |