An interpreted programming language, implementing the concepts of rules and containers. The language is not finished yet, To-Do
any
- all types
undefined
- the type of null
int
- short for integer, a whole number (+/-)
float
- short for floating point number, a decimal number (+/-)
bool
- short for boolean, one bit (true/false)
str
- short for string, a string of characters
vec
- short for vector, a sequence of values
obj
- short for object, a table of keys and values
proc
- a procedure
rule
- a rule
container
- a container
union
- a set of types which are included
scission
- a set of types which are excluded
rule count <- n
n is int
n >= 0
A rule making sure a that the given value is of type int
and not negative
container math
global number = int|float
var pi = 3.141
proc abs <- x: number
return x if x >= 0 else -x
A container called math
containing the global type number
, the variable pi
and the procedure abs
. These can be accessed by using the field operator like this: math.pi
for the variable pi
Even though the language is already functional, it is far from being where I want it. So here are some To-Dos. If anyone wants to help with the language, contact me :)
- Self procedures for vector operations (
vec.push
,vec.pop
,vec.clear
, ...) - Arguement collector
proc test <- ...
- String creation alternatives
- Lambda Functions
x -> x * 2
- Error handeling
- error value type
throw
statementtry ... catch ...
statement
- Enums?
- OOP features
- Rust macros for value and type generation
- Built-in procedures and containers
- types
byte
, int from0
to255
count
, int bigger than0
- io
stdin
,stdout
,stderr
?write <- file: file_obj, text: str
- http
get <- url: str
post <- url: str, data: obj|vec[byte]|file_obj
put <- url: str, data: obj|vec[byte]|file_obj
- lang (the language itself: parser, lexer, ...)
- types
- VSCode language extension
- Syntax highlighting
- Error display
Gmail - vintendo.games@gmail.com
Discord - sty#8189