| 1234567891011121314151617181920212223242526272829303132333435 |
- #pragma once
- #include <stdexcept>
- namespace program {
- class ProgramArgumentsError : public std::logic_error {
- using std::logic_error::logic_error;
- };
- class ArgumentMixingError : public ProgramArgumentsError {
- public:
- ArgumentMixingError()
- : ProgramArgumentsError("Cannot mix together argument() and action() clauses in a program") {}
- };
- class ArgumentStructureError : public ProgramArgumentsError {
- public:
- ArgumentStructureError(std::string const & desc, std::string const & name)
- : ProgramArgumentsError(desc + " for argument " + name) {}
- };
- class NotAnArgumentError : public ProgramArgumentsError {
- public:
- NotAnArgumentError(std::string const & name)
- : ProgramArgumentsError("Unknown argument provided: " + name) {}
- };
- class IllegalPositionError : public ProgramArgumentsError {
- public:
- IllegalPositionError(std::string const & desc, size_t index)
- : ProgramArgumentsError(desc + " at index " + std::to_string(index)) {}
- };
- }
|