surface->lexical compiler