semantic analyzer

not yet finished