https://github.com/neverrare/brain_flak_macro
Brain Flak macro in rust
https://github.com/neverrare/brain_flak_macro
brain-flak macro rust
Last synced: about 1 year ago
JSON representation
Brain Flak macro in rust
- Host: GitHub
- URL: https://github.com/neverrare/brain_flak_macro
- Owner: neverRare
- License: mit
- Created: 2020-08-23T02:24:14.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2022-04-11T03:36:38.000Z (about 4 years ago)
- Last Synced: 2025-02-28T05:57:58.900Z (over 1 year ago)
- Topics: brain-flak, macro, rust
- Language: Rust
- Homepage: https://crates.io/crates/brain_flak_macro
- Size: 20.5 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Brain Flak Macro
Write [Brain-Flak] code inside rust. You can pass a vector for input. The `brain_flak` macro will expand to stack manipulation.
```rust
use brain_flak_macro::brain_flak;
let mut vec: Vec = vec![20, 5];
brain_flak! { &mut vec =>
// multiplication
([({}<([({}(<()>))<>](<()>))<>>)<>]){({}[()]<(({})<({}{})>)>)<>}{}{}<>{}{}{}<>
}
assert_eq!(vec![100], vec);
```
## Why
I was about to make [brainfuck macro] but it already exist. A random guy from some random discord server suggested Brain-Flak instead. It's choice of using balanced brackets make it easy enough for just using `macro_rules` (No).
[Brain-Flak]: https://esolangs.org/wiki/Brain-Flak
[brainfuck macro]: https://crates.io/crates/brainfuck_macros