master hovercats/oakiss / pkg / strace / printers.awk
 1BEGIN {
 2	FS = "\\(|\\)|, "
 3	OFS = ", "
 4	print "typedef struct {"
 5}
 6
 7$1 == "MPERS_PRINTER_DECL" {
 8	printf " %s (*%s)(%s", $2, $3, $4
 9	for (i = 5; i < NF; ++i)
10		printf ", %s", $i
11	print ");"
12	print "#define " $3 " MPERS_PRINTER_NAME(" $3 ")\n"
13}
14
15END {
16	print "} struct_printers;"
17	print "extern const struct_printers *printers;"
18	print "#define MPERS_PRINTER_NAME(printer_name) printers->printer_name"
19}