使用 / 将 Rust 解析为 AST,以便在 Python 中使用

问题描述 投票:0回答:1

通常是相反的,用 Rust 解析 Python,参见 herehere - 就我而言,尽管我正在寻找一种方法 用 Python 解析 Rust 代码,理想情况下将其转换为可以分析的 AST 之类的东西(理想情况是在任何进一步的编译步骤开始之前)。具体来说,我想从用 Rust 编写的应用程序中提取

enum
struct
定义,以用于用 Python 编写的单元测试。有没有一种标准方法可以做到这一点,也许是通过 Rust 编译器?

python rust abstract-syntax-tree
1个回答
0
投票

依赖关系:

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)
© www.soinside.com 2019 - 2024. All rights reserved.