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

Python 以编程方式缩进自动生成的C代码,python,Python,我有一个自动生成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 'e

我有一个自动生成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代码创建缩进。 目前,我让脚本使用haywire缩进生成代码 然后使用IDE选择整个代码并从中缩进

但是,因此,每次我必须手动执行此过程 调整脚本。此外,另一个开发商可能没有拥有 一个IDE,看着自动生成的C代码可能会发疯

有没有一种方法可以通过编程从脚本中缩进代码
在我关闭源文件之前?

最简单的解决方案可能是通过一个独立的压头(如)运行生成的代码。

最简单的解决方案可能是通过一个独立的压头(如)运行生成的代码。

顺便说一句,重新识别可能需要您识别c令牌并对其进行操作。您可能会从python的标记开始,但将标记更改为C。我认为,这至少会让您意识到任务的难度!:)


另一个选项是安装一个类似的程序,并在写入文件之前运行生成的代码。这会更容易。

顺便说一句,重新身份认证可能需要您识别c令牌并对其采取行动。您可能会从python的标记开始,但将标记更改为C。我认为,这至少会让您意识到任务的难度!:)

另一个选项是安装一个类似的程序,并在写入文件之前运行生成的代码。那会更容易。

Vaibhav Bajpai

源代码的缩进比最初出现的要复杂得多。事实上,要正确缩进源代码,需要有效地构建编译器前端。有一个独特的观点来看这一点

关键是,你真的,真的想使用别人创造的工具。以下是一些:

  • 老好人()
除此之外,我对C和Java中的AsStyle有个人经验,并很乐意推荐它。

Vaibhav Bajpai

源代码的缩进比最初出现的要复杂得多。事实上,要正确缩进源代码,需要有效地构建编译器前端。有一个独特的观点来看这一点

关键是,你真的,真的想使用别人创造的工具。以下是一些:

  • 老好人()

除此之外,我对C和Java中的AsStyle有个人经验,我很乐意向您推荐。

使用您选择的缩进工具添加后处理步骤。我不知道哪一个是好的,并且支持您的缩进样式。对于这么简单的事情,您似乎可以让filter_proto写出正确缩进的代码,或者您的实际使用比这里显示的要复杂得多?@knivil,快速的谷歌搜索发现了这一点:并使用您选择的缩进工具添加一个后处理步骤。我不知道哪一个是好的,并且支持你的缩进风格。对于这么简单的事情,你似乎可以让filter_proto写出正确缩进的代码,或者你的实际使用比这里显示的要复杂得多?@knivil,一个快速的谷歌搜索发现:和