shibari-macros 0.0.0

Tools for complex (keyboard) bindings — proc-macro definitions
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use emit::Context;

use crate::prelude::*;

mod emit;
mod parse;
mod reparse;

pub use parse::Input;

pub(super) fn run(input: Input) -> TokenStream {
    let mut diag = TokenStream::new();

    let (cx, grammars) = Context::new(input, &mut diag);
    let items = cx.emit(&grammars);

    [diag, items].into_iter().collect()
}