gpt4 book ai didi

python - 从脚本 : how to template? 生成 C 代码

转载 作者:行者123 更新时间:2023-12-05 06:44:09 35 4
gpt4 key购买 nike

我正在寻找一种将一些自动生成的代码插入到 C 源文件中的方法。代码生成在 python 中,这不是问题,诀窍是如何用生成的代码替换/更新现有 C 代码中的代码块。我正在寻找一个与 C 语法兼容的模板库(模板语句可以隐藏在注释中),并且模板和扩展模板可以是同一件事。

包含要更新的代码的示例 C 文件:

// start generated block (blockname)
... some code here
// end generated block (blockname)

示例 python 伪代码:

replace_code_in_c_file(filename, blockname, new_code)

运行此命令后,//注释保留在原位,但代码块将被新代码替换。

最佳答案

让我解释一个技巧。 Jinja2是一个模板脚本,可以从模板生成文本。您需要做的是编写您的 C 代码模板 main.c.j2:


#include <stdio.h>

int main()

{

printf("hello {{name}}.\n");

return 0;

}

然后您可以使用 trans.py 将其转换为 C 代码:


import os

from jinja2 import PackageLoader, Environment, FileSystemLoader



TemplateLoader = FileSystemLoader(os.path.abspath("."))

env = Environment(loader = TemplateLoader)



template = env.get_template("main.c.j2")



print(template.render(name = "Jack"))

运行 python trans.py 你会在屏幕上看到这段 C 代码:


#include <stdio.h>

int main()

{

printf("hello Jack.\n");

return 0;

}

那是真正的 C 代码,{{name}} 被替换成了 Jack。有关更多有趣的功能,请参阅 Jinja2 文档。

关于python - 从脚本 : how to template? 生成 C 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30494547/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com