added semantic error checker including test cases
merging changes