通常是相反的,用 Rust 解析 Python,参见 here 或 here - 就我而言,尽管我正在寻找一种方法 用 Python 解析 Rust 代码,理想情况下将其转换为可以分析的 AST 之类的东西(理想情况是在任何进一步的编译步骤开始之前)。具体来说,我想从用 Rust 编写的应用程序中提取
enum
和 struct
定义,以用于用 Python 编写的单元测试。有没有一种标准方法可以做到这一点,也许是通过 Rust 编译器?
依赖关系:
pip install tree-sitter tree-sitter-rust
使用示例:
import tree_sitter_rust as tsrust
from tree_sitter import Language, Parser
with open("some.rs", mode = "rb") as f:
raw = f.read()
parser = Parser(Language(tsrust.language()))
tree = parser.parse(raw)
enums = [
node
for node in tree.root_node.children
if node.type == 'enum_item'
]
print(enums)