|
|
1.1 root 1: program errs(input,output,junk,locked);
2:
3: label 99;
4:
5: type
6: etype = (ECHR, EHALT, ENILPTR, ECASE, EOUTOFMEM, ECTSNG,
7: ESTLIM, EARGV, EPACK, EUNPACK, EASRT, ELLIMIT, ETRASHHEAP, EPASTEOF,
8: EREFINAF, ENOFILE, ENAMESIZE, EBADINUM, EBADFNUM, ENUMNTFD, ENAMRNG,
9: EFMTSIZE, ESEEK, ECREATE, EREMOVE, EOPEN, EREADIT, EWRITEIT, ESQRT,
10: ELN, ERANGE, ESUBSC, EGOTO, ECLOSE, EWRITE, ECTLWR, ECTUPR, xxx);
11: biggie = array[1..15000] of integer;
12:
13: var
14: ch :char;
15: chs :alfa;
16: ch1 :array[1..10] of char;
17: ptr, ptr1 :^char;
18: ptr2 :^biggie;
19: junk, locked, other :file of char;
20: variant :record
21: case boolean of
22: true:(val :1..100);
23: false:(name :etype)
24: end;
25: s :set of 1..4;
26: i :integer;
27: r :real;
28: err :etype;
29:
30: begin
31: writeln('Want a list of error names?');
32: readln(ch);
33: if ch = 'y' then begin
34: for err:=ECHR to pred(xxx) do begin
35: write(err:15);
36: if ord(err) mod 5 = 4 then
37: writeln;
38: end;
39: writeln;
40: end;
41: writeln('enter an error name');
42: readln(err);
43: if err in [ESEEK, EGOTO, ECLOSE, EWRITE] then begin
44: writeln(err, ': error cannot be simulated');
45: goto 99;
46: end;
47: case err of
48: ECHR: ch:=chr(128);
49: EHALT: halt;
50: ENILPTR: ch:=ptr^;
51: ECASE: case 4 of 1:; end;
52: EOUTOFMEM: while true do begin
53: new(ptr2);
54: writeln('alloc successful');
55: end;
56: ECTLWR: begin
57: i:=0;
58: s:=[i..2];
59: end;
60: ECTUPR: begin
61: i:=5;
62: s:=[1..i];
63: end;
64: ECTSNG: begin
65: i:=0;
66: s:=[i];
67: end;
68: ESTLIM: stlimit(0);
69: EARGV: argv(100,chs);
70: EPACK: pack(ch1,2,chs);
71: EUNPACK: unpack(chs,ch1,2);
72: EASRT: assert(false);
73: ELLIMIT: begin
74: linelimit(output,1);
75: writeln('This only should print');
76: writeln;
77: writeln('ERROR');
78: end;
79: ETRASHHEAP: begin
80: new(ptr);
81: ptr1:=ptr;
82: dispose(ptr1);
83: dispose(ptr);
84: end;
85: EPASTEOF: begin
86: rewrite(junk);
87: reset(junk);
88: get(junk);
89: get(junk);
90: write(junk^);
91: end;
92: EREFINAF: ch:=junk^;
93: ENOFILE: ch:=other^;
94: ENAMESIZE: rewrite(junk,
95: 'thisisaverylongandconvolutedfilenamewhichexceedsalllimitsofreasonablenessandgoodtaste');
96: EBADINUM: begin
97: writeln('Enter a letter');
98: read(i);
99: end;
100: EBADFNUM: begin
101: writeln('Enter a letter');
102: read(r);
103: end;
104: ENUMNTFD: begin
105: writeln('Enter your name');
106: read(err);
107: end;
108: ENAMRNG: begin
109: variant.val:=100;
110: writeln(variant.name);
111: end;
112: EFMTSIZE: begin
113: i:=-1;
114: writeln(1.0:i);
115: end;
116: ECREATE: rewrite(locked);
117: EREMOVE: remove('none');
118: EOPEN: reset(locked);
119: EREADIT: read(output,ch);
120: EWRITEIT: write(input,ch);
121: ESQRT: r:=sqrt(-1.0);
122: ELN: r:=ln(0);
123: ERANGE: ch:=succ(chr(127));
124: ESUBSC: ch:=ch1[127 + 1];
125: end;
126: writeln('*** ERROR NOT DETECTED ***');
127: 99:end.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.