Srcgen is a semantic code generation framework. Being semantic means that the code generator and the
generated code bear similar structure, as well ; for instance, the body of an if
statement is indented both in
the generating and generated code. Here's a short example:
>>> from srcgen.python import PythonModule >>> >>> m = PythonModule("foo") >>> m.import_("sys") >>> m.import_("os") >>> m.sep() >>> m.stmt("x = 5") >>> with m.if_("x > 8"): ... m.stmt("print 'oh no'") ... >>> with m.else_(): ... m.stmt("print 'oh yes'") ... >>> print m import sys import os x = 5 if x > 8: print 'oh no' else: print 'oh yes'
You can nest deeper, of course, as well as extract common pieces of code into functions:
m = PythonModule("foo") with m.class_("MyClass"): with m.method("__init__", "
At the moment Srcgen supports:
- C
- Python
- Cython
- HTML/XML
More languages will be added per public demand (you're welcome to join the effort!)