Annotation of 43BSD/ucb/dbx/tests/pc/pcerror.p, revision 1.1

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.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.