summaryrefslogtreecommitdiff
path: root/starts/meaning-vm/habit-starts/learning-parts.cpp
diff options
context:
space:
mode:
authorolpc user <olpc@xo-5d-f7-86.localdomain>2019-12-23 12:43:17 -0800
committerolpc user <olpc@xo-5d-f7-86.localdomain>2019-12-23 12:43:17 -0800
commit8db6ac879adf30e9e1aa61a8b441dea2ff09f9fb (patch)
treeff7c7f4e58fc3348e86b32506c1a4a262d0335b9 /starts/meaning-vm/habit-starts/learning-parts.cpp
parenteaff501ca8f5106f95f2268f9cd2162a58826cf2 (diff)
parentc8e3e06b79c54f67961fdeba1504ec1cca206719 (diff)
downloadstandingwithresilience-8db6ac879adf30e9e1aa61a8b441dea2ff09f9fb.tar.gz
standingwithresilience-8db6ac879adf30e9e1aa61a8b441dea2ff09f9fb.zip
Merge branch 'master' of xloem.github:xloem/intellect
Diffstat (limited to 'starts/meaning-vm/habit-starts/learning-parts.cpp')
-rw-r--r--starts/meaning-vm/habit-starts/learning-parts.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/starts/meaning-vm/habit-starts/learning-parts.cpp b/starts/meaning-vm/habit-starts/learning-parts.cpp
index 7b3000e..56c7ffa 100644
--- a/starts/meaning-vm/habit-starts/learning-parts.cpp
+++ b/starts/meaning-vm/habit-starts/learning-parts.cpp
@@ -235,6 +235,43 @@ static int __init = ([]()->int{
}));
});
+ using links_it = level0::baseref::links_t::iterator;
+ ahabit(populate-link-entry, ((link-entry, le)),
+ {
+ result = le;
+ auto & it = result.vget<links_it>();
+ if (it != result["source"].links().end()) {
+ result.set("type", it->first);
+ result.set("target", it->second);
+ } else {
+ result.unlink("type");
+ result.unlink("target");
+ }
+ });
+ ahabit(first-link-entry, ((concept, c)),
+ {
+ result = level1::alloc(level, c.links().begin());
+ result.set("source", c);
+ (populate-link-entry)(result);
+ });
+ ahabit(last-link-entry, ((concept, c)),
+ {
+ result = level1::alloc(level, --c.links().end());
+ result.set("source", c);
+ (populate-link-entry)(result);
+ });
+ ahabit(next-link-entry, ((link-entry, le)),
+ {
+ result = le;
+ ++result.vget<links_it>();
+ (populate-link-entry)(result);
+ });
+ ahabit(previous-link-entry, ((link-entry, le)),
+ {
+ result = le;
+ --result.vget<links_it>();
+ (populate-link-entry)(result);
+ });
/*
ahabit(happened-habit, ((happened, ev)),