# Path: libxyz/exceptions.py
# class ParseError(XYZError):
#     pass


from libxyz.exceptions import ParseError
    """

    error_unexpected = 1

    def parse(self, *args, **kwargs):
        raise NotImplementedError(_(u"Must be implemented in child class"))

    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    def error(self, msg=None, etype=None):
        """
        Parsing error. Raise exception
        """

        _emsg = ""
        if self._lexer:
            _lineno = self._lexer.sdata.lineno
            _pre = _(u"Parse error on line %d") % _lineno
        else:
            _pre = _(u"Parse error")

        if etype == self.error_unexpected and msg and len(msg) == 2:
            _emsg = _(u"Unexpected token '%s'. Waiting for '%s'") % \
                    (msg[0].encode("unicode-escape"),
                     msg[1].encode("unicode-escape"))
        elif msg:
            _emsg = msg
        else:
            _emsg = _(u"Syntax error")


# Path: libxyz/exceptions.py
# class ParseError(XYZError):
#     pass


# Path: libxyz/parser/base.py
from libxyz.exceptions import ParseError

    """

    error_unexpected = 1

    def parse(self, *args, **kwargs):
        raise NotImplementedError(_(u"Must be implemented in child class"))

    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    def error(self, msg=None, etype=None):
        """
        Parsing error. Raise exception
        """

        _emsg = ""
        if self._lexer:
            _lineno = self._lexer.sdata.lineno
            _pre = _(u"Parse error on line %d") % _lineno
        else:
            _pre = _(u"Parse error")

        if etype == self.error_unexpected and msg and len(msg) == 2:
            _emsg = _(u"Unexpected token '%s'. Waiting for '%s'") % \
                    (msg[0].encode("unicode-escape"),
                     msg[1].encode("unicode-escape"))
        elif msg:
            _emsg = msg
        else:
            _emsg = _(u"Syntax error")


        raise ParseError(u"%s: %s: %s" % (self._lexer.sdata.desc(),_pre, _emsg))