VaginaFuck is an interpreter written in c++ consisting of 10 operations (as for now), adopting some of the features of c++, notably the fstream file handling that supports only write mode. This project’s goal is to add more syntaxes so that you can create a program with ease.
VaginaFuck NOW SUPPORTS UNICODE! Yes! You can write your own program that can output any of your language (Whether it is Chinese, Japanese, Cyrilic, Arabic, and many other).
It is so hard to find this feature in other portals since they'd just working only on ascii.
This interpreter can be expanded with additional syntaxes, but expected that the development will be slow.
Character | Explanation | In Other Words |
> | increment the data pointer | Move the cursor one cell right. |
< | decrement the data pointer | Move the cursor one cell left. |
+ | increment the byte at the data pointer. | Increase the value of the current cell by 1 |
- | decrement the byte at the data pointer. | Decrease the value of the current cell by 1 |
* | Multiply the byte at the data pointer | Multiply the value of the current cell by 2 in ASCII and 4 in Unicode, this is useful for mapping larger values in unicode. |
. | output a character, the character value of which being the byte at the data pointer. | Write the character of the current cell on screen / to file |
@ | output a character; but this time, it generates the fixed name “out.vfto” file (extension name “vfto” means VaginalFuckTextOutput) and it writes the character. | Write the character of the current cell directly on the provided file |
, | accept one byte of input, storing its value in the byte at the data pointer. | Input a byte and store it in the current cell. |
[ | if the byte at the data pointer is zero, then instead of moving the instruction pointer forward to the next command, jump it forward to the command after the next ] command. | "While" the current cell is nonzero, perform the statements between the brackets. |
] | if the byte at the data pointer is nonzero, then instead of moving the instruction pointer forward to the next command, jump it back to the command after the previous [ command. | End of a while loop |
value, character or character value refers to both ASCII and UNICODE depending on the version if we talk about printing a string
The most convenient way of outputting wide variety of characters with ease. This function displays the character and the assigned value in hexadecimal and decimal value as it is hard to interpret a specific character with values up to 80,000 (depending on your system). You can use this as reference together with your preferred UNICODE chart/list for correct character interpretation.
Compilation:
g++ ascii.cpp -o VaginaFuck
g++ utf8.cpp -o VaginaFuck
Usage:
./VaginaFuck-x.x filename.bf
You can download a two variant binary executable file (ASCII and UNICODE) at the right, in the Release section.
I, the maintainer of this interpreter forked from the source below is not a professional programmer, so I cannot address some of the complicated concepts or ideas of this project.
This source code is also available in Gitee, a Github-like platform in Mainland China. It's documentation is translated in Simplified Chinese targeted for local chinese users.
Look Here: https://gitee.com/ColtonSilvaonKnoxKontor/VaginaFuck (as for now, it was blocked for censorship reason)
All of the source code and other texts here are came from different sources, hence I will give the proper credits to the following:
- Brainfuck for Dummies DOCX document "2019-10-23" | https://docs.google.com/document/d/1M51AYmDR1Q9UBsoTrGysvuzar2_Hx69Hz14tsQXWV6M/edit
- https://github.com/texus/Brainfuck-interpreter for the unmodified c++ code
Payment account is not available because of the slow process of National ID ; I'd just added here just in case