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

Taddeus Kroes 71110a2f43 Fixed indenting in parser and lexer 12 年 前
bin32 ee11dce399 Started on implementing CiviC compiler 12 年 前
doc 3d3c4d5421 Added empty assmebly phase 12 年 前
phases 7a45964f5e Module titles can only be one sentence 12 年 前
test 3b95a79c59 Cleaned up constant propagation, and added some arithmetic simplicications 12 年 前
.gitignore bbb89db752 Forgot to add the mli files in the last commit... and now removed (generated) types.ml from repo index 12 年 前
Makefile b8ec1c056c Added interface for Main module and generalised main phase function in a type 12 年 前
OCamlMakefile ee11dce399 Started on implementing CiviC compiler 12 年 前
README.md 6bb42fca4d Updated TODO list 12 年 前
globals.ml 3403c4a3fc Formatted all source code to 2 spaces as tab, and some more prettifications 12 年 前
globals.mli bdb928d7bc made comment into link 12 年 前
lexer.mll 71110a2f43 Fixed indenting in parser and lexer 12 年 前
main.ml 0f6da945f4 Cleanup main file, added some documentation 12 年 前
main.mli b8ec1c056c Added interface for Main module and generalised main phase function in a type 12 年 前
parser.mly 71110a2f43 Fixed indenting in parser and lexer 12 年 前
run df77f208ef Run script now does not continue when compiling fails 12 年 前
stringify.ml 625095f367 Documented all global modules (phases still need to be done) 12 年 前
stringify.mli 625095f367 Documented all global modules (phases still need to be done) 12 年 前
types.mli 089a32c1a6 Cleanup 12 年 前
util.ml 625095f367 Documented all global modules (phases still need to be done) 12 年 前
util.mli 625095f367 Documented all global modules (phases still need to be done) 12 年 前

README.md

CiviCaml

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

Documentation

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

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

Issues & TODO

  • Documentation for all modules (in ocamldoc format).
  • Typechecking now gives an error when integers are not in the 32-bit range, as the reference compiler implements it. However, 64-bit should imo also be supported (using Nativeint instead of Int32).
  • Replace VarDec with Var_dec etc?