The Tomo programming language
builtins | ||
docs | ||
test | ||
.gitignore | ||
ast.c | ||
ast.h | ||
compile.c | ||
compile.h | ||
enums.c | ||
enums.h | ||
environment.c | ||
environment.h | ||
Makefile | ||
parse.c | ||
parse.h | ||
README.md | ||
structs.c | ||
structs.h | ||
tomo.c | ||
typecheck.c | ||
typecheck.h | ||
types.c | ||
types.h |
Tomo - Tomorrow's Language
Tomo is a programming language designed to anticipate and influence the language design decisions of the future.
func greeting(name:Text)->Text
greeting := "hello {name}!"
return greeting:title()
>> greeting("world")
= "Hello World!"
Check out the test/ folder to see some examples.
Dependencies
Tomo has a very small set of dependencies:
- The Boehm garbage collector for runtime garbage collection.
- libunistring for unicode string support.
- a C compiler
- and libc/libm, which should definitely already be installed.
Both of which should be available on your package manager of choice (for
example, pacman -S gc libunistring
).
Building
The Tomo compiler can be compiled with either GCC or Clang by running make
.
Running
You can run a Tomo program by running ./tomo program.tm
. By default, this
will use your environment's $CC
variable to select which C compiler to use.
If no C compiler is specified, it will default to tcc
(Tiny C Compiler),
which is exceptionally fast.