Skip to main content
 首页 » 编程设计

python之以编程方式缩进自动生成的 C 代码

2025年05月04日22落叶无声

我有一个自动生成 C 代码的 python 脚本。 这是一个小片段:

source = open("auto_comps.c", "w")     
filter_proto = """bool filter_%s_%s(char *record,  
                  size_t field_offset,  
                  uint64_t value,  
                  uint64_t delta)""" 
... 
for op in 'eq', 'ne', 'lt', 'gt', 'le', 'ge': 
    for atype in 'uint8_t', 'uint16_t', 'uint32_t', 'uint64_t': 
        source.write(filter_proto%(op,atype)) 

我不想在脚本中为 C 代码显式创建缩进。 目前我让脚本生成带有乱码缩进的代码 然后使用 IDE 选择整个代码并从那里缩进。

但是,结果每次我必须手动执行此过程 调整脚本。此外,另一位开发人员可能没有这样的奢侈 一个 IDE,看着自动生成的 C 代码可能会发疯。

有没有办法以编程方式缩进脚本中的代码 在我关闭源文件之前?

请您参考如下方法:

Vaibhav Bajpai,

源代码的缩进比乍看起来要复杂得多。事实上,要正确缩进源代码,您需要有效地构建编译器的前端。看看this article对此有一个特殊的看法。

重点是,您真的非常想使用别人创建的工具。这里有一些:

其中,我有使用 C 和 Java 的 AsStyle 的个人经验,并且很乐意推荐它。