add float. fix control flow for ir gen. reimpl if & while. change binary generation logic. add operators