
1: #! /usr/local/bin/gawk -f 2: BEGIN { 3: last_node=""; 4: } 5: 6: /^@node/ { 7: name = $0; 8: sub(/^@node +/, "", name); 9: sub(/[@,].*$/, "", name); 10: last_node = name; 11: } 12: 13: /^@deftype(fn|vr)/ { 14: # The string we want is $4, except that if there were brace blocks 15: # before that point then it gets shifted to the right, since awk 16: # doesn't know from brace blocks. 17: id = 4; check = 2; squig = 0; 18: while(check < id) 19: { 20: if($check ~ /{/) squig++; 21: if($check ~ /}/) squig--; 22: if(squig) id++; 23: check++; 24: } 25: 26: gsub(/[(){}*]/, "", $id); 27: printf ("* %s: (libc)%s.\n", $id, last_node); 28: } 29: 30: /^@deftypefun/ { 31: # Likewise, except it's $3 theoretically. 32: id = 3; check = 2; squig = 0; 33: while(check < id) 34: { 35: if($check ~ /{/) squig++; 36: if($check ~ /}/) squig--; 37: if(squig) id++; 38: check++; 39: } 40: 41: gsub(/[(){}*]/, "", $id); 42: printf ("* %s: (libc)%s.\n", $id, last_node); 43: }