问题标签 [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.

0 投票
1 回答
87 浏览

python-3.x - pycparser解析多字节字符错误

我正在使用 pycparser 来解析一些 C 代码。特别是可以在字符和字符串中包含日文字符的代码,如下所示:

我试图在 Dev-c 上编译它,并正确编译。pycparser可以做到这一点吗?

0 投票
1 回答
370 浏览

postgresql - PostgreSQL 不包含一些必需的头文件

我已经安装了解析 C 代码的 pycparser。

使用 pycparser 我想解析一个开源项目,即 PostgreSQL 。但是,在编译过程中它找不到一些头文件,即 pg_config_ext.hpg_config_os.h.

在查看PostgreSQL的目录结构时,我发现它没有这些头文件。如何解决这个问题?

0 投票
1 回答
63 浏览

postgresql - 使用 pycparser 编译 Postgresql - 找不到头文件

我已经安装了解析 C 代码的 pycparser。

使用 pycparser 我想解析一个开源项目,即 PostgreSQL(version-11.0)。我使用 Visual Studio Express 2017 编译器套件构建了它。但是,在编译过程中它找不到一些头文件,即 windows.hwinsock2.h.

在查看构建PostgreSQL的目录结构时,我发现它没有这些头文件。如何解决这个问题?

还发生了一个奇怪的错误:

postgresql/src/include/ch:363:2: error: #error 必须有一个工作的 64 位整数数据类型

注意:我使用的是 Windows 10 64 位平台和 postgresql-11.0

步骤如下:
我下载了 Visual Studio 2017、Windows-10 SDK、Active Perl,如在 PostgreSQL 中从源代码构建的步骤中所述。

在此之后,我打开 Visual Studio 的开发人员命令提示符并导航到该文件夹postgresql-11.0/src/tools/msvc

使用命令“build”来构建 postgresql。构建过程成功,但仍然windows.h没有winsock2.h在 PostgreSQL 的目录结构中找到。

0 投票
1 回答
264 浏览

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

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

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

我正在使用 postgresql-9.6.9,在 Windows 10(64 位)上使用 Visual Studio Express 2017 构建它

0 投票
1 回答
104 浏览

python - 如何反转 Python 中常量列表的字节顺序?

我一直在寻找一种方法来从 C 源文件中提取常量并在一个自动化过程中反转它们的字节顺序(无需手动输入)。到目前为止,我已经设法利用 pycparser 为我完成了大部分繁重的工作,并创建了一个脚本,将 C 文件的所有常量打印到控制台。它打印的格式是这样的:Constant: int, 0x243F6A88

我的问题是有人知道在 Python 中自动执行此转换过程的直观方法吗?我知道如何使用 join() 反转字节顺序,但我正在努力想办法做到这一点,以最大限度地减少手动输入的数量。理想情况下,我的脚本会打印出常量(已经完成),然后使用某种正则表达式(也许?)来转换任何以 0x 开头的常量(有很多我不想打印的随机数)。我希望这是有道理的,谢谢!

到目前为止我所拥有的:

0 投票
1 回答
118 浏览

python - 使用pycparser打印C文件中的所有常量时如何打印出常量名称?

我正在研究自动化一个打印出 C 文件中所有常量的工具。到目前为止,我已经设法打印出 C 文件中的所有常量,但是如果不打印出整个抽象语法树,我想不出一种方法来显示它们关联的变量名,这有很多不必要的给我的信息。有没有人有任何想法?现在,它将打印出常量及其类型。这是我的代码:

编辑:当前输出:常量:type=int,value=0x243456BE 期望输出:常量:type=int,name=变量名常量所属(通常是数组名),value=0x243456BE

0 投票
1 回答
265 浏览

function - pycparser 检索函数调用层次结构

有没有办法用 pycparser 获取函数调用堆栈?

例如,如果我有这样的代码:

所以使用 FuncDefVisitor 我可以检索Func_1并且使用 FuncCallVisitor 我可以检索Func_2Func_3

但是我怎样才能检索到例如Func_2从 Func_1 中调用信息 ?

0 投票
1 回答
343 浏览

c - pycparser AST 节点指针/位置

我是解析新手,我正在尝试使用 Pycparser 解析我的 c 文件,我按照说明通过预处理文件 gcc -E 然后我使用示例文件夹中的 using_gcc_E_libc.py 并传递我的文件,我得到了一些输出但是不确定 AST 是不是这样?如果那是正确的 AST,我如何找到每个节点及其依赖项以及该节点的指针(位置)?

0 投票
1 回答
86 浏览

c - cbmc 如何与 c 标头一起使用?

如果我有一个包含多个函数的 ac 文件,并且我想在程序的预处理版本(使用 gcc)上运行带有 z3 求解器的 cbmc,并且标题部分中还有一些其他文件(c 文件)。cbmc 将如何查看这些文件?因为我试图运行它,他给出了一些关于一些变量的错误,因为它们没有在它的位置声明,事实上,它们是在一个头文件中声明的。

谁能解释这是如何工作的?

更新:

首先,我使用 gcc 对程序进行预处理

然后通过pycparser解析程序

然后仪器(在4后添加打印语句以查看x的值)

然后我在文件的检测版本上运行 cbmc,我得到了这个错误:函数 `sqrt' 没有声明

0 投票
2 回答
507 浏览

python - 获取指定函数中调用的所有函数

我正在使用 pycparser 来解析 C 代码。我的目标是给定一个 C 代码和一个函数名,列出指定函数中调用的所有函数。

我查看了 pycparser 的文档,但找不到任何专门解决此问题的方法。

我想要与 cscope 相同的功能: