1#![warn(missing_docs)]
2#![doc = include_str!("readme.md")]
3
4extern crate proc_macro;
5
6use proc_macro::TokenStream;
7
8mod define_rules;
9mod doc;
10mod format_rule;
11mod json;
12mod test;
13mod to_doc;
14
15#[proc_macro]
17pub fn test_lexer(input: TokenStream) -> TokenStream {
18 test::test_lexer(input)
19}
20
21#[proc_macro]
23pub fn test_parser(input: TokenStream) -> TokenStream {
24 test::test_parser(input)
25}
26
27#[proc_macro_attribute]
29pub fn oak_test(attr: TokenStream, item: TokenStream) -> TokenStream {
30 test::oak_test(attr, item)
31}
32
33#[proc_macro_derive(AsDocument, attributes(oak))]
35pub fn derive_as_document(input: TokenStream) -> TokenStream {
36 to_doc::derive_as_document(input)
37}
38
39#[proc_macro_derive(FormatRule, attributes(oak))]
41pub fn derive_format_rule(input: TokenStream) -> TokenStream {
42 format_rule::derive_format_rule(input)
43}
44
45#[proc_macro]
47pub fn define_rules(input: TokenStream) -> TokenStream {
48 define_rules::define_rules(input)
49}
50
51#[proc_macro]
53pub fn doc(input: TokenStream) -> TokenStream {
54 doc::doc(input)
55}
56
57#[proc_macro]
59pub fn json(input: TokenStream) -> TokenStream {
60 json::json(input)
61}