问题标签 [pycparser]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 使用 PycParser 解析 ac 文件时提取输入参数及其标识符类型
注意:熟悉 pycparser 的人会更好地理解这个问题。
我正在使用pycparser v2.10,我正在尝试提取已在 C 文件中定义的所有函数,并在解析该 C 文件时提取其输入参数名称和标识符类型(使用 pycparser)。
代码示例
在 visit_FuncDef 中,我正在打印函数名称,然后在 for 循环中,它是参数。
问题是我能够使用for 循环获取传递给函数的输入参数的名称,params.name
但无法获取其标识符类型。params.type
有人可以告诉我如何提取参数的标识符吗?
顺便说一句,输出是这样的:
如您所见,我没有获取标识符类型,而是获取每一行中的对象类型。例如<pycparser.c_ast.PtrDecl object at 0x00000000024EFC88>
我用作测试文件的示例 hash.c 文件(无论如何它都在 pycparser 中):
python - python pyparser 在#pragma 指令处失败
python C-parser pycparser 在以下 #pragma 指令处失败:
产生错误:
这个#pragma 有什么问题?
python - pycparser如何读取包含在C代码文件中的头文件?
我正在尝试使用 pycparser 解析 C 文件。我很想知道,在预处理 C 文件时,pycparser 是否仅读取假 lib 文件夹中提供的那些库文件(如果您在 cpp_args 中提供了假 lib 的路径),或者它还从包含中提到的位置读取语句,例如 -
在下面的行中
pycparser 将在哪里搜索 xyz.h 它只会在 FAKE LIB 文件夹中?
pycparser - 将解析树转换为字符串
我使用 PycParser 为 C 函数生成抽象语法树,但我仍在尝试弄清楚如何将解析树转换为字符串:
是否可以从已生成的解析树中生成一个字符串(或字符串数组)?
这是打印的抽象语法树,但我不知道如何将其转换为字符串:
python-2.7 - 如何让 Pycparser 理解我的 c 函数
我正在使用 pycparser 来解析我的 C 代码。当我运行脚本时,pycparser 无法理解该函数,并引发如下错误。
它显示的行号不过是这样的函数
谁能告诉我如何让 pycparser 理解我的功能?
pycparser - #包括使用 pycparser
使用 pycparser 我遇到了我要解析的 C 代码中包含的标头的问题。出于某种神秘的原因,一些“假标题”可以正常工作,而另一些则不能正常工作。例如,如果我包含 stdint.h,pycparser 可以毫无问题地解析代码。但是,如果我尝试使用 stdio.h,则会收到错误消息。因此,使用 pycparser 给出的示例代码(示例文件夹中的 using_gcc_E_libc.py)不起作用!
这是引用的示例代码中使用的内容:
这是我得到的错误:
有人可以帮我理解为什么会发生这种情况以及如何解决吗?
提前致谢 !
python-2.7 - Pycparser 无法处理预处理代码
我需要在预处理的 C 代码('gcc -E' 产生的结果)上使用 pycparser。但是,我目前遇到了我无法理解或解决的问题。
我正在使用提供的示例 year2.c 和 func_defs.py,我对其进行了修改以使用各种预处理器和假库,但无济于事。也许你们中的一些人可以调查一下,看看是否可以重现/解决问题。我将附加所有必要的代码。
错误是使用 year2.c(常规示例文件)和 year2.i('gcc -E' 输出)生成的。后者没有可用的结果,而前者同时使用预处理器/fakelib 变体。
我创建了一个包含所有相关错误的 bitbucket 存储库、使用的脚本(尽管只是它的最后一个变体)以及 year2.c 和 year2.i 文件。
谢谢你的时间。
python - 如何在 Python 中解析 C 格式的字符串?
我的 C 文件中有这段代码:
我希望使用 Python 能够解析格式字符串并找到"%s"
and "%d"
。
所以我想要一个功能:
我尝试使用 libclang 的 Python 绑定和 pycparser 来实现这一点,但我没有看到如何使用这些工具来完成。
我也尝试过使用正则表达式来解决这个问题,但这一点都不简单 - 考虑一下printf
has"%%s"
和类似这样的东西的用例。
gcc 和 clang 显然都是在编译过程中这样做的——没有人将此逻辑导出到 Python 吗?
python - 有什么办法可以避免python的pycparser库中的解析错误
以下代码在pycparser
尝试解析时触发 .c 文件中的错误。这可能是因为rf_wcdma_bup_flags_t
没有定义 typedef,有没有跳过它?