Snakel

Snakel is a Gaian version of Python created in 1989 by Tolly Edd, with the goal being the language for beginers of programming in general
Syntax
Every program starts with a definition of a "main" function. However, it's not fully requierd to be used
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):
return None
def name():
return None
Fact: Just like in G#, if the main function has arguments, it will automaticly use the STDIN for the arguments of it
You can also do output (with tell[]) and input (with user):
1: def main:none;
2: tell["anything here"]
3: user !Important, 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""")
You can catch errors by using test and ignore
1: test:1/0 !Emits a ArithmeticError
2: ignore ArithmeticError:[tell["inf"]] !Executes the content in the ignore statement instead
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 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"
Using a non-existent variable
code:
1: tell[code]
emiter:
Current operation stopped
Error type:TypeError
At what line: 2
Explanation:
2: tell[code]
----
Invalid variable. "code" doesn't seem to exist at all
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 space(s) must be used as the indentation
Examples
Hello, world!
1: tell["Hello, world!\n"]
translated into python:
print("Hello, world!")
Cat program
1: tell[user]
translated into python:
print(input())
Truth-machine
1: def truth[num[i]];
2: if i>0(ignore)| tell[0];end
3: truth[user]
4: while 1:tell[1]
translated into python:
def truth(i:int):
if i>0:return None
else:print(0);exit()
truth(input())
while 1:print(1,end="")
A+B Problem
1: def main[num[a,b]];tell[a+b]
translated into python:
def main(a:int,b:int):print(a+b) main(int(input()),int(input()))
Compatibility
Snakel can't suport EVERY operating system due to some issues by either with hardware or by something else
Microsoft (yes that is their actual name)
| Method | Disk system hardware | "New" hardware | Moddern hardware |
|---|---|---|---|
| Official Snakel add-on | Only in computers that use the add-on slot | No as since it's meant to be different from the older hardwares | No as since it's built up from the "New" hardware |
| Using a coding extension of Snakel | No coding application that has extensions exists | Yes | |
| Using the "Beginner-Friendly Programming Tool" | No port of that exists | ||
| Using the codefree.com/recodefree.com website | Panels did not have built in internet | ||