- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 pycparser
解析此 C 代码:
这里有一个带有最小示例和 Makefile 的 repo:
https://github.com/nbeaver/pycparser-problem
使用 pycparser
Debian Jessie 上的 v2.14(来自 pip)和 gcc 4.9.2。
我尝试过的事情:
-nostdinc
标记为 gcc
并包括 fake_libc_include
文件夹。-D'__attribute__(x)='
取出 GCC 扩展<sys/param.h>
-std=c99
以防代码与 C99 不兼容。这是回溯的样子:
Traceback (most recent call last):
File "just_parse.py", line 21, in <module>
parse(path)
File "just_parse.py", line 9, in parse
ast = pycparser.parse_file(filename)
File "/home/nathaniel/.local/lib/python2.7/site-packages/pycparser/__init__.py", line 93, in parse_file
return parser.parse(text, filename)
File "/home/nathaniel/.local/lib/python2.7/site-packages/pycparser/c_parser.py", line 146, in parse
debug=debuglevel)
File "/home/nathaniel/.local/lib/python2.7/site-packages/pycparser/ply/yacc.py", line 265, in parse
return self.parseopt_notrack(input,lexer,debug,tracking,tokenfunc)
File "/home/nathaniel/.local/lib/python2.7/site-packages/pycparser/ply/yacc.py", line 1047, in parseopt_notrack
tok = self.errorfunc(errtoken)
File "/home/nathaniel/.local/lib/python2.7/site-packages/pycparser/c_parser.py", line 1680, in p_error
column=self.clex.find_tok_column(p)))
File "/home/nathaniel/.local/lib/python2.7/site-packages/pycparser/plyparser.py", line 55, in _parse_error
raise ParseError("%s: %s" % (coord, msg))
pycparser.plyparser.ParseError: in/d_adsc_two_theta.c:63:82: before: .
回溯指向这一行:
这又指向这个 #define
宏观:
最佳答案
原因似乎是 offsetof()
函数。最小的工作示例由最近的提交修复,但是:
关于python - 复杂结构上的 pycparser.plyparser.ParseError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39029209/
使用 pycparser 我在要解析的 C 代码中遇到了包含 header 的问题。出于某种神秘的原因,一些“假 header ”可以正常工作,而另一些则不能正常工作。例如,如果我包含 stdint.
我正在尝试使用 pyCparser 创建 AST,打印出以下错误: Traceback (most recent call last): File "C:\Work\RE\Tools\VarsExpo
pycparser 是否支持用户自定义类型?我想从 *.C 文件中获取用户定义类型作为返回类型的函数列表。 最佳答案 当然可以。您只想为 FuncDef 节点编写访问者。 FuncDef 包含一个De
我正在尝试使用带有访问者的 pycparser 为每个 IF 语句解析 C 代码。根据我的观察,它只访问没有嵌套 IF 的顶级节点。是故意的,还是我的代码有问题? 最佳答案 查看类(class)评论:
当我尝试使用 pycparser 解析带有注释的文件时,我得到了 ParseError import pycparser parser = pycparser.CParser() parser.par
我目前正在开发一个项目,以查找给定 I/O 函数中的变量依赖关系,并选择使用 Pycparser。我现在的代码大部分只是一个访问者类和一些节点类。它的作用是遍历 AST 并为每个变量赋值、声明、输入、
我找到了以下示例来搜索特定函数名称,例如 malloc,但我想查找 C 源文件的函数声明中的所有函数名称。因此,在 ReturnCode HashCreate(Hash** hash, unsigne
我使用 pycparser 来解析 C 代码,对于我的测试文件,它工作正常。我在 cpp 和头文件方面遇到了一些问题,所以我使用外部 cpp 并将预处理器的输出提供给 pycparser。使用我的测试
我需要在预处理的 C 代码上使用 pycparser(由 'gcc -E' 产生的结果)。但是我目前遇到了我无法理解或解决的问题。 我正在使用提供的示例 year2.c 和 func_defs.py,
我正在尝试使用 pycparser解析此 C 代码: https://github.com/nbeaver/mx-trunk/blob/0b80678773582babcd56fe959d5cfbb7
pycparser 无法解析以下类型的语法。任何建议如何处理这种语法?或者我必须编写单独的模块来删除 pycparser 不支持的语法。 static __inline unsigned int __
我是解析方面的新手,我正在尝试使用 Pycparser 来解析我的 c 文件,我按照说明预处理文件 gcc -E 然后我使用示例文件夹中的 using_gcc_E_libc.py 并传递我的文件,我得
我正在使用最新版本的诗歌 (1.1.10) 并且在尝试更新我的锁定文件时,在尝试安装 pycparser==2.20 时遇到了错误: Writing lock file Package operati
让我们首先考虑这个片段: import sys from pycparser import c_parser, c_ast, c_generator text = r""" void main() {
注意:熟悉 pycparser 的人会更好地理解这个问题。 我正在使用pycparser v2.10 和我试图提取 C 文件中定义的所有函数,并在解析该 C 文件时提取其输入参数名称和标识符类型(使用
我正在使用 pycparser 来解析一些 C 代码。具体来说,我需要代码的某些部分,包括在 pycparser 中的是一些访问者,例如 visit_If 来访问代码的 "If" 部分。但是,我在访问
我需要用 pycparser 解析我的 C 和 C++ 代码, 但之前需要去除预处理器指令和注释。 那么,你知道有什么方法可以做到这一点吗?我找到了 CPP预处理器,但我不知道我是否可以像那样使用它而
我们可以通过在 pycparser parse_file 的帮助下对其进行预处理来支持新的 typedef、#includes 和 #defines。我还查看了文档:README 页面和博客文章,但所
我正在尝试修改/重构输入的 C 源代码。我试图在输入代码的每一行之后添加一个 printf 语句。 例如如果我的输入是 - void foo(){ // Sample input code
我使用 pycparser 和 pycparserext 编写了以下程序: from pycparser import parse_file,c_parser, c_ast, c_generator
我是一名优秀的程序员,十分优秀!