BWTFN

From Esolang
Jump to navigation Jump to search

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.