aboutsummaryrefslogtreecommitdiffstats
path: root/cppawk-include
diff options
context:
space:
mode:
Diffstat (limited to 'cppawk-include')
-rw-r--r--cppawk-include/iter.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/cppawk-include/iter.h b/cppawk-include/iter.h
index 77163de..9e48c7e 100644
--- a/cppawk-include/iter.h
+++ b/cppawk-include/iter.h
@@ -129,6 +129,14 @@
#define __fini_from_step(idx, from, step) 1
#define __step_from_step(idx, from, step) idx += (step)
+#define __init_first_then(var, first, then) (var = (first))
+#define __test_first_then(var, first, then) 1
+#define __prep_first_then(var, first, then) 1
+#define __fini_first_then(var, first, then) 1
+#define __step_first_then(var, first, then) (var = (then))
+
+#define for_var(var, expr) first_then(var, expr, expr)
+
#define __init_list(iter, var, list) iter = (list)
#define __test_list(iter, var, list) !endp(iter)
#define __prep_list(iter, var, list) var = car(iter)
@@ -153,6 +161,12 @@
#define __fini_collect(var, expr) var = list_end(var)
#define __step_collect(var, expr) 1
+#define __init_collect_plus(var, expr) var = list_begin()
+#define __test_collect_plus(var, expr) 1
+#define __prep_collect_plus(var, expr) var = list_add(var, expr)
+#define __fini_collect_plus(var, expr) var = list_end(list_add(var, expr))
+#define __step_collect_plus(var, expr) 1
+
#define __init_summing(var, expr) var = 0
#define __test_summing(var, expr) 1
#define __prep_summing(var, expr) var += (expr)