another pl0 compiler using cpp