summaryrefslogtreecommitdiff
path: root/starts/meaning-vm/meaning.cpp
blob: a6156bff427df0aaddda81a54b6442a1b4b78e1b (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
#include "meaning.hpp"

#include "helpers.hpp"

ref avariable(ref name)
{
	declrefs(variable);
	return a(variable, name);
}

ref link(ref sourceref, ref typeref, ref targetref)
{
	declrefs(link, source, type, target);
	lnks(link-source, link-type, link-target);
	return a(link)[
		link-source << sourceref,
		link-type << typeref,
		link-target << targetref
	];
}

ref not(ref whatref)
{
	declrefs(not);
	decllnks(what);
	return a(not, not-whatref)[what] = whatref;
}