3.4 has higher priority than 3.5
add semantics test for forward semantic analysis
tiny fixes

- fix symbol check when variable definition failed
- fix a typo in an error message