Semantic analyzer