Added binary operator precedence parsing, better unexpected input error reporting