Improvising scanner and parser