OCaml implementation of the CiviC compiler for Compiler Construction course at UvA

Taddeus Kroes cbeae1d982 Fixed some typeos in documentation, changed <allocate> to __allocate for consistency with language spec %!s(int64=11) %!d(string=hai) anos
bin32 9f5cc393f5 Updated toolchain binaries (new opcodes for extern variables instructions) %!s(int64=11) %!d(string=hai) anos
doc 3d3c4d5421 Added empty assmebly phase %!s(int64=12) %!d(string=hai) anos
manual_test ad7dc96aa6 Deleted old test suite %!s(int64=12) %!d(string=hai) anos
phases cbeae1d982 Fixed some typeos in documentation, changed <allocate> to __allocate for consistency with language spec %!s(int64=11) %!d(string=hai) anos
test 2910970428 Added some array testcases %!s(int64=11) %!d(string=hai) anos
.gitignore f2a7d6e5d8 Updated binary name in ignore file %!s(int64=11) %!d(string=hai) anos
Makefile dcca84a05b Changed binary name to civcc %!s(int64=11) %!d(string=hai) anos
OCamlMakefile ee11dce399 Started on implementing CiviC compiler %!s(int64=12) %!d(string=hai) anos
README.md dcca84a05b Changed binary name to civcc %!s(int64=11) %!d(string=hai) anos
TESTSUITE_README f8a14e0111 Added testsuite README and mae target for quick redistribution of testing framework %!s(int64=12) %!d(string=hai) anos
globals.ml 3403c4a3fc Formatted all source code to 2 spaces as tab, and some more prettifications %!s(int64=12) %!d(string=hai) anos
globals.mli bdb928d7bc made comment into link %!s(int64=12) %!d(string=hai) anos
lexer.mll a574d8ace5 IntVal now takes a 32-bit int as argument (not 31 or 63), and integer bound check is moved to lexer %!s(int64=12) %!d(string=hai) anos
main.ml ec7babc046 Started implementing VM changes of extern variables %!s(int64=11) %!d(string=hai) anos
main.mli 95f70e3e94 Comment cleanup %!s(int64=12) %!d(string=hai) anos
parser.mly c6dee331c5 Removed unused function %!s(int64=11) %!d(string=hai) anos
run 5f5855748d Fixed binary name in run script %!s(int64=11) %!d(string=hai) anos
stringify.ml cbeae1d982 Fixed some typeos in documentation, changed <allocate> to __allocate for consistency with language spec %!s(int64=11) %!d(string=hai) anos
stringify.mli 625095f367 Documented all global modules (phases still need to be done) %!s(int64=12) %!d(string=hai) anos
types.mli cd575763a0 Extern variables now use the .exportvar/.importvar directives + some general fixes %!s(int64=11) %!d(string=hai) anos
util.ml cd575763a0 Extern variables now use the .exportvar/.importvar directives + some general fixes %!s(int64=11) %!d(string=hai) anos
util.mli cd575763a0 Extern variables now use the .exportvar/.importvar directives + some general fixes %!s(int64=11) %!d(string=hai) anos

README.md

CiviCaml

CiviCaml is a compiler for the CiviC language, written in OCaml.

Documentation

make htdoc generates HTML documentation, which is accessible through doc/civcc/html/index.html.

The coding style adheres to http://wiki.xen.org/wiki/OCaml_Best_Practices_for_Developers#Use_of_open.

The Makefile uses [OCamlMakefile(https://bitbucket.org/mmottl/ocaml-makefile/).

Issues & TODO

  • Replace VarDec with Var_dec etc? (to adhere to the coding style)