首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析postgresql -pycparser.plyparser.ParseError之前: pgwin32_signal_event

解析postgresql -pycparser.plyparser.ParseError之前: pgwin32_signal_event
EN

Stack Overflow用户
提问于 2018-11-01 16:47:06
回答 1查看 235关注 0票数 0

我需要使用pycparser解析一个开源项目Postgresql。

在解析其源代码时,出现以下错误:

代码语言:javascript
复制
Traceback (most recent call last):
File "examples\using_cpp_libc.py", line 48, in <module>
getAllFiles(projectName)
File "examples\using_cpp_libc.py", line 29, in getAllFiles
ast = parse_file(dirName+'\\'+fname, use_cpp = True, cpp_path = 'cpp', 
cpp_args = [r'-nostdinc',r'-Iutils/fake_libc_include',r'- 
Iprojects/postgresql/src/include'])
File "G:\python\pycparser-master\pycparser\__init__.py", line 92, in 
parse_file
return parser.parse(text, filename)
File "G:\python\pycparser-master\pycparser\c_parser.py", line 152, in parse
debug=debuglevel)
File "G:\python\pycparser-master\pycparser\ply\yacc.py", line 334, in parse
return self.parseopt_notrack(input, lexer, debug, tracking, tokenfunc)
File "G:\python\pycparser-master\pycparser\ply\yacc.py", line 1204, in 
parseopt_notrack
tok = call_errorfunc(self.errorfunc, errtoken, self)
File "G:\python\pycparser-master\pycparser\ply\yacc.py", line 193, in 
call_errorfunc
r = errorfunc(token)
File "G:\python\pycparser-master\pycparser\c_parser.py", line 1838, in 
p_error
column=self.clex.find_tok_column(p)))
File "G:\python\pycparser-master\pycparser\plyparser.py", line 67, in 
_parse_error
raise ParseError("%s: %s" % (coord, msg))
pycparser.plyparser.ParseError: 
projects/postgresql/src/include/pg_config_os.h:366:15: before: 
pgwin32_signal_event

我使用postgresql-9.6.9,在windows10(64位)上使用visual studio express 2017构建它。

EN

回答 1

Stack Overflow用户

发布于 2019-02-16 21:48:10

你在评论中引用的博客帖子是规范的资源。解析大型C项目并不容易-它们有自己的怪癖-所以需要工作。我怀疑它是否能在堆栈溢出问题的范围内得到解决。

您需要开始逐个解决问题-例如,查看pg_config_os.h中的pgwin32_signal_event标记-为什么它不能被解析?也许它的类型是无法解析的?定义好了吗?它是否可以被添加到“假”头中,等等。不幸的是,除了逐个解决问题之外,没有简单的方法来做到这一点。

请确保首先对要解析的文件进行预处理,将完整的预处理版本转储到一个.c文件中-这会将所有类型都放入一个您可以处理的文件中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53097804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档