我使用 pycparser 来解析 c 代码,并且对于我的测试文件它工作正常。我对 cpp 和头文件有一些问题,所以我使用外部 cpp 并将预处理器的输出提供给 pycparser。使用我的测试文件,一切正常,但使用来自真实软件项目的文件,我得到一个错误。
ast = parse_file("layer2.c.o", use_cpp=False)
错误信息:
File "/usr/local/lib/python2.7/dist-packages/pycparser/c_parser.py", line 1613, in p_error
column=self.clex.find_tok_column(p)))
File "/usr/local/lib/python2.7/dist-packages/pycparser/plyparser.py", line 54, in _parse_error
raise ParseError("%s: %s" % (coord, msg)) raise ParseError("%s: %s" % (coord, msg))
pycparser.plyparser.ParseError: /usr/include/stdint.h:58:1: before: __extension__
有人知道这个问题吗?