refactor eval to makes caller know error type, and makes quote and
backquote could recognize '()
add comment support