是对BrainFuck的拙劣模仿
你可以尝试用他写出HelloWorld
使用c [path] 编译.bs文件
使用run [path] 运行编译后的.bns文件
必须在程序的头部,用于指定输出的字符编码。
-
A : ASCII
-
U : UTF-8
-
B : Base64
需要注意声明会被计算为两个指令,使用F打点时往往值会比预期大2就是因为此特性
当前Byte的值增加1。
当前Byte清空,
需要注意这实际为 语法糖,编译时转换为:LX-FR-SL-JY-R,会覆写唯一独立Byte中的值
注:当指针小于0时指针将从主缓冲的末尾开始倒数
当前Byte的值减少1。
将指针向左移动一位。
将指针向右移动一位。
标记这个指令在代码中的的位置到当前Byte中。
如果当前Byte的下一位不为0,则跳到当前Byte值所对应的指令位置继续执行。
需要注意的是,值所指向的指令本身不会被执行。
缓存当前Byte的值到唯一的独立Byte中。
读取独立Byte的值写到当前Byte。
将当前Byte的值存进A-Buffer尾部。
清空A-Buffer。
获取输入的字串,将当前Byte作为index,输入字串到B-Buffer对应位置中。
将当前Byte作为index,读取A-Buffer中对应的值覆盖当前Byte。
将当前Byte作为index,读取B-Buffer中对应的值覆盖当前Byte。
将A-Buffer中的数据根据指定的字符编码一次性输出。
指令 | ASCII | 编码 |
---|---|---|
1 | 49 | 0x0 |
S | 83 | 0x1 |
L | 76 | 0x2 |
R | 82 | 0x3 |
F | 70 | 0x4 |
J | 74 | 0x5 |
X | 88 | 0x6 |
Y | 89 | 0x7 |
O | 81 | 0x8 |
C | 67 | 0x9 |
I | 73 | 0xA |
A | 65 | 0xB |
B | 66 | 0xC |
P | 80 | 0xD |
- | 45 | 0xE |