Skip to main content

tml_macro/
lib.rs

1use proc_macro::TokenStream;
2use syn::parse_macro_input;
3
4mod codegen;
5mod dsl;
6mod ir;
7mod parsing;
8
9#[proc_macro]
10pub fn network(input: TokenStream) -> TokenStream {
11    let ast = parse_macro_input!(input as parsing::NetworkAst);
12    match ir::NetworkIr::lower(ast) {
13        Ok(ir) => codegen::generate_network(&ir).into(),
14        Err(err) => err.to_compile_error().into(),
15    }
16}