node

Macro node 

Source
macro_rules! node {
    (chr $char:expr) => { ... };
    (chr $char1:expr, $char2:expr $(;$char3:expr, $char4:expr)*) => { ... };
    ([$($($a1:literal)?$($a2:ident)? $(- $($b1:literal)?$($b2:ident)?)?),+]) => { ... };
    (~[$($($a1:literal)?$($a2:ident)? $(- $($b1:literal)?$($b2:ident)?)?),+]) => { ... };
    (.) => { ... };
    (str $str:expr) => { ... };
    (&) => { ... };
    (|) => { ... };
    (*) => { ... };
    (+) => { ... };
    (e) => { ... };
    (??) => { ... };
    (= $id:expr) => { ... };
    ($id:expr) => { ... };
    ([$($($a1:literal)?$($a2:ident)? $(- $($b1:literal)?$($b2:ident)?)?,)+]) => { ... };
    (~[$($($a1:literal)?$($a2:ident)? $(- $($b1:literal)?$($b2:ident)?)?,)+]) => { ... };
}
Expand description

Generates an ReNode instance.

ยงExamples

assert_eq!(node!(chr 'a'), ReNode::char('a'));
assert_eq!(node!(['a'-'z', '0'-'9']), ReNode::char_range(Segments::from([Seg('a' as u32, 'z' as u32), Seg('0' as u32, '9' as u32)])));
assert_eq!(node!(.), ReNode::char_range(Segments::from([Seg(UTF8_MIN, UTF8_LOW_MAX), Seg(UTF8_HIGH_MIN, UTF8_MAX)])));
assert_eq!(node!(str "new"), ReNode::string("new"));
assert_eq!(node!(=5), ReNode::end(Terminal { action: ActionOption::Token(5), channel: 0, mode: ModeOption::None, mode_state: None, pop: false }));
assert_eq!(node!(&), ReNode::concat());
assert_eq!(node!(|), ReNode::or());
assert_eq!(node!(*), ReNode::star());
assert_eq!(node!(+), ReNode::plus());
assert_eq!(node!(e), ReNode::empty());