Brainfu*k interpreter and REPL written in Rust🦀
bfbf-interprterbf-replbrainfuckbrainfuck-interpreterbrainfuck-replhacktoberfesthactoberfest-accepted
.github/workflows | ||
.idea | ||
archpackage | ||
assets | ||
screenshots | ||
src | ||
test_code | ||
.gitignore | ||
.gitmodules | ||
Cargo.toml | ||
LICENSE-MIT.txt | ||
LICENSE.txt | ||
README.md |
مترجم brainfu* k: مترجم بسيط من Brainfuc * K و REPL مكتوب في Rust 🦀
سمات
- قم بتشغيل كود brainfu * k من ملف 💫
- قم يسمح Brainfu * k الكود المباشر من REPL 🚀
- دعم أحرف UTF-8 بما في ذلك الرموز التعبيرية 😍 (اختياري)
- يمكنك التحكم في حجم المصفوفة 📏
تثبيت
- تثبيت crates.io:
cargo install bfy
- من aur:
yay -S bfy
الخيارات والحجج
جدول الخيارات
اختيار | وصف | إفتراضي |
---|---|---|
-h , --help |
طباعة معلومات المساعدة | |
-V , --version |
يطبع معلومات الإصدار | |
-f , --features |
الميزات الإضافية للتمكين القيم الممكنة:
|
غير متوفر |
-a , --array-size |
حجم المصفوفة | 30000 |
-w , --without-tiles |
لا تقم بطباعة المربعات (مثل رمز الخروج واسم الملف وما إلى ذلك) |
مساعدة خيار الإخراج
bfy --help
Brainfu*k interpreter and REPL written in Rust
Usage: bfy [OPTIONS] [SOURCE]
Arguments:
[SOURCE]
The brainfuck source code file to run (if not will be entered in REPL mode)
Options:
-f, --features <FEATURES>
Possible values:
- no-reverse-value:
If the value is you want decrement the value and the value is 0, don't set the value to 255, otherwise decrement the value. If the
value is you want increment the value and the value is 255, don't set the value to 0, otherwise increment the value. The alias are:
`nrv`
- reverse-pointer:
If the pointer at the end of the array, set the pointer to 0, otherwise increment the pointer. If the pointer at the beginning of the
array, set the pointer to the end of the array, otherwise decrement the pointer. The alias are: `rp`
- allow-utf8:
Allow the use of utf8 characters (32 bit), otherwise only 8 bit characters are allowed. Use this feature with caution because it
increases the cell size from 8 bits to 32 bits. It also allow you to use the emoji in your brainfuck code :D, This is if you can
preserve your mind so that you can access their digital value :). The `u32` in rust can only store values from 0 to 4294967295, but we
can only use 0 to 1114111 (0x10FFFF) for now. The alias are: `utf8`
-a, --array-size <ARRAY_SIZE>
The brainfuck array size
[default: 30000]
-w, --without-tiles
Dont print the tiles (e.g. exit code, file name, etc)
-h, --help
Print help information (use `-h` for a summary)
-V, --version
Print version information
أمثلة
bfy test_code/hello_world.bf
Hello world!
Successfully ran brainfuck source code from file: test_code/hello_world.bf
Exiting with code: 0
bfy -w test_code/hello_world.bf
Hello world!
bfy test_code/print_hi_yooo.bf
Hi yoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo!Successfully ran brainfuck source code from file: test_code/print_hi_yooo.bf
Exiting with code: 0
bfy -w test_code/print_hi_yooo.bf
Hi yoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo!
bfy test_code/like_cat.bf
ملاحظة: الإخراج ليس هو نفسه الإصدار الحالي للمترجم الفوري ، ولكنه مماثل لإخراج المترجم الفوري عندما أكتب الكود.
REPL
bfy # REPL mode
لكى يفعل
- أضف المزيد من الاختبارات
- أضف المزيد من الأمثلة
- قم بإنشاء منسق brainfu * k
- أضف تمييز بناء الجملة في REPL
- أضف الإكمال التلقائي في REPL
- دعم ميزة حجم الصفيف الديناميكي