It's not a mistake it's an esolang
- The title of this article is not correct because of technical limitations. The correct title is actually it's not a mistake ✨it's an esolang✨.
it's not a mistake ✨it's an esolang✨ (shortened: INAMIAE) is a fan programming language made by IkenusDisnem (talk) with its usage to parody the it's not a mistake ✨it's a masterpiece✨ quote said by JellyBean. It is also made to 'remove the it's not a mistake ✨it's a masterpiece✨ spam'. The inspiration came when he/she was watching a JellyBean video and a sudden idea came in his/her brain to make a programming language about it's not a mistake ✨it's a masterpiece✨.
Syntax
before you write a command, you first need to write it in the .iam
file extension
Basics
every command in INAMIAE always starts with:
it's not
this is an example output command without its arguments:
it's not JellyBean
to write an argument, simpily write a literal or the name of a variable next to the command. To write a literal, write it's a or it's an and the value of the litteral enclosed with ✨ if it's a string, ⭐ if it's a number, boolean or null. This is an example of a string literal argument:
it's not JellyBean ✨it's a String✨
This is an example of a number literal argument:
it's not JellyBean ⭐it's a 123456⭐
This is an example of a boolean literal (yes for true, no for false):
it's not JellyBean ⭐it's a yes⭐
This is an example of a null literal:
it's not JellyBean ⭐it's a void⭐
This is an example of a variable as an argument (Note that the variable has to be declared first):
it's not JellyBean variableName
To write more than 1 arguments, use and to seperate the arguments
it's not a minecraft PNGtuber ✨it's a string✨ and ⭐it's a yes⭐
Comments
simply put the comment between 2 parentheses
(This is a comment)
Variables
to declare/set a variable, the first argument needs to be the position of the cell on a tape. the second argument is the value, the third is the operation (Note that you cannot have 2 variables on one location):
it's not variableName ⭐it's a 0⭐ and ✨it's a value✨ and ✨it's an overwrite✨
Here are the lists of variable operations:
Operation Name | What it does |
---|---|
overwrite | overwrites the current value of the cell |
concatenate | concatenates the cell's value (string) with another string |
ASCII | turns into ascii character if number is given, ascii code if string is given |
addition | adds the cell's value (number) with another number |
subtraction | subtracts the cell's value (number) with another number |
multiplication | multiplies the cell's value (number) with another number |
division | devides the cell's value (number) with another number |
division but returns the remainder instead of the quotient | performs a modulo operation with the cell's value (number) to another number |
compare equalness | equivalent to the == operation in other programming languages |
compare unequalness | equivalent to the != operation in other programming languages |
compare greaterness | equivalent to the > operation in other programming languages |
compare greatness with equalness as well | equivalent to the >= operation in other programming languages |
compare lesserness | equivalent to the < operation in other programming languages |
compare lessness with equalness as well | equivalent to the <= operation in other programming languages |
casting | casts the value's datatype to the cell's value |
Commands
Here are the list of commands in INAMIAE
Command Name | How to write it | Amount of arguments | What it does |
---|---|---|---|
ENDPROGRAM | it's not a mistake |
1 (string) | Ends the program without an error if the argument is ✨it's a masterpiece✨ |
OUTPUT | it's not JellyBean |
1 (any) | Outputs the argument into the console |
INPUT | it's not an ordinary PNGtuber |
1 (boolean) | will store input as string in '__JELLY_INPUT if argument is true, else will store input as number in '__JELLY_INPUT |
DECLARE_JUMP_LABEL | it's not an ordinary game |
1 (string) | will declare a label to jump to |
GOTO_JUMP_LABEL | it's not a minecraft PNGtuber |
2 (String and a Boolean) | will jump into the given label if the given boolean is true |
Built-in variables
Here are some variables that are built into the compiler:
Variable Name | Value that it stores | Description |
---|---|---|
'__JELLY_INPUT | whatever the input's value is | Used by the INPUT command to store the input |
'__JELLY_PI | the value of PI | Because someone might need it |
Some Examples
A Truth-machine program
(A Truth-machine) (We first get input) it's not an ordinary PNGtuber ⭐it's a no⭐ (Comparison time) it's not comparison ⭐it's a 0⭐ (position) and ⭐it's a 1⭐ (value) and ✨it's an overwrite✨ (operation) it's not comparison ⭐it's a 0⭐ and '__JELLY_INPUT and ✨it's a compare equalness✨ (jumps to the part we print 1 if comparison is true) it's not a minecraft PNGtuber ✨it's a pain and suffering✨ and comparison (the part we print 0) it's not JellyBean ⭐it's a 0⭐ (end program) it's not a mistake ✨it's a masterpiece✨ (the part we print 1) it's not an ordinary game ✨it's a pain and suffering✨ it's not JellyBean ⭐it's a 1⭐ it's not a minecraft PNGtuber ✨it's a pain and suffering✨ and ⭐it's a yes⭐