BSD 2 development
[unix-history] / .ref-BSD-1 / pcs / error.i
CommitLineData
1d9cecfb
BJ
1
2procedure errormsg;
3 var k: integer;
4 msg: array [0..ermax] of alfa;
5begin
6 msg[ 0] := 'undef id '; msg[ 1] := 'multi def ';
7 msg[ 2] := 'identifier'; msg[ 3] := 'program ';
8 msg[ 4] := ') '; msg[ 5] := ': ';
9 msg[ 6] := 'syntax '; msg[ 7] := 'ident, var';
10 msg[ 8] := 'of '; msg[ 9] := '( ';
11 msg[10] := 'id, array '; msg[11] := '[ ';
12 msg[12] := '] '; msg[13] := '.. ';
13 msg[14] := '; '; msg[15] := 'func. type';
14 msg[16] := '= '; msg[17] := 'boolean ';
15 msg[18] := 'convar typ'; msg[19] := 'type ';
16 msg[20] := 'prog.param'; msg[21] := 'too big ';
17 msg[22] := '. '; msg[23] := 'typ (case)';
18 msg[24] := 'character '; msg[25] := 'const id ';
19 msg[26] := 'index type'; msg[27] := 'indexbound';
20 msg[28] := 'no array '; msg[29] := 'type id ';
21 msg[30] := 'undef type'; msg[31] := 'no record ';
22 msg[32] := 'boole type'; msg[33] := 'arith type';
23 msg[34] := 'integer '; msg[35] := 'types ';
24 msg[36] := 'param type'; msg[37] := 'variab id ';
25 msg[38] := 'string '; msg[39] := 'no.of pars';
26 msg[40] := 'type '; msg[41] := 'type ';
27 msg[42] := 'real type '; msg[43] := 'integer ';
28 msg[44] := 'var, const'; msg[45] := 'var, proc ';
29 msg[46] := 'types (:=)'; msg[47] := 'typ (case)';
30 msg[48] := 'type '; msg[49] := 'store ovfl';
31 msg[50] := 'constant '; msg[51] := ':= ';
32 msg[52] := 'then '; msg[53] := 'until ';
33 msg[54] := 'do '; msg[55] := 'to downto ';
34 msg[56] := 'begin '; msg[57] := 'end ';
35 msg[58] := 'factor ';
36 k := 0; writeln; writeln(' key words');
37 while errs <> [] do
38 begin while not (k in errs) do k := k+1;
39 writeln(k,' ',msg[k]); errs := errs - [k]
40 end
41end (*errormsg*) ;
42
43
44procedure error(n: integer);
45begin if errpos = 0 then write(' ****');
46 if cc > errpos then
47 begin write(' ': cc-errpos, '^', n:2);
48 errpos := cc+3; errs := errs + [n]
49 end
50end (*error*) ;
51
52procedure fatal(n: integer);
53 var msg: array [1..7] of alfa;
54begin writeln; errormsg;
55 msg[ 1] := 'identifier'; msg[ 2] := 'procedures';
56 msg[ 3] := 'reals '; msg[ 4] := 'arrays ';
57 msg[ 5] := 'levels '; msg[ 6] := 'code ';
58 msg[ 7] := 'strings ';
59 writeln(' compiler table for ', msg[n], ' is too small');
60 goto 99 (* terminate compilation*)
61end (*fatal*) ;
62