From c8bb547bea279af2bb48c13260f98aa8add07131 Mon Sep 17 00:00:00 2001 From: olpc user Date: Fri, 10 Jan 2020 14:55:19 -0800 Subject: move intellect-framework-from-internet into folder --- .../starts/meaning-vm/level-0/errors.hpp | 101 +++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 intellect-framework-from-internet/starts/meaning-vm/level-0/errors.hpp (limited to 'intellect-framework-from-internet/starts/meaning-vm/level-0/errors.hpp') diff --git a/intellect-framework-from-internet/starts/meaning-vm/level-0/errors.hpp b/intellect-framework-from-internet/starts/meaning-vm/level-0/errors.hpp new file mode 100644 index 0000000..e599261 --- /dev/null +++ b/intellect-framework-from-internet/starts/meaning-vm/level-0/errors.hpp @@ -0,0 +1,101 @@ +#pragma once +#include "concept.hpp" + +#include + +namespace intellect { +namespace level0 { + +struct no_such_link_type : public std::out_of_range +{ + no_such_link_type(concept* source, concept* type) + : std::out_of_range("no such concept link type"), + source(source), + type(type) + { } + + concept* const source; + concept* const type; +}; + +struct no_such_link_type_target : public std::out_of_range +{ + no_such_link_type_target(concept* source, concept* type, concept* target) + : std::out_of_range("no such concept link type and target"), + source(source), + type(type), + target(type) + { } + + concept* const source; + concept* const type; + concept* const target; +}; + +struct crucial_link_type_target : public std::out_of_range +{ + crucial_link_type_target(concept* source, concept* type, concept* target) + : std::out_of_range("concept part is crucial"), + source(source), + type(type), + target(type) + { } + + concept* const source; + concept* const type; + concept* const target; +}; + +struct crucial_concept : public std::invalid_argument +{ + crucial_concept(concept* topic) + : std::invalid_argument("concept is crucial"), + topic(topic) + { } + + concept* const topic; +}; + +struct link_type_not_unique : public std::invalid_argument +{ + link_type_not_unique(concept* source, concept* type) + : std::invalid_argument("more than one such concept link type"), + source(source), + type(type) + { } + + concept* const source; + concept* const type; +}; + +struct still_referenced_by : public std::invalid_argument +{ + still_referenced_by(concept* topic, concept* referrer) + : std::invalid_argument("concept is still referenced"), + topic(topic), + referrer(referrer) + { } + + concept* const topic; + concept* const referrer; +}; + +struct no_such_concept : public std::invalid_argument +{ + no_such_concept(concept* topic) + : std::invalid_argument("no such concept reference"), + topic(topic) + { } + + concept* const topic; +}; + +struct null_reference : public std::invalid_argument +{ + null_reference() + : std::invalid_argument("null reference") + { } +}; + +} +} -- cgit v1.2.3