EsoFur

EsoFur is a joke programming language created by User:TaserTheFox, partially inspired by FurASM
== Commands ==
Parameters in [brackets] are required, and (parenthesis) are optional.
 Commands
Command 	What It Does
OwO What's This? 	Start Of Program
QwQ 	End Of Program
Notices Your [Str] 	Declares a Variable
And Leashes It 	Sets the variable to be local
[Var 1] Pounces On [Var 2] 	Sets the value of [Var 2] to [Var 1]
[Var] Gets Canceled 	Clears [Var]
*Starts Roleplaying* 	Start of loop
*Stops Roleplaying Because Of [Var]* 	End of loop; Exits if [Var] is less than 0
[Cond] Nuzzles [Var] 	If [Cond] doesn't returns 0, Jump to Marking [Var] if its a string, Jump [Var] lines down if its an int
Marks [Str] 	Leaves a Marking with label [Str]
Howl [Var] 	Prints [Var]
Awoo [Var 1] (At [Var 2]) 	Prints char if [Var] is an int; Sends the result to [Var 2] instead of printing
Muzzles 	Starts a comment line
Maws 	Start of multi-line comment
Paws 	End of multi-line comment
[Var] Suits Up 	Changes [Var] to a list
[Var] Starts A Furpile 	Changes [Var] to a Furpile
Sew [Var] Onto [List] 	Appends [Var] to [List]
[Var] Joins The Pile At [Furpile] 	Appends [Var] to [Furpile]
Look! [*Var] Joined The [Var 2] 	Concatenates [*Var] to [Var 2]
Boop The User For [Var] 	Waits for console input and sets it to [Var]
[Var 1] Inflates By [Var 2] 	Add [Var 2] to [Var 1]
[Var 1] Pays [Var 2] 	Subtract [Var 2] from [Var 1]
[Var 1] Breeds By [Var 2] 	Multiples [Var 1] by [Var 2]
[Var 1] Baps [Var 2] 	Divides [Var 2] by [Var 1]
[Var 1] Deflates By [Var 2] 	Modulus [Var 1] by [Var 2]
[Var 1] Gets Vored By [Var 2] 	Sets [Var 1] to log base [Var 2] of [Var 1]
[Var 1] Hyper-Inflates By [Var 2] 	Raises [Var 1] to the power of [Var 2]
[Var] Transforms Into [Type] 	Changes the type of [Var] to [Type]
[List]'s Raffle Winner Is [Var] 	Pops the last element in [List] and assigns it to [Var]
Is [Var] In [Furpile]? 	Returns 0 if [Var] is in [Furpile]
Escort [Var 1] To [Var 2] From [List/Furpile]	Removes [{Furpile member/List index}] from [List/Furpile] and assigns it to [Var 2]
Measure [Var 1]'s Tail Length To [Var 2] 	Assigns the length of [Var 1] to [Var 2]
== Syntax ==
EsoFur syntax requires that every keyword have its first letter be capitalized. 
To declare a string, use "Double Quotes", single quotes are invalid to create strings.
=== Errors ===
 Errors
Error 	Console Log
No start of program 	(empty)
No end of program 	UNENDING PAIN AND SUFFERING
Undeclared variable 	[Var] WASN'T NOTICED
Local variable called out of scope	LEASH TOO SHORT
Jump to unknown marking 	UNKNOWN MARKING: [Marking]
Invalid Casting 	TRANSFORMATION FAILED
No proper syntax 	SYNTAX ERROR
Start roleplay without end 	WHEN DOES IT EVER END
End roleplay without start 	WHEN DID IT EVER START
Popping of empty/non-list 	[Var] DIDN'T HAVE A RAFFLE
Adding duplicates to a Furpile 	WHOS THE FAKE ONE?
Unmatching Maws/Paws 	WHICH IS BETTER? PAWS OR MAWS?
Something is not in Title Case 	TAKE OFF YOUR FURSUIT HEAD I CAN'T HEAR YOU
== Examples ==
99 Bottles Of Beer in EsoFur.
 OwO What's This?
 Notices Your Beer
 99 Pounces On Beer
 Notices Your Text1
 Notices Your Text2
 Notices Your Text3
 Notices Your Temp
 " Bottles Of Beer On The Wall, " Pounces On Text1
 " Bottles Of Beer. Take One Down, Pass It Around, " Pounces On Text2
 " Bottles Of Beer On The Wall." Pounces On Text3
 *Starts Roleplaying*
 Look! Beer And Text1 And Beer And Text2 Joined The Temp
 Howl Temp
 Beer Pays 1
 Temp Gets Canceled
 Look! Beer And Text3 Joins The Temp
 Howl Temp
 Temp Gets Canceled
 *Stops Roleplaying Because Of Beer*
 QwQ
Truth Machine
 OwO What's This?
 Notices Your Input
 Boop The User For Input
 Input Nuzzles "1"
 Howl 0
 Nuzzles 5
 Marks "1"
 *Starts Roleplaying*
 Howl 1
 *Stops Roleplaying Because Of Input*
 QwQ
Fibb Sequence to User input
 OwO What's This?
 Notices Your Prev1
 Notices Your Prev2
 Notices Your Input
 Notices Your Curr
 Boop The User For Input
 0 Pounces On Prev1
 1 Pounces On Prev2
 0 Pounces On Curr
 *Starts Roleplaying*
 Howl Curr
 Curr Inflates By Prev2
 Prev1 Pounces On Prev2
 Curr Pounces On Prev1
 Input Pays 1
 *Stops Roleplaying Because Of Input*
 QwQ
== Notes ==
Furpiles is a lists that are Unordered, Unchangeable, and No duplicates
Labels are referred to as Markings, sometimes as Marks
== Implementation ==
A W.I.P implementation of Esofur in python is being worked on at https://github.com/TaserTheFox/EsoFur-Interpreter
Category:Joke_languages
Category:2022 Category:Languages Category:Thematic Category:Unimplemented