fix bugs, add lexical anaylis block