ooc compiler written in ooc