Calc is a proof of concept to implement a simple arithmetic language interpreter with JIT compilation, using either LLVM or a more low-level JIT based on GNU Lightning.
A fun weekend project, if you ask me!
You need LLVM and GNU Lightning installed. On Mac OSX:
$ brew install llvm
Unfortunately the version of Lightning in Homebrew is broken. Download and install lightning from its mirror git repository.
$ git clone git://github.com/txus/calc.git calc $ cd calc $ make
You get the
Using the AST-walking interpreter:
$ ./calc "3 * (4 + 5)"
Using the LLVM JIT compiler:
$ ./calc --llvm "3 * (4 + 5)"
Using the lower-level, GNU-lightning based JIT compiler:
$ ./calc --jit "3 * (4 + 5)"
It's just integers, these operators:
+ - * /, and parentheses for precedence.