first draft of the compiler compier