beginning of semantic analyzer