TinyF
Jump to navigation
Jump to search
- Not to be confused with TinyBF.
TinyF is a brainfuck derivative created by Cursor AI and prompted by User:None1.
Specification
TinyF has the following commands:
>- Move the memory pointer to the right.<- Move the memory pointer to the left.+- Increment the memory cell at the pointer.-- Decrement the memory cell at the pointer..- Output the character signified by the cell at the pointer.,- Input a character and store it in the cell at the pointer.*- Multiply the current cell value by the next cell value.!- If the current cell value is zero, skip the next command.
Interpreter
Written in C++, generated by the Cursor AI.
#include <iostream>
#include <vector>
class TinyFInterpreter {
private:
std::vector<int> tape;
int ptr;
public:
TinyFInterpreter() : tape(30000, 0), ptr(0) {}
void interpret(const std::string& code) {
for (size_t i = 0; i < code.size(); ++i) {
switch (code[i]) {
case '>':
++ptr;
break;
case '<':
--ptr;
break;
case '+':
++tape[ptr];
break;
case '-':
--tape[ptr];
break;
case '.':
std::cout << static_cast<char>(tape[ptr]);
break;
case ',':
tape[ptr] = std::cin.get();
break;
case '*':
tape[ptr] *= tape[ptr + 1];
break;
case '!':
if (tape[ptr] == 0 && i + 1 < code.size()) {
++i; // Skip the next command
}
break;
}
}
}
};
int main() {
TinyFInterpreter interpreter;
std::string code;
std::cout << "Enter TinyF code: ";
std::getline(std::cin, code);
interpreter.interpret(code);
return 0;
}