mirror of
https://https.git.savannah.gnu.org/git/m4.git
synced 2026-01-27 18:04:52 +00:00
* doc/m4.texinfo (Composition): Mention limitation on curry. (Improved copy): New node. (Stacks): Fix typo. * examples/stack.m4: Likewise. * examples/stack_sep.m4: New file. * examples/Makefile.am (EXTRA_DIST): Distribute it. Signed-off-by: Eric Blake <ebb9@byu.net>
17 lines
656 B
Plaintext
17 lines
656 B
Plaintext
divert(`-1')
|
|
# stack_foreach(macro, action)
|
|
# Invoke ACTION with a single argument of each definition
|
|
# from the definition stack of MACRO, starting with the oldest.
|
|
define(`stack_foreach',
|
|
`_stack_reverse(`$1', `tmp-$1')'dnl
|
|
`_stack_reverse(`tmp-$1', `$1', `$2(defn(`$1'))')')
|
|
# stack_foreach_lifo(macro, action)
|
|
# Invoke ACTION with a single argument of each definition
|
|
# from the definition stack of MACRO, starting with the newest.
|
|
define(`stack_foreach_lifo',
|
|
`_stack_reverse(`$1', `tmp-$1', `$2(defn(`$1'))')'dnl
|
|
`_stack_reverse(`tmp-$1', `$1')')
|
|
define(`_stack_reverse',
|
|
`ifdef(`$1', `pushdef(`$2', defn(`$1'))$3`'popdef(`$1')$0($@)')')
|
|
divert`'dnl
|