- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 pycparser 和 pycparserext 编写了以下程序:
from pycparser import parse_file,c_parser, c_ast, c_generator
from pycparserext.ext_c_parser import GnuCParser
content="int main() { int x = 1; int y = 0; while (y < 1000 && __VERIFIER_nondet_int()) { x = x + y; y = y + 1; } __VERIFIER_assert(x >= y); return 0;}"
text = r""" """+content
parser = GnuCParser()
ast = parser.parse(text)
generator = c_generator.CGenerator()
print str(generator.visit(ast))
int{
int x = 1;
int y = 0;
while ((y < 1000) && __VERIFIER_nondet_int())
{
x = x + y;
y = y + 1;
}
__VERIFIER_assert(x >= y);
return 0;
}
最佳答案
这可能是 pycparserext
的问题。 .使用从 Github 新鲜克隆的 vanilla pycparser,我得到(从主 pycparser 目录运行):
$ cat /tmp/2.c
int main() { int x = 1; int y = 0; while (y < 1000 && __VERIFIER_nondet_int()) { x = x + y; y = y + 1; } __VERIFIER_assert(x >= y); return 0;}
$ PYTHONPATH=. python examples/c-to-c.py /tmp/2.c
int main()
{
int x = 1;
int y = 0;
while ((y < 1000) && __VERIFIER_nondet_int())
{
x = x + y;
y = y + 1;
}
__VERIFIER_assert(x >= y);
return 0;
}
关于python - pycparser 的 generator.visit 在 Ubuntu 16.04.3 中显示错误的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45736709/
使用 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
我是一名优秀的程序员,十分优秀!