take care of some todos in semantic

check keywords
always report errors