cps 0.2.0

Assists in the creation of readable and maintainable macro_rules! macros
Documentation
use cps::cps;

#[cps]
macro_rules! macro1 {
    () => { BaseCase };

    ($expr:expr) => { concat!("Got: ", $expr) };

    (@run stringify) =>
    let $x:tt = macro1!() in
    let $y:expr = cps::stringify!($x) in
    let $($z:tt)* = macro1!($y) in
    {
        $($z)*
    };

    (@run concat) =>
    let $x:tt = macro1!() in
    let $a:expr = cps::stringify!($x) in
    let $y:expr = cps::concat!(3, $a, true) in
    let $($z:tt)* = macro1!($y) in
    {
        $($z)*
    };
}

#[test]
fn stringify_call() {
    assert_eq!(macro1!(@run stringify), "Got: BaseCase");
}

#[test]
fn concat_call() {
    assert_eq!(macro1!(@run concat), "Got: 3BaseCasetrue");
}