10 个版本 (6 个重大更新)
0.7.0 | 2022 年 9 月 12 日 |
---|---|
0.6.1 | 2021 年 4 月 19 日 |
0.6.0 | 2020 年 9 月 16 日 |
0.5.0 | 2020 年 2 月 18 日 |
0.2.2 | 2019 年 2 月 19 日 |
#50 in 模拟器
每月 26 次下载
46KB
938 行
brainhug
brainhug
是一个用于将 brainfuck 代码解释为其他任何语言的 crate
当前支持的编程语言包括
- C
- C++
- C#
- Python
- Golang
- Haskell
- Lua
- JavaScript
为什么叫 brainhug?
灵感来源于 链接
用法
将以下内容添加到您的 Cargo.toml
[dependencies]
brainhug = "*"
并添加到您的 crate 根目录
extern crate brainhug;
use brainhug::Lang;
贡献
阅读 贡献指南 获取详细信息
示例
extern crate brainhug;
use brainhug::Lang;
fn main() {
// will print `Hello World!`
let input = "++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.";
// `brainhug::generate` will generate a `String`
println!("{}", brainhug::generate(Lang::C, input));
}
它将生成
#include "stdio.h"
int main() {
char tape[20000] = {0};
char *ptr = tape;
*ptr += 8;
while (*ptr) {
ptr += 1;
*ptr += 4;
while (*ptr) {
ptr += 1;
*ptr += 2;
ptr += 1;
*ptr += 3;
ptr += 1;
*ptr += 3;
ptr += 1;
*ptr += 1;
ptr -= 4;
*ptr -= 1;
}
ptr += 1;
*ptr += 1;
ptr += 1;
*ptr += 1;
ptr += 1;
*ptr -= 1;
ptr += 2;
*ptr += 1;
while (*ptr) {
ptr -= 1;
}
ptr -= 1;
*ptr -= 1;
}
ptr += 2;
putchar(*ptr);
ptr += 1;
*ptr -= 3;
putchar(*ptr);
*ptr += 7;
putchar(*ptr);
putchar(*ptr);
*ptr += 3;
putchar(*ptr);
ptr += 2;
putchar(*ptr);
ptr -= 1;
*ptr -= 1;
putchar(*ptr);
ptr -= 1;
putchar(*ptr);
*ptr += 3;
putchar(*ptr);
*ptr -= 6;
putchar(*ptr);
*ptr -= 8;
putchar(*ptr);
ptr += 2;
*ptr += 1;
putchar(*ptr);
ptr += 1;
*ptr += 2;
putchar(*ptr);
}
许可证
许可协议
- MIT 许可协议 (LICENSE.md 或 http://opensource.org/licenses/MIT)