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

标签 rust lexer

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

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

最佳答案

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

假设您全力以赴扩展基于 macro_rules! 的宏,包括在外部包中定义的宏(这意味着您还需要提取rustc 的 crate 元数据加载...不稳定)。过程宏和自定义派生属性怎么样?这些是在代码中定义的,并且依赖于编译器内部接口(interface)来运行。

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

关于rust - 我可以使用 Rust 词法分析器或解析器来检索 Rust 文件中的函数列表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35780830/

相关文章:

rust - 从“index not backed by a repository”提交的索引树写入时,libgit2出现'pull'错误

python - 带有单引号、双引号或三引号的 Lex 字符串

java - Java 中的词法分析器

python - 在 python 中为新的编程语言编写词法分析器

rust - 在 Rust 中环绕负数

rust - 传递给新线程的变量的生命周期

rust - 如何共享tokio::net::TcpStream同时作用于它?

arrays - 为什么 Rust 在运行时检查数组边界,而(大多数)其他检查发生在编译时?

C# Lua 解析器/分析器

lexer - 向 scintilla/scite 添加一个新的词法分析器(...最终是 wxPython StyledTextCtrl)