finish ex 4.20
add syntactic analyze to evalulator