summaryrefslogtreecommitdiff
path: root/vere/pkg/noun/xtract.c
diff options
context:
space:
mode:
Diffstat (limited to 'vere/pkg/noun/xtract.c')
-rw-r--r--vere/pkg/noun/xtract.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/vere/pkg/noun/xtract.c b/vere/pkg/noun/xtract.c
new file mode 100644
index 0000000..f18aa68
--- /dev/null
+++ b/vere/pkg/noun/xtract.c
@@ -0,0 +1,33 @@
+/// @file
+
+#include "xtract.h"
+
+#include "manage.h"
+#include "retrieve.h"
+
+u3_atom
+u3x_atom(u3_noun a);
+u3_noun
+u3x_good(u3_weak som);
+c3_o
+u3x_loob(u3_noun a);
+
+/* u3x_mean():
+**
+** Attempt to deconstruct `a` by axis, noun pairs; 0 terminates.
+** Axes must be sorted in tree order.
+*/
+void
+u3x_mean(u3_noun som, ...)
+{
+ c3_o ret_o;
+ va_list ap;
+
+ va_start(ap, som);
+ ret_o = u3r_vmean(som, ap);
+ va_end(ap);
+
+ if ( c3n == ret_o ) {
+ u3m_bail(c3__exit);
+ }
+}