whasm_grammar_derive/
lib.rs1extern crate proc_macro;
2
3use proc_macro_error::proc_macro_error;
4use proc_macro::TokenStream;
5use syn::{ parse_macro_input, DeriveInput };
6
7#[proc_macro_error]
8#[proc_macro_derive(Grammar, attributes(discriminant, forward, sized, matching))]
9pub fn wasm_grammar_derive(input: TokenStream) -> TokenStream {
10 let derive = parse_macro_input!(input as DeriveInput);
11 impl_wasm_grammar(derive).into()
12}
13
14mod implementation;
15mod structure;
16mod enumeration;
17mod attributes;
18mod fields;
19mod crate_name;
20
21use crate::implementation::*;