7个不稳定版本
0.4.2 | 2024年4月14日 |
---|---|
0.4.1 | 2023年7月21日 |
0.4.0 | 2023年6月24日 |
0.3.1 | 2023年4月3日 |
0.1.0 | 2019年5月8日 |
#1999 在 过程宏
每月74次 下载
10KB
99 代码行
描述Syn的语法树的数据结构。
Syn的语法树由200多种类型组成。偶尔你可能需要在这些类型中实现一些行为。
-
例如 Rust对AST Explorer的集成 想要将Syn的语法树转换为平台现有的跨语言语法树可视化代码可以理解的JavaScript值。
-
另一个来自Syn内部的例子,
visit
、visit_mut
和fold
模块的特性和实现可以由语法树的描述程序化生成。
为了使此类代码在任意语言中实现尽可能简单,每个Syn版本都附带了一个JSON文件(syn.json),其中包含该版本语法树的机器可读描述。此 syn-codegen
crate 提供了从Rust代码解析和利用syn.json表示的规范数据结构。
示例
use syn_codegen::Definitions;
const SYN: &str = include_str!("syn.json");
fn main() {
let defs: Definitions = serde_json::from_str(SYN).unwrap();
for node in &defs.types {
println!("syn::{}", node.ident);
}
}
依赖关系
~0.9–1.3MB
~23K SLoC