yrizos/brainfart

一个过度设计的 Brainfuck 解释器。

安装: 11

依赖: 0

建议者: 0

安全: 0

星星: 8

关注者: 2

分支: 0

开放性问题: 0

类型:解释器

0.2.0 2019-06-01 23:50 UTC

This package is auto-updated.

Last update: 2024-08-23 23:34:27 UTC


README

Brainfart 是用 PHP 编写的 Brainfuck 解释器

试试看

./bin/brainfart ./tests/scripts/sort.bf "100 5 99 200" 

语法

内存操作

  • > 将内存指针向右移动。
  • < 将内存指针向左移动。
  • + 将内存指针处的字节值加一。
  • - 将内存指针处的字节值减一。

输入/输出操作

  • . 输出内存指针处的字节。
  • , 接受一个字节输入并将其存储在内存指针处。

循环

[ 如果内存指针处的字节为零,则跳转到匹配的 ] 之后的命令。

命名序列

:<alpha><brainfuck>;<alpha> 的出现替换为 <brainfuck>

mf5mf5[>mf5++>mf5mf5>+++>+<<<<-]>++.>+.mf5++..+++.>++.<<mf5mf5mf5.>.+++.mb3mb3.mb3mb3--.>+.>.:mf5+++++;:mb3---; 

输出结果:Hello World!\n(希望如此)

解释器指令

!! 将输入与命令分开。如果存在,则将其余部分解释为逗号分隔的输入。

5,10,15,20!!>>,[>>,]<<[[-<+<]>[>[>>]<[.[-]<[[>>+<<-]<]>>]>]<<]

@@ 将关闭窥视孔优化。这可能或可能不会影响性能。

$$ 将强制输出字符串,而不是默认的数组。

其他

  • ~ 睡眠的时间与内存指针处的字节值相同。这肯定会降低性能。

设计

窥视孔优化

连续的类似内存指针命令将被分组。 +++++ 将被解释为一个命令,该命令将内存指针处的字节值增加五。

这可能或可能不会提高性能。

错误

可能有很多错误。它们都是故意的,使 Brainfart 的编码更具挑战性和趣味性。 </lie>