support short, long, void types
++ and -- for pointer