3 $1 == "enum" { set = ""; next }
5 set == "" && $1 ~ /DW_([A-Z_]+)_([^ ]+)/ {
8 sub(/_[^[:upper:]_].*$/, "", set);
9 if (set ~ /LANG_.+/) set = "LANG";
12 $1 ~ /DW([_A-Z]+)_([^ ]+)/ {
13 match($1, ("DW_" set "_([^ ]+)"), fields);
16 DW[set] = DW[set] "," elt;
19 if ($NF == "*/" && $4 == "/*") {
21 for (i = 6; i < NF; ++i) c = c " " $i;
22 comment[set, elt] = c;
27 print "/* Generated by config/dwarf-known.awk from libdw.h contents. */";
29 for (i = 1; i <= n; ++i) {
31 if (what && what != set) continue;
32 split(DW[set], elts, ",");
36 print "\n#define ALL_KNOWN_DW_" set " \\";
37 for (j = 1; j <= m; ++j) {
39 if (elt ~ /(lo|low)_user$/) {
43 if (elt ~ /(hi|high)_user$/) {
47 if (comment[set, elt])
48 print " ONE_KNOWN_DW_" set "_DESC (" elt ", DW_" set "_" elt \
49 ", \"" comment[set, elt] "\") \\";
51 print " ONE_KNOWN_DW_" set " (" elt ", DW_" set "_" elt ") \\";
53 print " /* End of DW_" set "_*. */";