qubit-macros 1.0.0-beta.0

Macros to accompany `qubit`.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use proc_macro2::TokenStream;
use syn::Error;

mod analyse;
mod codegen;
mod lower;
mod parse;

use self::{analyse::analyse, codegen::codegen, lower::lower, parse::parse};

pub fn handler(attrs: TokenStream, item: TokenStream) -> Result<TokenStream, Error> {
    let ast = parse(attrs, item)?;
    let model = analyse(ast)?;
    let ir = lower(model);
    Ok(codegen(ir))
}