# # 100604.0228: prints ... on unnamed addresses # link image, atos, lists, printf procedure main() txt := "" while txt ||:= read() t := table() txt ? { while (tab(upto('&'))) do { ="&" & nm := tab(upto(' ')) & =" = " & addr := integer(tab(many(&digits))) if \t[nm] then { every nm <- nm || "(" || seq() || ")" do if /t[nm] then break } t[nm] := addr } } by_addr := table([]) every e := !sort(t) do by_addr[e[2]] |||:= [e[1]] write(Image(by_addr)) addrs := lreverse(sort(by_addr)) every e := !addrs do { write(e[1], ": ", atos(e[2])) } write("---") while e := get(addrs) do { next_nm_addr := e[1] names := e[2] printf("%10d: %s\n", next_nm_addr, atos(names)) cur_addr := next_nm_addr - 4 while cur_addr ~= addrs[1][1] do { printf("%10d: ...\n", cur_addr) cur_addr -:= 4 } } end