0

大きな 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ファイルをループする方法は?

4

1 に答える 1