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

Taddeus Kroes ef86a30481 Rewrote default traversal function such that a traversal now has a secondary result 12 年 前
bin32 ee11dce399 Started on implementing CiviC compiler 12 年 前
doc 3d3c4d5421 Added empty assmebly phase 12 年 前
manual_test ad7dc96aa6 Deleted old test suite 12 年 前
phases ef86a30481 Rewrote default traversal function such that a traversal now has a secondary result 12 年 前
test 81894d4b01 Variable declarations are now again moved to the beginning of the function body 12 年 前
.gitignore f8a14e0111 Added testsuite README and mae target for quick redistribution of testing framework 12 年 前
Makefile f8a14e0111 Added testsuite README and mae target for quick redistribution of testing framework 12 年 前
OCamlMakefile ee11dce399 Started on implementing CiviC compiler 12 年 前
README.md 9c53b71f55 Updated TODO list 12 年 前
TESTSUITE_README f8a14e0111 Added testsuite README and mae target for quick redistribution of testing framework 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 c373abd89b Float constants of the form .5 and 5. are now allowed by the lexer 12 年 前
main.ml 9a81eb7fa6 Fixed usage message 12 年 前
main.mli b8ec1c056c Added interface for Main module and generalised main phase function in a type 12 年 前
parser.mly 013ecd4880 Global arrays may now also be initialised 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 ef86a30481 Rewrote default traversal function such that a traversal now has a secondary result 12 年 前
util.ml ef86a30481 Rewrote default traversal function such that a traversal now has a secondary result 12 年 前
util.mli ef86a30481 Rewrote default traversal function such that a traversal now has a secondary result 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.

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

Issues & TODO

  • Context analysis and typechecking phases should print multiple errors before quitting.
  • Typechecking now gives an error when integers are not in the 32-bit range. Is this correct?
  • Replace VarDec with Var_dec etc? (to adhere to the coding style)