#brain #macro #brain-flak

brain_flak_macro

Brain-Flak 宏

3 个不稳定版本

0.2.0 2022年4月11日
0.1.1 2020年9月8日
0.1.0 2020年8月24日

#1237Rust 模式

MIT 许可证

15KB
344

Brain Flak 宏

在 rust 中编写 Brain-Flak 代码。您可以传递一个向量作为输入。`brain_flak` 宏将展开为堆栈操作。

use brain_flak_macro::brain_flak;

let mut vec: Vec<i32> = vec![20, 5];
brain_flak! { &mut vec =>
    // multiplication
    ([({}<([({}(<()>))<>](<()>))<>>)<>]){({}[()]<(({})<({}{})>)>)<>}{}{}<>{}{}{}<>
}
assert_eq!(vec![100], vec);

原因

我本来要创建 brainfuck 宏,但它已经存在。某个 Discord 服务器的一个随机人建议使用 Brain-Flak。使用平衡括号的选择使其足够容易,只需使用 macro_rules(不是)。


lib.rs:

使用 Brain-Flak 进行堆栈操作。

use brain_flak_macro::brain_flak;

let mut vec = vec![20, 5];
brain_flak! { &mut vec =>
    // multiplication
    ([({}<([({}(<()>))<>](<()>))<>>)<>]){({}[()]<(({})<({}{})>)>)<>}{}{}<>{}{}{}<>
}
assert_eq!(vec![100], vec);

无运行时依赖