大きな c ファイルですべての除算演算子を見つけようとしています。Pythonコードのこの例を見ました。
そして、それを私のcファイルに使用しようとしました。したがって、次のようにpycparserを使用して、cファイルをastに解析しました。
from pycparser import parse_file, c_parser, c_generator
def translate_to_c(filename):
ast = parse_file(filename, use_cpp=True)
ast.show()
translate_to_c('source.c')
次に、次のように translate_to_c を変更して、例を使用してみました。
def translate_to_c(filename):
ast = parse_file(filename, use_cpp=True)
ast.show()
last_lineno = None
for node in ast.walk(ast):
# Not all nodes in the AST have line numbers, remember latest one
if hasattr(node, "lineno"):
last_lineno = node.lineno
# If this is a division expression, then show the latest line number
if isinstance(node, ast.Div):
print(last_lineno)
次のエラーが表示されます。
line 25, in translate_to_c
for node in ast.walk(ast):
AttributeError: 'FileAST' object has no attribute 'walk'
コードでこの例をどのように使用できるかについてのアイデアはありますか? または一般的にastファイルをループする方法は?