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);