【问题标题】:pycparser ParseErrorpycparser ParseError
【发布时间】:2018-08-14 04:22:59
【问题描述】:

我正在尝试使用 pyCparser 创建 AST, 打印以下错误:

Traceback (most recent call last):
File "C:\Work\RE\Tools\VarsExporter\BuildExportedDb.py", line 1076, in 
main()
File "C:\Work\RE\Tools\VarsExporter\BuildExportedDb.py", line 1032, in main
ast = parse_file(i_file)
File "C:\Python27\lib\site-packages\pycparser_init_.py", line 93, in 
parse_file
return parser.parse(text, filename)
File "C:\Python27\lib\site-packages\pycparser\c_parser.py", line 152, in 
parse
debug=debuglevel)
File "C:\Python27\lib\site-packages\pycparser\ply\yacc.py", line 331, in 
parse
return self.parseopt_notrack(input, lexer, debug, tracking, tokenfunc)
File "C:\Python27\lib\site-packages\pycparser\ply\yacc.py", line 1199, in 
parseopt_notrack
tok = call_errorfunc(self.errorfunc, errtoken, self)
File "C:\Python27\lib\site-packages\pycparser\ply\yacc.py", line 193, in 
call_errorfunc
r = errorfunc(token)
File "C:\Python27\lib\site-packages\pycparser\c_parser.py", line 1761, in 
p_error
column=self.clex.find_tok_column(p)))
File "C:\Python27\lib\site-packages\pycparser\plyparser.py", line 67, in _ 
parse_error
raise ParseError("%s: %s" % (coord, msg))
ParseError: Objectffly\SerDb.i:43:18: before: __loff_t

是什么导致了上述问题?我该如何处理? 任何建议我如何调试它,并找出发生了什么?

【问题讨论】:

    标签: python c parsing pycparser


    【解决方案1】:

    来自 pyCparser git 常见问题解答:

    C 代码几乎总是#include 来自标准 C 库的各种头文件,例如 stdio.h。虽然(通过一些努力)可以使 pycparser 解析来自任何 C 编译器的标准头文件,但使用 utils/fake_libc_include 中提供的“假”标准包含要简单得多。这些是标准 C 头文件,仅包含允许对使用它们的文件进行有效解析的必要条件。

    为了解决这个问题,我已经成功使用here描述的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-04
      • 2013-05-26
      • 1970-01-01
      • 2017-06-09
      • 1970-01-01
      • 2021-10-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多