gpt4 book ai didi

python - pycparser 仅访问 if-else 语句的 else

转载 作者:太空宇宙 更新时间:2023-11-03 21:47:47 25 4
gpt4 key购买 nike

我正在使用 pycparser 来解析一些 C 代码。具体来说,我需要代码的某些部分,包括在 pycparser 中的是一些访问者,例如 visit_If 来访问代码的 "If" 部分。但是,我在访问 if-else 语句的 'else' 部分时遇到问题。

示例1:

if (x == 0)
{
// some statements
}
else
{
// some statements -> I only need all codes under else
}

示例2:

if (x == 0)
// a statement
else
// a statement -> I only need all codes under else

这在 pycparser 中怎么可能?

最佳答案

If 节点有一个 iffalse 子节点,它是原始代码中的 else 子句。例如,see the C code generator (pycparser 的一部分):

def visit_If(self, n):
s = 'if ('
if n.cond: s += self.visit(n.cond)
s += ')\n'
s += self._generate_stmt(n.iftrue, add_indent=True)
if n.iffalse:
s += self._make_indent() + 'else\n'
s += self._generate_stmt(n.iffalse, add_indent=True)
return s

这是访问 If 节点并访问其所有子节点的一个很好的示例。

关于python - pycparser 仅访问 if-else 语句的 else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52354599/

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