program xref(input, output);
a: array [1..10] of char;
t: array [index] of word;
key: array [1..nk] of alfa;
function letter(ch: char): Boolean;
letter := (ch >= 'a') and (ch <= 'z') or (ch >= 'A') and (ch <= 'Z')
function digit(ch: char): Boolean;
digit := (ch >= '0') and (ch <= '9')
function nokey(x: alfa): Boolean;
writeln(' text too long');
h := id.ord div 4096 mod p;
if t[h].key = id.a then begin
end else if t[h].key = empty then begin
writeln(' **** table full');
procedure printword(w: word);
if t[j].key < t[m].key then
t[m].first := t[i].first;
procedure openinput(i: integer);
filename: array [1..64] of char;
procedure lwrite(c: char);
if (scr[1] <> '-') or (scr[2] <> ' ') then begin
writeln('usage: pxref [ - ] file');
if (argc < 2) or (argc > 3) then begin
writeln('usage: pxref [ - ] file');
while not eof(input) do begin
if input^ = '#' then begin
while not eoln(input) do begin
while not eoln(input) do begin
if (input^ = ' ') or (input^ = tab) then begin
end else if letter(input^) then begin
until not (letter(input^) or digit(input^));
end else if digit(input^) then
else if input^ = '''' then begin
end else if input^ = '{' then begin
while eoln(input) do begin
end else if input^ = '(' then begin
if input^ = '*' then begin
while input^ <> '*' do begin
if eoln(input) then begin
writeln(c1, ' identifiers', c2, ' occurrences');