Jon*_*rod 5 rust rust-macros rust-decl-macros
我正在尝试仅使用宏在 Rust 中编写一个 quine。为了做到这一点,我将main函数嵌入到 macro 中f1,并尝试嵌入f1in f2with的文字表示stringify!。
到目前为止,这是我的代码:
macro_rules!f1{()=>(fn main(){println!("macro_rules!{}\nmacro_rules!f2{{($x:expr)=>(stringify!($x))}}\nf1!();",f2!(f1));})}
macro_rules!f2{($x:expr)=>(stringify!($x))}
f1!();
不出所料,输出是:
macro_rules!f1
macro_rules!f2{($x:expr)=>(stringify!($x))}
f1!();
我需要的是f1在字符串化之前进行扩展以使程序成为quine。我怎样才能做到这一点?