在Python中嵌入自定义表单语言

时间:2015-02-05 12:12:34

标签: python embed abstract-syntax-tree

我有一个Python脚本,可以将文件从自定义表单语言转换为可编译的C ++文件。这样一个文件的样子可以是

data = open_special_file_format('data.nc')
f = div(grad(data.u)) + data.g
write_special_file(f, 'out.nc')

请注意,Python语法实际上是使用Python ast解析的。这里发生的神奇主要在于自定义关键字divgrad以及其他一些关键字。

由于这非常类似于Python,我问自己是否有可能将这种语言嵌入到Python中。我想象的是

import mylang
data = mylang.open_special_file_format('data.nc')
f = mylang.div(mylang.grad(data.u)) + data.g
mylang.write_special_file(f, 'out.nc')

我不确定是否可以告诉模块mylang动态创建和编译C ++代码并将其插入正确的位置。

任何提示?

0 个答案:

没有答案