a simple C-like compiler