work on c-like compiler