Ruby/Python - 生成和解析 C/C++ 代码

3

我需要从数据库表中存储的数据生成C结构体和数组,并且可以交替解析类似的信息。我在这个任务中同时使用ruby和python,想知道是否有任何一个模块/库能够处理这个问题?我可以使用一些字符串处理来自己完成,但是想检查一下是否有人知道已知且经过测试的解析器。谢谢。


4
祝好运。C已经不是为了便于解析而设计的语言,但C++更糟糕 - 假设你想解析真正的代码,而不仅仅是你自己生成的代码。 - user395760
为什么你想要这样做? - Michael Mior
我同意,你不太可能找到一个专门为Ruby或Python编写的完整的C或C++解析器,因为没有人有动力去构建这样的解析器。因此,你可能需要考虑自己解析代码。如果你只想处理合法的基本结构和标量数据类型,那么编写这个C语言子集的语法就非常简单了。但是,如果你想处理任意结构(包括联合体、位偏移、typedefs的定义/使用等),特别是从实际代码中提取的结构,那么你需要做更多的工作。 - Ira Baxter
3个回答

3
请查看开源软件工具SWIG(简化封装和接口生成器)。该网页介绍的第一句话如下:

SWIG是一种软件开发工具,可将用C和C++编写的程序与各种高级编程语言连接起来。SWIG与不同类型的语言一起使用,包括常见的脚本语言,如Perl、PHP、Python、Tcl和Ruby。

非常成熟(根据维基百科的介绍,最初发布于1996年2月),有大量的教程、文档和帮助。

1
在pyparsing维基上有一个基本的C结构体解析器这里。Pyparsing是一个Python模块,通过组装单独的解析构建块来创建解析器。(不过对于Ruby部分的问题没有帮助。)

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接