added lexical analyzer