1#!/bin/awk -f 2 3# cat /sys/src/9/kw/mem.h /sys/src/9/kw/arm.h|h2acid|grep -v define 4 5BEGIN{ 6 isparen=0 7} 8 9 10/#define ?[^ \(]+\(/{ 11 isparen=1 12 fullname=$0 13 sub(/\/\*.*\*\//, "", fullname) 14 sub(/\/\/.*/, "", fullname) 15 sub(/[ ]+$/, "", fullname); 16 name=$2 17 sub(/\(.*/, "", name); 18 params=fullname 19 sub(/[^\(]+\(/, "", params) 20 sub(/\).*/, "", params); 21 val=fullname 22 sub(/[^\)]+\)/, "", val); 23 print("\ndefn", name"("params")", " {\n\t"name "res = " val ";\n}\n") 24} 25 26/#define.*/ && !isparen{ 27 print($2 " = " $3 ";"); 28} 29 30/.*/{ isparen = 0} 31