complete compiler with documentation