summaryrefslogtreecommitdiff
path: root/appl/lib/strinttab.b
blob: a96d0f57ec8963cedfa5a25be12c360905e30314 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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;
}