Python 以编程方式缩进自动生成的C代码
我有一个自动生成C代码的python脚本。 以下是一个小片段: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
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有个人经验,我很乐意向您推荐。使用您选择的缩进工具添加后处理步骤。我不知道哪一个是好的,并且支持您的缩进样式。对于这么简单的事情,您似乎可以让filter_proto写出正确缩进的代码,或者您的实际使用比这里显示的要复杂得多?@knivil,快速的谷歌搜索发现了这一点:并使用您选择的缩进工具添加一个后处理步骤。我不知道哪一个是好的,并且支持你的缩进风格。对于这么简单的事情,你似乎可以让filter_proto写出正确缩进的代码,或者你的实际使用比这里显示的要复杂得多?@knivil,一个快速的谷歌搜索发现:和