21个版本 (1个稳定版)
1.0.0 | 2024年1月5日 |
---|---|
0.6.1 | 2024年1月4日 |
0.5.2 | 2023年12月29日 |
0.5.0 | 2023年11月24日 |
0.2.6 | 2023年10月27日 |
#709 in 过程宏
410KB
8K SLoC
Chandeliers-Syn
Lustre的语法。
在这个包中,我们描述了Lustre程序的解析AST。这个AST不打算直接使用,而是应该转换成更方便静态分析的AST。
如何获取解析AST以及如何使用它
模块ast
的所有类型都实现了syn::parse::Parse
,因此可以从任何符合syn
预期结构的令牌流中解析。
在过程宏内部典型用法如下
use chandeliers_syn::ast::Prog;
use proc_macro::TokenStream;
#[proc_macro]
pub fn get_and_handle_ast(input: TokenStream) -> TokenStream {
let prog: Prog = syn::parse_macro_input!(input as Prog);
// now you have a `Prog`, you can e.g.
// `Prog::translate` it to get something that can be used by
// Chandeliers' sanitizer.
}
lib.rs
:
Chandeliers套件过程宏的通用入口点,提供对所有Lustre结构的解析,并将其转换为chandeliers-san
可分析的AST
AST的结构不稳定,因为Lustre可解析片段的语法可能会在以后扩展。
依赖关系
~0.4–0.9MB
~20K SLoC