|
|
1.1 ! root 1: # TABLC(1) ! 2: # ! 3: # Tabulate characters ! 4: # ! 5: # Ralph E. Griswold ! 6: # ! 7: # Last modified 8/11/84 ! 8: # ! 9: ! 10: procedure main(x) ! 11: local ccount, unique, order, i, s, a, pair, rwidth ! 12: unique := 0 # switch to list unique usage only ! 13: order := 1 # alphabetical ordering switch ! 14: i := 0 ! 15: while i < *x do { ! 16: s := x[i +:= 1] | break ! 17: case s of { ! 18: "-a": order := 1 ! 19: "-n": order := 2 ! 20: "-u": unique := 1 ! 21: default: Usage() ! 22: } ! 23: } ! 24: ccount := table(0) # table of characters ! 25: while ccount[reads()] +:= 1 ! 26: a := sort(ccount,order) ! 27: if unique = 1 then { ! 28: every pair := !a do ! 29: if pair[2] = 1 then write(pair[1]) ! 30: } ! 31: else { ! 32: rwidth := 0 ! 33: every rwidth<:= *((!a)[2]) ! 34: every pair := !a do ! 35: write(left(image(pair[1]),10),right(pair[2],rwidth)) ! 36: } ! 37: end ! 38: ! 39: procedure Usage() ! 40: stop("usage: tablc [-a -n -u]") ! 41: end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.