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