File: stack.m4

package info (click to toggle)
m4 1.4.16-3
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 10,204 kB
  • sloc: ansic: 69,401; sh: 7,576; cpp: 1,030; lisp: 243; makefile: 161
file content (16 lines) | stat: -rw-r--r-- 656 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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