brainhug
is a crate that is used to interpret brainf*ck code to any other language
Inspired from link
Add this to your Cargo.toml
:
toml
[dependencies]
brainhug = "0.2.1"
and this to your crate root:
rust
extern crate brainhug;
use brainhug::Lang;
```rust 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));
} ```
```c
int main() { char tape[20000] = {0}; char *ptr = tape;
++*ptr;
++*ptr;
++*ptr;
++*ptr;
++*ptr;
++*ptr;
++*ptr;
++*ptr;
while (*ptr) {
++ptr;
++*ptr;
++*ptr;
++*ptr;
++*ptr;
while (*ptr) {
++ptr;
++*ptr;
++*ptr;
++ptr;
++*ptr;
++*ptr;
++*ptr;
++ptr;
++*ptr;
++*ptr;
++*ptr;
++ptr;
++*ptr;
--ptr;
--ptr;
--ptr;
--ptr;
--*ptr;
}
++ptr;
++*ptr;
++ptr;
++*ptr;
++ptr;
--*ptr;
++ptr;
++ptr;
++*ptr;
while (*ptr) {
--ptr;
}
--ptr;
--*ptr;
}
++ptr;
++ptr;
putchar(*ptr);
++ptr;
--*ptr;
--*ptr;
--*ptr;
putchar(*ptr);
++*ptr;
++*ptr;
++*ptr;
++*ptr;
++*ptr;
++*ptr;
++*ptr;
putchar(*ptr);
putchar(*ptr);
++*ptr;
++*ptr;
++*ptr;
putchar(*ptr);
++ptr;
++ptr;
putchar(*ptr);
--ptr;
--*ptr;
putchar(*ptr);
--ptr;
putchar(*ptr);
++*ptr;
++*ptr;
++*ptr;
putchar(*ptr);
--*ptr;
--*ptr;
--*ptr;
--*ptr;
--*ptr;
--*ptr;
putchar(*ptr);
--*ptr;
--*ptr;
--*ptr;
--*ptr;
--*ptr;
--*ptr;
--*ptr;
--*ptr;
putchar(*ptr);
++ptr;
++ptr;
++*ptr;
putchar(*ptr);
++ptr;
++*ptr;
++*ptr;
putchar(*ptr);
} ```
Licensed under