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::methodnamebreak filename linenobt(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
.rumfiles (instead of compiling) - Add compiler flag support (
-ofor example) - Allow multiple file compile at the same time
- Integrate linker into the compiler