⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pcerror.p

📁 早期freebsd实现
💻 P
字号:
(* * Copyright (c) 1980, 1993 *	The Regents of the University of California.  All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software *    must display the following acknowledgement: *	This product includes software developed by the University of *	California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors *    may be used to endorse or promote products derived from this software *    without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * *	@(#)pcerror.p	8.1 (Berkeley) 6/6/93 *)program errs(input,output,junk,locked);label	99;typeetype = (ECHR, EHALT, ENILPTR, ECASE, EOUTOFMEM, ECTSNG,ESTLIM, EARGV, EPACK, EUNPACK, EASRT, ELLIMIT, ETRASHHEAP, EPASTEOF, EREFINAF, ENOFILE, ENAMESIZE, EBADINUM, EBADFNUM, ENUMNTFD, ENAMRNG,EFMTSIZE, ESEEK, ECREATE, EREMOVE, EOPEN, EREADIT, EWRITEIT, ESQRT,ELN, ERANGE, ESUBSC, EGOTO, ECLOSE, EWRITE, ECTLWR, ECTUPR, xxx);biggie = array[1..15000] of integer;varch :char;chs :alfa;ch1 :array[1..10] of char;ptr, ptr1 :^char;ptr2 :^biggie;junk, locked, other :file of char;variant :record	case boolean of	true:(val :1..100);	false:(name :etype)	end;s :set of 1..4;i :integer;r :real;err :etype;beginwriteln('Want a list of error names?');readln(ch);if ch = 'y' then begin	for err:=ECHR to pred(xxx) do begin		write(err:15);		if ord(err) mod 5 = 4 then			writeln;		end;	writeln;	end;writeln('enter an error name');readln(err);if err in [ESEEK, EGOTO, ECLOSE, EWRITE] then begin	writeln(err, ': error cannot be simulated');	goto 99;	end;case err ofECHR: ch:=chr(128);EHALT: halt;ENILPTR: ch:=ptr^;ECASE: case 4 of 1:; end;EOUTOFMEM: while true do begin		new(ptr2);		writeln('alloc successful');		end;ECTLWR: begin	i:=0;	s:=[i..2];	end;ECTUPR: begin	i:=5;	s:=[1..i];	end;ECTSNG: begin	i:=0;	s:=[i];	end;ESTLIM: stlimit(0);EARGV: argv(100,chs);EPACK: pack(ch1,2,chs);EUNPACK: unpack(chs,ch1,2);EASRT: assert(false);ELLIMIT: begin	 linelimit(output,1);	 writeln('This only should print');	 writeln;	 writeln('ERROR');	 end;ETRASHHEAP: begin	    new(ptr);	    ptr1:=ptr;	    dispose(ptr1);	    dispose(ptr);	    end;EPASTEOF: begin	  rewrite(junk);	  reset(junk);	  get(junk);	  get(junk);	  write(junk^);	  end;EREFINAF: ch:=junk^;ENOFILE: ch:=other^;ENAMESIZE: rewrite(junk,'thisisaverylongandconvolutedfilenamewhichexceedsalllimitsofreasonablenessandgoodtaste');EBADINUM: begin	  writeln('Enter a letter');	  read(i);	  end;EBADFNUM: begin	  writeln('Enter a letter');	  read(r);	  end;ENUMNTFD: begin	  writeln('Enter your name');	  read(err);	  end;ENAMRNG:  begin	  variant.val:=100;	  writeln(variant.name);	  end;EFMTSIZE: begin	  i:=-1;	  writeln(1.0:i);	  end;ECREATE: rewrite(locked);EREMOVE: remove('none');EOPEN: reset(locked);EREADIT: read(output,ch);EWRITEIT: write(input,ch);ESQRT: r:=sqrt(-1.0);ELN: r:=ln(0);ERANGE: ch:=succ(chr(127));ESUBSC: ch:=ch1[127 + 1];end;writeln('*** ERROR NOT DETECTED ***');99:end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -