Gdy Brainfuck
Jump to navigation
Jump to search
Gdy-Brainfuck is a derivate of Brainfuck but with ABCDEFG.
Created by User:Gadai on 5/18/2023.
Commands
Brainfuck | GdyBrainfuck | C/C++ |
---|---|---|
+
|
a | p[i]++; |
-
|
b | pi[i]--; |
.
|
d(text) e(number) | printf("%s",t); printf("%d",pi[i]); |
,
|
None | |
<
|
A | i++; |
>
|
B | i--; |
None
|
c | t[c]=xxx; |
None
|
f | p[i+1]=p[i-1]+p[i]; |
None
|
F | p[i+1]=p[i-1]*p[i]; |
None
|
g | p[i+1]=p[i-1]-p[i]; |
None
|
G | p[i+1]=p[i-1]/p[i]; |
[
|
None | |
]
|
None |
Examples
Hello, World!
gbf1 cHceclclcoc,c cWcocrclcdc!c dC
1+1=2
gbf1 c1c+c1c=dC aaAaafAe
Interpreter
Interpreter in C++.
#include <fstream> #include <iostream> #include <string> #include <vector> int main(int argc, char **argv) { std::vector<char> run_list; int power = 0; int int_cp = 0; std::vector<float> fl_p; std::vector<char> str_p; for (int i = 0; i < 200; i++) { fl_p.push_back(0); } std::ifstream file(argv[1]); int count = 0; if (file.is_open()) { char getstr; while (file.get(getstr)) { run_list.push_back(getstr); count++; } file.close(); for (int i = 0; i < count; i++) { if(run_list[i]=='g' && run_list[i+1]=='b' && run_list[i+2] =='f' && run_list[i+3] =='1' && run_list[i+4] =='\n' && power == 0){ power = 1; } if(power == 1){ if (run_list[i]=='a'){ fl_p[int_cp]++; } else if (run_list[i]=='b'){ fl_p[int_cp]--; } else if (run_list[i]=='A'){ int_cp++; } else if (run_list[i]=='B'){ int_cp--; } else if (run_list[i]=='c'){ str_p.push_back(run_list[i+1]); i++; } else if (run_list[i]=='d'){ for (char c : str_p) { std::cout << c; } } else if (run_list[i]=='e'){ std::cout << fl_p[int_cp]; } else if (run_list[i] == 'C'){ str_p.clear(); } else if (run_list[i] == 'f'){ fl_p[int_cp+1]=fl_p[int_cp-1]+fl_p[int_cp]; } else if (run_list[i] == 'F'){ fl_p[int_cp+1]=fl_p[int_cp-1]*fl_p[int_cp]; } else if (run_list[i] == 'g'){ fl_p[int_cp+1]=fl_p[int_cp-1]-fl_p[int_cp]; } else if (run_list[i] == 'G'){ if(fl_p[int_cp] == 0){ printf("[ERR]\tIt is impossible to divide by 0."); break; } fl_p[int_cp+1]=fl_p[int_cp-1]/fl_p[int_cp]; } } } } else { std::cout << "[ERR]\tCould not open file" << std::endl; } return 0; }
Gdy_Brainfuck2
Currently under development
Features to be added: 1. Repetition 2. User input 3. Command (cmd.exe) execution