@(next (open-files (glob "*.c"))) @(collect :vars (sym)) val @(coll)@{sym /[A-Za-z0-9_]+_[sk]/}@/[,;]/@(end) @(end) @(next "lib.c") @(collect) @copyright @(until) @(end) @(flatten sym) @(bind gsym @(tuples 5 (sort sym))) @(output "protsym.c") /* This file is generated by genprotsym.txr */ @{copyright "\n"} #include #include "config.h" #include "lib.h" @ (repeat) extern val @(rep)@gsym, @(last)@gsym;@(end) @ (end) val *protected_sym[] = { @ (repeat) @(rep)&@gsym, @(last)&@gsym,@(end) @ (end) convert(val *, 0) }; @(end)