diff options
author | olpc user <olpc@xo-5d-f7-86.localdomain> | 2019-12-05 04:13:15 -0800 |
---|---|---|
committer | olpc user <olpc@xo-5d-f7-86.localdomain> | 2019-12-05 04:13:15 -0800 |
commit | 1c69cfe93e07f1f7d6d8de6908a0a4caa1dce9bd (patch) | |
tree | dd81d1b3b52d1026e0582c4dd26a8320ef868bac /starts/meaning-vm/level-2-wip-structs/structure.hpp | |
parent | 680af2ca0b1ced4c82bbce620d6c4fc97dae88d0 (diff) | |
download | standingwithresilience-1c69cfe93e07f1f7d6d8de6908a0a4caa1dce9bd.tar.gz standingwithresilience-1c69cfe93e07f1f7d6d8de6908a0a4caa1dce9bd.zip |
add structure attempt files
Diffstat (limited to 'starts/meaning-vm/level-2-wip-structs/structure.hpp')
-rw-r--r-- | starts/meaning-vm/level-2-wip-structs/structure.hpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/starts/meaning-vm/level-2-wip-structs/structure.hpp b/starts/meaning-vm/level-2-wip-structs/structure.hpp new file mode 100644 index 0000000..8778c3d --- /dev/null +++ b/starts/meaning-vm/level-2-wip-structs/structure.hpp @@ -0,0 +1,30 @@ +#pragma once + +#include "common.hpp" +#include "../level-1/helpers.hpp" + +namespace intellect { +namespace level2 { + +namespace concepts { + static decl(structure), // group for all structures + decl(fill), // group for values to be filled in + decl(topic), // references the structure under consideration + decl(linked), decl(link), // describes a structure link + decl(source), decl(type), decl(target), // link attributes + decl(first), // for finding first of a list + decl(next) // for iteration over list + ; +}; + +// make a structure +ref structure(ref name, std::initializer_list<ref> attributes); + +// make an object of the given structure +ref structured(ref structure, std::initializer_list<ref> fills); + +// throw if an object is not of the given structure +void muststructured(ref topic, ref structure); + +} +} |