finish main part of char compiler