【文件属性】:
文件名称:brainfuck:Clojure Brainfuck口译员
文件大小:4KB
文件格式:ZIP
更新时间:2021-05-18 19:59:31
Clojure
脑干
令人难以置信的解释器库。 首先将Brainfuck代码解析为简单的AST。 AST执行会不断扩充包含寄存器单元和指向当前位置的指针的虚拟机。
Brainfuck的输入和输出尊重clojure的*in*和*out* ,例如:
( with-out-str
( with-in-str " foobar "
( run " -,+[-.,+] " ))) ; ; #=> "foobar"
AST是向量的简单列表,包含一个或两个成员。 第一个成员是代表操作的字符,第二个成员仅对\[操作存在,并包含分支的代码。
AST解释器使用两个键来增强实现为clojure持久性哈希映射的虚拟机:
reg :任意宽度(根据需要增长)寄存器单元
pos :当前像元偏移
因此,初始虚拟机定义为:
{ :reg [ 0 ]
:pos 0 }
该库导出三个函数:
parse :给定输