srcgen:语义源代码生成框架

srcgen的Python项目详细描述


srcgen

srcgen是一个语义代码生成框架。语义意味着代码生成器和 生成的代码也具有类似的结构;例如,if语句的主体在 生成和生成的代码。下面是一个简短的示例:

>>> 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'

当然,您可以嵌套得更深,也可以将常见的代码片段提取到函数中:

m = PythonModule("foo")
with m.class_("MyClass"):
    with m.method("__init__", "

语言

目前srcgen支持:

  • C
  • Python
  • 赛顿
  • HTML/XML

将根据公众需求添加更多语言(欢迎您参与此项工作!)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java能否使用OpenJPA将一个实体持久化到多个持久化单元?   java如何访问当前按下的键   java singleton是否意味着哈希代码总是返回相同的值?   inputstream无法在Java中同时使用STDIN和STDERR读取程序输出   java运行时有多贵。getRuntime()与获取内存度量相结合   java AndroidStudio ListView适配器更新   java小程序请求未扩展实时会话   java是设置布尔值所必需的关键部分?   java比较两个字符串,并突出显示发现的不匹配项   java带抽屉布局,无论哪个屏幕处于活动状态,如何在按下后退键时关闭应用程序?   爪哇:颜色有什么区别。黑色和彩色。黑色   Velocity模板中子类的java访问方法   java如何快速学习Drools或其他规则引擎   从Java应用程序访问时缓存数据库查询结果   java cassandra nodetool JPLISAgent。c错误   java我正在解析一个没有pubDate的RSS提要,有没有其他方法可以确定一个项目是何时发布的?