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

Taddeus Kroes 3403c4a3fc Formatted all source code to 2 spaces as tab, and some more prettifications 12 년 전
bin32 ee11dce399 Started on implementing CiviC compiler 12 년 전
doc 3d3c4d5421 Added empty assmebly phase 12 년 전
phases 3403c4a3fc Formatted all source code to 2 spaces as tab, and some more prettifications 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 7c9b5cf1af Added interface files for all modules, moved command-line arguments to globals.ml, made types.ml an .mli file 12 년 전
OCamlMakefile ee11dce399 Started on implementing CiviC compiler 12 년 전
README.md 7c9b5cf1af Added interface files for all modules, moved command-line arguments to globals.ml, made types.ml an .mli file 12 년 전
globals.ml 3403c4a3fc Formatted all source code to 2 spaces as tab, and some more prettifications 12 년 전
globals.mli bbb89db752 Forgot to add the mli files in the last commit... and now removed (generated) types.ml from repo index 12 년 전
lexer.mll cd39b017b6 Cleanup 12 년 전
main.ml 3403c4a3fc Formatted all source code to 2 spaces as tab, and some more prettifications 12 년 전
parser.mly fcb75e6424 Parser cleanup 12 년 전
run df77f208ef Run script now does not continue when compiling fails 12 년 전
stringify.ml 3403c4a3fc Formatted all source code to 2 spaces as tab, and some more prettifications 12 년 전
stringify.mli 7c9b5cf1af Added interface files for all modules, moved command-line arguments to globals.ml, made types.ml an .mli file 12 년 전
types.mli 3403c4a3fc Formatted all source code to 2 spaces as tab, and some more prettifications 12 년 전
util.ml 3403c4a3fc Formatted all source code to 2 spaces as tab, and some more prettifications 12 년 전
util.mli 7c9b5cf1af Added interface files for all modules, moved command-line arguments to globals.ml, made types.ml an .mli file 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 we adhere to [http://wiki.xen.org/wiki/OCaml_Best_Practices_for_Developers#Use_of_open].

Issues & TODO

  • Documentation for each phase, 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).