summaryrefslogtreecommitdiff
path: root/examples/foreach.m4
diff options
context:
space:
mode:
Diffstat (limited to 'examples/foreach.m4')
-rw-r--r--examples/foreach.m48
1 files changed, 8 insertions, 0 deletions
diff --git a/examples/foreach.m4 b/examples/foreach.m4
new file mode 100644
index 0000000..9be25b0
--- /dev/null
+++ b/examples/foreach.m4
@@ -0,0 +1,8 @@
+divert(`-1')
+# foreach(x, (item_1, item_2, ..., item_n), stmt)
+# parenthesized list, simple version
+define(`foreach', `pushdef(`$1')_foreach($@)popdef(`$1')')
+define(`_arg1', `$1')
+define(`_foreach', `ifelse(`$2', `()', `',
+ `define(`$1', _arg1$2)$3`'$0(`$1', (shift$2), `$3')')')
+divert`'dnl