# TABLC(1) # # Tabulate characters # # Ralph E. Griswold # # Last modified 8/11/84 # procedure main(x) local ccount, unique, order, i, s, a, pair, rwidth unique := 0 # switch to list unique usage only order := 1 # alphabetical ordering switch i := 0 while i < *x do { s := x[i +:= 1] | break case s of { "-a": order := 1 "-n": order := 2 "-u": unique := 1 default: Usage() } } ccount := table(0) # table of characters while ccount[reads()] +:= 1 a := sort(ccount,order) if unique = 1 then { every pair := !a do if pair[2] = 1 then write(pair[1]) } else { rwidth := 0 every rwidth<:= *((!a)[2]) every pair := !a do write(left(image(pair[1]),10),right(pair[2],rwidth)) } end procedure Usage() stop("usage: tablc [-a -n -u]") end