How To Design Compiler