我可以使用Rust词法分析器或解析器来检索Rust文件中的函数列表吗?

时间:2016-03-03 19:05:59

标签: rust lexer

位于here的词法分析器/解析器文件非常大,我不确定它是否适合只检索Rust函数列表。也许写自己的/使用另一个图书馆是更好的选择?

最终目标是创建一种执行管理器。为了上下文,它将能够读取包含在函数中的函数调用列表。然后,可以从某个Web界面重新/订购函数内的函数调用。认为用这种方式管理更大的应用程序可能会很好。

2 个答案:

答案 0 :(得分:4)

没有。我的意思是,不是真的。无论您是编写自己的解析器还是重用syntex,您都会遇到一个基本限制:

所以,让我们说你全力以赴扩展基于macro_rules!的宏,包括外部包装箱中定义的那些(这意味着你还需要提取{{1}包装箱元数据加载......这是不稳定的)。程序宏和自定义派生属性怎么样?它们在代码中定义,并依赖于编译器内部接口来运行。

这可能正常正确的唯一方法是在编译器的顶层上构建,或者复制大量工作(这也涉及不稳定的二进制文件)接口)。

答案 1 :(得分:3)

您可以使用syntex在构建脚本中解析Rust代码。