1#![allow(unused, non_snake_case)]
2extern crate proc_macro;
3
4use proc_macro2::{Literal, TokenStream, TokenTree};
5use quote::quote;
6use sexprs_formatter::{format_code, highlight_code, highlight_token_stream};
7use sexprs_macros_core::{match_to_compile_error, ErrorTypeNodeGen};
8
9#[proc_macro_attribute]
10pub fn error_types(
11 attr: proc_macro::TokenStream,
12 item: proc_macro::TokenStream,
13) -> proc_macro::TokenStream {
14 let attr: TokenStream = attr.into();
15 let item: TokenStream = item.into();
16
17 let mut ast_node_gen = match_to_compile_error!(ErrorTypeNodeGen::new(attr.clone(), item.clone()));
18 let code = match_to_compile_error!(ast_node_gen.code());
19 code.into()
21}