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

Taddeus Kroes 1386f8af75 Desugaring now moves splitted initializations to start of function body %!s(int64=11) %!d(string=hai) anos
bin 380c9cc64f civrun script now passes all args to civcc (now it reads from stdin) %!s(int64=11) %!d(string=hai) anos
civic @ 7df0a4f731 f5d0fc37c7 Updated civic version %!s(int64=11) %!d(string=hai) anos
doc ac383a4b31 Updated milestones document %!s(int64=11) %!d(string=hai) anos
manual_test ad7dc96aa6 Deleted old test suite %!s(int64=12) %!d(string=hai) anos
phases 1386f8af75 Desugaring now moves splitted initializations to start of function body %!s(int64=11) %!d(string=hai) anos
test 3d1f202c9d Public test list added. %!s(int64=11) %!d(string=hai) anos
.gitignore 17afcccdac Assembler docs are now copied from toolchain submodule %!s(int64=11) %!d(string=hai) anos
.gitmodules 098b5ebc19 Added assembler and VM in submodule %!s(int64=11) %!d(string=hai) anos
Makefile b519c5e7c2 TESTSUITE_README is now placed next to test dir in testsuite tarfile %!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 31687cab6e Added tabs warning to testsuite README %!s(int64=11) %!d(string=hai) anos
civcc 4b9d4222bc Added toolchain target and restructured binary paths a bit %!s(int64=11) %!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 7867875804 Implemented new scoping rules, moved up context analysys, tweaked where extern variables are handled, fixed some bugs (see updated html docs) (needs new test cases!) %!s(int64=11) %!d(string=hai) anos
main.mli 231793c268 Docs fix %!s(int64=11) %!d(string=hai) anos
parser.mly b496d6e00b CiviC programs may not be emptygit status %!s(int64=11) %!d(string=hai) anos
public_tests.txt 3d1f202c9d Public test list added. %!s(int64=11) %!d(string=hai) anos
stringify.ml 7867875804 Implemented new scoping rules, moved up context analysys, tweaked where extern variables are handled, fixed some bugs (see updated html docs) (needs new test cases!) %!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 7867875804 Implemented new scoping rules, moved up context analysys, tweaked where extern variables are handled, fixed some bugs (see updated html docs) (needs new test cases!) %!s(int64=11) %!d(string=hai) anos
util.ml 7867875804 Implemented new scoping rules, moved up context analysys, tweaked where extern variables are handled, fixed some bugs (see updated html docs) (needs new test cases!) %!s(int64=11) %!d(string=hai) anos
util.mli 7867875804 Implemented new scoping rules, moved up context analysys, tweaked where extern variables are handled, fixed some bugs (see updated html docs) (needs new test cases!) %!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)