add more feartures

add scanner, semantics2, semantics4