achieve the basic part of the compiler