 
         @report_error message, location
 
+        # If the parser can't recover it will throw the just reported error.
+        # Throw a more expectable error instead, so it won't get logged.
+        throw Error 'Parsing halted' unless recoverable
 
 # Parser and tree builder
 # -----------------------

            t

    # Override Jison parser error function
    parseError: (_, {line, token:tag}) ->
        switch tag
            when 'TERMINATOR'
                message = 'unexpected end of expression'

            return super
        catch error
            throw error unless /Parsing halted/.test error.message

    # Add a `.yylloc` to lexer.
    lexer:
