blob: 8778c3d944f33fcc25c34864efc0ecbba3d16758 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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);
}
}
|