What is the difference between syntax and semantics error?