9个版本
| 0.1.9 | 2023年10月31日 |
|---|---|
| 0.1.8 |
|
#209 在 过程宏 中
每月 49 次下载
13KB
使用Rust过程宏的BrainFuck编译器
更确切地说,是使用Rust过程宏编写的BrainFuck到Rust的转换器
示例
- Hello World(在丢弃时运行)
brain_fuck!( ++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>. >---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++. ); - 使用
into方法在运行后获取(pc: usize, mem: Vec<u8>)(在调用into后运行)let (pc, mem) = brain_fuck!( ++++++++[>+>++++<<-]>++>>+<[-[>>+<<-]+>>]>+[ -<<<[ ->[+[-]+>++>>>-<<]<[<]>>++++++[<<+++++>>-]+<<++.[-]<< ]>.>+[>>]>+ ] ).into(); println!("{:?}", (pc, mem)); - 使用
env方法设置Brainfuck代码块的 程序计数器pc和 内存mem(在丢弃时运行)brain_fuck!( [.>] ).env(0, vec![79, 75, 10]); - 总共(在调用
into后运行)let (pc, mem) = brain_fuck!( [.>] ).env(0, vec![72, 101, 108, 108, 79, 119, 104, 97, 116, 65, 115, 10]).into(); println!("{:?}", (pc, mem));
依赖关系
~1.5MB
~35K SLoC