FilesAndFolders!
Jump to navigation
Jump to search
FilesAndFolders! (FAF!) is a esoteric programming language created by LDRK11. FAF! isn't a normal esolang that you just pass a file for the interpreter to read. Instead FAF! as the name suggests, uses folders (and sometimes files). An interpreter in TypeScript is available on GitHub: https://github.com/ldrk11/FilesAndFolders.
Folder Structure
When FAF! reads a folder it gets sorted by alphabetical/numerical order. For example, if you had a folder like this:
SetValueStr
Hello World
Print
It wouldn't work because Print would run first. However if you had something like this:
1SetValueStr
Hello World
2Print
It would run SetValueStr first then Print would print it
Commands
0 Args means use as a file or empty folder
| Command | Description | Args (files/folders) |
|---|---|---|
| Prints the working value | 0 | |
| PrintAscii | Gets the working values ascii character and prints it | 0 |
| Input | Takes input and sets the working value to the result | 0 |
| InputNum | Takes input and sets the working value to the result (As number) | 0 |
| Pop | Pop most recent item in stack and sets it as the working value | 0 |
| Push | Push the working value to the top of the stack and emptys the working value | 0 |
| Delete | Same as Pop command but doesn't set the working value | 0 |
| Copy | Same as Push command but doesn't empty the working value | 0 |
| Duplicate | Duplicate the top value on the stack | 0 |
| Add | Pop and Add top 2 values on stack and sets the working value to the result | 0 |
| Subtract | Pop and Subtract top 2 values on stack and sets the working value to the result | 0 |
| Multiply | Pop and Multiply top 2 values on stack and sets the working value to the result | 0 |
| Divide | Pop and Divide top 2 values on stack and sets the working value to the result | 0 |
| Modulo | Pop and Modulo top 2 values on stack and sets the working value to the result | 0 |
| IfSkip | Skips past the next command unless the working value is negitave or 0 | Infinite |
| If | Runs code inside folder unless the working value is negitave or 0 | Infinite |
| Goto | Gets the number in the file then goes to the folder/file with that number | 1 |
| End | Ends program | 0 |
| SetValueStr | Sets working value to the file (As string) | 1 |
| SetValueNum | Sets working value to the file (As number) | 1 |
| Shift | Pops the top value of the stack and pushes to the bottom | 0 |
| NewLine | New line in console | 0 |
Examples
Cat
1Input 2Print
Truth Machine
1Input
2If
3Print
4Goto
3
3Print