Everything you possess of skill, and wealth, and handicraft, wasn't it first merely a thought and a quest? - Rumi
Rumi is a WIP compiler, that's all there is to it.
Install llvm (>=8.0)
, bison
and flex
then run make.
Run ./rum test.rum
and then do gcc out.o lib.c
, your compiled file is available at a.out
.
As a shortcut, you can run make test
.
As of now, rumi
is just a proof of concept. There is almost no error reporting and every feature is experimental. If you ever ran into any problem, while coding in rumi
or while developing it, try these:
Run ./rum test.rum > test.ll
followed by lli test.ll
.
Run gdb rum
followed by run test.rum
. You can try the following commands:
break classname::methodname
break filename lineno
bt
(back trace)print EXPR
(prints value of EXPR)
- Variables
- Functions
- Expressions
- Varargs
- String literals
- if else
- while
- structs
- better vararg support
- pointers
- better array support
- Add rumi executable that allows interpreting
.rum
files (instead of compiling) - Add compiler flag support (
-o
for example) - Allow multiple file compile at the same time
- Integrate linker into the compiler