gnode

Macro gnode 

Source
macro_rules! gnode {
    ([$id:expr]) => { ... };
    (t $id:expr) => { ... };
    (nt $id:expr) => { ... };
    (e) => { ... };
    (end) => { ... };
    (&) => { ... };
    (|) => { ... };
    (?) => { ... };
    (+) => { ... };
    (*) => { ... };
    (L $id:expr) => { ... };
    (R) => { ... };
    (P) => { ... };
    (inst) => { ... };
}
Expand description

Generates a GrNode instance.

ยงExamples

assert_eq!(gnode!([1]), GrNode::Symbol(Symbol::T(1 as TokenId)));
assert_eq!(gnode!(t 2), GrNode::Symbol(Symbol::T(2 as TokenId)));
assert_eq!(gnode!(nt 3), GrNode::Symbol(Symbol::NT(3 as VarId)));
assert_eq!(gnode!(e), GrNode::Symbol(Symbol::Empty));
assert_eq!(gnode!(end), GrNode::Symbol(Symbol::End));
assert_eq!(gnode!(&), GrNode::Concat);
assert_eq!(gnode!(|), GrNode::Or);
assert_eq!(gnode!(?), GrNode::Maybe);
assert_eq!(gnode!(+), GrNode::Plus);
assert_eq!(gnode!(*), GrNode::Star);
assert_eq!(gnode!(L 3), GrNode::LForm(3));
assert_eq!(gnode!(R), GrNode::RAssoc);