BrainfuckXT
BrainfuckXT is an extension to Brainfuck by User:KryptonX. BrainfuckXT is a compiled language targeting the .NET Framework. Changes have not been made to Brainfuck syntax and functions. Brainfuck code is valid BrainfuckXT code. Both can be used in unison. Features have been added to make the language more powerful, although BrainfuckXT does not make commercial grade software. Nonetheless, useful daily applications can be made. A compiler can be obtained from here and the source from my github.
Internal data table (values with an * are BrainfuckXT only)
Feature | Description |
---|---|
putchar | Supports the printing of characters. |
100,000 ASCII Character slots | 100,000 separate data values can be stored each in their own cell. |
Increment | Increment slot values. |
Decrement | Decrement slot values. |
Getchar | Store user input into selected ASCII slot. |
*Getline | Store user input into selected string slot. |
*30,000 string slots | BrainfuckXT supports strings, and can store 30,000 of them simultaneously. |
*Files | BrainfuckXT handles the I/O of files. |
*Memory Addresses | Print the address in memory of the selected ASCII character slot. |
*String indexing | 'nuff said. |
*Conditions | Execute a block of code if a condition is true or false. |
BrainfuckXT Commands (added)
Command Symbol | Purpose |
---|---|
@ | Prints the memory-address of character in current ASCII slot. |
& | Passes user-input (line) to currently selected string slot. |
$ | Print selected string. |
{} | Manually set string values. |
: | Clear string and add selected ASCII character. |
; | Add selected ASCII character to currently selected string (+=). |
* | Increment indexing integer. |
~ | Decrement indexing integer. |
| | Print character using indexing integer as index for selected string. |
# | Open file for reading (selected string slot) and save file text to the next slot. |
Conditions
BrainfuckXT has two condition statements: ? and !. If the current ASCII slot is equal to 0, the code between the two ?'s will be executed. If the current ASCII slot is not equal to zero, the code between the !'s will be executed. These should not be nested.
Examples
?++.?
In the example above, the selected ASCII slot is equal to 0. The "++." will be executed.
+!+.!
In the example above, the selected ASCII slot is not equal to 0. The "+." will be executed.
Syntax Changes
Although I made it a point to retain most of Brainfuck's original syntax, one major change was made. Loops; they work in the exact same way except that loops CANNOT be nested in BrainfuckXT.