             return super
         catch error
             throw error unless /Parsing halted/.test error.message
-            @report_error error.message
 
     # Add a `.yylloc` to lexer.
     lexer:

            t

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


        @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
# -----------------------
