Disclaimer: This is made by me, at 14 so don't expect greatness
* This programming language operates on a single row of pixels in a bmp image.
* It has reserved keywords in the form of specific 24bit colours
* Variables are declared and initialized by referncing them outside a function call of course they cannot be one of the reserved colours
* Function calls consist of {[args],function} where the function is one of the afore mentioned keywords
* Some functions also allow the length of the function colour as an argument like in increment for example where arg 1 is incremented by the function colour length
* Of course these functions also allow for standard function calls
Bold functions allow their last argument to be the function colour length, this means that instead of {green,blue,increment} where blue is equal to 4, you can do {green,increment*4} where increment is repeated 4 times.
1. Increment - takes two arguments {arg1: colour to increment, arg2: value to increment by} #a249a4
2. Decrement - takes two arguments {arg1: colour to decrement, arg2: value to decrement by} #4a90e2
3. Print Char - takes one argument {arg1: ASCII character to print}#b7e61d
4. Print Int - takes one argument {arg1: integer to print} #7cd6d6
5. Multiply - takes two arguments {arg1: colour to multiply, arg2: value to multiply by} #ec277c
6. Divide - takes two arguments {arg1: colour to divide, arg2: value to divide by} #fffa4f
7. Jump - takes one argument {arg1: where to jump (starts counting at 1)} #6e120e
8. If Equal - takes four arguments {arg1: comparison left value, arg2: comparison right value, arg3: where to jump if true, arg4: where to jump if false} #00ff12
9. If Less Than - takes four arguments {arg1: comparison left value, arg2: comparison right value, arg3: where to jump if true, arg4: where to jump if false} #9aa6ad
10. If Greater Than - takes four arguments {arg1: comparison left value, arg2: comparison right value, arg3: where to jump if true, arg4: where to jump if false} #397463
11. Random Number - takes three arguments {arg1: colour to affect, arg2: range start (INCL), arg3: range end (EXCL)} #194d33
12. User Int Input - takes one argument {arg1: colour to set} #ad456e
13. User Char Input - takes one argument {arg1: colour to set} #887d3e
14. End Program - not a function but just a white pixel ends the program #ffffff
Functions that jump to a place (Jump and the if functions) jumps to an instruction, be it declaration of a variable or a function call, so jump to 2 of
r=65; {r,PRINTC};
would repeat{r,PRINTC};
Download the repository:git clone https://github.com/DASPELLER4/VisualFuck && cd VisualFuck
Compile the compiler:
make
Install:
sudo make install
To run a BMP:
vfc path/to/bmp