global nflag procedure main(args) if args[1] == "-n" then nflag := 1 lines := [] while put(lines, read()) hexdigs := &digits ++ 'abcdef' every line := !lines do { r := "" line ? { while r ||:= tab(find("0x")) do { move(2) r ||:= mapaddr(tab(many(hexdigs))) } r ||:= tab(0) } write(r) } end procedure mapaddr(s) static addrs, addrtag initial { addrs := table() if \nflag then addrtag := create "ADDR#" || seq() else addrtag := create |"ADDR" } if /addrs[s] then addrs[s] := @addrtag return .addrs[s] end