most working
almost done with lexical analyzer