1#![deny(warnings)]
2use proc_macro::TokenStream;
3use syn::{DeriveInput, parse_macro_input};
4
5mod generate;
6mod syntax;
7
8#[cfg(test)]
9mod test;
10
11use css_value_definition_parser::{Def, StrWrapped};
12
13#[proc_macro_attribute]
14pub fn syntax(args: TokenStream, input: TokenStream) -> TokenStream {
15 let args = parse_macro_input!(args as StrWrapped<Def>);
16 let ast = parse_macro_input!(input as DeriveInput);
17 syntax::generate(args.0.optimize(), ast).into()
18}
19
20#[proc_macro_attribute]
21pub fn visit(_args: TokenStream, input: TokenStream) -> TokenStream {
22 input
23}