1

在标题中,我提到了 3 种不同的语言,我想在其中找出是否存在 python 包,它可以为我提供其中任何一种程序的标识符列表;所以不必全部三个,因为我怀疑会有一个这样的。所以我的问题是python中是否存在一个函数或类,它允许我获得一个语言中特定程序的标识符列表,最好是我在标题中列出的3个中的一个。任何帮助表示赞赏。

4

2 回答 2

1

pycparser,您可以使用它从代码生成 C AST,然后遍历它以获得您想要的任何内容。

Python 中有一个简单的 lisp 解释器,您应该可以从中删除解析器。

而且我怀疑 Scala 是否有任何类似且现成的东西,但您可以使用ply之类的东西来制作解析器。这不会那么容易,但会做到的。

于 2012-04-30T13:52:33.363 回答
1

一般来说,如果没有几乎完整的语言实现,这是不可能的。

C 中有一个基本的预处理器,它可以允许从临时扫描中屏蔽函数声明。Lisp 中有一个强大的元编程,这意味着您只能使用功能齐全的 Lisp 编译器来提取定义,简单的解析根本无济于事。

Scala 是这三个中最简单的,但它的语法仍然过于臃肿,您至少需要一个完整的解析器。Python 几乎不是以任何方式做这类事情的正确工具。

于 2012-05-01T11:51:57.160 回答