# SPDX-License-Identifier: Apache-2.0
# Copyright 2013-2021 The Meson development team

from ..mesonlib import MesonException

class InterpreterException(MesonException):
    pass

class InvalidCode(InterpreterException):
    pass

class InvalidArguments(InterpreterException):
    pass

class SubdirDoneRequest(BaseException):
    pass

class ContinueRequest(BaseException):
    pass

class BreakRequest(BaseException):
    pass
