1 // edition:2021 2 3 macro_rules! demo2 { 4 ( $a:tt $b:tt ) => { println!("two tokens") }; 5 } 6 7 macro_rules! demo3 { 8 ( $a:tt $b:tt $c:tt ) => { println!("three tokens") }; 9 } 10 11 macro_rules! demo4 { 12 ( $a:tt $b:tt $c:tt $d:tt ) => { println!("four tokens") }; 13 } 14 main()15fn main() { 16 demo3!(foo#bar); //~ ERROR prefix `foo` is unknown 17 demo2!(foo"bar"); //~ ERROR prefix `foo` is unknown 18 demo2!(foo'b'); //~ ERROR prefix `foo` is unknown 19 20 demo2!(foo'b); //~ ERROR prefix `foo` is unknown 21 demo3!(foo# bar); //~ ERROR prefix `foo` is unknown 22 demo4!(foo#! bar); //~ ERROR prefix `foo` is unknown 23 demo4!(foo## bar); //~ ERROR prefix `foo` is unknown 24 25 demo4!(foo#bar#); 26 //~^ ERROR prefix `foo` is unknown 27 //~| ERROR prefix `bar` is unknown 28 29 demo3!(foo # bar); 30 demo3!(foo #bar); 31 demo4!(foo!#bar); 32 demo4!(foo ##bar); 33 34 demo3!(r"foo"#bar); 35 demo3!(r#foo#bar); 36 } 37