1 个稳定版本
1.0.0 | 2022年5月14日 |
---|
1020 在 编程语言
26KB
416 行
blazefuck
一个闪电般的快速(交互式)Brainfuck 解释器,用 Rust 编写。
描述
一个小巧高效的 Brainfuck 解释器,具有 REPL 以便于快速在线评估
Brainfuck 是一种简单的神秘语言,具有最小化命令集,你可以在这里了解更多 信息。
入门
依赖项
- 安装适用于您的系统的 rustup 工具链。
安装
- 将 Cargo 的二进制目录添加到您的路径环境变量中
rustup 安装程序应该会为您完成此操作,如果没有,它应位于~/.cargo/bin
(Linux)或%USERPROFILE\.cargo\bin
(Windows)。 - 只需在终端中运行
cargo install blazefuck
即可安装,它会从 crates.io 安装。
执行程序
- 在提示符下键入
blazefuck
$ blazefuck
blazefuck 1.0.0 on windows, run with "-h" or "--help" for more information.
Use "cells" to show the cell stack and "exit" to exit the interpreter.
>>> _
然后您可以像以下那样使用正常的 Brainfuck 命令
> | 增加数据指针(指向下一个右边的单元)。 |
< | 减少数据指针(指向下一个左边的单元)。 |
+ | 增加数据指针处的字节(加一)。 |
- | 减少数据指针处的字节(减一)。 |
. | 输出数据指针处的字节。 |
, | 接受一个字节的输入,将其值存储在数据指针处的字节中。 |
[ | 如果数据指针处的字节为零,则不会将指令指针向前移动到下一个命令,而是将其跳转到匹配的 ] 命令之后的命令。 |
] | 如果数据指针处的字节非零,则不会将指令指针向前移动到下一个命令,而是将其跳转回匹配的 [ 命令之后的命令。 |
此外,cells
和 exit
分别用于显示当前的单元堆栈和退出 REPL。
- 或者可以使用
blazefuck [FILE]
指定源文件,一些示例可以在 这里 找到。
$ blazefuck hello.bf
Hello World!
$ _
- 可以按照以下方式指定一些标志
-d, --debug Shows the cell stack after every command
-s, --strict Activates strict mode
- 严格模式与正常模式有一些关键区别,启用它时,某些程序可能无法正常运行。
它- 不允许访问#1和#30000之间的任何单元格,正常模式会绕回到开始或结束。
- 不允许单元格数据超出0-255的范围,正常模式也会绕回。
从源码构建
- 克隆此存储库
$ git clone https://github.com/poopsicles/blazefuck
- 切换到新创建的目录
$ cd ./blazefuck
- 使用cargo编译
$ cargo build
- cargo将获取所需的依赖项,并在
./target/debug/blazefuck
处创建二进制文件
版本历史
- 1.0
- 首次发布
- 首次发布
许可协议
本项目采用MIT许可协议,更多详情请参阅此处。
依赖项
~3MB
~62K SLoC