BWTFN
BWTFN, or Because Why The Fuck Not, is an esolang inspired off of the CopyPasta language created in 2019. BWTFN is only used for printing text, as that is the only thing it can do.
Why does it exist?
Because why the fuck not?!
Commands
open
This creates a variable that you can then add characters to.
close
This closes the variable that was previously created so that you can edit other variables or print them out.
add
This adds a character to an open variable using an ASCII code.
out
This prints a variable onto the console.
output
This prints a variable while creating a new line.
Usage
Each command takes one argument. The argument and the command are separated with a space. The open, close, out, and output commands take the name of a variable. The add command takes an ASCII value. If you want to add multiple of the same character into a variable, you can put an asterisk and then the number of times you want to add it. The out and output command can also take an asterisk and number if you want to print something multiple times.
Syntax
The following EBNF description applies to the language's grammar:
program := { command } ; command := "add" , asciiCode , [ cardinality ] | "close" , variableName | "open" , variableName | "out" , variableName , [ cardinality ] | "output" , variableName , [ cardinality ] ; cardinality := "*" , digit , { digit } ; variableName := letter , { letter } ; asciiCode := digit , [ digit , [ digit ] ] ; letter := "A" | ... | "Z" | "a" | ... | "z" ; digit := "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
Examples
Hello, World!
open helloworld add 72 add 101 add 108*2 add 111 add 44 add 32 add 87 add 111 add 114 add 108 add 100 add 33 close helloworld out helloworld
Print something 1000 times
open AAA add 65*3 close AAA output AAA*1000
Interpreter
- Common Lisp implementation of the BWTFN programming language.