ref: 38c0cf0737de03906729054ad7b7b011dd1ca475
dir: /appl/lib/strinttab.b/
implement StringIntTab; include "strinttab.m"; lookup(t: array of StringInt, key: string) : (int, int) { min := 0; max := len t-1; while(min <= max){ try := (min+max)/2; if(t[try].key < key) min = try+1; else if(t[try].key > key) max = try-1; else return (1, t[try].val); } return (0, 0); } revlookup(t: array of StringInt, val: int) : string { n := len t; for(i:=0; i < n; i++) if(t[i].val == val) return t[i].key; return nil; }