1 个不稳定版本
0.1.0 | 2021年1月28日 |
---|
#19 在 #esoteric
10KB
122 行
brainiac_22ccb748d608358e
brainiac_22ccb748d608358e 是使用 Rust 的 macro_rules 实现的 Brainfuck 奇异计算机语言的程序。
命名为 brainiac_22ccb748d608358e 是为了确保如果有其他更合适需求的 crate 需要使用 "brainiac" 这个名字,这个 "fun" crate 不会占用它的位置。
实现
Brainfuck 是一种相对简单的语言。
程序使用一个包含 30,000 个字节的带子初始化,起始索引为 0。
有 8 个可用的命令
>
: 将带子上的索引增加 1<
: 将带子上的索引减少 1+
: 将当前带子索引处的值增加 1-
: 将当前带子索引处的值减少 1.
: 将当前带子索引处的值输出到 stdout,
: 将 stdin 中的 u8 值分配给当前索引处的带子[
: 如果带子当前索引处的值是 0,则移动到匹配的 ']' 字符之后的第一个命令]
: 跳转到匹配的 '[' 字符
限制
由于 Rust 在宏中解析标记的方式,存在一些限制
>>
必须是> >
->
必须是- >
<<
必须是< <
<-
必须是< -
..
必须是. .
这确保了没有符号出现在无效的位置。
使用方法
使用方法只需将包添加到您的 Cargo.toml
清单中并导入 brainfuck 宏即可
use brainiac_22ccb748d608358e::brainfuck;
fn main() {
brainfuck! { [This does absolutely nothing except make the compiler do extra work.] }
}
特别感谢
感谢 Rust 宏的简易入门指南,它提供了 Rust 宏的简易入门方法,感谢维基百科的 Brainfuck 页面,它解释了该语言的规则,并提供了示例。