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

Taddeus Kroes 3dc782a44c Fixed arrays indices not expanding in some cases il y a 12 ans
bin32 ee11dce399 Started on implementing CiviC compiler il y a 12 ans
doc 3d3c4d5421 Added empty assmebly phase il y a 12 ans
phases 3dc782a44c Fixed arrays indices not expanding in some cases il y a 12 ans
test 5b63e9a8fe Typo il y a 12 ans
.gitignore 2126ae7cee Removed preprocessor from parser, improved some error messages, moved some functions to common files il y a 12 ans
Makefile d184138ad0 Renamed "depth analysis" to the more accurate "index analysis" il y a 12 ans
OCamlMakefile ee11dce399 Started on implementing CiviC compiler il y a 12 ans
README.md ae20d87ad4 Re-introduced DimDec node to get array dimension declarations to work properly, and rewrote a bunch of code to make it actually work... il y a 12 ans
lexer.mll 543db4149b Fixed position tracking when C preprocessor is enabled il y a 12 ans
main.ml ae20d87ad4 Re-introduced DimDec node to get array dimension declarations to work properly, and rewrote a bunch of code to make it actually work... il y a 12 ans
parser.mly 21fc065c8f Changed constant node types, added VarDecs|LocalFuns wrappers, implemented first steps of assembler il y a 12 ans
run 45ddddee63 Added run script for quick testing il y a 12 ans
stringify.ml ae20d87ad4 Re-introduced DimDec node to get array dimension declarations to work properly, and rewrote a bunch of code to make it actually work... il y a 12 ans
stringify.mli 21fc065c8f Changed constant node types, added VarDecs|LocalFuns wrappers, implemented first steps of assembler il y a 12 ans
types.ml ae20d87ad4 Re-introduced DimDec node to get array dimension declarations to work properly, and rewrote a bunch of code to make it actually work... il y a 12 ans
util.ml ae20d87ad4 Re-introduced DimDec node to get array dimension declarations to work properly, and rewrote a bunch of code to make it actually work... il y a 12 ans
util.mli fc5a38d30a Re-wrote main file: added a centralized list of phases and generalized logging format + added -upto option il y a 12 ans

README.md

CiviCaml

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

Issues & TODO

  • Keep file content in buffer to prevent error messages from crashing when reading from stdin.
  • Documentation for each phase, in ocamldoc format.
  • Create automated testsuite runner.
  • Assembly printer should print optimized instructions.