Type Checking In Semantic Analysis