Snakel

Snakel is an alternative universe version of Python created in 1989 by Tolly Edd in the Gaia universe
Syntax
Every program starts with a definition of a "main" function. To define one, you can do this:
 1: def name[arguments]; !Used for argumented functions
 2:     ignore !"ignore" will exit the function
 3: def name:none; !Used for argumentless functions
 4:     ignore
translated into python:
def name(arguments):... def name():...
You can also do output (with tell[]) and input (with user):
 1: def main:none;
 2:     tell["anything here"]
 3:     user !This command has no arguments at all
translated into python:
print("""anything here""")
input()
And also, the strings in Snakel are really just multi-liners:
 1: def main:none;
 2:     tell["multi
 3: line"]
translated into python:
print("""multi
line""")
We already know that "ignore" goes to the end of the function's body.
But did you know that you can catch errors by also using test?
 1: test:1/0 !Emit's a ArithmeticError
 2: ignore ArithmeticError:tell["inf"] !Ignores the error and executes the ignore statement
 3: end
translated into python:
try:1/0
except:print("""inf""")
exit()
The Snakel conditionals are built almost the same as the rust's case statements
 1: num i=0
 2: if i=0(tell[0]) | i=1(end) | tell[3]
translated into python:
i:int=0 if i==0:print(0) elif i==1:exit() else:print(3)
Errors
- This is still a work in progress. It may be changed in the future.
If you make an error in the code (for example putting an undefined variable into the code) in a Snakel interpreter. Then the Terminal (or Emiter as it's called in the Gaia universe) will emit an error and will explain and show where you made a mistake
TypeError
Using a wrong type in a variable
code:
 1: !for example
 2: num a="eso"
emiter:
 Current operation stopped
 Error type:TypeError
 At what line: 2
 Explanation:
 2: num a="eso"
          -----
 Wrong value type. Cannot assign num to str
Specifying an undefined type to a variable
code:
 1: int i=user
emiter:
 Current operation stopped
 Error type:TypeError
 At what line: 1
 Explanation:
 1: int i=user
    ---
 Invalid type. "int" is not a Type
Removing an entry that is not on the list
code:
 1: l=["H","I"]
 2: pop(l,"!")
emiter:
 Current operation stopped
 Error type:TypeError
 At what line: 2
 Explanation:
 2: pop(l,"!")
          ---
 Pop non-related entry from list. "!" is not an element on list "l"
SyntaxError
Using anything that is not a tab or a space as indentation
code:
 1: def main:none;
 2: ;tell["how"]
emiter:
 Current operation stopped
 Error type:SyntaxError
 At what line: 2
 Explanation:
 2: ;tell["how"]
    ^
 Invalid indentation. A tab or spaces must be used as the indentation, ";" was used instead
Use a not-defined varible
code:
 1: def main:none;
 2:  tell[code]
emiter:
 Current operation stopped
 Error type:SyntaxError
 At what line: 2
 Explanation:
 2:  tell[code]
          ----
 Invalid variable. No variable by the name of "code" was mentioned
Examples
Hello, world!
 1: def main:none;tell["Hello, world!\n"]
translated into python:
print("Hello, world!")
Cat program
 1: def main:none;tell[user]
translated into python:
print(input())
Truth-machine
 1: def truth[num[i]];
 2:     if i>0;ignore | tell[0];end
 3: def main:none;
 4:     truth[user]
 5:     while 1:tell[1]
translated into python:
def truth(i:int):
    if int(i)>0:return
    else:print(0);exit()
truth(input())
while 1:print(1,end="")
A+B Problem
 1: def APB [num[a,b]];tell[a+b]
 2: def main:none;APB[7,4]
translated into python:
def APB (a:int,b:int):print(a+b) APB(7,4)