在标题中我提到了3种不同的语言,我想知道是否存在一个python包,它可以为我提供任何一个程序的标识符列表;所以不必全部三个,因为我怀疑它会是那样的。所以我的问题是python中是否存在一个函数或类,它允许我获取一个语言中特定程序的标识符列表,最好是标题中列出的3个标识符。任何帮助表示赞赏。
答案 0 :(得分:1)
有pycparser,您可以使用它从代码生成C AST,然后遍历它以获得您想要的任何内容。
Python中有this simple lisp interpreter,您应该可以从中删除解析器。
我怀疑Scala有什么类似的东西可供使用,但你可以使用类似ply的东西来制作解析器。它不会那么容易,但会做到。
答案 1 :(得分:1)
一般来说,如果没有几乎完整的语言实现,这是不可能的。
C中有一个基本的预处理器,可以允许屏蔽特殊扫描的函数声明。在Lisp中有一个强大的元编程,这意味着你只能使用功能齐全的Lisp编译器提取定义,简单的解析根本无济于事。
Scala是这三者中最简单的,但它的语法仍然过于膨胀,你至少需要一个完整的解析器。 Python几乎不是以任何方式执行此类操作的正确工具。