Added semantic analyzer