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}