File: forloop3.m4

package info (click to toggle)
m4 1.4.20-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 22,548 kB
  • sloc: ansic: 141,981; sh: 14,996; cpp: 2,200; lisp: 243; makefile: 165; sed: 16
file content (13 lines) | stat: -rw-r--r-- 545 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
divert(`-1')
# forloop_arg(from, to, macro) - invoke MACRO(value) for
#   each value between FROM and TO, without define overhead
define(`forloop_arg', `ifelse(eval(`($1) <= ($2)'), `1',
  `_forloop(`$1', eval(`$2'), `$3(', `)')')')
# forloop(var, from, to, stmt) - refactored to share code
define(`forloop', `ifelse(eval(`($2) <= ($3)'), `1',
  `pushdef(`$1')_forloop(eval(`$2'), eval(`$3'),
    `define(`$1',', `)$4')popdef(`$1')')')
define(`_forloop',
  `$3`$1'$4`'ifelse(`$1', `$2', `',
    `$0(incr(`$1'), `$2', `$3', `$4')')')
divert`'dnl