From 6ace15a0dceaea6e17b48e0b3e01e4fe50621aec Mon Sep 17 00:00:00 2001 From: Norayr Chilingarian Date: Fri, 13 Feb 2015 14:23:13 +0400 Subject: [PATCH] Files are architecture dependent, texts are not. cleaned this up. -- noch --- src/lib/system/freebsd/clang/Texts.Mod | 863 ----------------- src/lib/system/freebsd/clang/Texts0.Mod | 880 ------------------ .../freebsd/clang/{ => x86_64}/Files.Mod | 0 .../freebsd/clang/{ => x86_64}/Files0.Mod | 0 src/lib/system/linux/clang/Texts.Mod | 863 ----------------- src/lib/system/linux/clang/Texts0.Mod | 880 ------------------ src/lib/system/linux/gcc/Texts.Mod | 863 ----------------- src/lib/system/linux/gcc/Texts0.Mod | 880 ------------------ src/lib/{system/darwin/clang => v4}/Texts.Mod | 0 .../{system/darwin/clang => v4}/Texts0.Mod | 0 voc | Bin 1276508 -> 1276477 bytes vocstatic.linux.gcc.x86_64 | Bin 1276508 -> 1276477 bytes 12 files changed, 5229 deletions(-) delete mode 100644 src/lib/system/freebsd/clang/Texts.Mod delete mode 100644 src/lib/system/freebsd/clang/Texts0.Mod rename src/lib/system/freebsd/clang/{ => x86_64}/Files.Mod (100%) rename src/lib/system/freebsd/clang/{ => x86_64}/Files0.Mod (100%) delete mode 100644 src/lib/system/linux/clang/Texts.Mod delete mode 100644 src/lib/system/linux/clang/Texts0.Mod delete mode 100644 src/lib/system/linux/gcc/Texts.Mod delete mode 100644 src/lib/system/linux/gcc/Texts0.Mod rename src/lib/{system/darwin/clang => v4}/Texts.Mod (100%) rename src/lib/{system/darwin/clang => v4}/Texts0.Mod (100%) diff --git a/src/lib/system/freebsd/clang/Texts.Mod b/src/lib/system/freebsd/clang/Texts.Mod deleted file mode 100644 index 2042dcf7..00000000 --- a/src/lib/system/freebsd/clang/Texts.Mod +++ /dev/null @@ -1,863 +0,0 @@ -MODULE Texts; (** CAS/HM 23.9.93 -- interface based on Texts by JG/NW 6.12.91**) (* << RC, MB, JT *) - IMPORT - Files, Modules, Reals; - - (*--- insert field e: Elem into Texts.Scanner and change Texts.Scan to set it in case of class=6 *) - - - CONST - Displaywhite = 15; - ElemChar* = 1CX; - TAB = 9X; CR = 0DX; maxD = 9; - (**FileMsg.id**) - load* = 0; store* = 1; - (**Notifier op**) - replace* = 0; insert* = 1; delete* = 2; - (**Scanner.class**) - Inval* = 0; Name* = 1; String* = 2; Int* = 3; Real* = 4; LongReal* = 5; Char* = 6; - - textTag = 0F0X; DocBlockId = 0F7X; version = 01X; - - TYPE - FontsFont = POINTER TO FontDesc; - FontDesc = RECORD - name: ARRAY 32 OF CHAR; - END ; - - Run = POINTER TO RunDesc; - RunDesc = RECORD - prev, next: Run; - len: LONGINT; - fnt: FontsFont; - col, voff: SHORTINT; - ascii: BOOLEAN (* << *) - END; - - Piece = POINTER TO PieceDesc; - PieceDesc = RECORD (RunDesc) - file: Files.File; - org: LONGINT - END; - - Elem* = POINTER TO ElemDesc; - Buffer* = POINTER TO BufDesc; - Text* = POINTER TO TextDesc; - - ElemMsg* = RECORD END; - Handler* = PROCEDURE (e: Elem; VAR msg: ElemMsg); - - ElemDesc* = RECORD (RunDesc) - W*, H*: LONGINT; - handle*: Handler; - base: Text - END; - - FileMsg* = RECORD (ElemMsg) - id*: INTEGER; - pos*: LONGINT; - r*: Files.Rider - END; - - CopyMsg* = RECORD (ElemMsg) - e*: Elem - END; - - IdentifyMsg* = RECORD (ElemMsg) - mod*, proc*: ARRAY 32 OF CHAR - END; - - - BufDesc* = RECORD - len*: LONGINT; - head: Run - END; - - TextDesc* = RECORD - len*: LONGINT; - head, cache: Run; - corg: LONGINT - END; - - Reader* = RECORD - eot*: BOOLEAN; - fnt*: FontsFont; - col*, voff*: SHORTINT; - elem*: Elem; - rider: Files.Rider; - run: Run; - org, off: LONGINT - END; - - Scanner* = RECORD (Reader) - nextCh*: CHAR; - line*, class*: INTEGER; - i*: LONGINT; - x*: REAL; - y*: LONGREAL; - c*: CHAR; - len*: SHORTINT; - s*: ARRAY 64 OF CHAR (* << *) - END; - - Writer* = RECORD - buf*: Buffer; - fnt*: FontsFont; - col*, voff*: SHORTINT; - rider: Files.Rider; - file: Files.File - END; - - Alien = POINTER TO RECORD (ElemDesc) - file: Files.File; - org, span: LONGINT; - mod, proc: ARRAY 32 OF CHAR - END; - - VAR - new*: Elem; - del: Buffer; - FontsDefault: FontsFont; - - - PROCEDURE FontsThis(VAR name: ARRAY OF CHAR): FontsFont; - VAR F: FontsFont; - BEGIN - NEW(F); COPY(name, F.name); RETURN F - END FontsThis; - - (* run primitives *) - - PROCEDURE Find (T: Text; VAR pos: LONGINT; VAR u: Run; VAR org, off: LONGINT); - VAR v: Run; m: LONGINT; - BEGIN - IF pos >= T.len THEN pos := T.len; u := T.head; org := T.len; off := 0; T.cache := T.head; T.corg := 0 - ELSE v := T.cache.next; m := pos - T.corg; - IF pos >= T.corg THEN - WHILE m >= v.len DO DEC(m, v.len); v := v.next END - ELSE - WHILE m < 0 DO v := v.prev; INC(m, v.len) END; - END; - u := v; org := pos - m; off := m; T.cache := v.prev; T.corg := org - END - END Find; - - PROCEDURE Split (off: LONGINT; VAR u, un: Run); - VAR p, U: Piece; - BEGIN - IF off = 0 THEN un := u; u := un.prev - ELSIF off >= u.len THEN un := u.next - ELSE NEW(p); un := p; U := u(Piece); - p^ := U^; INC(p.org, off); DEC(p.len, off); DEC(U.len, p.len); - p.ascii := u.ascii; p.prev := U; p.next := U.next; p.next.prev := p; U.next := p (* << *) - END - END Split; - - PROCEDURE Merge (T: Text; u: Run; VAR v: Run); - VAR p, q: Piece; - BEGIN - IF (u IS Piece) & (v IS Piece) & (u.fnt.name = v.fnt.name) & (u.col = v.col) & (u.voff = v.voff) - & (u(Piece).ascii = v(Piece).ascii) THEN (* << *) - p := u(Piece); q := v(Piece); - IF (p.file = q.file) & (p.org + p.len = q.org) THEN - IF T.cache = u THEN INC(T.corg, q.len) - ELSIF T.cache = v THEN T.cache := T.head; T.corg := 0 - END; - INC(p.len, q.len); v := v.next - END - END - END Merge; - - PROCEDURE Splice (un, v, w: Run; base: Text); (* (u, un) -> (u, v, w, un) *) - VAR u: Run; - BEGIN - IF v # w.next THEN u := un.prev; - u.next := v; v.prev := u; un.prev := w; w.next := un; - REPEAT - IF v IS Elem THEN v(Elem).base := base END; - v := v.next - UNTIL v = un - END - END Splice; - - PROCEDURE ClonePiece (p: Piece): Piece; - VAR q: Piece; - BEGIN NEW(q); q^ := p^; RETURN q - END ClonePiece; - - PROCEDURE CloneElem (e: Elem): Elem; - VAR msg: CopyMsg; - BEGIN msg.e := NIL; e.handle(e, msg); RETURN msg.e - END CloneElem; - - - (** Elements **) - - PROCEDURE CopyElem* (SE, DE: Elem); - BEGIN DE.len := SE.len; DE.fnt := SE.fnt; DE.col := SE.col; DE.voff := SE.voff; - DE.W := SE.W; DE.H := SE.H; DE.handle := SE.handle - END CopyElem; - - PROCEDURE ElemBase* (E: Elem): Text; - BEGIN RETURN E.base - END ElemBase; - - PROCEDURE ElemPos* (E: Elem): LONGINT; - VAR u: Run; pos: LONGINT; - BEGIN u := E.base.head.next; pos := 0; - WHILE u # E DO pos := pos + u.len; u := u.next END; - RETURN pos - END ElemPos; - - - PROCEDURE HandleAlien (E: Elem; VAR msg: ElemMsg); - VAR e: Alien; r: Files.Rider; i: LONGINT; ch: CHAR; - BEGIN - WITH E: Alien DO - IF msg IS CopyMsg THEN - WITH msg: CopyMsg DO NEW(e); CopyElem(E, e); - e.file := E.file; e.org := E.org; e.span := E.span; e.mod := E.mod; e.proc := E.proc; - msg.e := e - END - ELSIF msg IS IdentifyMsg THEN - WITH msg: IdentifyMsg DO - COPY(E.mod, msg.mod); COPY(E.proc, msg.proc); msg.mod[31] := 1X (*alien*) - END - ELSIF msg IS FileMsg THEN - WITH msg: FileMsg DO - IF msg.id = store THEN Files.Set(r, E.file, E.org); i := E.span; - WHILE i > 0 DO Files.Read(r, ch); Files.Write(msg.r, ch); DEC(i) END - END - END - END - END - END HandleAlien; - - - (** Buffers **) - - PROCEDURE OpenBuf* (B: Buffer); - VAR u: Run; - BEGIN NEW(u); u.next := u; u.prev := u; B.head := u; B.len := 0 - END OpenBuf; - - PROCEDURE Copy* (SB, DB: Buffer); - VAR u, v, vn: Run; - BEGIN u := SB.head.next; v := DB.head.prev; - WHILE u # SB.head DO - IF u IS Piece THEN vn := ClonePiece(u(Piece)) ELSE vn := CloneElem(u(Elem)) END; - v.next := vn; vn.prev := v; v := vn; u := u.next - END; - v.next := DB.head; DB.head.prev := v; - INC(DB.len, SB.len) - END Copy; - - PROCEDURE Recall* (VAR B: Buffer); - BEGIN B := del; del := NIL - END Recall; - - - (** Texts **) - - PROCEDURE Save* (T: Text; beg, end: LONGINT; B: Buffer); - VAR u, v, w, wn: Run; uo, ud, vo, vd: LONGINT; - BEGIN Find(T, beg, u, uo, ud); Find(T, end, v, vo, vd); - w := B.head.prev; - WHILE u # v DO - IF u IS Piece THEN wn := ClonePiece(u(Piece)); DEC(wn.len, ud); INC(wn(Piece).org, ud) - ELSE wn := CloneElem(u(Elem)) - END; - w.next := wn; wn.prev := w; w := wn; u := u.next; ud := 0 - END; - IF vd > 0 THEN (*v IS Piece*) wn := ClonePiece(v(Piece)); wn.len := vd - ud; INC(wn(Piece).org, ud); - w.next := wn; wn.prev := w; w := wn - END; - w.next := B.head; B.head.prev := w; - INC(B.len, end - beg) - END Save; - - PROCEDURE Insert* (T: Text; pos: LONGINT; B: Buffer); - VAR u, un, v: Run; p, q: Piece; uo, ud, len: LONGINT; - BEGIN Find(T, pos, u, uo, ud); Split(ud, u, un); - len := B.len; v := B.head.next; - Merge(T, u, v); Splice(un, v, B.head.prev, T); - INC(T.len, len); B.head.next := B.head; B.head.prev := B.head; B.len := 0; - END Insert; - - PROCEDURE Append* (T: Text; B: Buffer); - VAR v: Run; pos, len: LONGINT; - BEGIN pos := T.len; len := B.len; v := B.head.next; - Merge(T, T.head.prev, v); Splice(T.head, v, B.head.prev, T); - INC(T.len, len); B.head.next := B.head; B.head.prev := B.head; B.len := 0; - END Append; - - PROCEDURE Delete* (T: Text; beg, end: LONGINT); - VAR c, u, un, v, vn: Run; co, uo, ud, vo, vd: LONGINT; - BEGIN - Find(T, beg, u, uo, ud); Split(ud, u, un); c := T.cache; co := T.corg; - Find(T, end, v, vo, vd); Split(vd, v, vn); T.cache := c; T.corg := co; - NEW(del); OpenBuf(del); del.len := end - beg; - Splice(del.head, un, v, NIL); - Merge(T, u, vn); u.next := vn; vn.prev := u; - DEC(T.len, end - beg); - END Delete; - - PROCEDURE ChangeLooks* (T: Text; beg, end: LONGINT; sel: SET; fnt: FontsFont; col, voff: SHORTINT); - VAR c, u, un, v, vn: Run; co, uo, ud, vo, vd: LONGINT; - BEGIN Find(T, beg, u, uo, ud); Split(ud, u, un); c := T.cache; co := T.corg; - Find(T, end, v, vo, vd); Split(vd, v, vn); T.cache := c; T.corg := co; - WHILE un # vn DO - IF (0 IN sel) & (fnt # NIL) THEN un.fnt := fnt END; - IF 1 IN sel THEN un.col := col END; - IF 2 IN sel THEN un.voff := voff END; - Merge(T, u, un); - IF u.next = un THEN u := un; un := un.next ELSE u.next := un; un.prev := u END - END; - Merge(T, u, un); u.next := un; un.prev := u; - END ChangeLooks; - - - (** Readers **) - - PROCEDURE OpenReader* (VAR R: Reader; T: Text; pos: LONGINT); - VAR u: Run; - BEGIN - IF pos >= T.len THEN pos := T.len END; - Find(T, pos, u, R.org, R.off); R.run := u; R.eot := FALSE; - IF u IS Piece THEN - Files.Set(R.rider, u(Piece).file, u(Piece).org + R.off) - END - END OpenReader; - - PROCEDURE Read* (VAR R: Reader; VAR ch: CHAR); - VAR u: Run; pos: LONGINT; nextch: CHAR; - BEGIN u := R.run; R.fnt := u.fnt; R.col := u.col; R.voff := u.voff; INC(R.off); - IF u IS Piece THEN Files.Read(R.rider, ch); R.elem := NIL; - IF (ch = 0AX) & u(Piece).ascii THEN ch := CR (* << LF to CR *) - ELSIF (ch = CR) & u(Piece).ascii THEN (* << CR LF to CR *) - pos := Files.Pos(R.rider); Files.Read(R.rider, nextch); - IF nextch = 0AX THEN INC(R.off) ELSE Files.Set(R.rider, u(Piece).file, pos) END - END - ELSIF u IS Elem THEN ch := ElemChar; R.elem := u(Elem) - ELSE ch := 0X; R.elem := NIL; R.eot := TRUE - END; - IF R.off = u.len THEN INC(R.org, u.len); u := u.next; - IF u IS Piece THEN - WITH u: Piece DO Files.Set(R.rider, u.file, u.org) END - END; - R.run := u; R.off := 0 - END - END Read; - - PROCEDURE ReadElem* (VAR R: Reader); - VAR u, un: Run; - BEGIN u := R.run; - WHILE u IS Piece DO INC(R.org, u.len); u := u.next END; - IF u IS Elem THEN un := u.next; R.run := un; INC(R.org); R.off := 0; - R.fnt := u.fnt; R.col := u.col; R.voff := u.voff; R.elem := u(Elem); - IF un IS Piece THEN - WITH un: Piece DO Files.Set(R.rider, un.file, un.org) END - END - ELSE R.eot := TRUE; R.elem := NIL - END - END ReadElem; - - PROCEDURE ReadPrevElem* (VAR R: Reader); - VAR u: Run; - BEGIN u := R.run.prev; - WHILE u IS Piece DO DEC(R.org, u.len); u := u.prev END; - IF u IS Elem THEN R.run := u; DEC(R.org); R.off := 0; - R.fnt := u.fnt; R.col := u.col; R.voff := u.voff; R.elem := u(Elem) - ELSE R.eot := TRUE; R.elem := NIL - END - END ReadPrevElem; - - PROCEDURE Pos* (VAR R: Reader): LONGINT; - BEGIN RETURN R.org + R.off - END Pos; - - - (** Scanners --------------- NW --------------- **) - - PROCEDURE OpenScanner* (VAR S: Scanner; T: Text; pos: LONGINT); - BEGIN OpenReader(S, T, pos); S.line := 0; S.nextCh := " " - END OpenScanner; - - (*IEEE floating point formats: - x = 2^(e-127) * 1.m bit 0: sign, bits 1- 8: e, bits 9-31: m - x = 2^(e-1023) * 1.m bit 0: sign, bits 1-11: e, bits 12-63: m *) - - PROCEDURE Scan* (VAR S: Scanner); - CONST maxD = 32; - VAR ch, term: CHAR; - neg, negE, hex: BOOLEAN; - i, j, h: SHORTINT; - e: INTEGER; k: LONGINT; - x, f: REAL; y, g: LONGREAL; - d: ARRAY maxD OF CHAR; - - PROCEDURE ReadScaleFactor; - BEGIN Read(S, ch); - IF ch = "-" THEN negE := TRUE; Read(S, ch) - ELSE negE := FALSE; - IF ch = "+" THEN Read(S, ch) END - END; - WHILE ("0" <= ch) & (ch <= "9") DO - e := e*10 + ORD(ch) - 30H; Read(S, ch) - END - END ReadScaleFactor; - - BEGIN ch := S.nextCh; i := 0; - LOOP - IF ch = CR THEN INC(S.line) - ELSIF (ch # " ") & (ch # TAB) THEN EXIT - END ; - Read(S, ch) - END; - IF ("A" <= CAP(ch)) & (CAP(ch) <= "Z") OR (ch = "/") OR (ch = ".") THEN (*name*) (* << *) - REPEAT S.s[i] := ch; INC(i); Read(S, ch) - UNTIL (CAP(ch) > "Z") & (ch # "_") (* << *) - OR ("A" > CAP(ch)) & (ch > "9") - OR ("0" > ch) & (ch # ".") & (ch # "/") (* << *) - OR (i = 63); (* << *) - S.s[i] := 0X; S.len := i; S.class := 1 - ELSIF ch = 22X THEN (*literal string*) - Read(S, ch); - WHILE (ch # 22X) & (ch >= " ") & (i # 63) DO (* << *) - S.s[i] := ch; INC(i); Read(S, ch) - END; - S.s[i] := 0X; S.len := i+1; Read(S, ch); S.class := 2 - ELSE - IF ch = "-" THEN neg := TRUE; Read(S, ch) ELSE neg := FALSE END ; - IF ("0" <= ch) & (ch <= "9") THEN (*number*) - hex := FALSE; j := 0; - LOOP d[i] := ch; INC(i); Read(S, ch); - IF ch < "0" THEN EXIT END; - IF "9" < ch THEN - IF ("A" <= ch) & (ch <= "F") THEN hex := TRUE; ch := CHR(ORD(ch)-7) - ELSIF ("a" <= ch) & (ch <= "f") THEN hex := TRUE; ch := CHR(ORD(ch)-27H) - ELSE EXIT - END - END - END; - IF ch = "H" THEN (*hex number*) - Read(S, ch); S.class := 3; - IF i-j > 8 THEN j := i-8 END ; - k := ORD(d[j]) - 30H; INC(j); - IF (i-j = 7) & (k >= 8) THEN DEC(k, 16) END ; - WHILE j < i DO k := k*10H + (ORD(d[j]) - 30H); INC(j) END ; - IF neg THEN S.i := -k ELSE S.i := k END - ELSIF ch = "." THEN (*read real*) - Read(S, ch); h := i; - WHILE ("0" <= ch) & (ch <= "9") DO d[i] := ch; INC(i); Read(S, ch) END ; - IF ch = "D" THEN - e := 0; y := 0; g := 1; - REPEAT y := y*10 + (ORD(d[j]) - 30H); INC(j) UNTIL j = h; - WHILE j < i DO g := g/10; y := (ORD(d[j]) - 30H)*g + y; INC(j) END ; - ReadScaleFactor; - IF negE THEN - IF e <= 308 THEN y := y / Reals.TenL(e) ELSE y := 0 END - ELSIF e > 0 THEN - IF e <= 308 THEN y := Reals.TenL(e) * y ELSE HALT(40) END - END ; - IF neg THEN y := -y END ; - S.class := 5; S.y := y - ELSE e := 0; x := 0; f := 1; - REPEAT x := x*10 + (ORD(d[j]) - 30H); INC(j) UNTIL j = h; - WHILE j < i DO f := f/10; x := (ORD(d[j])-30H)*f + x; INC(j) END; - IF ch = "E" THEN ReadScaleFactor END ; - IF negE THEN - IF e <= 38 THEN x := x / Reals.Ten(e) ELSE x := 0 END - ELSIF e > 0 THEN - IF e <= 38 THEN x := Reals.Ten(e) * x ELSE HALT(40) END - END ; - IF neg THEN x := -x END ; - S.class := 4; S.x := x - END ; - IF hex THEN S.class := 0 END - ELSE (*decimal integer*) - S.class := 3; k := 0; - REPEAT k := k*10 + (ORD(d[j]) - 30H); INC(j) UNTIL j = i; - IF neg THEN S.i := -k ELSE S.i := k END; - IF hex THEN S.class := 0 ELSE S.class := 3 END - END - ELSE S.class := 6; - IF neg THEN S.c := "-" ELSE S.c := ch; Read(S, ch) END - END - END; - S.nextCh := ch - END Scan; - - - (** Writers **) - - PROCEDURE OpenWriter* (VAR W: Writer); - BEGIN NEW(W.buf); OpenBuf(W.buf); - W.fnt := FontsDefault; W.col := Displaywhite; W.voff := 0; - W.file := Files.New(""); Files.Set(W.rider, W.file, 0) - END OpenWriter; - - PROCEDURE SetFont* (VAR W: Writer; fnt: FontsFont); - BEGIN W.fnt := fnt - END SetFont; - - PROCEDURE SetColor* (VAR W: Writer; col: SHORTINT); - BEGIN W.col := col - END SetColor; - - PROCEDURE SetOffset* (VAR W: Writer; voff: SHORTINT); - BEGIN W.voff := voff - END SetOffset; - - - PROCEDURE Write* (VAR W: Writer; ch: CHAR); - VAR u, un: Run; p: Piece; - BEGIN Files.Write(W.rider, ch); INC(W.buf.len); un := W.buf.head; u := un.prev; - IF (u IS Piece) & (u(Piece).file = W.file) & (u.fnt.name = W.fnt.name) & (u.col = W.col) & (u.voff = W.voff) - & ~u(Piece).ascii THEN (* << *) - INC(u.len) - ELSE NEW(p); u.next := p; p.prev := u; p.next := un; un.prev := p; - p.len := 1; p.fnt := W.fnt; p.col := W.col; p.voff := W.voff; - p.file := W.file; p.org := Files.Length(W.file) - 1; p.ascii := FALSE (* << *) - END - END Write; - - PROCEDURE WriteElem* (VAR W: Writer; e: Elem); - VAR u, un: Run; - BEGIN - IF e.base # NIL THEN HALT(99) END; - INC(W.buf.len); e.len := 1; e.fnt := W.fnt; e.col := W.col; e.voff := W.voff; - un := W.buf.head; u := un.prev; u.next := e; e.prev := u; e.next := un; un.prev := e - END WriteElem; - - PROCEDURE WriteLn* (VAR W: Writer); - BEGIN Write(W, CR) - END WriteLn; - - PROCEDURE WriteString* (VAR W: Writer; s: ARRAY OF CHAR); - VAR i: INTEGER; - BEGIN i := 0; - WHILE s[i] >= " " DO Write(W, s[i]); INC(i) END - END WriteString; - - PROCEDURE WriteInt* (VAR W: Writer; x, n: LONGINT); - VAR i: INTEGER; x0: LONGINT; - a: ARRAY 11 OF CHAR; - BEGIN i := 0; - IF x < 0 THEN - IF x = MIN(LONGINT) THEN WriteString(W, " -2147483648"); RETURN - ELSE DEC(n); x0 := -x - END - ELSE x0 := x - END; - REPEAT - a[i] := CHR(x0 MOD 10 + 30H); x0 := x0 DIV 10; INC(i) - UNTIL x0 = 0; - WHILE n > i DO Write(W, " "); DEC(n) END; - IF x < 0 THEN Write(W, "-") END; - REPEAT DEC(i); Write(W, a[i]) UNTIL i = 0 - END WriteInt; - - PROCEDURE WriteHex* (VAR W: Writer; x: LONGINT); - VAR i: INTEGER; y: LONGINT; - a: ARRAY 10 OF CHAR; - BEGIN i := 0; Write(W, " "); - REPEAT y := x MOD 10H; - IF y < 10 THEN a[i] := CHR(y + 30H) ELSE a[i] := CHR(y + 37H) END; - x := x DIV 10H; INC(i) - UNTIL i = 8; - REPEAT DEC(i); Write(W, a[i]) UNTIL i = 0 - END WriteHex; - - PROCEDURE WriteReal* (VAR W: Writer; x: REAL; n: INTEGER); - VAR e: INTEGER; x0: REAL; - d: ARRAY maxD OF CHAR; - BEGIN e := Reals.Expo(x); - IF e = 0 THEN - WriteString(W, " 0"); - REPEAT Write(W, " "); DEC(n) UNTIL n <= 3 - ELSIF e = 255 THEN - WriteString(W, " NaN"); - WHILE n > 4 DO Write(W, " "); DEC(n) END - ELSE - IF n <= 9 THEN n := 3 ELSE DEC(n, 6) END; - REPEAT Write(W, " "); DEC(n) UNTIL n <= 8; - (*there are 2 < n <= 8 digits to be written*) - IF x < 0.0 THEN Write(W, "-"); x := -x ELSE Write(W, " ") END; - e := (e - 127) * 77 DIV 256; - IF e >= 0 THEN x := x / Reals.Ten(e) ELSE x := Reals.Ten(-e) * x END; - IF x >= 10.0 THEN x := 0.1*x; INC(e) END; - x0 := Reals.Ten(n-1); x := x0*x + 0.5; - IF x >= 10.0*x0 THEN x := x*0.1; INC(e) END; - Reals.Convert(x, n, d); - DEC(n); Write(W, d[n]); Write(W, "."); - REPEAT DEC(n); Write(W, d[n]) UNTIL n = 0; - Write(W, "E"); - IF e < 0 THEN Write(W, "-"); e := -e ELSE Write(W, "+") END; - Write(W, CHR(e DIV 10 + 30H)); Write(W, CHR(e MOD 10 + 30H)) - END - END WriteReal; - - PROCEDURE WriteRealFix* (VAR W: Writer; x: REAL; n, k: INTEGER); - VAR e, i: INTEGER; sign: CHAR; x0: REAL; - d: ARRAY maxD OF CHAR; - - PROCEDURE seq(ch: CHAR; n: INTEGER); - BEGIN WHILE n > 0 DO Write(W, ch); DEC(n) END - END seq; - - PROCEDURE dig(n: INTEGER); - BEGIN - WHILE n > 0 DO - DEC(i); Write(W, d[i]); DEC(n) - END - END dig; - - BEGIN e := Reals.Expo(x); - IF k < 0 THEN k := 0 END; - IF e = 0 THEN seq(" ", n-k-2); Write(W, "0"); seq(" ", k+1) - ELSIF e = 255 THEN WriteString(W, " NaN"); seq(" ", n-4) - ELSE e := (e - 127) * 77 DIV 256; - IF x < 0 THEN sign := "-"; x := -x ELSE sign := " " END; - IF e >= 0 THEN (*x >= 1.0, 77/256 = log 2*) x := x/Reals.Ten(e) - ELSE (*x < 1.0*) x := Reals.Ten(-e) * x - END; - IF x >= 10.0 THEN x := 0.1*x; INC(e) END; - (* 1 <= x < 10 *) - IF k+e >= maxD-1 THEN k := maxD-1-e - ELSIF k+e < 0 THEN k := -e; x := 0.0 - END; - x0 := Reals.Ten(k+e); x := x0*x + 0.5; - IF x >= 10.0*x0 THEN INC(e) END; - (*e = no. of digits before decimal point*) - INC(e); i := k+e; Reals.Convert(x, i, d); - IF e > 0 THEN - seq(" ", n-e-k-2); Write(W, sign); dig(e); - Write(W, "."); dig(k) - ELSE seq(" ", n-k-3); - Write(W, sign); Write(W, "0"); Write(W, "."); - seq("0", -e); dig(k+e) - END - END - END WriteRealFix; - - PROCEDURE WriteRealHex* (VAR W: Writer; x: REAL); - VAR i: INTEGER; - d: ARRAY 8 OF CHAR; - BEGIN Reals.ConvertH(x, d); i := 0; - REPEAT Write(W, d[i]); INC(i) UNTIL i = 8 - END WriteRealHex; - - PROCEDURE WriteLongReal* (VAR W: Writer; x: LONGREAL; n: INTEGER); - CONST maxD = 16; - VAR e: INTEGER; x0: LONGREAL; - d: ARRAY maxD OF CHAR; - BEGIN e := Reals.ExpoL(x); - IF e = 0 THEN - WriteString(W, " 0"); - REPEAT Write(W, " "); DEC(n) UNTIL n <= 3 - ELSIF e = 2047 THEN - WriteString(W, " NaN"); - WHILE n > 4 DO Write(W, " "); DEC(n) END - ELSE - IF n <= 10 THEN n := 3 ELSE DEC(n, 7) END; - REPEAT Write(W, " "); DEC(n) UNTIL n <= maxD; - (*there are 2 <= n <= maxD digits to be written*) - IF x < 0 THEN Write(W, "-"); x := -x ELSE Write(W, " ") END; - e := SHORT(LONG(e - 1023) * 77 DIV 256); - IF e >= 0 THEN x := x / Reals.TenL(e) ELSE x := Reals.TenL(-e) * x END ; - IF x >= 10.0D0 THEN x := 0.1D0 * x; INC(e) END ; - x0 := Reals.TenL(n-1); x := x0*x + 0.5D0; - IF x >= 10.0D0*x0 THEN x := 0.1D0 * x; INC(e) END ; - Reals.ConvertL(x, n, d); - DEC(n); Write(W, d[n]); Write(W, "."); - REPEAT DEC(n); Write(W, d[n]) UNTIL n = 0; - Write(W, "D"); - IF e < 0 THEN Write(W, "-"); e := -e ELSE Write(W, "+") END; - Write(W, CHR(e DIV 100 + 30H)); e := e MOD 100; - Write(W, CHR(e DIV 10 + 30H)); - Write(W, CHR(e MOD 10 + 30H)) - END - END WriteLongReal; - - PROCEDURE WriteLongRealHex* (VAR W: Writer; x: LONGREAL); - VAR i: INTEGER; - d: ARRAY 16 OF CHAR; - BEGIN Reals.ConvertHL(x, d); i := 0; - REPEAT Write(W, d[i]); INC(i) UNTIL i = 16 - END WriteLongRealHex; - - PROCEDURE WriteDate* (VAR W: Writer; t, d: LONGINT); - - PROCEDURE WritePair(ch: CHAR; x: LONGINT); - BEGIN Write(W, ch); - Write(W, CHR(x DIV 10 + 30H)); Write(W, CHR(x MOD 10 + 30H)) - END WritePair; - - BEGIN - WritePair(" ", d MOD 32); WritePair(".", d DIV 32 MOD 16); WritePair(".", d DIV 512 MOD 128); - WritePair(" ", t DIV 4096 MOD 32); WritePair(":", t DIV 64 MOD 64); WritePair(":", t MOD 64) - END WriteDate; - - - (** Text Filing **) - - PROCEDURE Load0 (VAR r: Files.Rider; T: Text); - VAR u, un: Run; p: Piece; e: Elem; - org, pos, hlen, plen: LONGINT; ecnt, fno, fcnt, col, voff: SHORTINT; - f: Files.File; - msg: FileMsg; - mods, procs: ARRAY 64, 32 OF CHAR; - name: ARRAY 32 OF CHAR; - fnts: ARRAY 32 OF FontsFont; - - PROCEDURE LoadElem (VAR r: Files.Rider; pos, span: LONGINT; VAR e: Elem); - VAR M: Modules.Module; Cmd: Modules.Command; a: Alien; - org, ew, eh: LONGINT; eno: SHORTINT; - BEGIN new := NIL; - Files.ReadLInt(r, ew); Files.ReadLInt(r, eh); Files.Read(r, eno); - IF eno > ecnt THEN ecnt := eno; Files.ReadString(r, mods[eno]); Files.ReadString(r, procs[eno]) END; - org := Files.Pos(r); M := Modules.ThisMod(mods[eno]); - IF M # NIL THEN Cmd := Modules.ThisCommand(M, procs[eno]); - IF Cmd # NIL THEN Cmd END - END; - e := new; - IF e # NIL THEN e.W := ew; e.H := eh; e.base := T; - msg.pos := pos; e.handle(e, msg); - IF Files.Pos(r) # org + span THEN e := NIL END - END; - IF e = NIL THEN Files.Set(r, f, org + span); - NEW(a); a.W := ew; a.H := eh; a.handle := HandleAlien; a.base := T; - a.file := f; a.org := org; a.span := span; - COPY(mods[eno], a.mod); COPY(procs[eno], a.proc); - e := a - END - END LoadElem; - - BEGIN pos := Files.Pos(r); f := Files.Base(r); - NEW(u); u.len := MAX(LONGINT); (*u.fnt := FontsDefault;*)u.fnt := NIL; u.col := Displaywhite; - T.head := u; ecnt := 0; fcnt := 0; - msg.id := load; msg.r := r; - Files.ReadLInt(msg.r, hlen); (*!!!org := pos + hlen;*) org := pos -2 + hlen; pos := org; Files.Read(msg.r, fno); - WHILE fno # 0 DO - IF fno > fcnt THEN fcnt := fno; Files.ReadString(msg.r, name); fnts[fno] := FontsThis(name) END; - Files.Read(msg.r, col); Files.Read(msg.r, voff); Files.ReadLInt(msg.r, plen); - IF plen > 0 THEN NEW(p); p.file := f; p.org := pos; p.ascii := FALSE; un := p; un.len := plen - ELSE LoadElem(msg.r, pos - org, -plen, e); un := e; un.len := 1 - END; - un.fnt := fnts[fno]; un.col := col; un.voff := voff; - INC(pos, un.len); u.next := un; un.prev := u; u := un; Files.Read(msg.r, fno) - END; - u.next := T.head; T.head.prev := u; T.cache := T.head; T.corg := 0; - Files.ReadLInt(msg.r, T.len); Files.Set(r, f, Files.Pos(msg.r) + T.len) - END Load0; - - PROCEDURE Load* (VAR r: Files.Rider; T: Text); - CONST oldTag = -4095; - VAR tag: INTEGER; - BEGIN - (* for compatibility inner text tags are checked and skipped; remove this in a later version *) - Files.ReadInt(r, tag); IF tag # oldTag THEN Files.Set(r, Files.Base(r), Files.Pos(r)-2) END; - Load0(r, T) - END Load; - - PROCEDURE Open* (T: Text; name: ARRAY OF CHAR); - VAR f: Files.File; r: Files.Rider; u: Run; p: Piece; tag, version: CHAR; hlen: LONGINT; - BEGIN f := Files.Old(name); - IF f = NIL THEN f := Files.New("") END; - Files.Set(r, f, 0); Files.Read(r, tag); Files.Read(r, version); - IF (tag = textTag) OR (tag = 01X) & (version = textTag) THEN Load0(r, T) - ELSE (*ascii*) - NEW(u); u.len := MAX(LONGINT); u.fnt := NIL; u.col := Displaywhite; - NEW(p); - IF (tag = DocBlockId) & (version = 07X) THEN (* extract ascii text from System 3 text document *) - Files.Set(r, f, 28); Files.ReadLInt(r, hlen); - Files.Set(r, f, 22 + hlen); Files.ReadLInt(r, T.len); p.org := 26 + hlen - ELSE - T.len := Files.Length(f); p.org := 0 - END ; - IF T.len > 0 THEN p.len := T.len; p.fnt := FontsDefault; - p.col := Displaywhite; p.voff := 0; p.file := f; p.ascii := TRUE; - u.next := p; u.prev := p; p.next := u; p.prev := u - ELSE u.next := u; u.prev := u - END; - T.head := u; T.cache := T.head; T.corg := 0 - END - END Open; - - PROCEDURE Store* (VAR r: Files.Rider; T: Text); - VAR r1: Files.Rider; u, un: Run; e: Elem; org, pos, delta, hlen, rlen: LONGINT; ecnt, fno, fcnt: SHORTINT; ch: CHAR; (* << *) - msg: FileMsg; iden: IdentifyMsg; - mods, procs: ARRAY 64, 32 OF CHAR; - fnts: ARRAY 32 OF FontsFont; - block: ARRAY 1024 OF CHAR; - - PROCEDURE StoreElem (VAR r: Files.Rider; pos: LONGINT; e: Elem); - VAR r1: Files.Rider; org, span: LONGINT; eno: SHORTINT; - BEGIN COPY(iden.mod, mods[ecnt]); COPY(iden.proc, procs[ecnt]); eno := 1; - WHILE (mods[eno] # iden.mod) OR (procs[eno] # iden.proc) DO INC(eno) END; - Files.Set(r1, Files.Base(r), Files.Pos(r)); - Files.WriteLInt(r, 0); Files.WriteLInt(r, 0); Files.WriteLInt(r, 0); (*fixup slot*) - Files.Write(r, eno); - IF eno = ecnt THEN INC(ecnt); Files.WriteString(r, iden.mod); Files.WriteString(r, iden.proc) END; - msg.pos := pos; org := Files.Pos(r); e.handle(e, msg); span := Files.Pos(r) - org; - Files.WriteLInt(r1, -span); Files.WriteLInt(r1, e.W); Files.WriteLInt(r1, e.H) (*fixup*) - END StoreElem; - - BEGIN - org := Files.Pos(r); msg.id := store; msg.r := r; Files.WriteLInt(msg.r, 0); (*fixup slot*) - u := T.head.next; pos := 0; delta := 0; fcnt := 1; ecnt := 1; - WHILE u # T.head DO - IF u IS Elem THEN iden.mod[0] := 0X; u(Elem).handle(u(Elem), iden) ELSE iden.mod[0] := 1X END; - IF iden.mod[0] # 0X THEN - fnts[fcnt] := u.fnt; fno := 1; - WHILE fnts[fno].name # u.fnt.name DO INC(fno) END; - Files.Write(msg.r, fno); - IF fno = fcnt THEN INC(fcnt); Files.WriteString(msg.r, u.fnt.name) END; - Files.Write(msg.r, u.col); Files.Write(msg.r, u.voff) - END; - IF u IS Piece THEN rlen := u.len; un := u.next; - WHILE (un IS Piece) & (un.fnt = u.fnt) & (un.col = u.col) & (un.voff = u.voff) DO - INC(rlen, un.len); un := un.next - END; - Files.WriteLInt(msg.r, rlen); INC(pos, rlen); u := un - ELSIF iden.mod[0] # 0X THEN StoreElem(msg.r, pos, u(Elem)); INC(pos); u := u.next - ELSE INC(delta); u := u.next - END - END; - Files.Write(msg.r, 0); Files.WriteLInt(msg.r, T.len - delta); - (*!!!hlen := Files.Pos(msg.r) - org;*) hlen := Files.Pos(msg.r) - org + 2; - Files.Set(r1, Files.Base(msg.r), org); Files.WriteLInt(r1, hlen); (*fixup*) - u := T.head.next; - WHILE u # T.head DO - IF u IS Piece THEN - WITH u: Piece DO - IF u.ascii THEN Files.Set(r1, u.file, u.org); delta := u.len; (* << LF to CR *) - WHILE delta > 0 DO Files.Read(r1, ch); DEC(delta); - IF ch = 0AX THEN Files.Write(msg.r, CR) ELSE Files.Write(msg.r, ch) END - END - ELSE Files.Set(r1, u.file, u.org); delta := u.len; - WHILE delta > LEN(block) DO Files.ReadBytes(r1, block, LEN(block)); - Files.WriteBytes(msg.r, block, LEN(block)); DEC(delta, LEN(block)) - END; - Files.ReadBytes(r1, block, delta); Files.WriteBytes(msg.r, block, delta) - END - END - ELSE iden.mod[0] := 0X; u(Elem).handle(u(Elem), iden); - IF iden.mod[0] # 0X THEN Files.Write(msg.r, ElemChar) END - END; - u := u.next - END; - r := msg.r; - END Store; - - PROCEDURE Close* (T: Text; name: ARRAY OF CHAR); - VAR f: Files.File; r: Files.Rider; i, res: INTEGER; bak: ARRAY 64 OF CHAR; - BEGIN - f := Files.New(name); Files.Set(r, f, 0); Files.Write(r, textTag); Files.Write(r, version); Store(r, T); - i := 0; WHILE name[i] # 0X DO INC(i) END; - COPY(name, bak); bak[i] := "."; bak[i+1] := "B"; bak[i+2] := "a"; bak[i+3] := "k"; bak[i+4] := 0X; - Files.Rename(name, bak, res); Files.Register(f) - END Close; - -BEGIN del := NIL; NEW(FontsDefault); FontsDefault.name := "Syntax10.Scn.Fnt" -END Texts. diff --git a/src/lib/system/freebsd/clang/Texts0.Mod b/src/lib/system/freebsd/clang/Texts0.Mod deleted file mode 100644 index 19ecf5a1..00000000 --- a/src/lib/system/freebsd/clang/Texts0.Mod +++ /dev/null @@ -1,880 +0,0 @@ -MODULE Texts0; (** CAS/HM 23.9.93 -- interface based on Texts by JG/NW 6.12.91**) (* << RC, MB, JT *) - IMPORT - Files := Files0, Modules, Reals; - - (*--- insert field e: Elem into Texts.Scanner and change Texts.Scan to set it in case of class=6 *) - (* this module is for bootstrapping voc, use Texts instead *) - - CONST - Displaywhite = 15; - ElemChar* = 1CX; - TAB = 9X; CR = 0DX; maxD = 9; - (**FileMsg.id**) - load* = 0; store* = 1; - (**Notifier op**) - replace* = 0; insert* = 1; delete* = 2; - (**Scanner.class**) - Inval* = 0; Name* = 1; String* = 2; Int* = 3; Real* = 4; LongReal* = 5; Char* = 6; - - textTag = 0F0X; DocBlockId = 0F7X; version = 01X; - - TYPE - FontsFont = POINTER TO FontDesc; - FontDesc = RECORD - name: ARRAY 32 OF CHAR; - END ; - - Run = POINTER TO RunDesc; - RunDesc = RECORD - prev, next: Run; - len: LONGINT; - fnt: FontsFont; - col, voff: SHORTINT; - ascii: BOOLEAN (* << *) - END; - - Piece = POINTER TO PieceDesc; - PieceDesc = RECORD (RunDesc) - file: Files.File; - org: LONGINT - END; - - Elem* = POINTER TO ElemDesc; - Buffer* = POINTER TO BufDesc; - Text* = POINTER TO TextDesc; - - ElemMsg* = RECORD END; - Handler* = PROCEDURE (e: Elem; VAR msg: ElemMsg); - - ElemDesc* = RECORD (RunDesc) - W*, H*: LONGINT; - handle*: Handler; - base: Text - END; - - FileMsg* = RECORD (ElemMsg) - id*: INTEGER; - pos*: LONGINT; - r*: Files.Rider - END; - - CopyMsg* = RECORD (ElemMsg) - e*: Elem - END; - - IdentifyMsg* = RECORD (ElemMsg) - mod*, proc*: ARRAY 32 OF CHAR - END; - - - BufDesc* = RECORD - len*: LONGINT; - head: Run - END; - - TextDesc* = RECORD - len*: LONGINT; - head, cache: Run; - corg: LONGINT - END; - - Reader* = RECORD - eot*: BOOLEAN; - fnt*: FontsFont; - col*, voff*: SHORTINT; - elem*: Elem; - rider: Files.Rider; - run: Run; - org, off: LONGINT - END; - - Scanner* = RECORD (Reader) - nextCh*: CHAR; - line*, class*: INTEGER; - i*: LONGINT; - x*: REAL; - y*: LONGREAL; - c*: CHAR; - len*: SHORTINT; - s*: ARRAY 64 OF CHAR (* << *) - END; - - Writer* = RECORD - buf*: Buffer; - fnt*: FontsFont; - col*, voff*: SHORTINT; - rider: Files.Rider; - file: Files.File - END; - - Alien = POINTER TO RECORD (ElemDesc) - file: Files.File; - org, span: LONGINT; - mod, proc: ARRAY 32 OF CHAR - END; - - VAR - new*: Elem; - del: Buffer; - FontsDefault: FontsFont; - - - PROCEDURE FontsThis(VAR name: ARRAY OF CHAR): FontsFont; - VAR F: FontsFont; - BEGIN - NEW(F); COPY(name, F.name); RETURN F - END FontsThis; - - (* run primitives *) - - PROCEDURE Find (T: Text; VAR pos: LONGINT; VAR u: Run; VAR org, off: LONGINT); - VAR v: Run; m: LONGINT; - BEGIN - IF pos >= T.len THEN pos := T.len; u := T.head; org := T.len; off := 0; T.cache := T.head; T.corg := 0 - ELSE v := T.cache.next; m := pos - T.corg; - IF pos >= T.corg THEN - WHILE m >= v.len DO DEC(m, v.len); v := v.next END - ELSE - WHILE m < 0 DO v := v.prev; INC(m, v.len) END; - END; - u := v; org := pos - m; off := m; T.cache := v.prev; T.corg := org - END - END Find; - - PROCEDURE Split (off: LONGINT; VAR u, un: Run); - VAR p, U: Piece; - BEGIN - IF off = 0 THEN un := u; u := un.prev - ELSIF off >= u.len THEN un := u.next - ELSE NEW(p); un := p; U := u(Piece); - p^ := U^; INC(p.org, off); DEC(p.len, off); DEC(U.len, p.len); - p.ascii := u.ascii; p.prev := U; p.next := U.next; p.next.prev := p; U.next := p (* << *) - END - END Split; - - PROCEDURE Merge (T: Text; u: Run; VAR v: Run); - VAR p, q: Piece; - BEGIN - IF (u IS Piece) & (v IS Piece) & (u.fnt.name = v.fnt.name) & (u.col = v.col) & (u.voff = v.voff) - & (u(Piece).ascii = v(Piece).ascii) THEN (* << *) - p := u(Piece); q := v(Piece); - IF (p.file = q.file) & (p.org + p.len = q.org) THEN - IF T.cache = u THEN INC(T.corg, q.len) - ELSIF T.cache = v THEN T.cache := T.head; T.corg := 0 - END; - INC(p.len, q.len); v := v.next - END - END - END Merge; - - PROCEDURE Splice (un, v, w: Run; base: Text); (* (u, un) -> (u, v, w, un) *) - VAR u: Run; - BEGIN - IF v # w.next THEN u := un.prev; - u.next := v; v.prev := u; un.prev := w; w.next := un; - REPEAT - IF v IS Elem THEN v(Elem).base := base END; - v := v.next - UNTIL v = un - END - END Splice; - - PROCEDURE ClonePiece (p: Piece): Piece; - VAR q: Piece; - BEGIN NEW(q); q^ := p^; RETURN q - END ClonePiece; - - PROCEDURE CloneElem (e: Elem): Elem; - VAR msg: CopyMsg; - BEGIN msg.e := NIL; e.handle(e, msg); RETURN msg.e - END CloneElem; - - - (** Elements **) - - PROCEDURE CopyElem* (SE, DE: Elem); - BEGIN DE.len := SE.len; DE.fnt := SE.fnt; DE.col := SE.col; DE.voff := SE.voff; - DE.W := SE.W; DE.H := SE.H; DE.handle := SE.handle - END CopyElem; - - PROCEDURE ElemBase* (E: Elem): Text; - BEGIN RETURN E.base - END ElemBase; - - PROCEDURE ElemPos* (E: Elem): LONGINT; - VAR u: Run; pos: LONGINT; - BEGIN u := E.base.head.next; pos := 0; - WHILE u # E DO pos := pos + u.len; u := u.next END; - RETURN pos - END ElemPos; - - - PROCEDURE HandleAlien (E: Elem; VAR msg: ElemMsg); - VAR e: Alien; r: Files.Rider; i: LONGINT; ch: CHAR; - BEGIN - WITH E: Alien DO - IF msg IS CopyMsg THEN - WITH msg: CopyMsg DO NEW(e); CopyElem(E, e); - e.file := E.file; e.org := E.org; e.span := E.span; e.mod := E.mod; e.proc := E.proc; - msg.e := e - END - ELSIF msg IS IdentifyMsg THEN - WITH msg: IdentifyMsg DO - COPY(E.mod, msg.mod); COPY(E.proc, msg.proc); msg.mod[31] := 1X (*alien*) - END - ELSIF msg IS FileMsg THEN - WITH msg: FileMsg DO - IF msg.id = store THEN Files.Set(r, E.file, E.org); i := E.span; - WHILE i > 0 DO Files.Read(r, ch); Files.Write(msg.r, ch); DEC(i) END - END - END - END - END - END HandleAlien; - - - (** Buffers **) - - PROCEDURE OpenBuf* (B: Buffer); - VAR u: Run; - BEGIN NEW(u); u.next := u; u.prev := u; B.head := u; B.len := 0 - END OpenBuf; - - PROCEDURE Copy* (SB, DB: Buffer); - VAR u, v, vn: Run; - BEGIN u := SB.head.next; v := DB.head.prev; - WHILE u # SB.head DO - IF u IS Piece THEN vn := ClonePiece(u(Piece)) ELSE vn := CloneElem(u(Elem)) END; - v.next := vn; vn.prev := v; v := vn; u := u.next - END; - v.next := DB.head; DB.head.prev := v; - INC(DB.len, SB.len) - END Copy; - - PROCEDURE Recall* (VAR B: Buffer); - BEGIN B := del; del := NIL - END Recall; - - - (** Texts **) - - PROCEDURE Save* (T: Text; beg, end: LONGINT; B: Buffer); - VAR u, v, w, wn: Run; uo, ud, vo, vd: LONGINT; - BEGIN Find(T, beg, u, uo, ud); Find(T, end, v, vo, vd); - w := B.head.prev; - WHILE u # v DO - IF u IS Piece THEN wn := ClonePiece(u(Piece)); DEC(wn.len, ud); INC(wn(Piece).org, ud) - ELSE wn := CloneElem(u(Elem)) - END; - w.next := wn; wn.prev := w; w := wn; u := u.next; ud := 0 - END; - IF vd > 0 THEN (*v IS Piece*) wn := ClonePiece(v(Piece)); wn.len := vd - ud; INC(wn(Piece).org, ud); - w.next := wn; wn.prev := w; w := wn - END; - w.next := B.head; B.head.prev := w; - INC(B.len, end - beg) - END Save; - - PROCEDURE Insert* (T: Text; pos: LONGINT; B: Buffer); - VAR u, un, v: Run; p, q: Piece; uo, ud, len: LONGINT; - BEGIN Find(T, pos, u, uo, ud); Split(ud, u, un); - len := B.len; v := B.head.next; - Merge(T, u, v); Splice(un, v, B.head.prev, T); - INC(T.len, len); B.head.next := B.head; B.head.prev := B.head; B.len := 0; - END Insert; - - PROCEDURE Append* (T: Text; B: Buffer); - VAR v: Run; pos, len: LONGINT; - BEGIN pos := T.len; len := B.len; v := B.head.next; - Merge(T, T.head.prev, v); Splice(T.head, v, B.head.prev, T); - INC(T.len, len); B.head.next := B.head; B.head.prev := B.head; B.len := 0; - END Append; - - PROCEDURE Delete* (T: Text; beg, end: LONGINT); - VAR c, u, un, v, vn: Run; co, uo, ud, vo, vd: LONGINT; - BEGIN - Find(T, beg, u, uo, ud); Split(ud, u, un); c := T.cache; co := T.corg; - Find(T, end, v, vo, vd); Split(vd, v, vn); T.cache := c; T.corg := co; - NEW(del); OpenBuf(del); del.len := end - beg; - Splice(del.head, un, v, NIL); - Merge(T, u, vn); u.next := vn; vn.prev := u; - DEC(T.len, end - beg); - END Delete; - - PROCEDURE ChangeLooks* (T: Text; beg, end: LONGINT; sel: SET; fnt: FontsFont; col, voff: SHORTINT); - VAR c, u, un, v, vn: Run; co, uo, ud, vo, vd: LONGINT; - BEGIN Find(T, beg, u, uo, ud); Split(ud, u, un); c := T.cache; co := T.corg; - Find(T, end, v, vo, vd); Split(vd, v, vn); T.cache := c; T.corg := co; - WHILE un # vn DO - IF (0 IN sel) & (fnt # NIL) THEN un.fnt := fnt END; - IF 1 IN sel THEN un.col := col END; - IF 2 IN sel THEN un.voff := voff END; - Merge(T, u, un); - IF u.next = un THEN u := un; un := un.next ELSE u.next := un; un.prev := u END - END; - Merge(T, u, un); u.next := un; un.prev := u; - END ChangeLooks; - - - (** Readers **) - - PROCEDURE OpenReader* (VAR R: Reader; T: Text; pos: LONGINT); - VAR u: Run; - BEGIN - IF pos >= T.len THEN pos := T.len END; - Find(T, pos, u, R.org, R.off); R.run := u; R.eot := FALSE; - IF u IS Piece THEN - Files.Set(R.rider, u(Piece).file, u(Piece).org + R.off) - END - END OpenReader; -(* - PROCEDURE Read* (VAR R: Reader; VAR ch: CHAR); - VAR u: Run; - BEGIN u := R.run; R.fnt := u.fnt; R.col := u.col; R.voff := u.voff; INC(R.off); - IF u IS Piece THEN Files.Read(R.rider, ch); R.elem := NIL; - IF (ch = 0AX) & u(Piece).ascii THEN ch := CR END (* << LF to CR *) - ELSIF u IS Elem THEN ch := ElemChar; R.elem := u(Elem) - ELSE ch := 0X; R.elem := NIL; R.eot := TRUE - END; - IF R.off = u.len THEN INC(R.org, u.len); u := u.next; - IF u IS Piece THEN - WITH u: Piece DO Files.Set(R.rider, u.file, u.org) END - END; - R.run := u; R.off := 0 - END - END Read; -*) - PROCEDURE Read* (VAR R: Reader; VAR ch: CHAR); - VAR u: Run; pos: LONGINT; nextch: CHAR; - BEGIN u := R.run; R.fnt := u.fnt; R.col := u.col; R.voff := u.voff; INC(R.off); - IF u IS Piece THEN Files.Read(R.rider, ch); R.elem := NIL; - IF (ch = 0AX) & u(Piece).ascii THEN ch := CR (* << LF to CR *) - ELSIF (ch = CR) & u(Piece).ascii THEN (* << CR LF to CR *) - pos := Files.Pos(R.rider); Files.Read(R.rider, nextch); - IF nextch = 0AX THEN INC(R.off) ELSE Files.Set(R.rider, u(Piece).file, pos) END - END - ELSIF u IS Elem THEN ch := ElemChar; R.elem := u(Elem) - ELSE ch := 0X; R.elem := NIL; R.eot := TRUE - END; - IF R.off = u.len THEN INC(R.org, u.len); u := u.next; - IF u IS Piece THEN - WITH u: Piece DO Files.Set(R.rider, u.file, u.org) END - END; - R.run := u; R.off := 0 - END - END Read; - - - PROCEDURE ReadElem* (VAR R: Reader); - VAR u, un: Run; - BEGIN u := R.run; - WHILE u IS Piece DO INC(R.org, u.len); u := u.next END; - IF u IS Elem THEN un := u.next; R.run := un; INC(R.org); R.off := 0; - R.fnt := u.fnt; R.col := u.col; R.voff := u.voff; R.elem := u(Elem); - IF un IS Piece THEN - WITH un: Piece DO Files.Set(R.rider, un.file, un.org) END - END - ELSE R.eot := TRUE; R.elem := NIL - END - END ReadElem; - - PROCEDURE ReadPrevElem* (VAR R: Reader); - VAR u: Run; - BEGIN u := R.run.prev; - WHILE u IS Piece DO DEC(R.org, u.len); u := u.prev END; - IF u IS Elem THEN R.run := u; DEC(R.org); R.off := 0; - R.fnt := u.fnt; R.col := u.col; R.voff := u.voff; R.elem := u(Elem) - ELSE R.eot := TRUE; R.elem := NIL - END - END ReadPrevElem; - - PROCEDURE Pos* (VAR R: Reader): LONGINT; - BEGIN RETURN R.org + R.off - END Pos; - - - (** Scanners --------------- NW --------------- **) - - PROCEDURE OpenScanner* (VAR S: Scanner; T: Text; pos: LONGINT); - BEGIN OpenReader(S, T, pos); S.line := 0; S.nextCh := " " - END OpenScanner; - - (*IEEE floating point formats: - x = 2^(e-127) * 1.m bit 0: sign, bits 1- 8: e, bits 9-31: m - x = 2^(e-1023) * 1.m bit 0: sign, bits 1-11: e, bits 12-63: m *) - - PROCEDURE Scan* (VAR S: Scanner); - CONST maxD = 32; - VAR ch, term: CHAR; - neg, negE, hex: BOOLEAN; - i, j, h: SHORTINT; - e: INTEGER; k: LONGINT; - x, f: REAL; y, g: LONGREAL; - d: ARRAY maxD OF CHAR; - - PROCEDURE ReadScaleFactor; - BEGIN Read(S, ch); - IF ch = "-" THEN negE := TRUE; Read(S, ch) - ELSE negE := FALSE; - IF ch = "+" THEN Read(S, ch) END - END; - WHILE ("0" <= ch) & (ch <= "9") DO - e := e*10 + ORD(ch) - 30H; Read(S, ch) - END - END ReadScaleFactor; - - BEGIN ch := S.nextCh; i := 0; - LOOP - IF ch = CR THEN INC(S.line) - ELSIF (ch # " ") & (ch # TAB) THEN EXIT - END ; - Read(S, ch) - END; - IF ("A" <= CAP(ch)) & (CAP(ch) <= "Z") OR (ch = "/") OR (ch = ".") THEN (*name*) (* << *) - REPEAT S.s[i] := ch; INC(i); Read(S, ch) - UNTIL (CAP(ch) > "Z") & (ch # "_") (* << *) - OR ("A" > CAP(ch)) & (ch > "9") - OR ("0" > ch) & (ch # ".") & (ch # "/") (* << *) - OR (i = 63); (* << *) - S.s[i] := 0X; S.len := i; S.class := 1 - ELSIF ch = 22X THEN (*literal string*) - Read(S, ch); - WHILE (ch # 22X) & (ch >= " ") & (i # 63) DO (* << *) - S.s[i] := ch; INC(i); Read(S, ch) - END; - S.s[i] := 0X; S.len := i+1; Read(S, ch); S.class := 2 - ELSE - IF ch = "-" THEN neg := TRUE; Read(S, ch) ELSE neg := FALSE END ; - IF ("0" <= ch) & (ch <= "9") THEN (*number*) - hex := FALSE; j := 0; - LOOP d[i] := ch; INC(i); Read(S, ch); - IF ch < "0" THEN EXIT END; - IF "9" < ch THEN - IF ("A" <= ch) & (ch <= "F") THEN hex := TRUE; ch := CHR(ORD(ch)-7) - ELSIF ("a" <= ch) & (ch <= "f") THEN hex := TRUE; ch := CHR(ORD(ch)-27H) - ELSE EXIT - END - END - END; - IF ch = "H" THEN (*hex number*) - Read(S, ch); S.class := 3; - IF i-j > 8 THEN j := i-8 END ; - k := ORD(d[j]) - 30H; INC(j); - IF (i-j = 7) & (k >= 8) THEN DEC(k, 16) END ; - WHILE j < i DO k := k*10H + (ORD(d[j]) - 30H); INC(j) END ; - IF neg THEN S.i := -k ELSE S.i := k END - ELSIF ch = "." THEN (*read real*) - Read(S, ch); h := i; - WHILE ("0" <= ch) & (ch <= "9") DO d[i] := ch; INC(i); Read(S, ch) END ; - IF ch = "D" THEN - e := 0; y := 0; g := 1; - REPEAT y := y*10 + (ORD(d[j]) - 30H); INC(j) UNTIL j = h; - WHILE j < i DO g := g/10; y := (ORD(d[j]) - 30H)*g + y; INC(j) END ; - ReadScaleFactor; - IF negE THEN - IF e <= 308 THEN y := y / Reals.TenL(e) ELSE y := 0 END - ELSIF e > 0 THEN - IF e <= 308 THEN y := Reals.TenL(e) * y ELSE HALT(40) END - END ; - IF neg THEN y := -y END ; - S.class := 5; S.y := y - ELSE e := 0; x := 0; f := 1; - REPEAT x := x*10 + (ORD(d[j]) - 30H); INC(j) UNTIL j = h; - WHILE j < i DO f := f/10; x := (ORD(d[j])-30H)*f + x; INC(j) END; - IF ch = "E" THEN ReadScaleFactor END ; - IF negE THEN - IF e <= 38 THEN x := x / Reals.Ten(e) ELSE x := 0 END - ELSIF e > 0 THEN - IF e <= 38 THEN x := Reals.Ten(e) * x ELSE HALT(40) END - END ; - IF neg THEN x := -x END ; - S.class := 4; S.x := x - END ; - IF hex THEN S.class := 0 END - ELSE (*decimal integer*) - S.class := 3; k := 0; - REPEAT k := k*10 + (ORD(d[j]) - 30H); INC(j) UNTIL j = i; - IF neg THEN S.i := -k ELSE S.i := k END; - IF hex THEN S.class := 0 ELSE S.class := 3 END - END - ELSE S.class := 6; - IF neg THEN S.c := "-" ELSE S.c := ch; Read(S, ch) END - END - END; - S.nextCh := ch - END Scan; - - - (** Writers **) - - PROCEDURE OpenWriter* (VAR W: Writer); - BEGIN NEW(W.buf); OpenBuf(W.buf); - W.fnt := FontsDefault; W.col := Displaywhite; W.voff := 0; - W.file := Files.New(""); Files.Set(W.rider, W.file, 0) - END OpenWriter; - - PROCEDURE SetFont* (VAR W: Writer; fnt: FontsFont); - BEGIN W.fnt := fnt - END SetFont; - - PROCEDURE SetColor* (VAR W: Writer; col: SHORTINT); - BEGIN W.col := col - END SetColor; - - PROCEDURE SetOffset* (VAR W: Writer; voff: SHORTINT); - BEGIN W.voff := voff - END SetOffset; - - - PROCEDURE Write* (VAR W: Writer; ch: CHAR); - VAR u, un: Run; p: Piece; - BEGIN Files.Write(W.rider, ch); INC(W.buf.len); un := W.buf.head; u := un.prev; - IF (u IS Piece) & (u(Piece).file = W.file) & (u.fnt.name = W.fnt.name) & (u.col = W.col) & (u.voff = W.voff) - & ~u(Piece).ascii THEN (* << *) - INC(u.len) - ELSE NEW(p); u.next := p; p.prev := u; p.next := un; un.prev := p; - p.len := 1; p.fnt := W.fnt; p.col := W.col; p.voff := W.voff; - p.file := W.file; p.org := Files.Length(W.file) - 1; p.ascii := FALSE (* << *) - END - END Write; - - PROCEDURE WriteElem* (VAR W: Writer; e: Elem); - VAR u, un: Run; - BEGIN - IF e.base # NIL THEN HALT(99) END; - INC(W.buf.len); e.len := 1; e.fnt := W.fnt; e.col := W.col; e.voff := W.voff; - un := W.buf.head; u := un.prev; u.next := e; e.prev := u; e.next := un; un.prev := e - END WriteElem; - - PROCEDURE WriteLn* (VAR W: Writer); - BEGIN Write(W, CR) - END WriteLn; - - PROCEDURE WriteString* (VAR W: Writer; s: ARRAY OF CHAR); - VAR i: INTEGER; - BEGIN i := 0; - WHILE s[i] >= " " DO Write(W, s[i]); INC(i) END - END WriteString; - - PROCEDURE WriteInt* (VAR W: Writer; x, n: LONGINT); - VAR i: INTEGER; x0: LONGINT; - a: ARRAY 11 OF CHAR; - BEGIN i := 0; - IF x < 0 THEN - IF x = MIN(LONGINT) THEN WriteString(W, " -2147483648"); RETURN - ELSE DEC(n); x0 := -x - END - ELSE x0 := x - END; - REPEAT - a[i] := CHR(x0 MOD 10 + 30H); x0 := x0 DIV 10; INC(i) - UNTIL x0 = 0; - WHILE n > i DO Write(W, " "); DEC(n) END; - IF x < 0 THEN Write(W, "-") END; - REPEAT DEC(i); Write(W, a[i]) UNTIL i = 0 - END WriteInt; - - PROCEDURE WriteHex* (VAR W: Writer; x: LONGINT); - VAR i: INTEGER; y: LONGINT; - a: ARRAY 10 OF CHAR; - BEGIN i := 0; Write(W, " "); - REPEAT y := x MOD 10H; - IF y < 10 THEN a[i] := CHR(y + 30H) ELSE a[i] := CHR(y + 37H) END; - x := x DIV 10H; INC(i) - UNTIL i = 8; - REPEAT DEC(i); Write(W, a[i]) UNTIL i = 0 - END WriteHex; - - PROCEDURE WriteReal* (VAR W: Writer; x: REAL; n: INTEGER); - VAR e: INTEGER; x0: REAL; - d: ARRAY maxD OF CHAR; - BEGIN e := Reals.Expo(x); - IF e = 0 THEN - WriteString(W, " 0"); - REPEAT Write(W, " "); DEC(n) UNTIL n <= 3 - ELSIF e = 255 THEN - WriteString(W, " NaN"); - WHILE n > 4 DO Write(W, " "); DEC(n) END - ELSE - IF n <= 9 THEN n := 3 ELSE DEC(n, 6) END; - REPEAT Write(W, " "); DEC(n) UNTIL n <= 8; - (*there are 2 < n <= 8 digits to be written*) - IF x < 0.0 THEN Write(W, "-"); x := -x ELSE Write(W, " ") END; - e := (e - 127) * 77 DIV 256; - IF e >= 0 THEN x := x / Reals.Ten(e) ELSE x := Reals.Ten(-e) * x END; - IF x >= 10.0 THEN x := 0.1*x; INC(e) END; - x0 := Reals.Ten(n-1); x := x0*x + 0.5; - IF x >= 10.0*x0 THEN x := x*0.1; INC(e) END; - Reals.Convert(x, n, d); - DEC(n); Write(W, d[n]); Write(W, "."); - REPEAT DEC(n); Write(W, d[n]) UNTIL n = 0; - Write(W, "E"); - IF e < 0 THEN Write(W, "-"); e := -e ELSE Write(W, "+") END; - Write(W, CHR(e DIV 10 + 30H)); Write(W, CHR(e MOD 10 + 30H)) - END - END WriteReal; - - PROCEDURE WriteRealFix* (VAR W: Writer; x: REAL; n, k: INTEGER); - VAR e, i: INTEGER; sign: CHAR; x0: REAL; - d: ARRAY maxD OF CHAR; - - PROCEDURE seq(ch: CHAR; n: INTEGER); - BEGIN WHILE n > 0 DO Write(W, ch); DEC(n) END - END seq; - - PROCEDURE dig(n: INTEGER); - BEGIN - WHILE n > 0 DO - DEC(i); Write(W, d[i]); DEC(n) - END - END dig; - - BEGIN e := Reals.Expo(x); - IF k < 0 THEN k := 0 END; - IF e = 0 THEN seq(" ", n-k-2); Write(W, "0"); seq(" ", k+1) - ELSIF e = 255 THEN WriteString(W, " NaN"); seq(" ", n-4) - ELSE e := (e - 127) * 77 DIV 256; - IF x < 0 THEN sign := "-"; x := -x ELSE sign := " " END; - IF e >= 0 THEN (*x >= 1.0, 77/256 = log 2*) x := x/Reals.Ten(e) - ELSE (*x < 1.0*) x := Reals.Ten(-e) * x - END; - IF x >= 10.0 THEN x := 0.1*x; INC(e) END; - (* 1 <= x < 10 *) - IF k+e >= maxD-1 THEN k := maxD-1-e - ELSIF k+e < 0 THEN k := -e; x := 0.0 - END; - x0 := Reals.Ten(k+e); x := x0*x + 0.5; - IF x >= 10.0*x0 THEN INC(e) END; - (*e = no. of digits before decimal point*) - INC(e); i := k+e; Reals.Convert(x, i, d); - IF e > 0 THEN - seq(" ", n-e-k-2); Write(W, sign); dig(e); - Write(W, "."); dig(k) - ELSE seq(" ", n-k-3); - Write(W, sign); Write(W, "0"); Write(W, "."); - seq("0", -e); dig(k+e) - END - END - END WriteRealFix; - - PROCEDURE WriteRealHex* (VAR W: Writer; x: REAL); - VAR i: INTEGER; - d: ARRAY 8 OF CHAR; - BEGIN Reals.ConvertH(x, d); i := 0; - REPEAT Write(W, d[i]); INC(i) UNTIL i = 8 - END WriteRealHex; - - PROCEDURE WriteLongReal* (VAR W: Writer; x: LONGREAL; n: INTEGER); - CONST maxD = 16; - VAR e: INTEGER; x0: LONGREAL; - d: ARRAY maxD OF CHAR; - BEGIN e := Reals.ExpoL(x); - IF e = 0 THEN - WriteString(W, " 0"); - REPEAT Write(W, " "); DEC(n) UNTIL n <= 3 - ELSIF e = 2047 THEN - WriteString(W, " NaN"); - WHILE n > 4 DO Write(W, " "); DEC(n) END - ELSE - IF n <= 10 THEN n := 3 ELSE DEC(n, 7) END; - REPEAT Write(W, " "); DEC(n) UNTIL n <= maxD; - (*there are 2 <= n <= maxD digits to be written*) - IF x < 0 THEN Write(W, "-"); x := -x ELSE Write(W, " ") END; - e := SHORT(LONG(e - 1023) * 77 DIV 256); - IF e >= 0 THEN x := x / Reals.TenL(e) ELSE x := Reals.TenL(-e) * x END ; - IF x >= 10.0D0 THEN x := 0.1D0 * x; INC(e) END ; - x0 := Reals.TenL(n-1); x := x0*x + 0.5D0; - IF x >= 10.0D0*x0 THEN x := 0.1D0 * x; INC(e) END ; - Reals.ConvertL(x, n, d); - DEC(n); Write(W, d[n]); Write(W, "."); - REPEAT DEC(n); Write(W, d[n]) UNTIL n = 0; - Write(W, "D"); - IF e < 0 THEN Write(W, "-"); e := -e ELSE Write(W, "+") END; - Write(W, CHR(e DIV 100 + 30H)); e := e MOD 100; - Write(W, CHR(e DIV 10 + 30H)); - Write(W, CHR(e MOD 10 + 30H)) - END - END WriteLongReal; - - PROCEDURE WriteLongRealHex* (VAR W: Writer; x: LONGREAL); - VAR i: INTEGER; - d: ARRAY 16 OF CHAR; - BEGIN Reals.ConvertHL(x, d); i := 0; - REPEAT Write(W, d[i]); INC(i) UNTIL i = 16 - END WriteLongRealHex; - - PROCEDURE WriteDate* (VAR W: Writer; t, d: LONGINT); - - PROCEDURE WritePair(ch: CHAR; x: LONGINT); - BEGIN Write(W, ch); - Write(W, CHR(x DIV 10 + 30H)); Write(W, CHR(x MOD 10 + 30H)) - END WritePair; - - BEGIN - WritePair(" ", d MOD 32); WritePair(".", d DIV 32 MOD 16); WritePair(".", d DIV 512 MOD 128); - WritePair(" ", t DIV 4096 MOD 32); WritePair(":", t DIV 64 MOD 64); WritePair(":", t MOD 64) - END WriteDate; - - - (** Text Filing **) - - PROCEDURE Load0 (VAR r: Files.Rider; T: Text); - VAR u, un: Run; p: Piece; e: Elem; - org, pos, hlen, plen: LONGINT; ecnt, fno, fcnt, col, voff: SHORTINT; - f: Files.File; - msg: FileMsg; - mods, procs: ARRAY 64, 32 OF CHAR; - name: ARRAY 32 OF CHAR; - fnts: ARRAY 32 OF FontsFont; - - PROCEDURE LoadElem (VAR r: Files.Rider; pos, span: LONGINT; VAR e: Elem); - VAR M: Modules.Module; Cmd: Modules.Command; a: Alien; - org, ew, eh: LONGINT; eno: SHORTINT; - BEGIN new := NIL; - Files.ReadLInt(r, ew); Files.ReadLInt(r, eh); Files.Read(r, eno); - IF eno > ecnt THEN ecnt := eno; Files.ReadString(r, mods[eno]); Files.ReadString(r, procs[eno]) END; - org := Files.Pos(r); M := Modules.ThisMod(mods[eno]); - IF M # NIL THEN Cmd := Modules.ThisCommand(M, procs[eno]); - IF Cmd # NIL THEN Cmd END - END; - e := new; - IF e # NIL THEN e.W := ew; e.H := eh; e.base := T; - msg.pos := pos; e.handle(e, msg); - IF Files.Pos(r) # org + span THEN e := NIL END - END; - IF e = NIL THEN Files.Set(r, f, org + span); - NEW(a); a.W := ew; a.H := eh; a.handle := HandleAlien; a.base := T; - a.file := f; a.org := org; a.span := span; - COPY(mods[eno], a.mod); COPY(procs[eno], a.proc); - e := a - END - END LoadElem; - - BEGIN pos := Files.Pos(r); f := Files.Base(r); - NEW(u); u.len := MAX(LONGINT); (*u.fnt := FontsDefault;*)u.fnt := NIL; u.col := Displaywhite; - T.head := u; ecnt := 0; fcnt := 0; - msg.id := load; msg.r := r; - Files.ReadLInt(msg.r, hlen); (*!!!org := pos + hlen;*) org := pos -2 + hlen; pos := org; Files.Read(msg.r, fno); - WHILE fno # 0 DO - IF fno > fcnt THEN fcnt := fno; Files.ReadString(msg.r, name); fnts[fno] := FontsThis(name) END; - Files.Read(msg.r, col); Files.Read(msg.r, voff); Files.ReadLInt(msg.r, plen); - IF plen > 0 THEN NEW(p); p.file := f; p.org := pos; p.ascii := FALSE; un := p; un.len := plen - ELSE LoadElem(msg.r, pos - org, -plen, e); un := e; un.len := 1 - END; - un.fnt := fnts[fno]; un.col := col; un.voff := voff; - INC(pos, un.len); u.next := un; un.prev := u; u := un; Files.Read(msg.r, fno) - END; - u.next := T.head; T.head.prev := u; T.cache := T.head; T.corg := 0; - Files.ReadLInt(msg.r, T.len); Files.Set(r, f, Files.Pos(msg.r) + T.len) - END Load0; - - PROCEDURE Load* (VAR r: Files.Rider; T: Text); - CONST oldTag = -4095; - VAR tag: INTEGER; - BEGIN - (* for compatibility inner text tags are checked and skipped; remove this in a later version *) - Files.ReadInt(r, tag); IF tag # oldTag THEN Files.Set(r, Files.Base(r), Files.Pos(r)-2) END; - Load0(r, T) - END Load; - - PROCEDURE Open* (T: Text; name: ARRAY OF CHAR); - VAR f: Files.File; r: Files.Rider; u: Run; p: Piece; tag, version: CHAR; hlen: LONGINT; - BEGIN f := Files.Old(name); - IF f = NIL THEN f := Files.New("") END; - Files.Set(r, f, 0); Files.Read(r, tag); Files.Read(r, version); - IF (tag = textTag) OR (tag = 01X) & (version = textTag) THEN Load0(r, T) - ELSE (*ascii*) - NEW(u); u.len := MAX(LONGINT); u.fnt := NIL; u.col := Displaywhite; - NEW(p); - IF (tag = DocBlockId) & (version = 07X) THEN (* extract ascii text from System 3 text document *) - Files.Set(r, f, 28); Files.ReadLInt(r, hlen); - Files.Set(r, f, 22 + hlen); Files.ReadLInt(r, T.len); p.org := 26 + hlen - ELSE - T.len := Files.Length(f); p.org := 0 - END ; - IF T.len > 0 THEN p.len := T.len; p.fnt := FontsDefault; - p.col := Displaywhite; p.voff := 0; p.file := f; p.ascii := TRUE; - u.next := p; u.prev := p; p.next := u; p.prev := u - ELSE u.next := u; u.prev := u - END; - T.head := u; T.cache := T.head; T.corg := 0 - END - END Open; - - PROCEDURE Store* (VAR r: Files.Rider; T: Text); - VAR r1: Files.Rider; u, un: Run; e: Elem; org, pos, delta, hlen, rlen: LONGINT; ecnt, fno, fcnt: SHORTINT; ch: CHAR; (* << *) - msg: FileMsg; iden: IdentifyMsg; - mods, procs: ARRAY 64, 32 OF CHAR; - fnts: ARRAY 32 OF FontsFont; - block: ARRAY 1024 OF CHAR; - - PROCEDURE StoreElem (VAR r: Files.Rider; pos: LONGINT; e: Elem); - VAR r1: Files.Rider; org, span: LONGINT; eno: SHORTINT; - BEGIN COPY(iden.mod, mods[ecnt]); COPY(iden.proc, procs[ecnt]); eno := 1; - WHILE (mods[eno] # iden.mod) OR (procs[eno] # iden.proc) DO INC(eno) END; - Files.Set(r1, Files.Base(r), Files.Pos(r)); - Files.WriteLInt(r, 0); Files.WriteLInt(r, 0); Files.WriteLInt(r, 0); (*fixup slot*) - Files.Write(r, eno); - IF eno = ecnt THEN INC(ecnt); Files.WriteString(r, iden.mod); Files.WriteString(r, iden.proc) END; - msg.pos := pos; org := Files.Pos(r); e.handle(e, msg); span := Files.Pos(r) - org; - Files.WriteLInt(r1, -span); Files.WriteLInt(r1, e.W); Files.WriteLInt(r1, e.H) (*fixup*) - END StoreElem; - - BEGIN - org := Files.Pos(r); msg.id := store; msg.r := r; Files.WriteLInt(msg.r, 0); (*fixup slot*) - u := T.head.next; pos := 0; delta := 0; fcnt := 1; ecnt := 1; - WHILE u # T.head DO - IF u IS Elem THEN iden.mod[0] := 0X; u(Elem).handle(u(Elem), iden) ELSE iden.mod[0] := 1X END; - IF iden.mod[0] # 0X THEN - fnts[fcnt] := u.fnt; fno := 1; - WHILE fnts[fno].name # u.fnt.name DO INC(fno) END; - Files.Write(msg.r, fno); - IF fno = fcnt THEN INC(fcnt); Files.WriteString(msg.r, u.fnt.name) END; - Files.Write(msg.r, u.col); Files.Write(msg.r, u.voff) - END; - IF u IS Piece THEN rlen := u.len; un := u.next; - WHILE (un IS Piece) & (un.fnt = u.fnt) & (un.col = u.col) & (un.voff = u.voff) DO - INC(rlen, un.len); un := un.next - END; - Files.WriteLInt(msg.r, rlen); INC(pos, rlen); u := un - ELSIF iden.mod[0] # 0X THEN StoreElem(msg.r, pos, u(Elem)); INC(pos); u := u.next - ELSE INC(delta); u := u.next - END - END; - Files.Write(msg.r, 0); Files.WriteLInt(msg.r, T.len - delta); - (*!!!hlen := Files.Pos(msg.r) - org;*) hlen := Files.Pos(msg.r) - org + 2; - Files.Set(r1, Files.Base(msg.r), org); Files.WriteLInt(r1, hlen); (*fixup*) - u := T.head.next; - WHILE u # T.head DO - IF u IS Piece THEN - WITH u: Piece DO - IF u.ascii THEN Files.Set(r1, u.file, u.org); delta := u.len; (* << LF to CR *) - WHILE delta > 0 DO Files.Read(r1, ch); DEC(delta); - IF ch = 0AX THEN Files.Write(msg.r, CR) ELSE Files.Write(msg.r, ch) END - END - ELSE Files.Set(r1, u.file, u.org); delta := u.len; - WHILE delta > LEN(block) DO Files.ReadBytes(r1, block, LEN(block)); - Files.WriteBytes(msg.r, block, LEN(block)); DEC(delta, LEN(block)) - END; - Files.ReadBytes(r1, block, delta); Files.WriteBytes(msg.r, block, delta) - END - END - ELSE iden.mod[0] := 0X; u(Elem).handle(u(Elem), iden); - IF iden.mod[0] # 0X THEN Files.Write(msg.r, ElemChar) END - END; - u := u.next - END; - r := msg.r; - END Store; - - PROCEDURE Close* (T: Text; name: ARRAY OF CHAR); - VAR f: Files.File; r: Files.Rider; i, res: INTEGER; bak: ARRAY 64 OF CHAR; - BEGIN - f := Files.New(name); Files.Set(r, f, 0); Files.Write(r, textTag); Files.Write(r, version); Store(r, T); - i := 0; WHILE name[i] # 0X DO INC(i) END; - COPY(name, bak); bak[i] := "."; bak[i+1] := "B"; bak[i+2] := "a"; bak[i+3] := "k"; bak[i+4] := 0X; - Files.Rename(name, bak, res); Files.Register(f) - END Close; - -BEGIN del := NIL; NEW(FontsDefault); FontsDefault.name := "Syntax10.Scn.Fnt" -END Texts0. diff --git a/src/lib/system/freebsd/clang/Files.Mod b/src/lib/system/freebsd/clang/x86_64/Files.Mod similarity index 100% rename from src/lib/system/freebsd/clang/Files.Mod rename to src/lib/system/freebsd/clang/x86_64/Files.Mod diff --git a/src/lib/system/freebsd/clang/Files0.Mod b/src/lib/system/freebsd/clang/x86_64/Files0.Mod similarity index 100% rename from src/lib/system/freebsd/clang/Files0.Mod rename to src/lib/system/freebsd/clang/x86_64/Files0.Mod diff --git a/src/lib/system/linux/clang/Texts.Mod b/src/lib/system/linux/clang/Texts.Mod deleted file mode 100644 index 2042dcf7..00000000 --- a/src/lib/system/linux/clang/Texts.Mod +++ /dev/null @@ -1,863 +0,0 @@ -MODULE Texts; (** CAS/HM 23.9.93 -- interface based on Texts by JG/NW 6.12.91**) (* << RC, MB, JT *) - IMPORT - Files, Modules, Reals; - - (*--- insert field e: Elem into Texts.Scanner and change Texts.Scan to set it in case of class=6 *) - - - CONST - Displaywhite = 15; - ElemChar* = 1CX; - TAB = 9X; CR = 0DX; maxD = 9; - (**FileMsg.id**) - load* = 0; store* = 1; - (**Notifier op**) - replace* = 0; insert* = 1; delete* = 2; - (**Scanner.class**) - Inval* = 0; Name* = 1; String* = 2; Int* = 3; Real* = 4; LongReal* = 5; Char* = 6; - - textTag = 0F0X; DocBlockId = 0F7X; version = 01X; - - TYPE - FontsFont = POINTER TO FontDesc; - FontDesc = RECORD - name: ARRAY 32 OF CHAR; - END ; - - Run = POINTER TO RunDesc; - RunDesc = RECORD - prev, next: Run; - len: LONGINT; - fnt: FontsFont; - col, voff: SHORTINT; - ascii: BOOLEAN (* << *) - END; - - Piece = POINTER TO PieceDesc; - PieceDesc = RECORD (RunDesc) - file: Files.File; - org: LONGINT - END; - - Elem* = POINTER TO ElemDesc; - Buffer* = POINTER TO BufDesc; - Text* = POINTER TO TextDesc; - - ElemMsg* = RECORD END; - Handler* = PROCEDURE (e: Elem; VAR msg: ElemMsg); - - ElemDesc* = RECORD (RunDesc) - W*, H*: LONGINT; - handle*: Handler; - base: Text - END; - - FileMsg* = RECORD (ElemMsg) - id*: INTEGER; - pos*: LONGINT; - r*: Files.Rider - END; - - CopyMsg* = RECORD (ElemMsg) - e*: Elem - END; - - IdentifyMsg* = RECORD (ElemMsg) - mod*, proc*: ARRAY 32 OF CHAR - END; - - - BufDesc* = RECORD - len*: LONGINT; - head: Run - END; - - TextDesc* = RECORD - len*: LONGINT; - head, cache: Run; - corg: LONGINT - END; - - Reader* = RECORD - eot*: BOOLEAN; - fnt*: FontsFont; - col*, voff*: SHORTINT; - elem*: Elem; - rider: Files.Rider; - run: Run; - org, off: LONGINT - END; - - Scanner* = RECORD (Reader) - nextCh*: CHAR; - line*, class*: INTEGER; - i*: LONGINT; - x*: REAL; - y*: LONGREAL; - c*: CHAR; - len*: SHORTINT; - s*: ARRAY 64 OF CHAR (* << *) - END; - - Writer* = RECORD - buf*: Buffer; - fnt*: FontsFont; - col*, voff*: SHORTINT; - rider: Files.Rider; - file: Files.File - END; - - Alien = POINTER TO RECORD (ElemDesc) - file: Files.File; - org, span: LONGINT; - mod, proc: ARRAY 32 OF CHAR - END; - - VAR - new*: Elem; - del: Buffer; - FontsDefault: FontsFont; - - - PROCEDURE FontsThis(VAR name: ARRAY OF CHAR): FontsFont; - VAR F: FontsFont; - BEGIN - NEW(F); COPY(name, F.name); RETURN F - END FontsThis; - - (* run primitives *) - - PROCEDURE Find (T: Text; VAR pos: LONGINT; VAR u: Run; VAR org, off: LONGINT); - VAR v: Run; m: LONGINT; - BEGIN - IF pos >= T.len THEN pos := T.len; u := T.head; org := T.len; off := 0; T.cache := T.head; T.corg := 0 - ELSE v := T.cache.next; m := pos - T.corg; - IF pos >= T.corg THEN - WHILE m >= v.len DO DEC(m, v.len); v := v.next END - ELSE - WHILE m < 0 DO v := v.prev; INC(m, v.len) END; - END; - u := v; org := pos - m; off := m; T.cache := v.prev; T.corg := org - END - END Find; - - PROCEDURE Split (off: LONGINT; VAR u, un: Run); - VAR p, U: Piece; - BEGIN - IF off = 0 THEN un := u; u := un.prev - ELSIF off >= u.len THEN un := u.next - ELSE NEW(p); un := p; U := u(Piece); - p^ := U^; INC(p.org, off); DEC(p.len, off); DEC(U.len, p.len); - p.ascii := u.ascii; p.prev := U; p.next := U.next; p.next.prev := p; U.next := p (* << *) - END - END Split; - - PROCEDURE Merge (T: Text; u: Run; VAR v: Run); - VAR p, q: Piece; - BEGIN - IF (u IS Piece) & (v IS Piece) & (u.fnt.name = v.fnt.name) & (u.col = v.col) & (u.voff = v.voff) - & (u(Piece).ascii = v(Piece).ascii) THEN (* << *) - p := u(Piece); q := v(Piece); - IF (p.file = q.file) & (p.org + p.len = q.org) THEN - IF T.cache = u THEN INC(T.corg, q.len) - ELSIF T.cache = v THEN T.cache := T.head; T.corg := 0 - END; - INC(p.len, q.len); v := v.next - END - END - END Merge; - - PROCEDURE Splice (un, v, w: Run; base: Text); (* (u, un) -> (u, v, w, un) *) - VAR u: Run; - BEGIN - IF v # w.next THEN u := un.prev; - u.next := v; v.prev := u; un.prev := w; w.next := un; - REPEAT - IF v IS Elem THEN v(Elem).base := base END; - v := v.next - UNTIL v = un - END - END Splice; - - PROCEDURE ClonePiece (p: Piece): Piece; - VAR q: Piece; - BEGIN NEW(q); q^ := p^; RETURN q - END ClonePiece; - - PROCEDURE CloneElem (e: Elem): Elem; - VAR msg: CopyMsg; - BEGIN msg.e := NIL; e.handle(e, msg); RETURN msg.e - END CloneElem; - - - (** Elements **) - - PROCEDURE CopyElem* (SE, DE: Elem); - BEGIN DE.len := SE.len; DE.fnt := SE.fnt; DE.col := SE.col; DE.voff := SE.voff; - DE.W := SE.W; DE.H := SE.H; DE.handle := SE.handle - END CopyElem; - - PROCEDURE ElemBase* (E: Elem): Text; - BEGIN RETURN E.base - END ElemBase; - - PROCEDURE ElemPos* (E: Elem): LONGINT; - VAR u: Run; pos: LONGINT; - BEGIN u := E.base.head.next; pos := 0; - WHILE u # E DO pos := pos + u.len; u := u.next END; - RETURN pos - END ElemPos; - - - PROCEDURE HandleAlien (E: Elem; VAR msg: ElemMsg); - VAR e: Alien; r: Files.Rider; i: LONGINT; ch: CHAR; - BEGIN - WITH E: Alien DO - IF msg IS CopyMsg THEN - WITH msg: CopyMsg DO NEW(e); CopyElem(E, e); - e.file := E.file; e.org := E.org; e.span := E.span; e.mod := E.mod; e.proc := E.proc; - msg.e := e - END - ELSIF msg IS IdentifyMsg THEN - WITH msg: IdentifyMsg DO - COPY(E.mod, msg.mod); COPY(E.proc, msg.proc); msg.mod[31] := 1X (*alien*) - END - ELSIF msg IS FileMsg THEN - WITH msg: FileMsg DO - IF msg.id = store THEN Files.Set(r, E.file, E.org); i := E.span; - WHILE i > 0 DO Files.Read(r, ch); Files.Write(msg.r, ch); DEC(i) END - END - END - END - END - END HandleAlien; - - - (** Buffers **) - - PROCEDURE OpenBuf* (B: Buffer); - VAR u: Run; - BEGIN NEW(u); u.next := u; u.prev := u; B.head := u; B.len := 0 - END OpenBuf; - - PROCEDURE Copy* (SB, DB: Buffer); - VAR u, v, vn: Run; - BEGIN u := SB.head.next; v := DB.head.prev; - WHILE u # SB.head DO - IF u IS Piece THEN vn := ClonePiece(u(Piece)) ELSE vn := CloneElem(u(Elem)) END; - v.next := vn; vn.prev := v; v := vn; u := u.next - END; - v.next := DB.head; DB.head.prev := v; - INC(DB.len, SB.len) - END Copy; - - PROCEDURE Recall* (VAR B: Buffer); - BEGIN B := del; del := NIL - END Recall; - - - (** Texts **) - - PROCEDURE Save* (T: Text; beg, end: LONGINT; B: Buffer); - VAR u, v, w, wn: Run; uo, ud, vo, vd: LONGINT; - BEGIN Find(T, beg, u, uo, ud); Find(T, end, v, vo, vd); - w := B.head.prev; - WHILE u # v DO - IF u IS Piece THEN wn := ClonePiece(u(Piece)); DEC(wn.len, ud); INC(wn(Piece).org, ud) - ELSE wn := CloneElem(u(Elem)) - END; - w.next := wn; wn.prev := w; w := wn; u := u.next; ud := 0 - END; - IF vd > 0 THEN (*v IS Piece*) wn := ClonePiece(v(Piece)); wn.len := vd - ud; INC(wn(Piece).org, ud); - w.next := wn; wn.prev := w; w := wn - END; - w.next := B.head; B.head.prev := w; - INC(B.len, end - beg) - END Save; - - PROCEDURE Insert* (T: Text; pos: LONGINT; B: Buffer); - VAR u, un, v: Run; p, q: Piece; uo, ud, len: LONGINT; - BEGIN Find(T, pos, u, uo, ud); Split(ud, u, un); - len := B.len; v := B.head.next; - Merge(T, u, v); Splice(un, v, B.head.prev, T); - INC(T.len, len); B.head.next := B.head; B.head.prev := B.head; B.len := 0; - END Insert; - - PROCEDURE Append* (T: Text; B: Buffer); - VAR v: Run; pos, len: LONGINT; - BEGIN pos := T.len; len := B.len; v := B.head.next; - Merge(T, T.head.prev, v); Splice(T.head, v, B.head.prev, T); - INC(T.len, len); B.head.next := B.head; B.head.prev := B.head; B.len := 0; - END Append; - - PROCEDURE Delete* (T: Text; beg, end: LONGINT); - VAR c, u, un, v, vn: Run; co, uo, ud, vo, vd: LONGINT; - BEGIN - Find(T, beg, u, uo, ud); Split(ud, u, un); c := T.cache; co := T.corg; - Find(T, end, v, vo, vd); Split(vd, v, vn); T.cache := c; T.corg := co; - NEW(del); OpenBuf(del); del.len := end - beg; - Splice(del.head, un, v, NIL); - Merge(T, u, vn); u.next := vn; vn.prev := u; - DEC(T.len, end - beg); - END Delete; - - PROCEDURE ChangeLooks* (T: Text; beg, end: LONGINT; sel: SET; fnt: FontsFont; col, voff: SHORTINT); - VAR c, u, un, v, vn: Run; co, uo, ud, vo, vd: LONGINT; - BEGIN Find(T, beg, u, uo, ud); Split(ud, u, un); c := T.cache; co := T.corg; - Find(T, end, v, vo, vd); Split(vd, v, vn); T.cache := c; T.corg := co; - WHILE un # vn DO - IF (0 IN sel) & (fnt # NIL) THEN un.fnt := fnt END; - IF 1 IN sel THEN un.col := col END; - IF 2 IN sel THEN un.voff := voff END; - Merge(T, u, un); - IF u.next = un THEN u := un; un := un.next ELSE u.next := un; un.prev := u END - END; - Merge(T, u, un); u.next := un; un.prev := u; - END ChangeLooks; - - - (** Readers **) - - PROCEDURE OpenReader* (VAR R: Reader; T: Text; pos: LONGINT); - VAR u: Run; - BEGIN - IF pos >= T.len THEN pos := T.len END; - Find(T, pos, u, R.org, R.off); R.run := u; R.eot := FALSE; - IF u IS Piece THEN - Files.Set(R.rider, u(Piece).file, u(Piece).org + R.off) - END - END OpenReader; - - PROCEDURE Read* (VAR R: Reader; VAR ch: CHAR); - VAR u: Run; pos: LONGINT; nextch: CHAR; - BEGIN u := R.run; R.fnt := u.fnt; R.col := u.col; R.voff := u.voff; INC(R.off); - IF u IS Piece THEN Files.Read(R.rider, ch); R.elem := NIL; - IF (ch = 0AX) & u(Piece).ascii THEN ch := CR (* << LF to CR *) - ELSIF (ch = CR) & u(Piece).ascii THEN (* << CR LF to CR *) - pos := Files.Pos(R.rider); Files.Read(R.rider, nextch); - IF nextch = 0AX THEN INC(R.off) ELSE Files.Set(R.rider, u(Piece).file, pos) END - END - ELSIF u IS Elem THEN ch := ElemChar; R.elem := u(Elem) - ELSE ch := 0X; R.elem := NIL; R.eot := TRUE - END; - IF R.off = u.len THEN INC(R.org, u.len); u := u.next; - IF u IS Piece THEN - WITH u: Piece DO Files.Set(R.rider, u.file, u.org) END - END; - R.run := u; R.off := 0 - END - END Read; - - PROCEDURE ReadElem* (VAR R: Reader); - VAR u, un: Run; - BEGIN u := R.run; - WHILE u IS Piece DO INC(R.org, u.len); u := u.next END; - IF u IS Elem THEN un := u.next; R.run := un; INC(R.org); R.off := 0; - R.fnt := u.fnt; R.col := u.col; R.voff := u.voff; R.elem := u(Elem); - IF un IS Piece THEN - WITH un: Piece DO Files.Set(R.rider, un.file, un.org) END - END - ELSE R.eot := TRUE; R.elem := NIL - END - END ReadElem; - - PROCEDURE ReadPrevElem* (VAR R: Reader); - VAR u: Run; - BEGIN u := R.run.prev; - WHILE u IS Piece DO DEC(R.org, u.len); u := u.prev END; - IF u IS Elem THEN R.run := u; DEC(R.org); R.off := 0; - R.fnt := u.fnt; R.col := u.col; R.voff := u.voff; R.elem := u(Elem) - ELSE R.eot := TRUE; R.elem := NIL - END - END ReadPrevElem; - - PROCEDURE Pos* (VAR R: Reader): LONGINT; - BEGIN RETURN R.org + R.off - END Pos; - - - (** Scanners --------------- NW --------------- **) - - PROCEDURE OpenScanner* (VAR S: Scanner; T: Text; pos: LONGINT); - BEGIN OpenReader(S, T, pos); S.line := 0; S.nextCh := " " - END OpenScanner; - - (*IEEE floating point formats: - x = 2^(e-127) * 1.m bit 0: sign, bits 1- 8: e, bits 9-31: m - x = 2^(e-1023) * 1.m bit 0: sign, bits 1-11: e, bits 12-63: m *) - - PROCEDURE Scan* (VAR S: Scanner); - CONST maxD = 32; - VAR ch, term: CHAR; - neg, negE, hex: BOOLEAN; - i, j, h: SHORTINT; - e: INTEGER; k: LONGINT; - x, f: REAL; y, g: LONGREAL; - d: ARRAY maxD OF CHAR; - - PROCEDURE ReadScaleFactor; - BEGIN Read(S, ch); - IF ch = "-" THEN negE := TRUE; Read(S, ch) - ELSE negE := FALSE; - IF ch = "+" THEN Read(S, ch) END - END; - WHILE ("0" <= ch) & (ch <= "9") DO - e := e*10 + ORD(ch) - 30H; Read(S, ch) - END - END ReadScaleFactor; - - BEGIN ch := S.nextCh; i := 0; - LOOP - IF ch = CR THEN INC(S.line) - ELSIF (ch # " ") & (ch # TAB) THEN EXIT - END ; - Read(S, ch) - END; - IF ("A" <= CAP(ch)) & (CAP(ch) <= "Z") OR (ch = "/") OR (ch = ".") THEN (*name*) (* << *) - REPEAT S.s[i] := ch; INC(i); Read(S, ch) - UNTIL (CAP(ch) > "Z") & (ch # "_") (* << *) - OR ("A" > CAP(ch)) & (ch > "9") - OR ("0" > ch) & (ch # ".") & (ch # "/") (* << *) - OR (i = 63); (* << *) - S.s[i] := 0X; S.len := i; S.class := 1 - ELSIF ch = 22X THEN (*literal string*) - Read(S, ch); - WHILE (ch # 22X) & (ch >= " ") & (i # 63) DO (* << *) - S.s[i] := ch; INC(i); Read(S, ch) - END; - S.s[i] := 0X; S.len := i+1; Read(S, ch); S.class := 2 - ELSE - IF ch = "-" THEN neg := TRUE; Read(S, ch) ELSE neg := FALSE END ; - IF ("0" <= ch) & (ch <= "9") THEN (*number*) - hex := FALSE; j := 0; - LOOP d[i] := ch; INC(i); Read(S, ch); - IF ch < "0" THEN EXIT END; - IF "9" < ch THEN - IF ("A" <= ch) & (ch <= "F") THEN hex := TRUE; ch := CHR(ORD(ch)-7) - ELSIF ("a" <= ch) & (ch <= "f") THEN hex := TRUE; ch := CHR(ORD(ch)-27H) - ELSE EXIT - END - END - END; - IF ch = "H" THEN (*hex number*) - Read(S, ch); S.class := 3; - IF i-j > 8 THEN j := i-8 END ; - k := ORD(d[j]) - 30H; INC(j); - IF (i-j = 7) & (k >= 8) THEN DEC(k, 16) END ; - WHILE j < i DO k := k*10H + (ORD(d[j]) - 30H); INC(j) END ; - IF neg THEN S.i := -k ELSE S.i := k END - ELSIF ch = "." THEN (*read real*) - Read(S, ch); h := i; - WHILE ("0" <= ch) & (ch <= "9") DO d[i] := ch; INC(i); Read(S, ch) END ; - IF ch = "D" THEN - e := 0; y := 0; g := 1; - REPEAT y := y*10 + (ORD(d[j]) - 30H); INC(j) UNTIL j = h; - WHILE j < i DO g := g/10; y := (ORD(d[j]) - 30H)*g + y; INC(j) END ; - ReadScaleFactor; - IF negE THEN - IF e <= 308 THEN y := y / Reals.TenL(e) ELSE y := 0 END - ELSIF e > 0 THEN - IF e <= 308 THEN y := Reals.TenL(e) * y ELSE HALT(40) END - END ; - IF neg THEN y := -y END ; - S.class := 5; S.y := y - ELSE e := 0; x := 0; f := 1; - REPEAT x := x*10 + (ORD(d[j]) - 30H); INC(j) UNTIL j = h; - WHILE j < i DO f := f/10; x := (ORD(d[j])-30H)*f + x; INC(j) END; - IF ch = "E" THEN ReadScaleFactor END ; - IF negE THEN - IF e <= 38 THEN x := x / Reals.Ten(e) ELSE x := 0 END - ELSIF e > 0 THEN - IF e <= 38 THEN x := Reals.Ten(e) * x ELSE HALT(40) END - END ; - IF neg THEN x := -x END ; - S.class := 4; S.x := x - END ; - IF hex THEN S.class := 0 END - ELSE (*decimal integer*) - S.class := 3; k := 0; - REPEAT k := k*10 + (ORD(d[j]) - 30H); INC(j) UNTIL j = i; - IF neg THEN S.i := -k ELSE S.i := k END; - IF hex THEN S.class := 0 ELSE S.class := 3 END - END - ELSE S.class := 6; - IF neg THEN S.c := "-" ELSE S.c := ch; Read(S, ch) END - END - END; - S.nextCh := ch - END Scan; - - - (** Writers **) - - PROCEDURE OpenWriter* (VAR W: Writer); - BEGIN NEW(W.buf); OpenBuf(W.buf); - W.fnt := FontsDefault; W.col := Displaywhite; W.voff := 0; - W.file := Files.New(""); Files.Set(W.rider, W.file, 0) - END OpenWriter; - - PROCEDURE SetFont* (VAR W: Writer; fnt: FontsFont); - BEGIN W.fnt := fnt - END SetFont; - - PROCEDURE SetColor* (VAR W: Writer; col: SHORTINT); - BEGIN W.col := col - END SetColor; - - PROCEDURE SetOffset* (VAR W: Writer; voff: SHORTINT); - BEGIN W.voff := voff - END SetOffset; - - - PROCEDURE Write* (VAR W: Writer; ch: CHAR); - VAR u, un: Run; p: Piece; - BEGIN Files.Write(W.rider, ch); INC(W.buf.len); un := W.buf.head; u := un.prev; - IF (u IS Piece) & (u(Piece).file = W.file) & (u.fnt.name = W.fnt.name) & (u.col = W.col) & (u.voff = W.voff) - & ~u(Piece).ascii THEN (* << *) - INC(u.len) - ELSE NEW(p); u.next := p; p.prev := u; p.next := un; un.prev := p; - p.len := 1; p.fnt := W.fnt; p.col := W.col; p.voff := W.voff; - p.file := W.file; p.org := Files.Length(W.file) - 1; p.ascii := FALSE (* << *) - END - END Write; - - PROCEDURE WriteElem* (VAR W: Writer; e: Elem); - VAR u, un: Run; - BEGIN - IF e.base # NIL THEN HALT(99) END; - INC(W.buf.len); e.len := 1; e.fnt := W.fnt; e.col := W.col; e.voff := W.voff; - un := W.buf.head; u := un.prev; u.next := e; e.prev := u; e.next := un; un.prev := e - END WriteElem; - - PROCEDURE WriteLn* (VAR W: Writer); - BEGIN Write(W, CR) - END WriteLn; - - PROCEDURE WriteString* (VAR W: Writer; s: ARRAY OF CHAR); - VAR i: INTEGER; - BEGIN i := 0; - WHILE s[i] >= " " DO Write(W, s[i]); INC(i) END - END WriteString; - - PROCEDURE WriteInt* (VAR W: Writer; x, n: LONGINT); - VAR i: INTEGER; x0: LONGINT; - a: ARRAY 11 OF CHAR; - BEGIN i := 0; - IF x < 0 THEN - IF x = MIN(LONGINT) THEN WriteString(W, " -2147483648"); RETURN - ELSE DEC(n); x0 := -x - END - ELSE x0 := x - END; - REPEAT - a[i] := CHR(x0 MOD 10 + 30H); x0 := x0 DIV 10; INC(i) - UNTIL x0 = 0; - WHILE n > i DO Write(W, " "); DEC(n) END; - IF x < 0 THEN Write(W, "-") END; - REPEAT DEC(i); Write(W, a[i]) UNTIL i = 0 - END WriteInt; - - PROCEDURE WriteHex* (VAR W: Writer; x: LONGINT); - VAR i: INTEGER; y: LONGINT; - a: ARRAY 10 OF CHAR; - BEGIN i := 0; Write(W, " "); - REPEAT y := x MOD 10H; - IF y < 10 THEN a[i] := CHR(y + 30H) ELSE a[i] := CHR(y + 37H) END; - x := x DIV 10H; INC(i) - UNTIL i = 8; - REPEAT DEC(i); Write(W, a[i]) UNTIL i = 0 - END WriteHex; - - PROCEDURE WriteReal* (VAR W: Writer; x: REAL; n: INTEGER); - VAR e: INTEGER; x0: REAL; - d: ARRAY maxD OF CHAR; - BEGIN e := Reals.Expo(x); - IF e = 0 THEN - WriteString(W, " 0"); - REPEAT Write(W, " "); DEC(n) UNTIL n <= 3 - ELSIF e = 255 THEN - WriteString(W, " NaN"); - WHILE n > 4 DO Write(W, " "); DEC(n) END - ELSE - IF n <= 9 THEN n := 3 ELSE DEC(n, 6) END; - REPEAT Write(W, " "); DEC(n) UNTIL n <= 8; - (*there are 2 < n <= 8 digits to be written*) - IF x < 0.0 THEN Write(W, "-"); x := -x ELSE Write(W, " ") END; - e := (e - 127) * 77 DIV 256; - IF e >= 0 THEN x := x / Reals.Ten(e) ELSE x := Reals.Ten(-e) * x END; - IF x >= 10.0 THEN x := 0.1*x; INC(e) END; - x0 := Reals.Ten(n-1); x := x0*x + 0.5; - IF x >= 10.0*x0 THEN x := x*0.1; INC(e) END; - Reals.Convert(x, n, d); - DEC(n); Write(W, d[n]); Write(W, "."); - REPEAT DEC(n); Write(W, d[n]) UNTIL n = 0; - Write(W, "E"); - IF e < 0 THEN Write(W, "-"); e := -e ELSE Write(W, "+") END; - Write(W, CHR(e DIV 10 + 30H)); Write(W, CHR(e MOD 10 + 30H)) - END - END WriteReal; - - PROCEDURE WriteRealFix* (VAR W: Writer; x: REAL; n, k: INTEGER); - VAR e, i: INTEGER; sign: CHAR; x0: REAL; - d: ARRAY maxD OF CHAR; - - PROCEDURE seq(ch: CHAR; n: INTEGER); - BEGIN WHILE n > 0 DO Write(W, ch); DEC(n) END - END seq; - - PROCEDURE dig(n: INTEGER); - BEGIN - WHILE n > 0 DO - DEC(i); Write(W, d[i]); DEC(n) - END - END dig; - - BEGIN e := Reals.Expo(x); - IF k < 0 THEN k := 0 END; - IF e = 0 THEN seq(" ", n-k-2); Write(W, "0"); seq(" ", k+1) - ELSIF e = 255 THEN WriteString(W, " NaN"); seq(" ", n-4) - ELSE e := (e - 127) * 77 DIV 256; - IF x < 0 THEN sign := "-"; x := -x ELSE sign := " " END; - IF e >= 0 THEN (*x >= 1.0, 77/256 = log 2*) x := x/Reals.Ten(e) - ELSE (*x < 1.0*) x := Reals.Ten(-e) * x - END; - IF x >= 10.0 THEN x := 0.1*x; INC(e) END; - (* 1 <= x < 10 *) - IF k+e >= maxD-1 THEN k := maxD-1-e - ELSIF k+e < 0 THEN k := -e; x := 0.0 - END; - x0 := Reals.Ten(k+e); x := x0*x + 0.5; - IF x >= 10.0*x0 THEN INC(e) END; - (*e = no. of digits before decimal point*) - INC(e); i := k+e; Reals.Convert(x, i, d); - IF e > 0 THEN - seq(" ", n-e-k-2); Write(W, sign); dig(e); - Write(W, "."); dig(k) - ELSE seq(" ", n-k-3); - Write(W, sign); Write(W, "0"); Write(W, "."); - seq("0", -e); dig(k+e) - END - END - END WriteRealFix; - - PROCEDURE WriteRealHex* (VAR W: Writer; x: REAL); - VAR i: INTEGER; - d: ARRAY 8 OF CHAR; - BEGIN Reals.ConvertH(x, d); i := 0; - REPEAT Write(W, d[i]); INC(i) UNTIL i = 8 - END WriteRealHex; - - PROCEDURE WriteLongReal* (VAR W: Writer; x: LONGREAL; n: INTEGER); - CONST maxD = 16; - VAR e: INTEGER; x0: LONGREAL; - d: ARRAY maxD OF CHAR; - BEGIN e := Reals.ExpoL(x); - IF e = 0 THEN - WriteString(W, " 0"); - REPEAT Write(W, " "); DEC(n) UNTIL n <= 3 - ELSIF e = 2047 THEN - WriteString(W, " NaN"); - WHILE n > 4 DO Write(W, " "); DEC(n) END - ELSE - IF n <= 10 THEN n := 3 ELSE DEC(n, 7) END; - REPEAT Write(W, " "); DEC(n) UNTIL n <= maxD; - (*there are 2 <= n <= maxD digits to be written*) - IF x < 0 THEN Write(W, "-"); x := -x ELSE Write(W, " ") END; - e := SHORT(LONG(e - 1023) * 77 DIV 256); - IF e >= 0 THEN x := x / Reals.TenL(e) ELSE x := Reals.TenL(-e) * x END ; - IF x >= 10.0D0 THEN x := 0.1D0 * x; INC(e) END ; - x0 := Reals.TenL(n-1); x := x0*x + 0.5D0; - IF x >= 10.0D0*x0 THEN x := 0.1D0 * x; INC(e) END ; - Reals.ConvertL(x, n, d); - DEC(n); Write(W, d[n]); Write(W, "."); - REPEAT DEC(n); Write(W, d[n]) UNTIL n = 0; - Write(W, "D"); - IF e < 0 THEN Write(W, "-"); e := -e ELSE Write(W, "+") END; - Write(W, CHR(e DIV 100 + 30H)); e := e MOD 100; - Write(W, CHR(e DIV 10 + 30H)); - Write(W, CHR(e MOD 10 + 30H)) - END - END WriteLongReal; - - PROCEDURE WriteLongRealHex* (VAR W: Writer; x: LONGREAL); - VAR i: INTEGER; - d: ARRAY 16 OF CHAR; - BEGIN Reals.ConvertHL(x, d); i := 0; - REPEAT Write(W, d[i]); INC(i) UNTIL i = 16 - END WriteLongRealHex; - - PROCEDURE WriteDate* (VAR W: Writer; t, d: LONGINT); - - PROCEDURE WritePair(ch: CHAR; x: LONGINT); - BEGIN Write(W, ch); - Write(W, CHR(x DIV 10 + 30H)); Write(W, CHR(x MOD 10 + 30H)) - END WritePair; - - BEGIN - WritePair(" ", d MOD 32); WritePair(".", d DIV 32 MOD 16); WritePair(".", d DIV 512 MOD 128); - WritePair(" ", t DIV 4096 MOD 32); WritePair(":", t DIV 64 MOD 64); WritePair(":", t MOD 64) - END WriteDate; - - - (** Text Filing **) - - PROCEDURE Load0 (VAR r: Files.Rider; T: Text); - VAR u, un: Run; p: Piece; e: Elem; - org, pos, hlen, plen: LONGINT; ecnt, fno, fcnt, col, voff: SHORTINT; - f: Files.File; - msg: FileMsg; - mods, procs: ARRAY 64, 32 OF CHAR; - name: ARRAY 32 OF CHAR; - fnts: ARRAY 32 OF FontsFont; - - PROCEDURE LoadElem (VAR r: Files.Rider; pos, span: LONGINT; VAR e: Elem); - VAR M: Modules.Module; Cmd: Modules.Command; a: Alien; - org, ew, eh: LONGINT; eno: SHORTINT; - BEGIN new := NIL; - Files.ReadLInt(r, ew); Files.ReadLInt(r, eh); Files.Read(r, eno); - IF eno > ecnt THEN ecnt := eno; Files.ReadString(r, mods[eno]); Files.ReadString(r, procs[eno]) END; - org := Files.Pos(r); M := Modules.ThisMod(mods[eno]); - IF M # NIL THEN Cmd := Modules.ThisCommand(M, procs[eno]); - IF Cmd # NIL THEN Cmd END - END; - e := new; - IF e # NIL THEN e.W := ew; e.H := eh; e.base := T; - msg.pos := pos; e.handle(e, msg); - IF Files.Pos(r) # org + span THEN e := NIL END - END; - IF e = NIL THEN Files.Set(r, f, org + span); - NEW(a); a.W := ew; a.H := eh; a.handle := HandleAlien; a.base := T; - a.file := f; a.org := org; a.span := span; - COPY(mods[eno], a.mod); COPY(procs[eno], a.proc); - e := a - END - END LoadElem; - - BEGIN pos := Files.Pos(r); f := Files.Base(r); - NEW(u); u.len := MAX(LONGINT); (*u.fnt := FontsDefault;*)u.fnt := NIL; u.col := Displaywhite; - T.head := u; ecnt := 0; fcnt := 0; - msg.id := load; msg.r := r; - Files.ReadLInt(msg.r, hlen); (*!!!org := pos + hlen;*) org := pos -2 + hlen; pos := org; Files.Read(msg.r, fno); - WHILE fno # 0 DO - IF fno > fcnt THEN fcnt := fno; Files.ReadString(msg.r, name); fnts[fno] := FontsThis(name) END; - Files.Read(msg.r, col); Files.Read(msg.r, voff); Files.ReadLInt(msg.r, plen); - IF plen > 0 THEN NEW(p); p.file := f; p.org := pos; p.ascii := FALSE; un := p; un.len := plen - ELSE LoadElem(msg.r, pos - org, -plen, e); un := e; un.len := 1 - END; - un.fnt := fnts[fno]; un.col := col; un.voff := voff; - INC(pos, un.len); u.next := un; un.prev := u; u := un; Files.Read(msg.r, fno) - END; - u.next := T.head; T.head.prev := u; T.cache := T.head; T.corg := 0; - Files.ReadLInt(msg.r, T.len); Files.Set(r, f, Files.Pos(msg.r) + T.len) - END Load0; - - PROCEDURE Load* (VAR r: Files.Rider; T: Text); - CONST oldTag = -4095; - VAR tag: INTEGER; - BEGIN - (* for compatibility inner text tags are checked and skipped; remove this in a later version *) - Files.ReadInt(r, tag); IF tag # oldTag THEN Files.Set(r, Files.Base(r), Files.Pos(r)-2) END; - Load0(r, T) - END Load; - - PROCEDURE Open* (T: Text; name: ARRAY OF CHAR); - VAR f: Files.File; r: Files.Rider; u: Run; p: Piece; tag, version: CHAR; hlen: LONGINT; - BEGIN f := Files.Old(name); - IF f = NIL THEN f := Files.New("") END; - Files.Set(r, f, 0); Files.Read(r, tag); Files.Read(r, version); - IF (tag = textTag) OR (tag = 01X) & (version = textTag) THEN Load0(r, T) - ELSE (*ascii*) - NEW(u); u.len := MAX(LONGINT); u.fnt := NIL; u.col := Displaywhite; - NEW(p); - IF (tag = DocBlockId) & (version = 07X) THEN (* extract ascii text from System 3 text document *) - Files.Set(r, f, 28); Files.ReadLInt(r, hlen); - Files.Set(r, f, 22 + hlen); Files.ReadLInt(r, T.len); p.org := 26 + hlen - ELSE - T.len := Files.Length(f); p.org := 0 - END ; - IF T.len > 0 THEN p.len := T.len; p.fnt := FontsDefault; - p.col := Displaywhite; p.voff := 0; p.file := f; p.ascii := TRUE; - u.next := p; u.prev := p; p.next := u; p.prev := u - ELSE u.next := u; u.prev := u - END; - T.head := u; T.cache := T.head; T.corg := 0 - END - END Open; - - PROCEDURE Store* (VAR r: Files.Rider; T: Text); - VAR r1: Files.Rider; u, un: Run; e: Elem; org, pos, delta, hlen, rlen: LONGINT; ecnt, fno, fcnt: SHORTINT; ch: CHAR; (* << *) - msg: FileMsg; iden: IdentifyMsg; - mods, procs: ARRAY 64, 32 OF CHAR; - fnts: ARRAY 32 OF FontsFont; - block: ARRAY 1024 OF CHAR; - - PROCEDURE StoreElem (VAR r: Files.Rider; pos: LONGINT; e: Elem); - VAR r1: Files.Rider; org, span: LONGINT; eno: SHORTINT; - BEGIN COPY(iden.mod, mods[ecnt]); COPY(iden.proc, procs[ecnt]); eno := 1; - WHILE (mods[eno] # iden.mod) OR (procs[eno] # iden.proc) DO INC(eno) END; - Files.Set(r1, Files.Base(r), Files.Pos(r)); - Files.WriteLInt(r, 0); Files.WriteLInt(r, 0); Files.WriteLInt(r, 0); (*fixup slot*) - Files.Write(r, eno); - IF eno = ecnt THEN INC(ecnt); Files.WriteString(r, iden.mod); Files.WriteString(r, iden.proc) END; - msg.pos := pos; org := Files.Pos(r); e.handle(e, msg); span := Files.Pos(r) - org; - Files.WriteLInt(r1, -span); Files.WriteLInt(r1, e.W); Files.WriteLInt(r1, e.H) (*fixup*) - END StoreElem; - - BEGIN - org := Files.Pos(r); msg.id := store; msg.r := r; Files.WriteLInt(msg.r, 0); (*fixup slot*) - u := T.head.next; pos := 0; delta := 0; fcnt := 1; ecnt := 1; - WHILE u # T.head DO - IF u IS Elem THEN iden.mod[0] := 0X; u(Elem).handle(u(Elem), iden) ELSE iden.mod[0] := 1X END; - IF iden.mod[0] # 0X THEN - fnts[fcnt] := u.fnt; fno := 1; - WHILE fnts[fno].name # u.fnt.name DO INC(fno) END; - Files.Write(msg.r, fno); - IF fno = fcnt THEN INC(fcnt); Files.WriteString(msg.r, u.fnt.name) END; - Files.Write(msg.r, u.col); Files.Write(msg.r, u.voff) - END; - IF u IS Piece THEN rlen := u.len; un := u.next; - WHILE (un IS Piece) & (un.fnt = u.fnt) & (un.col = u.col) & (un.voff = u.voff) DO - INC(rlen, un.len); un := un.next - END; - Files.WriteLInt(msg.r, rlen); INC(pos, rlen); u := un - ELSIF iden.mod[0] # 0X THEN StoreElem(msg.r, pos, u(Elem)); INC(pos); u := u.next - ELSE INC(delta); u := u.next - END - END; - Files.Write(msg.r, 0); Files.WriteLInt(msg.r, T.len - delta); - (*!!!hlen := Files.Pos(msg.r) - org;*) hlen := Files.Pos(msg.r) - org + 2; - Files.Set(r1, Files.Base(msg.r), org); Files.WriteLInt(r1, hlen); (*fixup*) - u := T.head.next; - WHILE u # T.head DO - IF u IS Piece THEN - WITH u: Piece DO - IF u.ascii THEN Files.Set(r1, u.file, u.org); delta := u.len; (* << LF to CR *) - WHILE delta > 0 DO Files.Read(r1, ch); DEC(delta); - IF ch = 0AX THEN Files.Write(msg.r, CR) ELSE Files.Write(msg.r, ch) END - END - ELSE Files.Set(r1, u.file, u.org); delta := u.len; - WHILE delta > LEN(block) DO Files.ReadBytes(r1, block, LEN(block)); - Files.WriteBytes(msg.r, block, LEN(block)); DEC(delta, LEN(block)) - END; - Files.ReadBytes(r1, block, delta); Files.WriteBytes(msg.r, block, delta) - END - END - ELSE iden.mod[0] := 0X; u(Elem).handle(u(Elem), iden); - IF iden.mod[0] # 0X THEN Files.Write(msg.r, ElemChar) END - END; - u := u.next - END; - r := msg.r; - END Store; - - PROCEDURE Close* (T: Text; name: ARRAY OF CHAR); - VAR f: Files.File; r: Files.Rider; i, res: INTEGER; bak: ARRAY 64 OF CHAR; - BEGIN - f := Files.New(name); Files.Set(r, f, 0); Files.Write(r, textTag); Files.Write(r, version); Store(r, T); - i := 0; WHILE name[i] # 0X DO INC(i) END; - COPY(name, bak); bak[i] := "."; bak[i+1] := "B"; bak[i+2] := "a"; bak[i+3] := "k"; bak[i+4] := 0X; - Files.Rename(name, bak, res); Files.Register(f) - END Close; - -BEGIN del := NIL; NEW(FontsDefault); FontsDefault.name := "Syntax10.Scn.Fnt" -END Texts. diff --git a/src/lib/system/linux/clang/Texts0.Mod b/src/lib/system/linux/clang/Texts0.Mod deleted file mode 100644 index 19ecf5a1..00000000 --- a/src/lib/system/linux/clang/Texts0.Mod +++ /dev/null @@ -1,880 +0,0 @@ -MODULE Texts0; (** CAS/HM 23.9.93 -- interface based on Texts by JG/NW 6.12.91**) (* << RC, MB, JT *) - IMPORT - Files := Files0, Modules, Reals; - - (*--- insert field e: Elem into Texts.Scanner and change Texts.Scan to set it in case of class=6 *) - (* this module is for bootstrapping voc, use Texts instead *) - - CONST - Displaywhite = 15; - ElemChar* = 1CX; - TAB = 9X; CR = 0DX; maxD = 9; - (**FileMsg.id**) - load* = 0; store* = 1; - (**Notifier op**) - replace* = 0; insert* = 1; delete* = 2; - (**Scanner.class**) - Inval* = 0; Name* = 1; String* = 2; Int* = 3; Real* = 4; LongReal* = 5; Char* = 6; - - textTag = 0F0X; DocBlockId = 0F7X; version = 01X; - - TYPE - FontsFont = POINTER TO FontDesc; - FontDesc = RECORD - name: ARRAY 32 OF CHAR; - END ; - - Run = POINTER TO RunDesc; - RunDesc = RECORD - prev, next: Run; - len: LONGINT; - fnt: FontsFont; - col, voff: SHORTINT; - ascii: BOOLEAN (* << *) - END; - - Piece = POINTER TO PieceDesc; - PieceDesc = RECORD (RunDesc) - file: Files.File; - org: LONGINT - END; - - Elem* = POINTER TO ElemDesc; - Buffer* = POINTER TO BufDesc; - Text* = POINTER TO TextDesc; - - ElemMsg* = RECORD END; - Handler* = PROCEDURE (e: Elem; VAR msg: ElemMsg); - - ElemDesc* = RECORD (RunDesc) - W*, H*: LONGINT; - handle*: Handler; - base: Text - END; - - FileMsg* = RECORD (ElemMsg) - id*: INTEGER; - pos*: LONGINT; - r*: Files.Rider - END; - - CopyMsg* = RECORD (ElemMsg) - e*: Elem - END; - - IdentifyMsg* = RECORD (ElemMsg) - mod*, proc*: ARRAY 32 OF CHAR - END; - - - BufDesc* = RECORD - len*: LONGINT; - head: Run - END; - - TextDesc* = RECORD - len*: LONGINT; - head, cache: Run; - corg: LONGINT - END; - - Reader* = RECORD - eot*: BOOLEAN; - fnt*: FontsFont; - col*, voff*: SHORTINT; - elem*: Elem; - rider: Files.Rider; - run: Run; - org, off: LONGINT - END; - - Scanner* = RECORD (Reader) - nextCh*: CHAR; - line*, class*: INTEGER; - i*: LONGINT; - x*: REAL; - y*: LONGREAL; - c*: CHAR; - len*: SHORTINT; - s*: ARRAY 64 OF CHAR (* << *) - END; - - Writer* = RECORD - buf*: Buffer; - fnt*: FontsFont; - col*, voff*: SHORTINT; - rider: Files.Rider; - file: Files.File - END; - - Alien = POINTER TO RECORD (ElemDesc) - file: Files.File; - org, span: LONGINT; - mod, proc: ARRAY 32 OF CHAR - END; - - VAR - new*: Elem; - del: Buffer; - FontsDefault: FontsFont; - - - PROCEDURE FontsThis(VAR name: ARRAY OF CHAR): FontsFont; - VAR F: FontsFont; - BEGIN - NEW(F); COPY(name, F.name); RETURN F - END FontsThis; - - (* run primitives *) - - PROCEDURE Find (T: Text; VAR pos: LONGINT; VAR u: Run; VAR org, off: LONGINT); - VAR v: Run; m: LONGINT; - BEGIN - IF pos >= T.len THEN pos := T.len; u := T.head; org := T.len; off := 0; T.cache := T.head; T.corg := 0 - ELSE v := T.cache.next; m := pos - T.corg; - IF pos >= T.corg THEN - WHILE m >= v.len DO DEC(m, v.len); v := v.next END - ELSE - WHILE m < 0 DO v := v.prev; INC(m, v.len) END; - END; - u := v; org := pos - m; off := m; T.cache := v.prev; T.corg := org - END - END Find; - - PROCEDURE Split (off: LONGINT; VAR u, un: Run); - VAR p, U: Piece; - BEGIN - IF off = 0 THEN un := u; u := un.prev - ELSIF off >= u.len THEN un := u.next - ELSE NEW(p); un := p; U := u(Piece); - p^ := U^; INC(p.org, off); DEC(p.len, off); DEC(U.len, p.len); - p.ascii := u.ascii; p.prev := U; p.next := U.next; p.next.prev := p; U.next := p (* << *) - END - END Split; - - PROCEDURE Merge (T: Text; u: Run; VAR v: Run); - VAR p, q: Piece; - BEGIN - IF (u IS Piece) & (v IS Piece) & (u.fnt.name = v.fnt.name) & (u.col = v.col) & (u.voff = v.voff) - & (u(Piece).ascii = v(Piece).ascii) THEN (* << *) - p := u(Piece); q := v(Piece); - IF (p.file = q.file) & (p.org + p.len = q.org) THEN - IF T.cache = u THEN INC(T.corg, q.len) - ELSIF T.cache = v THEN T.cache := T.head; T.corg := 0 - END; - INC(p.len, q.len); v := v.next - END - END - END Merge; - - PROCEDURE Splice (un, v, w: Run; base: Text); (* (u, un) -> (u, v, w, un) *) - VAR u: Run; - BEGIN - IF v # w.next THEN u := un.prev; - u.next := v; v.prev := u; un.prev := w; w.next := un; - REPEAT - IF v IS Elem THEN v(Elem).base := base END; - v := v.next - UNTIL v = un - END - END Splice; - - PROCEDURE ClonePiece (p: Piece): Piece; - VAR q: Piece; - BEGIN NEW(q); q^ := p^; RETURN q - END ClonePiece; - - PROCEDURE CloneElem (e: Elem): Elem; - VAR msg: CopyMsg; - BEGIN msg.e := NIL; e.handle(e, msg); RETURN msg.e - END CloneElem; - - - (** Elements **) - - PROCEDURE CopyElem* (SE, DE: Elem); - BEGIN DE.len := SE.len; DE.fnt := SE.fnt; DE.col := SE.col; DE.voff := SE.voff; - DE.W := SE.W; DE.H := SE.H; DE.handle := SE.handle - END CopyElem; - - PROCEDURE ElemBase* (E: Elem): Text; - BEGIN RETURN E.base - END ElemBase; - - PROCEDURE ElemPos* (E: Elem): LONGINT; - VAR u: Run; pos: LONGINT; - BEGIN u := E.base.head.next; pos := 0; - WHILE u # E DO pos := pos + u.len; u := u.next END; - RETURN pos - END ElemPos; - - - PROCEDURE HandleAlien (E: Elem; VAR msg: ElemMsg); - VAR e: Alien; r: Files.Rider; i: LONGINT; ch: CHAR; - BEGIN - WITH E: Alien DO - IF msg IS CopyMsg THEN - WITH msg: CopyMsg DO NEW(e); CopyElem(E, e); - e.file := E.file; e.org := E.org; e.span := E.span; e.mod := E.mod; e.proc := E.proc; - msg.e := e - END - ELSIF msg IS IdentifyMsg THEN - WITH msg: IdentifyMsg DO - COPY(E.mod, msg.mod); COPY(E.proc, msg.proc); msg.mod[31] := 1X (*alien*) - END - ELSIF msg IS FileMsg THEN - WITH msg: FileMsg DO - IF msg.id = store THEN Files.Set(r, E.file, E.org); i := E.span; - WHILE i > 0 DO Files.Read(r, ch); Files.Write(msg.r, ch); DEC(i) END - END - END - END - END - END HandleAlien; - - - (** Buffers **) - - PROCEDURE OpenBuf* (B: Buffer); - VAR u: Run; - BEGIN NEW(u); u.next := u; u.prev := u; B.head := u; B.len := 0 - END OpenBuf; - - PROCEDURE Copy* (SB, DB: Buffer); - VAR u, v, vn: Run; - BEGIN u := SB.head.next; v := DB.head.prev; - WHILE u # SB.head DO - IF u IS Piece THEN vn := ClonePiece(u(Piece)) ELSE vn := CloneElem(u(Elem)) END; - v.next := vn; vn.prev := v; v := vn; u := u.next - END; - v.next := DB.head; DB.head.prev := v; - INC(DB.len, SB.len) - END Copy; - - PROCEDURE Recall* (VAR B: Buffer); - BEGIN B := del; del := NIL - END Recall; - - - (** Texts **) - - PROCEDURE Save* (T: Text; beg, end: LONGINT; B: Buffer); - VAR u, v, w, wn: Run; uo, ud, vo, vd: LONGINT; - BEGIN Find(T, beg, u, uo, ud); Find(T, end, v, vo, vd); - w := B.head.prev; - WHILE u # v DO - IF u IS Piece THEN wn := ClonePiece(u(Piece)); DEC(wn.len, ud); INC(wn(Piece).org, ud) - ELSE wn := CloneElem(u(Elem)) - END; - w.next := wn; wn.prev := w; w := wn; u := u.next; ud := 0 - END; - IF vd > 0 THEN (*v IS Piece*) wn := ClonePiece(v(Piece)); wn.len := vd - ud; INC(wn(Piece).org, ud); - w.next := wn; wn.prev := w; w := wn - END; - w.next := B.head; B.head.prev := w; - INC(B.len, end - beg) - END Save; - - PROCEDURE Insert* (T: Text; pos: LONGINT; B: Buffer); - VAR u, un, v: Run; p, q: Piece; uo, ud, len: LONGINT; - BEGIN Find(T, pos, u, uo, ud); Split(ud, u, un); - len := B.len; v := B.head.next; - Merge(T, u, v); Splice(un, v, B.head.prev, T); - INC(T.len, len); B.head.next := B.head; B.head.prev := B.head; B.len := 0; - END Insert; - - PROCEDURE Append* (T: Text; B: Buffer); - VAR v: Run; pos, len: LONGINT; - BEGIN pos := T.len; len := B.len; v := B.head.next; - Merge(T, T.head.prev, v); Splice(T.head, v, B.head.prev, T); - INC(T.len, len); B.head.next := B.head; B.head.prev := B.head; B.len := 0; - END Append; - - PROCEDURE Delete* (T: Text; beg, end: LONGINT); - VAR c, u, un, v, vn: Run; co, uo, ud, vo, vd: LONGINT; - BEGIN - Find(T, beg, u, uo, ud); Split(ud, u, un); c := T.cache; co := T.corg; - Find(T, end, v, vo, vd); Split(vd, v, vn); T.cache := c; T.corg := co; - NEW(del); OpenBuf(del); del.len := end - beg; - Splice(del.head, un, v, NIL); - Merge(T, u, vn); u.next := vn; vn.prev := u; - DEC(T.len, end - beg); - END Delete; - - PROCEDURE ChangeLooks* (T: Text; beg, end: LONGINT; sel: SET; fnt: FontsFont; col, voff: SHORTINT); - VAR c, u, un, v, vn: Run; co, uo, ud, vo, vd: LONGINT; - BEGIN Find(T, beg, u, uo, ud); Split(ud, u, un); c := T.cache; co := T.corg; - Find(T, end, v, vo, vd); Split(vd, v, vn); T.cache := c; T.corg := co; - WHILE un # vn DO - IF (0 IN sel) & (fnt # NIL) THEN un.fnt := fnt END; - IF 1 IN sel THEN un.col := col END; - IF 2 IN sel THEN un.voff := voff END; - Merge(T, u, un); - IF u.next = un THEN u := un; un := un.next ELSE u.next := un; un.prev := u END - END; - Merge(T, u, un); u.next := un; un.prev := u; - END ChangeLooks; - - - (** Readers **) - - PROCEDURE OpenReader* (VAR R: Reader; T: Text; pos: LONGINT); - VAR u: Run; - BEGIN - IF pos >= T.len THEN pos := T.len END; - Find(T, pos, u, R.org, R.off); R.run := u; R.eot := FALSE; - IF u IS Piece THEN - Files.Set(R.rider, u(Piece).file, u(Piece).org + R.off) - END - END OpenReader; -(* - PROCEDURE Read* (VAR R: Reader; VAR ch: CHAR); - VAR u: Run; - BEGIN u := R.run; R.fnt := u.fnt; R.col := u.col; R.voff := u.voff; INC(R.off); - IF u IS Piece THEN Files.Read(R.rider, ch); R.elem := NIL; - IF (ch = 0AX) & u(Piece).ascii THEN ch := CR END (* << LF to CR *) - ELSIF u IS Elem THEN ch := ElemChar; R.elem := u(Elem) - ELSE ch := 0X; R.elem := NIL; R.eot := TRUE - END; - IF R.off = u.len THEN INC(R.org, u.len); u := u.next; - IF u IS Piece THEN - WITH u: Piece DO Files.Set(R.rider, u.file, u.org) END - END; - R.run := u; R.off := 0 - END - END Read; -*) - PROCEDURE Read* (VAR R: Reader; VAR ch: CHAR); - VAR u: Run; pos: LONGINT; nextch: CHAR; - BEGIN u := R.run; R.fnt := u.fnt; R.col := u.col; R.voff := u.voff; INC(R.off); - IF u IS Piece THEN Files.Read(R.rider, ch); R.elem := NIL; - IF (ch = 0AX) & u(Piece).ascii THEN ch := CR (* << LF to CR *) - ELSIF (ch = CR) & u(Piece).ascii THEN (* << CR LF to CR *) - pos := Files.Pos(R.rider); Files.Read(R.rider, nextch); - IF nextch = 0AX THEN INC(R.off) ELSE Files.Set(R.rider, u(Piece).file, pos) END - END - ELSIF u IS Elem THEN ch := ElemChar; R.elem := u(Elem) - ELSE ch := 0X; R.elem := NIL; R.eot := TRUE - END; - IF R.off = u.len THEN INC(R.org, u.len); u := u.next; - IF u IS Piece THEN - WITH u: Piece DO Files.Set(R.rider, u.file, u.org) END - END; - R.run := u; R.off := 0 - END - END Read; - - - PROCEDURE ReadElem* (VAR R: Reader); - VAR u, un: Run; - BEGIN u := R.run; - WHILE u IS Piece DO INC(R.org, u.len); u := u.next END; - IF u IS Elem THEN un := u.next; R.run := un; INC(R.org); R.off := 0; - R.fnt := u.fnt; R.col := u.col; R.voff := u.voff; R.elem := u(Elem); - IF un IS Piece THEN - WITH un: Piece DO Files.Set(R.rider, un.file, un.org) END - END - ELSE R.eot := TRUE; R.elem := NIL - END - END ReadElem; - - PROCEDURE ReadPrevElem* (VAR R: Reader); - VAR u: Run; - BEGIN u := R.run.prev; - WHILE u IS Piece DO DEC(R.org, u.len); u := u.prev END; - IF u IS Elem THEN R.run := u; DEC(R.org); R.off := 0; - R.fnt := u.fnt; R.col := u.col; R.voff := u.voff; R.elem := u(Elem) - ELSE R.eot := TRUE; R.elem := NIL - END - END ReadPrevElem; - - PROCEDURE Pos* (VAR R: Reader): LONGINT; - BEGIN RETURN R.org + R.off - END Pos; - - - (** Scanners --------------- NW --------------- **) - - PROCEDURE OpenScanner* (VAR S: Scanner; T: Text; pos: LONGINT); - BEGIN OpenReader(S, T, pos); S.line := 0; S.nextCh := " " - END OpenScanner; - - (*IEEE floating point formats: - x = 2^(e-127) * 1.m bit 0: sign, bits 1- 8: e, bits 9-31: m - x = 2^(e-1023) * 1.m bit 0: sign, bits 1-11: e, bits 12-63: m *) - - PROCEDURE Scan* (VAR S: Scanner); - CONST maxD = 32; - VAR ch, term: CHAR; - neg, negE, hex: BOOLEAN; - i, j, h: SHORTINT; - e: INTEGER; k: LONGINT; - x, f: REAL; y, g: LONGREAL; - d: ARRAY maxD OF CHAR; - - PROCEDURE ReadScaleFactor; - BEGIN Read(S, ch); - IF ch = "-" THEN negE := TRUE; Read(S, ch) - ELSE negE := FALSE; - IF ch = "+" THEN Read(S, ch) END - END; - WHILE ("0" <= ch) & (ch <= "9") DO - e := e*10 + ORD(ch) - 30H; Read(S, ch) - END - END ReadScaleFactor; - - BEGIN ch := S.nextCh; i := 0; - LOOP - IF ch = CR THEN INC(S.line) - ELSIF (ch # " ") & (ch # TAB) THEN EXIT - END ; - Read(S, ch) - END; - IF ("A" <= CAP(ch)) & (CAP(ch) <= "Z") OR (ch = "/") OR (ch = ".") THEN (*name*) (* << *) - REPEAT S.s[i] := ch; INC(i); Read(S, ch) - UNTIL (CAP(ch) > "Z") & (ch # "_") (* << *) - OR ("A" > CAP(ch)) & (ch > "9") - OR ("0" > ch) & (ch # ".") & (ch # "/") (* << *) - OR (i = 63); (* << *) - S.s[i] := 0X; S.len := i; S.class := 1 - ELSIF ch = 22X THEN (*literal string*) - Read(S, ch); - WHILE (ch # 22X) & (ch >= " ") & (i # 63) DO (* << *) - S.s[i] := ch; INC(i); Read(S, ch) - END; - S.s[i] := 0X; S.len := i+1; Read(S, ch); S.class := 2 - ELSE - IF ch = "-" THEN neg := TRUE; Read(S, ch) ELSE neg := FALSE END ; - IF ("0" <= ch) & (ch <= "9") THEN (*number*) - hex := FALSE; j := 0; - LOOP d[i] := ch; INC(i); Read(S, ch); - IF ch < "0" THEN EXIT END; - IF "9" < ch THEN - IF ("A" <= ch) & (ch <= "F") THEN hex := TRUE; ch := CHR(ORD(ch)-7) - ELSIF ("a" <= ch) & (ch <= "f") THEN hex := TRUE; ch := CHR(ORD(ch)-27H) - ELSE EXIT - END - END - END; - IF ch = "H" THEN (*hex number*) - Read(S, ch); S.class := 3; - IF i-j > 8 THEN j := i-8 END ; - k := ORD(d[j]) - 30H; INC(j); - IF (i-j = 7) & (k >= 8) THEN DEC(k, 16) END ; - WHILE j < i DO k := k*10H + (ORD(d[j]) - 30H); INC(j) END ; - IF neg THEN S.i := -k ELSE S.i := k END - ELSIF ch = "." THEN (*read real*) - Read(S, ch); h := i; - WHILE ("0" <= ch) & (ch <= "9") DO d[i] := ch; INC(i); Read(S, ch) END ; - IF ch = "D" THEN - e := 0; y := 0; g := 1; - REPEAT y := y*10 + (ORD(d[j]) - 30H); INC(j) UNTIL j = h; - WHILE j < i DO g := g/10; y := (ORD(d[j]) - 30H)*g + y; INC(j) END ; - ReadScaleFactor; - IF negE THEN - IF e <= 308 THEN y := y / Reals.TenL(e) ELSE y := 0 END - ELSIF e > 0 THEN - IF e <= 308 THEN y := Reals.TenL(e) * y ELSE HALT(40) END - END ; - IF neg THEN y := -y END ; - S.class := 5; S.y := y - ELSE e := 0; x := 0; f := 1; - REPEAT x := x*10 + (ORD(d[j]) - 30H); INC(j) UNTIL j = h; - WHILE j < i DO f := f/10; x := (ORD(d[j])-30H)*f + x; INC(j) END; - IF ch = "E" THEN ReadScaleFactor END ; - IF negE THEN - IF e <= 38 THEN x := x / Reals.Ten(e) ELSE x := 0 END - ELSIF e > 0 THEN - IF e <= 38 THEN x := Reals.Ten(e) * x ELSE HALT(40) END - END ; - IF neg THEN x := -x END ; - S.class := 4; S.x := x - END ; - IF hex THEN S.class := 0 END - ELSE (*decimal integer*) - S.class := 3; k := 0; - REPEAT k := k*10 + (ORD(d[j]) - 30H); INC(j) UNTIL j = i; - IF neg THEN S.i := -k ELSE S.i := k END; - IF hex THEN S.class := 0 ELSE S.class := 3 END - END - ELSE S.class := 6; - IF neg THEN S.c := "-" ELSE S.c := ch; Read(S, ch) END - END - END; - S.nextCh := ch - END Scan; - - - (** Writers **) - - PROCEDURE OpenWriter* (VAR W: Writer); - BEGIN NEW(W.buf); OpenBuf(W.buf); - W.fnt := FontsDefault; W.col := Displaywhite; W.voff := 0; - W.file := Files.New(""); Files.Set(W.rider, W.file, 0) - END OpenWriter; - - PROCEDURE SetFont* (VAR W: Writer; fnt: FontsFont); - BEGIN W.fnt := fnt - END SetFont; - - PROCEDURE SetColor* (VAR W: Writer; col: SHORTINT); - BEGIN W.col := col - END SetColor; - - PROCEDURE SetOffset* (VAR W: Writer; voff: SHORTINT); - BEGIN W.voff := voff - END SetOffset; - - - PROCEDURE Write* (VAR W: Writer; ch: CHAR); - VAR u, un: Run; p: Piece; - BEGIN Files.Write(W.rider, ch); INC(W.buf.len); un := W.buf.head; u := un.prev; - IF (u IS Piece) & (u(Piece).file = W.file) & (u.fnt.name = W.fnt.name) & (u.col = W.col) & (u.voff = W.voff) - & ~u(Piece).ascii THEN (* << *) - INC(u.len) - ELSE NEW(p); u.next := p; p.prev := u; p.next := un; un.prev := p; - p.len := 1; p.fnt := W.fnt; p.col := W.col; p.voff := W.voff; - p.file := W.file; p.org := Files.Length(W.file) - 1; p.ascii := FALSE (* << *) - END - END Write; - - PROCEDURE WriteElem* (VAR W: Writer; e: Elem); - VAR u, un: Run; - BEGIN - IF e.base # NIL THEN HALT(99) END; - INC(W.buf.len); e.len := 1; e.fnt := W.fnt; e.col := W.col; e.voff := W.voff; - un := W.buf.head; u := un.prev; u.next := e; e.prev := u; e.next := un; un.prev := e - END WriteElem; - - PROCEDURE WriteLn* (VAR W: Writer); - BEGIN Write(W, CR) - END WriteLn; - - PROCEDURE WriteString* (VAR W: Writer; s: ARRAY OF CHAR); - VAR i: INTEGER; - BEGIN i := 0; - WHILE s[i] >= " " DO Write(W, s[i]); INC(i) END - END WriteString; - - PROCEDURE WriteInt* (VAR W: Writer; x, n: LONGINT); - VAR i: INTEGER; x0: LONGINT; - a: ARRAY 11 OF CHAR; - BEGIN i := 0; - IF x < 0 THEN - IF x = MIN(LONGINT) THEN WriteString(W, " -2147483648"); RETURN - ELSE DEC(n); x0 := -x - END - ELSE x0 := x - END; - REPEAT - a[i] := CHR(x0 MOD 10 + 30H); x0 := x0 DIV 10; INC(i) - UNTIL x0 = 0; - WHILE n > i DO Write(W, " "); DEC(n) END; - IF x < 0 THEN Write(W, "-") END; - REPEAT DEC(i); Write(W, a[i]) UNTIL i = 0 - END WriteInt; - - PROCEDURE WriteHex* (VAR W: Writer; x: LONGINT); - VAR i: INTEGER; y: LONGINT; - a: ARRAY 10 OF CHAR; - BEGIN i := 0; Write(W, " "); - REPEAT y := x MOD 10H; - IF y < 10 THEN a[i] := CHR(y + 30H) ELSE a[i] := CHR(y + 37H) END; - x := x DIV 10H; INC(i) - UNTIL i = 8; - REPEAT DEC(i); Write(W, a[i]) UNTIL i = 0 - END WriteHex; - - PROCEDURE WriteReal* (VAR W: Writer; x: REAL; n: INTEGER); - VAR e: INTEGER; x0: REAL; - d: ARRAY maxD OF CHAR; - BEGIN e := Reals.Expo(x); - IF e = 0 THEN - WriteString(W, " 0"); - REPEAT Write(W, " "); DEC(n) UNTIL n <= 3 - ELSIF e = 255 THEN - WriteString(W, " NaN"); - WHILE n > 4 DO Write(W, " "); DEC(n) END - ELSE - IF n <= 9 THEN n := 3 ELSE DEC(n, 6) END; - REPEAT Write(W, " "); DEC(n) UNTIL n <= 8; - (*there are 2 < n <= 8 digits to be written*) - IF x < 0.0 THEN Write(W, "-"); x := -x ELSE Write(W, " ") END; - e := (e - 127) * 77 DIV 256; - IF e >= 0 THEN x := x / Reals.Ten(e) ELSE x := Reals.Ten(-e) * x END; - IF x >= 10.0 THEN x := 0.1*x; INC(e) END; - x0 := Reals.Ten(n-1); x := x0*x + 0.5; - IF x >= 10.0*x0 THEN x := x*0.1; INC(e) END; - Reals.Convert(x, n, d); - DEC(n); Write(W, d[n]); Write(W, "."); - REPEAT DEC(n); Write(W, d[n]) UNTIL n = 0; - Write(W, "E"); - IF e < 0 THEN Write(W, "-"); e := -e ELSE Write(W, "+") END; - Write(W, CHR(e DIV 10 + 30H)); Write(W, CHR(e MOD 10 + 30H)) - END - END WriteReal; - - PROCEDURE WriteRealFix* (VAR W: Writer; x: REAL; n, k: INTEGER); - VAR e, i: INTEGER; sign: CHAR; x0: REAL; - d: ARRAY maxD OF CHAR; - - PROCEDURE seq(ch: CHAR; n: INTEGER); - BEGIN WHILE n > 0 DO Write(W, ch); DEC(n) END - END seq; - - PROCEDURE dig(n: INTEGER); - BEGIN - WHILE n > 0 DO - DEC(i); Write(W, d[i]); DEC(n) - END - END dig; - - BEGIN e := Reals.Expo(x); - IF k < 0 THEN k := 0 END; - IF e = 0 THEN seq(" ", n-k-2); Write(W, "0"); seq(" ", k+1) - ELSIF e = 255 THEN WriteString(W, " NaN"); seq(" ", n-4) - ELSE e := (e - 127) * 77 DIV 256; - IF x < 0 THEN sign := "-"; x := -x ELSE sign := " " END; - IF e >= 0 THEN (*x >= 1.0, 77/256 = log 2*) x := x/Reals.Ten(e) - ELSE (*x < 1.0*) x := Reals.Ten(-e) * x - END; - IF x >= 10.0 THEN x := 0.1*x; INC(e) END; - (* 1 <= x < 10 *) - IF k+e >= maxD-1 THEN k := maxD-1-e - ELSIF k+e < 0 THEN k := -e; x := 0.0 - END; - x0 := Reals.Ten(k+e); x := x0*x + 0.5; - IF x >= 10.0*x0 THEN INC(e) END; - (*e = no. of digits before decimal point*) - INC(e); i := k+e; Reals.Convert(x, i, d); - IF e > 0 THEN - seq(" ", n-e-k-2); Write(W, sign); dig(e); - Write(W, "."); dig(k) - ELSE seq(" ", n-k-3); - Write(W, sign); Write(W, "0"); Write(W, "."); - seq("0", -e); dig(k+e) - END - END - END WriteRealFix; - - PROCEDURE WriteRealHex* (VAR W: Writer; x: REAL); - VAR i: INTEGER; - d: ARRAY 8 OF CHAR; - BEGIN Reals.ConvertH(x, d); i := 0; - REPEAT Write(W, d[i]); INC(i) UNTIL i = 8 - END WriteRealHex; - - PROCEDURE WriteLongReal* (VAR W: Writer; x: LONGREAL; n: INTEGER); - CONST maxD = 16; - VAR e: INTEGER; x0: LONGREAL; - d: ARRAY maxD OF CHAR; - BEGIN e := Reals.ExpoL(x); - IF e = 0 THEN - WriteString(W, " 0"); - REPEAT Write(W, " "); DEC(n) UNTIL n <= 3 - ELSIF e = 2047 THEN - WriteString(W, " NaN"); - WHILE n > 4 DO Write(W, " "); DEC(n) END - ELSE - IF n <= 10 THEN n := 3 ELSE DEC(n, 7) END; - REPEAT Write(W, " "); DEC(n) UNTIL n <= maxD; - (*there are 2 <= n <= maxD digits to be written*) - IF x < 0 THEN Write(W, "-"); x := -x ELSE Write(W, " ") END; - e := SHORT(LONG(e - 1023) * 77 DIV 256); - IF e >= 0 THEN x := x / Reals.TenL(e) ELSE x := Reals.TenL(-e) * x END ; - IF x >= 10.0D0 THEN x := 0.1D0 * x; INC(e) END ; - x0 := Reals.TenL(n-1); x := x0*x + 0.5D0; - IF x >= 10.0D0*x0 THEN x := 0.1D0 * x; INC(e) END ; - Reals.ConvertL(x, n, d); - DEC(n); Write(W, d[n]); Write(W, "."); - REPEAT DEC(n); Write(W, d[n]) UNTIL n = 0; - Write(W, "D"); - IF e < 0 THEN Write(W, "-"); e := -e ELSE Write(W, "+") END; - Write(W, CHR(e DIV 100 + 30H)); e := e MOD 100; - Write(W, CHR(e DIV 10 + 30H)); - Write(W, CHR(e MOD 10 + 30H)) - END - END WriteLongReal; - - PROCEDURE WriteLongRealHex* (VAR W: Writer; x: LONGREAL); - VAR i: INTEGER; - d: ARRAY 16 OF CHAR; - BEGIN Reals.ConvertHL(x, d); i := 0; - REPEAT Write(W, d[i]); INC(i) UNTIL i = 16 - END WriteLongRealHex; - - PROCEDURE WriteDate* (VAR W: Writer; t, d: LONGINT); - - PROCEDURE WritePair(ch: CHAR; x: LONGINT); - BEGIN Write(W, ch); - Write(W, CHR(x DIV 10 + 30H)); Write(W, CHR(x MOD 10 + 30H)) - END WritePair; - - BEGIN - WritePair(" ", d MOD 32); WritePair(".", d DIV 32 MOD 16); WritePair(".", d DIV 512 MOD 128); - WritePair(" ", t DIV 4096 MOD 32); WritePair(":", t DIV 64 MOD 64); WritePair(":", t MOD 64) - END WriteDate; - - - (** Text Filing **) - - PROCEDURE Load0 (VAR r: Files.Rider; T: Text); - VAR u, un: Run; p: Piece; e: Elem; - org, pos, hlen, plen: LONGINT; ecnt, fno, fcnt, col, voff: SHORTINT; - f: Files.File; - msg: FileMsg; - mods, procs: ARRAY 64, 32 OF CHAR; - name: ARRAY 32 OF CHAR; - fnts: ARRAY 32 OF FontsFont; - - PROCEDURE LoadElem (VAR r: Files.Rider; pos, span: LONGINT; VAR e: Elem); - VAR M: Modules.Module; Cmd: Modules.Command; a: Alien; - org, ew, eh: LONGINT; eno: SHORTINT; - BEGIN new := NIL; - Files.ReadLInt(r, ew); Files.ReadLInt(r, eh); Files.Read(r, eno); - IF eno > ecnt THEN ecnt := eno; Files.ReadString(r, mods[eno]); Files.ReadString(r, procs[eno]) END; - org := Files.Pos(r); M := Modules.ThisMod(mods[eno]); - IF M # NIL THEN Cmd := Modules.ThisCommand(M, procs[eno]); - IF Cmd # NIL THEN Cmd END - END; - e := new; - IF e # NIL THEN e.W := ew; e.H := eh; e.base := T; - msg.pos := pos; e.handle(e, msg); - IF Files.Pos(r) # org + span THEN e := NIL END - END; - IF e = NIL THEN Files.Set(r, f, org + span); - NEW(a); a.W := ew; a.H := eh; a.handle := HandleAlien; a.base := T; - a.file := f; a.org := org; a.span := span; - COPY(mods[eno], a.mod); COPY(procs[eno], a.proc); - e := a - END - END LoadElem; - - BEGIN pos := Files.Pos(r); f := Files.Base(r); - NEW(u); u.len := MAX(LONGINT); (*u.fnt := FontsDefault;*)u.fnt := NIL; u.col := Displaywhite; - T.head := u; ecnt := 0; fcnt := 0; - msg.id := load; msg.r := r; - Files.ReadLInt(msg.r, hlen); (*!!!org := pos + hlen;*) org := pos -2 + hlen; pos := org; Files.Read(msg.r, fno); - WHILE fno # 0 DO - IF fno > fcnt THEN fcnt := fno; Files.ReadString(msg.r, name); fnts[fno] := FontsThis(name) END; - Files.Read(msg.r, col); Files.Read(msg.r, voff); Files.ReadLInt(msg.r, plen); - IF plen > 0 THEN NEW(p); p.file := f; p.org := pos; p.ascii := FALSE; un := p; un.len := plen - ELSE LoadElem(msg.r, pos - org, -plen, e); un := e; un.len := 1 - END; - un.fnt := fnts[fno]; un.col := col; un.voff := voff; - INC(pos, un.len); u.next := un; un.prev := u; u := un; Files.Read(msg.r, fno) - END; - u.next := T.head; T.head.prev := u; T.cache := T.head; T.corg := 0; - Files.ReadLInt(msg.r, T.len); Files.Set(r, f, Files.Pos(msg.r) + T.len) - END Load0; - - PROCEDURE Load* (VAR r: Files.Rider; T: Text); - CONST oldTag = -4095; - VAR tag: INTEGER; - BEGIN - (* for compatibility inner text tags are checked and skipped; remove this in a later version *) - Files.ReadInt(r, tag); IF tag # oldTag THEN Files.Set(r, Files.Base(r), Files.Pos(r)-2) END; - Load0(r, T) - END Load; - - PROCEDURE Open* (T: Text; name: ARRAY OF CHAR); - VAR f: Files.File; r: Files.Rider; u: Run; p: Piece; tag, version: CHAR; hlen: LONGINT; - BEGIN f := Files.Old(name); - IF f = NIL THEN f := Files.New("") END; - Files.Set(r, f, 0); Files.Read(r, tag); Files.Read(r, version); - IF (tag = textTag) OR (tag = 01X) & (version = textTag) THEN Load0(r, T) - ELSE (*ascii*) - NEW(u); u.len := MAX(LONGINT); u.fnt := NIL; u.col := Displaywhite; - NEW(p); - IF (tag = DocBlockId) & (version = 07X) THEN (* extract ascii text from System 3 text document *) - Files.Set(r, f, 28); Files.ReadLInt(r, hlen); - Files.Set(r, f, 22 + hlen); Files.ReadLInt(r, T.len); p.org := 26 + hlen - ELSE - T.len := Files.Length(f); p.org := 0 - END ; - IF T.len > 0 THEN p.len := T.len; p.fnt := FontsDefault; - p.col := Displaywhite; p.voff := 0; p.file := f; p.ascii := TRUE; - u.next := p; u.prev := p; p.next := u; p.prev := u - ELSE u.next := u; u.prev := u - END; - T.head := u; T.cache := T.head; T.corg := 0 - END - END Open; - - PROCEDURE Store* (VAR r: Files.Rider; T: Text); - VAR r1: Files.Rider; u, un: Run; e: Elem; org, pos, delta, hlen, rlen: LONGINT; ecnt, fno, fcnt: SHORTINT; ch: CHAR; (* << *) - msg: FileMsg; iden: IdentifyMsg; - mods, procs: ARRAY 64, 32 OF CHAR; - fnts: ARRAY 32 OF FontsFont; - block: ARRAY 1024 OF CHAR; - - PROCEDURE StoreElem (VAR r: Files.Rider; pos: LONGINT; e: Elem); - VAR r1: Files.Rider; org, span: LONGINT; eno: SHORTINT; - BEGIN COPY(iden.mod, mods[ecnt]); COPY(iden.proc, procs[ecnt]); eno := 1; - WHILE (mods[eno] # iden.mod) OR (procs[eno] # iden.proc) DO INC(eno) END; - Files.Set(r1, Files.Base(r), Files.Pos(r)); - Files.WriteLInt(r, 0); Files.WriteLInt(r, 0); Files.WriteLInt(r, 0); (*fixup slot*) - Files.Write(r, eno); - IF eno = ecnt THEN INC(ecnt); Files.WriteString(r, iden.mod); Files.WriteString(r, iden.proc) END; - msg.pos := pos; org := Files.Pos(r); e.handle(e, msg); span := Files.Pos(r) - org; - Files.WriteLInt(r1, -span); Files.WriteLInt(r1, e.W); Files.WriteLInt(r1, e.H) (*fixup*) - END StoreElem; - - BEGIN - org := Files.Pos(r); msg.id := store; msg.r := r; Files.WriteLInt(msg.r, 0); (*fixup slot*) - u := T.head.next; pos := 0; delta := 0; fcnt := 1; ecnt := 1; - WHILE u # T.head DO - IF u IS Elem THEN iden.mod[0] := 0X; u(Elem).handle(u(Elem), iden) ELSE iden.mod[0] := 1X END; - IF iden.mod[0] # 0X THEN - fnts[fcnt] := u.fnt; fno := 1; - WHILE fnts[fno].name # u.fnt.name DO INC(fno) END; - Files.Write(msg.r, fno); - IF fno = fcnt THEN INC(fcnt); Files.WriteString(msg.r, u.fnt.name) END; - Files.Write(msg.r, u.col); Files.Write(msg.r, u.voff) - END; - IF u IS Piece THEN rlen := u.len; un := u.next; - WHILE (un IS Piece) & (un.fnt = u.fnt) & (un.col = u.col) & (un.voff = u.voff) DO - INC(rlen, un.len); un := un.next - END; - Files.WriteLInt(msg.r, rlen); INC(pos, rlen); u := un - ELSIF iden.mod[0] # 0X THEN StoreElem(msg.r, pos, u(Elem)); INC(pos); u := u.next - ELSE INC(delta); u := u.next - END - END; - Files.Write(msg.r, 0); Files.WriteLInt(msg.r, T.len - delta); - (*!!!hlen := Files.Pos(msg.r) - org;*) hlen := Files.Pos(msg.r) - org + 2; - Files.Set(r1, Files.Base(msg.r), org); Files.WriteLInt(r1, hlen); (*fixup*) - u := T.head.next; - WHILE u # T.head DO - IF u IS Piece THEN - WITH u: Piece DO - IF u.ascii THEN Files.Set(r1, u.file, u.org); delta := u.len; (* << LF to CR *) - WHILE delta > 0 DO Files.Read(r1, ch); DEC(delta); - IF ch = 0AX THEN Files.Write(msg.r, CR) ELSE Files.Write(msg.r, ch) END - END - ELSE Files.Set(r1, u.file, u.org); delta := u.len; - WHILE delta > LEN(block) DO Files.ReadBytes(r1, block, LEN(block)); - Files.WriteBytes(msg.r, block, LEN(block)); DEC(delta, LEN(block)) - END; - Files.ReadBytes(r1, block, delta); Files.WriteBytes(msg.r, block, delta) - END - END - ELSE iden.mod[0] := 0X; u(Elem).handle(u(Elem), iden); - IF iden.mod[0] # 0X THEN Files.Write(msg.r, ElemChar) END - END; - u := u.next - END; - r := msg.r; - END Store; - - PROCEDURE Close* (T: Text; name: ARRAY OF CHAR); - VAR f: Files.File; r: Files.Rider; i, res: INTEGER; bak: ARRAY 64 OF CHAR; - BEGIN - f := Files.New(name); Files.Set(r, f, 0); Files.Write(r, textTag); Files.Write(r, version); Store(r, T); - i := 0; WHILE name[i] # 0X DO INC(i) END; - COPY(name, bak); bak[i] := "."; bak[i+1] := "B"; bak[i+2] := "a"; bak[i+3] := "k"; bak[i+4] := 0X; - Files.Rename(name, bak, res); Files.Register(f) - END Close; - -BEGIN del := NIL; NEW(FontsDefault); FontsDefault.name := "Syntax10.Scn.Fnt" -END Texts0. diff --git a/src/lib/system/linux/gcc/Texts.Mod b/src/lib/system/linux/gcc/Texts.Mod deleted file mode 100644 index 2042dcf7..00000000 --- a/src/lib/system/linux/gcc/Texts.Mod +++ /dev/null @@ -1,863 +0,0 @@ -MODULE Texts; (** CAS/HM 23.9.93 -- interface based on Texts by JG/NW 6.12.91**) (* << RC, MB, JT *) - IMPORT - Files, Modules, Reals; - - (*--- insert field e: Elem into Texts.Scanner and change Texts.Scan to set it in case of class=6 *) - - - CONST - Displaywhite = 15; - ElemChar* = 1CX; - TAB = 9X; CR = 0DX; maxD = 9; - (**FileMsg.id**) - load* = 0; store* = 1; - (**Notifier op**) - replace* = 0; insert* = 1; delete* = 2; - (**Scanner.class**) - Inval* = 0; Name* = 1; String* = 2; Int* = 3; Real* = 4; LongReal* = 5; Char* = 6; - - textTag = 0F0X; DocBlockId = 0F7X; version = 01X; - - TYPE - FontsFont = POINTER TO FontDesc; - FontDesc = RECORD - name: ARRAY 32 OF CHAR; - END ; - - Run = POINTER TO RunDesc; - RunDesc = RECORD - prev, next: Run; - len: LONGINT; - fnt: FontsFont; - col, voff: SHORTINT; - ascii: BOOLEAN (* << *) - END; - - Piece = POINTER TO PieceDesc; - PieceDesc = RECORD (RunDesc) - file: Files.File; - org: LONGINT - END; - - Elem* = POINTER TO ElemDesc; - Buffer* = POINTER TO BufDesc; - Text* = POINTER TO TextDesc; - - ElemMsg* = RECORD END; - Handler* = PROCEDURE (e: Elem; VAR msg: ElemMsg); - - ElemDesc* = RECORD (RunDesc) - W*, H*: LONGINT; - handle*: Handler; - base: Text - END; - - FileMsg* = RECORD (ElemMsg) - id*: INTEGER; - pos*: LONGINT; - r*: Files.Rider - END; - - CopyMsg* = RECORD (ElemMsg) - e*: Elem - END; - - IdentifyMsg* = RECORD (ElemMsg) - mod*, proc*: ARRAY 32 OF CHAR - END; - - - BufDesc* = RECORD - len*: LONGINT; - head: Run - END; - - TextDesc* = RECORD - len*: LONGINT; - head, cache: Run; - corg: LONGINT - END; - - Reader* = RECORD - eot*: BOOLEAN; - fnt*: FontsFont; - col*, voff*: SHORTINT; - elem*: Elem; - rider: Files.Rider; - run: Run; - org, off: LONGINT - END; - - Scanner* = RECORD (Reader) - nextCh*: CHAR; - line*, class*: INTEGER; - i*: LONGINT; - x*: REAL; - y*: LONGREAL; - c*: CHAR; - len*: SHORTINT; - s*: ARRAY 64 OF CHAR (* << *) - END; - - Writer* = RECORD - buf*: Buffer; - fnt*: FontsFont; - col*, voff*: SHORTINT; - rider: Files.Rider; - file: Files.File - END; - - Alien = POINTER TO RECORD (ElemDesc) - file: Files.File; - org, span: LONGINT; - mod, proc: ARRAY 32 OF CHAR - END; - - VAR - new*: Elem; - del: Buffer; - FontsDefault: FontsFont; - - - PROCEDURE FontsThis(VAR name: ARRAY OF CHAR): FontsFont; - VAR F: FontsFont; - BEGIN - NEW(F); COPY(name, F.name); RETURN F - END FontsThis; - - (* run primitives *) - - PROCEDURE Find (T: Text; VAR pos: LONGINT; VAR u: Run; VAR org, off: LONGINT); - VAR v: Run; m: LONGINT; - BEGIN - IF pos >= T.len THEN pos := T.len; u := T.head; org := T.len; off := 0; T.cache := T.head; T.corg := 0 - ELSE v := T.cache.next; m := pos - T.corg; - IF pos >= T.corg THEN - WHILE m >= v.len DO DEC(m, v.len); v := v.next END - ELSE - WHILE m < 0 DO v := v.prev; INC(m, v.len) END; - END; - u := v; org := pos - m; off := m; T.cache := v.prev; T.corg := org - END - END Find; - - PROCEDURE Split (off: LONGINT; VAR u, un: Run); - VAR p, U: Piece; - BEGIN - IF off = 0 THEN un := u; u := un.prev - ELSIF off >= u.len THEN un := u.next - ELSE NEW(p); un := p; U := u(Piece); - p^ := U^; INC(p.org, off); DEC(p.len, off); DEC(U.len, p.len); - p.ascii := u.ascii; p.prev := U; p.next := U.next; p.next.prev := p; U.next := p (* << *) - END - END Split; - - PROCEDURE Merge (T: Text; u: Run; VAR v: Run); - VAR p, q: Piece; - BEGIN - IF (u IS Piece) & (v IS Piece) & (u.fnt.name = v.fnt.name) & (u.col = v.col) & (u.voff = v.voff) - & (u(Piece).ascii = v(Piece).ascii) THEN (* << *) - p := u(Piece); q := v(Piece); - IF (p.file = q.file) & (p.org + p.len = q.org) THEN - IF T.cache = u THEN INC(T.corg, q.len) - ELSIF T.cache = v THEN T.cache := T.head; T.corg := 0 - END; - INC(p.len, q.len); v := v.next - END - END - END Merge; - - PROCEDURE Splice (un, v, w: Run; base: Text); (* (u, un) -> (u, v, w, un) *) - VAR u: Run; - BEGIN - IF v # w.next THEN u := un.prev; - u.next := v; v.prev := u; un.prev := w; w.next := un; - REPEAT - IF v IS Elem THEN v(Elem).base := base END; - v := v.next - UNTIL v = un - END - END Splice; - - PROCEDURE ClonePiece (p: Piece): Piece; - VAR q: Piece; - BEGIN NEW(q); q^ := p^; RETURN q - END ClonePiece; - - PROCEDURE CloneElem (e: Elem): Elem; - VAR msg: CopyMsg; - BEGIN msg.e := NIL; e.handle(e, msg); RETURN msg.e - END CloneElem; - - - (** Elements **) - - PROCEDURE CopyElem* (SE, DE: Elem); - BEGIN DE.len := SE.len; DE.fnt := SE.fnt; DE.col := SE.col; DE.voff := SE.voff; - DE.W := SE.W; DE.H := SE.H; DE.handle := SE.handle - END CopyElem; - - PROCEDURE ElemBase* (E: Elem): Text; - BEGIN RETURN E.base - END ElemBase; - - PROCEDURE ElemPos* (E: Elem): LONGINT; - VAR u: Run; pos: LONGINT; - BEGIN u := E.base.head.next; pos := 0; - WHILE u # E DO pos := pos + u.len; u := u.next END; - RETURN pos - END ElemPos; - - - PROCEDURE HandleAlien (E: Elem; VAR msg: ElemMsg); - VAR e: Alien; r: Files.Rider; i: LONGINT; ch: CHAR; - BEGIN - WITH E: Alien DO - IF msg IS CopyMsg THEN - WITH msg: CopyMsg DO NEW(e); CopyElem(E, e); - e.file := E.file; e.org := E.org; e.span := E.span; e.mod := E.mod; e.proc := E.proc; - msg.e := e - END - ELSIF msg IS IdentifyMsg THEN - WITH msg: IdentifyMsg DO - COPY(E.mod, msg.mod); COPY(E.proc, msg.proc); msg.mod[31] := 1X (*alien*) - END - ELSIF msg IS FileMsg THEN - WITH msg: FileMsg DO - IF msg.id = store THEN Files.Set(r, E.file, E.org); i := E.span; - WHILE i > 0 DO Files.Read(r, ch); Files.Write(msg.r, ch); DEC(i) END - END - END - END - END - END HandleAlien; - - - (** Buffers **) - - PROCEDURE OpenBuf* (B: Buffer); - VAR u: Run; - BEGIN NEW(u); u.next := u; u.prev := u; B.head := u; B.len := 0 - END OpenBuf; - - PROCEDURE Copy* (SB, DB: Buffer); - VAR u, v, vn: Run; - BEGIN u := SB.head.next; v := DB.head.prev; - WHILE u # SB.head DO - IF u IS Piece THEN vn := ClonePiece(u(Piece)) ELSE vn := CloneElem(u(Elem)) END; - v.next := vn; vn.prev := v; v := vn; u := u.next - END; - v.next := DB.head; DB.head.prev := v; - INC(DB.len, SB.len) - END Copy; - - PROCEDURE Recall* (VAR B: Buffer); - BEGIN B := del; del := NIL - END Recall; - - - (** Texts **) - - PROCEDURE Save* (T: Text; beg, end: LONGINT; B: Buffer); - VAR u, v, w, wn: Run; uo, ud, vo, vd: LONGINT; - BEGIN Find(T, beg, u, uo, ud); Find(T, end, v, vo, vd); - w := B.head.prev; - WHILE u # v DO - IF u IS Piece THEN wn := ClonePiece(u(Piece)); DEC(wn.len, ud); INC(wn(Piece).org, ud) - ELSE wn := CloneElem(u(Elem)) - END; - w.next := wn; wn.prev := w; w := wn; u := u.next; ud := 0 - END; - IF vd > 0 THEN (*v IS Piece*) wn := ClonePiece(v(Piece)); wn.len := vd - ud; INC(wn(Piece).org, ud); - w.next := wn; wn.prev := w; w := wn - END; - w.next := B.head; B.head.prev := w; - INC(B.len, end - beg) - END Save; - - PROCEDURE Insert* (T: Text; pos: LONGINT; B: Buffer); - VAR u, un, v: Run; p, q: Piece; uo, ud, len: LONGINT; - BEGIN Find(T, pos, u, uo, ud); Split(ud, u, un); - len := B.len; v := B.head.next; - Merge(T, u, v); Splice(un, v, B.head.prev, T); - INC(T.len, len); B.head.next := B.head; B.head.prev := B.head; B.len := 0; - END Insert; - - PROCEDURE Append* (T: Text; B: Buffer); - VAR v: Run; pos, len: LONGINT; - BEGIN pos := T.len; len := B.len; v := B.head.next; - Merge(T, T.head.prev, v); Splice(T.head, v, B.head.prev, T); - INC(T.len, len); B.head.next := B.head; B.head.prev := B.head; B.len := 0; - END Append; - - PROCEDURE Delete* (T: Text; beg, end: LONGINT); - VAR c, u, un, v, vn: Run; co, uo, ud, vo, vd: LONGINT; - BEGIN - Find(T, beg, u, uo, ud); Split(ud, u, un); c := T.cache; co := T.corg; - Find(T, end, v, vo, vd); Split(vd, v, vn); T.cache := c; T.corg := co; - NEW(del); OpenBuf(del); del.len := end - beg; - Splice(del.head, un, v, NIL); - Merge(T, u, vn); u.next := vn; vn.prev := u; - DEC(T.len, end - beg); - END Delete; - - PROCEDURE ChangeLooks* (T: Text; beg, end: LONGINT; sel: SET; fnt: FontsFont; col, voff: SHORTINT); - VAR c, u, un, v, vn: Run; co, uo, ud, vo, vd: LONGINT; - BEGIN Find(T, beg, u, uo, ud); Split(ud, u, un); c := T.cache; co := T.corg; - Find(T, end, v, vo, vd); Split(vd, v, vn); T.cache := c; T.corg := co; - WHILE un # vn DO - IF (0 IN sel) & (fnt # NIL) THEN un.fnt := fnt END; - IF 1 IN sel THEN un.col := col END; - IF 2 IN sel THEN un.voff := voff END; - Merge(T, u, un); - IF u.next = un THEN u := un; un := un.next ELSE u.next := un; un.prev := u END - END; - Merge(T, u, un); u.next := un; un.prev := u; - END ChangeLooks; - - - (** Readers **) - - PROCEDURE OpenReader* (VAR R: Reader; T: Text; pos: LONGINT); - VAR u: Run; - BEGIN - IF pos >= T.len THEN pos := T.len END; - Find(T, pos, u, R.org, R.off); R.run := u; R.eot := FALSE; - IF u IS Piece THEN - Files.Set(R.rider, u(Piece).file, u(Piece).org + R.off) - END - END OpenReader; - - PROCEDURE Read* (VAR R: Reader; VAR ch: CHAR); - VAR u: Run; pos: LONGINT; nextch: CHAR; - BEGIN u := R.run; R.fnt := u.fnt; R.col := u.col; R.voff := u.voff; INC(R.off); - IF u IS Piece THEN Files.Read(R.rider, ch); R.elem := NIL; - IF (ch = 0AX) & u(Piece).ascii THEN ch := CR (* << LF to CR *) - ELSIF (ch = CR) & u(Piece).ascii THEN (* << CR LF to CR *) - pos := Files.Pos(R.rider); Files.Read(R.rider, nextch); - IF nextch = 0AX THEN INC(R.off) ELSE Files.Set(R.rider, u(Piece).file, pos) END - END - ELSIF u IS Elem THEN ch := ElemChar; R.elem := u(Elem) - ELSE ch := 0X; R.elem := NIL; R.eot := TRUE - END; - IF R.off = u.len THEN INC(R.org, u.len); u := u.next; - IF u IS Piece THEN - WITH u: Piece DO Files.Set(R.rider, u.file, u.org) END - END; - R.run := u; R.off := 0 - END - END Read; - - PROCEDURE ReadElem* (VAR R: Reader); - VAR u, un: Run; - BEGIN u := R.run; - WHILE u IS Piece DO INC(R.org, u.len); u := u.next END; - IF u IS Elem THEN un := u.next; R.run := un; INC(R.org); R.off := 0; - R.fnt := u.fnt; R.col := u.col; R.voff := u.voff; R.elem := u(Elem); - IF un IS Piece THEN - WITH un: Piece DO Files.Set(R.rider, un.file, un.org) END - END - ELSE R.eot := TRUE; R.elem := NIL - END - END ReadElem; - - PROCEDURE ReadPrevElem* (VAR R: Reader); - VAR u: Run; - BEGIN u := R.run.prev; - WHILE u IS Piece DO DEC(R.org, u.len); u := u.prev END; - IF u IS Elem THEN R.run := u; DEC(R.org); R.off := 0; - R.fnt := u.fnt; R.col := u.col; R.voff := u.voff; R.elem := u(Elem) - ELSE R.eot := TRUE; R.elem := NIL - END - END ReadPrevElem; - - PROCEDURE Pos* (VAR R: Reader): LONGINT; - BEGIN RETURN R.org + R.off - END Pos; - - - (** Scanners --------------- NW --------------- **) - - PROCEDURE OpenScanner* (VAR S: Scanner; T: Text; pos: LONGINT); - BEGIN OpenReader(S, T, pos); S.line := 0; S.nextCh := " " - END OpenScanner; - - (*IEEE floating point formats: - x = 2^(e-127) * 1.m bit 0: sign, bits 1- 8: e, bits 9-31: m - x = 2^(e-1023) * 1.m bit 0: sign, bits 1-11: e, bits 12-63: m *) - - PROCEDURE Scan* (VAR S: Scanner); - CONST maxD = 32; - VAR ch, term: CHAR; - neg, negE, hex: BOOLEAN; - i, j, h: SHORTINT; - e: INTEGER; k: LONGINT; - x, f: REAL; y, g: LONGREAL; - d: ARRAY maxD OF CHAR; - - PROCEDURE ReadScaleFactor; - BEGIN Read(S, ch); - IF ch = "-" THEN negE := TRUE; Read(S, ch) - ELSE negE := FALSE; - IF ch = "+" THEN Read(S, ch) END - END; - WHILE ("0" <= ch) & (ch <= "9") DO - e := e*10 + ORD(ch) - 30H; Read(S, ch) - END - END ReadScaleFactor; - - BEGIN ch := S.nextCh; i := 0; - LOOP - IF ch = CR THEN INC(S.line) - ELSIF (ch # " ") & (ch # TAB) THEN EXIT - END ; - Read(S, ch) - END; - IF ("A" <= CAP(ch)) & (CAP(ch) <= "Z") OR (ch = "/") OR (ch = ".") THEN (*name*) (* << *) - REPEAT S.s[i] := ch; INC(i); Read(S, ch) - UNTIL (CAP(ch) > "Z") & (ch # "_") (* << *) - OR ("A" > CAP(ch)) & (ch > "9") - OR ("0" > ch) & (ch # ".") & (ch # "/") (* << *) - OR (i = 63); (* << *) - S.s[i] := 0X; S.len := i; S.class := 1 - ELSIF ch = 22X THEN (*literal string*) - Read(S, ch); - WHILE (ch # 22X) & (ch >= " ") & (i # 63) DO (* << *) - S.s[i] := ch; INC(i); Read(S, ch) - END; - S.s[i] := 0X; S.len := i+1; Read(S, ch); S.class := 2 - ELSE - IF ch = "-" THEN neg := TRUE; Read(S, ch) ELSE neg := FALSE END ; - IF ("0" <= ch) & (ch <= "9") THEN (*number*) - hex := FALSE; j := 0; - LOOP d[i] := ch; INC(i); Read(S, ch); - IF ch < "0" THEN EXIT END; - IF "9" < ch THEN - IF ("A" <= ch) & (ch <= "F") THEN hex := TRUE; ch := CHR(ORD(ch)-7) - ELSIF ("a" <= ch) & (ch <= "f") THEN hex := TRUE; ch := CHR(ORD(ch)-27H) - ELSE EXIT - END - END - END; - IF ch = "H" THEN (*hex number*) - Read(S, ch); S.class := 3; - IF i-j > 8 THEN j := i-8 END ; - k := ORD(d[j]) - 30H; INC(j); - IF (i-j = 7) & (k >= 8) THEN DEC(k, 16) END ; - WHILE j < i DO k := k*10H + (ORD(d[j]) - 30H); INC(j) END ; - IF neg THEN S.i := -k ELSE S.i := k END - ELSIF ch = "." THEN (*read real*) - Read(S, ch); h := i; - WHILE ("0" <= ch) & (ch <= "9") DO d[i] := ch; INC(i); Read(S, ch) END ; - IF ch = "D" THEN - e := 0; y := 0; g := 1; - REPEAT y := y*10 + (ORD(d[j]) - 30H); INC(j) UNTIL j = h; - WHILE j < i DO g := g/10; y := (ORD(d[j]) - 30H)*g + y; INC(j) END ; - ReadScaleFactor; - IF negE THEN - IF e <= 308 THEN y := y / Reals.TenL(e) ELSE y := 0 END - ELSIF e > 0 THEN - IF e <= 308 THEN y := Reals.TenL(e) * y ELSE HALT(40) END - END ; - IF neg THEN y := -y END ; - S.class := 5; S.y := y - ELSE e := 0; x := 0; f := 1; - REPEAT x := x*10 + (ORD(d[j]) - 30H); INC(j) UNTIL j = h; - WHILE j < i DO f := f/10; x := (ORD(d[j])-30H)*f + x; INC(j) END; - IF ch = "E" THEN ReadScaleFactor END ; - IF negE THEN - IF e <= 38 THEN x := x / Reals.Ten(e) ELSE x := 0 END - ELSIF e > 0 THEN - IF e <= 38 THEN x := Reals.Ten(e) * x ELSE HALT(40) END - END ; - IF neg THEN x := -x END ; - S.class := 4; S.x := x - END ; - IF hex THEN S.class := 0 END - ELSE (*decimal integer*) - S.class := 3; k := 0; - REPEAT k := k*10 + (ORD(d[j]) - 30H); INC(j) UNTIL j = i; - IF neg THEN S.i := -k ELSE S.i := k END; - IF hex THEN S.class := 0 ELSE S.class := 3 END - END - ELSE S.class := 6; - IF neg THEN S.c := "-" ELSE S.c := ch; Read(S, ch) END - END - END; - S.nextCh := ch - END Scan; - - - (** Writers **) - - PROCEDURE OpenWriter* (VAR W: Writer); - BEGIN NEW(W.buf); OpenBuf(W.buf); - W.fnt := FontsDefault; W.col := Displaywhite; W.voff := 0; - W.file := Files.New(""); Files.Set(W.rider, W.file, 0) - END OpenWriter; - - PROCEDURE SetFont* (VAR W: Writer; fnt: FontsFont); - BEGIN W.fnt := fnt - END SetFont; - - PROCEDURE SetColor* (VAR W: Writer; col: SHORTINT); - BEGIN W.col := col - END SetColor; - - PROCEDURE SetOffset* (VAR W: Writer; voff: SHORTINT); - BEGIN W.voff := voff - END SetOffset; - - - PROCEDURE Write* (VAR W: Writer; ch: CHAR); - VAR u, un: Run; p: Piece; - BEGIN Files.Write(W.rider, ch); INC(W.buf.len); un := W.buf.head; u := un.prev; - IF (u IS Piece) & (u(Piece).file = W.file) & (u.fnt.name = W.fnt.name) & (u.col = W.col) & (u.voff = W.voff) - & ~u(Piece).ascii THEN (* << *) - INC(u.len) - ELSE NEW(p); u.next := p; p.prev := u; p.next := un; un.prev := p; - p.len := 1; p.fnt := W.fnt; p.col := W.col; p.voff := W.voff; - p.file := W.file; p.org := Files.Length(W.file) - 1; p.ascii := FALSE (* << *) - END - END Write; - - PROCEDURE WriteElem* (VAR W: Writer; e: Elem); - VAR u, un: Run; - BEGIN - IF e.base # NIL THEN HALT(99) END; - INC(W.buf.len); e.len := 1; e.fnt := W.fnt; e.col := W.col; e.voff := W.voff; - un := W.buf.head; u := un.prev; u.next := e; e.prev := u; e.next := un; un.prev := e - END WriteElem; - - PROCEDURE WriteLn* (VAR W: Writer); - BEGIN Write(W, CR) - END WriteLn; - - PROCEDURE WriteString* (VAR W: Writer; s: ARRAY OF CHAR); - VAR i: INTEGER; - BEGIN i := 0; - WHILE s[i] >= " " DO Write(W, s[i]); INC(i) END - END WriteString; - - PROCEDURE WriteInt* (VAR W: Writer; x, n: LONGINT); - VAR i: INTEGER; x0: LONGINT; - a: ARRAY 11 OF CHAR; - BEGIN i := 0; - IF x < 0 THEN - IF x = MIN(LONGINT) THEN WriteString(W, " -2147483648"); RETURN - ELSE DEC(n); x0 := -x - END - ELSE x0 := x - END; - REPEAT - a[i] := CHR(x0 MOD 10 + 30H); x0 := x0 DIV 10; INC(i) - UNTIL x0 = 0; - WHILE n > i DO Write(W, " "); DEC(n) END; - IF x < 0 THEN Write(W, "-") END; - REPEAT DEC(i); Write(W, a[i]) UNTIL i = 0 - END WriteInt; - - PROCEDURE WriteHex* (VAR W: Writer; x: LONGINT); - VAR i: INTEGER; y: LONGINT; - a: ARRAY 10 OF CHAR; - BEGIN i := 0; Write(W, " "); - REPEAT y := x MOD 10H; - IF y < 10 THEN a[i] := CHR(y + 30H) ELSE a[i] := CHR(y + 37H) END; - x := x DIV 10H; INC(i) - UNTIL i = 8; - REPEAT DEC(i); Write(W, a[i]) UNTIL i = 0 - END WriteHex; - - PROCEDURE WriteReal* (VAR W: Writer; x: REAL; n: INTEGER); - VAR e: INTEGER; x0: REAL; - d: ARRAY maxD OF CHAR; - BEGIN e := Reals.Expo(x); - IF e = 0 THEN - WriteString(W, " 0"); - REPEAT Write(W, " "); DEC(n) UNTIL n <= 3 - ELSIF e = 255 THEN - WriteString(W, " NaN"); - WHILE n > 4 DO Write(W, " "); DEC(n) END - ELSE - IF n <= 9 THEN n := 3 ELSE DEC(n, 6) END; - REPEAT Write(W, " "); DEC(n) UNTIL n <= 8; - (*there are 2 < n <= 8 digits to be written*) - IF x < 0.0 THEN Write(W, "-"); x := -x ELSE Write(W, " ") END; - e := (e - 127) * 77 DIV 256; - IF e >= 0 THEN x := x / Reals.Ten(e) ELSE x := Reals.Ten(-e) * x END; - IF x >= 10.0 THEN x := 0.1*x; INC(e) END; - x0 := Reals.Ten(n-1); x := x0*x + 0.5; - IF x >= 10.0*x0 THEN x := x*0.1; INC(e) END; - Reals.Convert(x, n, d); - DEC(n); Write(W, d[n]); Write(W, "."); - REPEAT DEC(n); Write(W, d[n]) UNTIL n = 0; - Write(W, "E"); - IF e < 0 THEN Write(W, "-"); e := -e ELSE Write(W, "+") END; - Write(W, CHR(e DIV 10 + 30H)); Write(W, CHR(e MOD 10 + 30H)) - END - END WriteReal; - - PROCEDURE WriteRealFix* (VAR W: Writer; x: REAL; n, k: INTEGER); - VAR e, i: INTEGER; sign: CHAR; x0: REAL; - d: ARRAY maxD OF CHAR; - - PROCEDURE seq(ch: CHAR; n: INTEGER); - BEGIN WHILE n > 0 DO Write(W, ch); DEC(n) END - END seq; - - PROCEDURE dig(n: INTEGER); - BEGIN - WHILE n > 0 DO - DEC(i); Write(W, d[i]); DEC(n) - END - END dig; - - BEGIN e := Reals.Expo(x); - IF k < 0 THEN k := 0 END; - IF e = 0 THEN seq(" ", n-k-2); Write(W, "0"); seq(" ", k+1) - ELSIF e = 255 THEN WriteString(W, " NaN"); seq(" ", n-4) - ELSE e := (e - 127) * 77 DIV 256; - IF x < 0 THEN sign := "-"; x := -x ELSE sign := " " END; - IF e >= 0 THEN (*x >= 1.0, 77/256 = log 2*) x := x/Reals.Ten(e) - ELSE (*x < 1.0*) x := Reals.Ten(-e) * x - END; - IF x >= 10.0 THEN x := 0.1*x; INC(e) END; - (* 1 <= x < 10 *) - IF k+e >= maxD-1 THEN k := maxD-1-e - ELSIF k+e < 0 THEN k := -e; x := 0.0 - END; - x0 := Reals.Ten(k+e); x := x0*x + 0.5; - IF x >= 10.0*x0 THEN INC(e) END; - (*e = no. of digits before decimal point*) - INC(e); i := k+e; Reals.Convert(x, i, d); - IF e > 0 THEN - seq(" ", n-e-k-2); Write(W, sign); dig(e); - Write(W, "."); dig(k) - ELSE seq(" ", n-k-3); - Write(W, sign); Write(W, "0"); Write(W, "."); - seq("0", -e); dig(k+e) - END - END - END WriteRealFix; - - PROCEDURE WriteRealHex* (VAR W: Writer; x: REAL); - VAR i: INTEGER; - d: ARRAY 8 OF CHAR; - BEGIN Reals.ConvertH(x, d); i := 0; - REPEAT Write(W, d[i]); INC(i) UNTIL i = 8 - END WriteRealHex; - - PROCEDURE WriteLongReal* (VAR W: Writer; x: LONGREAL; n: INTEGER); - CONST maxD = 16; - VAR e: INTEGER; x0: LONGREAL; - d: ARRAY maxD OF CHAR; - BEGIN e := Reals.ExpoL(x); - IF e = 0 THEN - WriteString(W, " 0"); - REPEAT Write(W, " "); DEC(n) UNTIL n <= 3 - ELSIF e = 2047 THEN - WriteString(W, " NaN"); - WHILE n > 4 DO Write(W, " "); DEC(n) END - ELSE - IF n <= 10 THEN n := 3 ELSE DEC(n, 7) END; - REPEAT Write(W, " "); DEC(n) UNTIL n <= maxD; - (*there are 2 <= n <= maxD digits to be written*) - IF x < 0 THEN Write(W, "-"); x := -x ELSE Write(W, " ") END; - e := SHORT(LONG(e - 1023) * 77 DIV 256); - IF e >= 0 THEN x := x / Reals.TenL(e) ELSE x := Reals.TenL(-e) * x END ; - IF x >= 10.0D0 THEN x := 0.1D0 * x; INC(e) END ; - x0 := Reals.TenL(n-1); x := x0*x + 0.5D0; - IF x >= 10.0D0*x0 THEN x := 0.1D0 * x; INC(e) END ; - Reals.ConvertL(x, n, d); - DEC(n); Write(W, d[n]); Write(W, "."); - REPEAT DEC(n); Write(W, d[n]) UNTIL n = 0; - Write(W, "D"); - IF e < 0 THEN Write(W, "-"); e := -e ELSE Write(W, "+") END; - Write(W, CHR(e DIV 100 + 30H)); e := e MOD 100; - Write(W, CHR(e DIV 10 + 30H)); - Write(W, CHR(e MOD 10 + 30H)) - END - END WriteLongReal; - - PROCEDURE WriteLongRealHex* (VAR W: Writer; x: LONGREAL); - VAR i: INTEGER; - d: ARRAY 16 OF CHAR; - BEGIN Reals.ConvertHL(x, d); i := 0; - REPEAT Write(W, d[i]); INC(i) UNTIL i = 16 - END WriteLongRealHex; - - PROCEDURE WriteDate* (VAR W: Writer; t, d: LONGINT); - - PROCEDURE WritePair(ch: CHAR; x: LONGINT); - BEGIN Write(W, ch); - Write(W, CHR(x DIV 10 + 30H)); Write(W, CHR(x MOD 10 + 30H)) - END WritePair; - - BEGIN - WritePair(" ", d MOD 32); WritePair(".", d DIV 32 MOD 16); WritePair(".", d DIV 512 MOD 128); - WritePair(" ", t DIV 4096 MOD 32); WritePair(":", t DIV 64 MOD 64); WritePair(":", t MOD 64) - END WriteDate; - - - (** Text Filing **) - - PROCEDURE Load0 (VAR r: Files.Rider; T: Text); - VAR u, un: Run; p: Piece; e: Elem; - org, pos, hlen, plen: LONGINT; ecnt, fno, fcnt, col, voff: SHORTINT; - f: Files.File; - msg: FileMsg; - mods, procs: ARRAY 64, 32 OF CHAR; - name: ARRAY 32 OF CHAR; - fnts: ARRAY 32 OF FontsFont; - - PROCEDURE LoadElem (VAR r: Files.Rider; pos, span: LONGINT; VAR e: Elem); - VAR M: Modules.Module; Cmd: Modules.Command; a: Alien; - org, ew, eh: LONGINT; eno: SHORTINT; - BEGIN new := NIL; - Files.ReadLInt(r, ew); Files.ReadLInt(r, eh); Files.Read(r, eno); - IF eno > ecnt THEN ecnt := eno; Files.ReadString(r, mods[eno]); Files.ReadString(r, procs[eno]) END; - org := Files.Pos(r); M := Modules.ThisMod(mods[eno]); - IF M # NIL THEN Cmd := Modules.ThisCommand(M, procs[eno]); - IF Cmd # NIL THEN Cmd END - END; - e := new; - IF e # NIL THEN e.W := ew; e.H := eh; e.base := T; - msg.pos := pos; e.handle(e, msg); - IF Files.Pos(r) # org + span THEN e := NIL END - END; - IF e = NIL THEN Files.Set(r, f, org + span); - NEW(a); a.W := ew; a.H := eh; a.handle := HandleAlien; a.base := T; - a.file := f; a.org := org; a.span := span; - COPY(mods[eno], a.mod); COPY(procs[eno], a.proc); - e := a - END - END LoadElem; - - BEGIN pos := Files.Pos(r); f := Files.Base(r); - NEW(u); u.len := MAX(LONGINT); (*u.fnt := FontsDefault;*)u.fnt := NIL; u.col := Displaywhite; - T.head := u; ecnt := 0; fcnt := 0; - msg.id := load; msg.r := r; - Files.ReadLInt(msg.r, hlen); (*!!!org := pos + hlen;*) org := pos -2 + hlen; pos := org; Files.Read(msg.r, fno); - WHILE fno # 0 DO - IF fno > fcnt THEN fcnt := fno; Files.ReadString(msg.r, name); fnts[fno] := FontsThis(name) END; - Files.Read(msg.r, col); Files.Read(msg.r, voff); Files.ReadLInt(msg.r, plen); - IF plen > 0 THEN NEW(p); p.file := f; p.org := pos; p.ascii := FALSE; un := p; un.len := plen - ELSE LoadElem(msg.r, pos - org, -plen, e); un := e; un.len := 1 - END; - un.fnt := fnts[fno]; un.col := col; un.voff := voff; - INC(pos, un.len); u.next := un; un.prev := u; u := un; Files.Read(msg.r, fno) - END; - u.next := T.head; T.head.prev := u; T.cache := T.head; T.corg := 0; - Files.ReadLInt(msg.r, T.len); Files.Set(r, f, Files.Pos(msg.r) + T.len) - END Load0; - - PROCEDURE Load* (VAR r: Files.Rider; T: Text); - CONST oldTag = -4095; - VAR tag: INTEGER; - BEGIN - (* for compatibility inner text tags are checked and skipped; remove this in a later version *) - Files.ReadInt(r, tag); IF tag # oldTag THEN Files.Set(r, Files.Base(r), Files.Pos(r)-2) END; - Load0(r, T) - END Load; - - PROCEDURE Open* (T: Text; name: ARRAY OF CHAR); - VAR f: Files.File; r: Files.Rider; u: Run; p: Piece; tag, version: CHAR; hlen: LONGINT; - BEGIN f := Files.Old(name); - IF f = NIL THEN f := Files.New("") END; - Files.Set(r, f, 0); Files.Read(r, tag); Files.Read(r, version); - IF (tag = textTag) OR (tag = 01X) & (version = textTag) THEN Load0(r, T) - ELSE (*ascii*) - NEW(u); u.len := MAX(LONGINT); u.fnt := NIL; u.col := Displaywhite; - NEW(p); - IF (tag = DocBlockId) & (version = 07X) THEN (* extract ascii text from System 3 text document *) - Files.Set(r, f, 28); Files.ReadLInt(r, hlen); - Files.Set(r, f, 22 + hlen); Files.ReadLInt(r, T.len); p.org := 26 + hlen - ELSE - T.len := Files.Length(f); p.org := 0 - END ; - IF T.len > 0 THEN p.len := T.len; p.fnt := FontsDefault; - p.col := Displaywhite; p.voff := 0; p.file := f; p.ascii := TRUE; - u.next := p; u.prev := p; p.next := u; p.prev := u - ELSE u.next := u; u.prev := u - END; - T.head := u; T.cache := T.head; T.corg := 0 - END - END Open; - - PROCEDURE Store* (VAR r: Files.Rider; T: Text); - VAR r1: Files.Rider; u, un: Run; e: Elem; org, pos, delta, hlen, rlen: LONGINT; ecnt, fno, fcnt: SHORTINT; ch: CHAR; (* << *) - msg: FileMsg; iden: IdentifyMsg; - mods, procs: ARRAY 64, 32 OF CHAR; - fnts: ARRAY 32 OF FontsFont; - block: ARRAY 1024 OF CHAR; - - PROCEDURE StoreElem (VAR r: Files.Rider; pos: LONGINT; e: Elem); - VAR r1: Files.Rider; org, span: LONGINT; eno: SHORTINT; - BEGIN COPY(iden.mod, mods[ecnt]); COPY(iden.proc, procs[ecnt]); eno := 1; - WHILE (mods[eno] # iden.mod) OR (procs[eno] # iden.proc) DO INC(eno) END; - Files.Set(r1, Files.Base(r), Files.Pos(r)); - Files.WriteLInt(r, 0); Files.WriteLInt(r, 0); Files.WriteLInt(r, 0); (*fixup slot*) - Files.Write(r, eno); - IF eno = ecnt THEN INC(ecnt); Files.WriteString(r, iden.mod); Files.WriteString(r, iden.proc) END; - msg.pos := pos; org := Files.Pos(r); e.handle(e, msg); span := Files.Pos(r) - org; - Files.WriteLInt(r1, -span); Files.WriteLInt(r1, e.W); Files.WriteLInt(r1, e.H) (*fixup*) - END StoreElem; - - BEGIN - org := Files.Pos(r); msg.id := store; msg.r := r; Files.WriteLInt(msg.r, 0); (*fixup slot*) - u := T.head.next; pos := 0; delta := 0; fcnt := 1; ecnt := 1; - WHILE u # T.head DO - IF u IS Elem THEN iden.mod[0] := 0X; u(Elem).handle(u(Elem), iden) ELSE iden.mod[0] := 1X END; - IF iden.mod[0] # 0X THEN - fnts[fcnt] := u.fnt; fno := 1; - WHILE fnts[fno].name # u.fnt.name DO INC(fno) END; - Files.Write(msg.r, fno); - IF fno = fcnt THEN INC(fcnt); Files.WriteString(msg.r, u.fnt.name) END; - Files.Write(msg.r, u.col); Files.Write(msg.r, u.voff) - END; - IF u IS Piece THEN rlen := u.len; un := u.next; - WHILE (un IS Piece) & (un.fnt = u.fnt) & (un.col = u.col) & (un.voff = u.voff) DO - INC(rlen, un.len); un := un.next - END; - Files.WriteLInt(msg.r, rlen); INC(pos, rlen); u := un - ELSIF iden.mod[0] # 0X THEN StoreElem(msg.r, pos, u(Elem)); INC(pos); u := u.next - ELSE INC(delta); u := u.next - END - END; - Files.Write(msg.r, 0); Files.WriteLInt(msg.r, T.len - delta); - (*!!!hlen := Files.Pos(msg.r) - org;*) hlen := Files.Pos(msg.r) - org + 2; - Files.Set(r1, Files.Base(msg.r), org); Files.WriteLInt(r1, hlen); (*fixup*) - u := T.head.next; - WHILE u # T.head DO - IF u IS Piece THEN - WITH u: Piece DO - IF u.ascii THEN Files.Set(r1, u.file, u.org); delta := u.len; (* << LF to CR *) - WHILE delta > 0 DO Files.Read(r1, ch); DEC(delta); - IF ch = 0AX THEN Files.Write(msg.r, CR) ELSE Files.Write(msg.r, ch) END - END - ELSE Files.Set(r1, u.file, u.org); delta := u.len; - WHILE delta > LEN(block) DO Files.ReadBytes(r1, block, LEN(block)); - Files.WriteBytes(msg.r, block, LEN(block)); DEC(delta, LEN(block)) - END; - Files.ReadBytes(r1, block, delta); Files.WriteBytes(msg.r, block, delta) - END - END - ELSE iden.mod[0] := 0X; u(Elem).handle(u(Elem), iden); - IF iden.mod[0] # 0X THEN Files.Write(msg.r, ElemChar) END - END; - u := u.next - END; - r := msg.r; - END Store; - - PROCEDURE Close* (T: Text; name: ARRAY OF CHAR); - VAR f: Files.File; r: Files.Rider; i, res: INTEGER; bak: ARRAY 64 OF CHAR; - BEGIN - f := Files.New(name); Files.Set(r, f, 0); Files.Write(r, textTag); Files.Write(r, version); Store(r, T); - i := 0; WHILE name[i] # 0X DO INC(i) END; - COPY(name, bak); bak[i] := "."; bak[i+1] := "B"; bak[i+2] := "a"; bak[i+3] := "k"; bak[i+4] := 0X; - Files.Rename(name, bak, res); Files.Register(f) - END Close; - -BEGIN del := NIL; NEW(FontsDefault); FontsDefault.name := "Syntax10.Scn.Fnt" -END Texts. diff --git a/src/lib/system/linux/gcc/Texts0.Mod b/src/lib/system/linux/gcc/Texts0.Mod deleted file mode 100644 index 19ecf5a1..00000000 --- a/src/lib/system/linux/gcc/Texts0.Mod +++ /dev/null @@ -1,880 +0,0 @@ -MODULE Texts0; (** CAS/HM 23.9.93 -- interface based on Texts by JG/NW 6.12.91**) (* << RC, MB, JT *) - IMPORT - Files := Files0, Modules, Reals; - - (*--- insert field e: Elem into Texts.Scanner and change Texts.Scan to set it in case of class=6 *) - (* this module is for bootstrapping voc, use Texts instead *) - - CONST - Displaywhite = 15; - ElemChar* = 1CX; - TAB = 9X; CR = 0DX; maxD = 9; - (**FileMsg.id**) - load* = 0; store* = 1; - (**Notifier op**) - replace* = 0; insert* = 1; delete* = 2; - (**Scanner.class**) - Inval* = 0; Name* = 1; String* = 2; Int* = 3; Real* = 4; LongReal* = 5; Char* = 6; - - textTag = 0F0X; DocBlockId = 0F7X; version = 01X; - - TYPE - FontsFont = POINTER TO FontDesc; - FontDesc = RECORD - name: ARRAY 32 OF CHAR; - END ; - - Run = POINTER TO RunDesc; - RunDesc = RECORD - prev, next: Run; - len: LONGINT; - fnt: FontsFont; - col, voff: SHORTINT; - ascii: BOOLEAN (* << *) - END; - - Piece = POINTER TO PieceDesc; - PieceDesc = RECORD (RunDesc) - file: Files.File; - org: LONGINT - END; - - Elem* = POINTER TO ElemDesc; - Buffer* = POINTER TO BufDesc; - Text* = POINTER TO TextDesc; - - ElemMsg* = RECORD END; - Handler* = PROCEDURE (e: Elem; VAR msg: ElemMsg); - - ElemDesc* = RECORD (RunDesc) - W*, H*: LONGINT; - handle*: Handler; - base: Text - END; - - FileMsg* = RECORD (ElemMsg) - id*: INTEGER; - pos*: LONGINT; - r*: Files.Rider - END; - - CopyMsg* = RECORD (ElemMsg) - e*: Elem - END; - - IdentifyMsg* = RECORD (ElemMsg) - mod*, proc*: ARRAY 32 OF CHAR - END; - - - BufDesc* = RECORD - len*: LONGINT; - head: Run - END; - - TextDesc* = RECORD - len*: LONGINT; - head, cache: Run; - corg: LONGINT - END; - - Reader* = RECORD - eot*: BOOLEAN; - fnt*: FontsFont; - col*, voff*: SHORTINT; - elem*: Elem; - rider: Files.Rider; - run: Run; - org, off: LONGINT - END; - - Scanner* = RECORD (Reader) - nextCh*: CHAR; - line*, class*: INTEGER; - i*: LONGINT; - x*: REAL; - y*: LONGREAL; - c*: CHAR; - len*: SHORTINT; - s*: ARRAY 64 OF CHAR (* << *) - END; - - Writer* = RECORD - buf*: Buffer; - fnt*: FontsFont; - col*, voff*: SHORTINT; - rider: Files.Rider; - file: Files.File - END; - - Alien = POINTER TO RECORD (ElemDesc) - file: Files.File; - org, span: LONGINT; - mod, proc: ARRAY 32 OF CHAR - END; - - VAR - new*: Elem; - del: Buffer; - FontsDefault: FontsFont; - - - PROCEDURE FontsThis(VAR name: ARRAY OF CHAR): FontsFont; - VAR F: FontsFont; - BEGIN - NEW(F); COPY(name, F.name); RETURN F - END FontsThis; - - (* run primitives *) - - PROCEDURE Find (T: Text; VAR pos: LONGINT; VAR u: Run; VAR org, off: LONGINT); - VAR v: Run; m: LONGINT; - BEGIN - IF pos >= T.len THEN pos := T.len; u := T.head; org := T.len; off := 0; T.cache := T.head; T.corg := 0 - ELSE v := T.cache.next; m := pos - T.corg; - IF pos >= T.corg THEN - WHILE m >= v.len DO DEC(m, v.len); v := v.next END - ELSE - WHILE m < 0 DO v := v.prev; INC(m, v.len) END; - END; - u := v; org := pos - m; off := m; T.cache := v.prev; T.corg := org - END - END Find; - - PROCEDURE Split (off: LONGINT; VAR u, un: Run); - VAR p, U: Piece; - BEGIN - IF off = 0 THEN un := u; u := un.prev - ELSIF off >= u.len THEN un := u.next - ELSE NEW(p); un := p; U := u(Piece); - p^ := U^; INC(p.org, off); DEC(p.len, off); DEC(U.len, p.len); - p.ascii := u.ascii; p.prev := U; p.next := U.next; p.next.prev := p; U.next := p (* << *) - END - END Split; - - PROCEDURE Merge (T: Text; u: Run; VAR v: Run); - VAR p, q: Piece; - BEGIN - IF (u IS Piece) & (v IS Piece) & (u.fnt.name = v.fnt.name) & (u.col = v.col) & (u.voff = v.voff) - & (u(Piece).ascii = v(Piece).ascii) THEN (* << *) - p := u(Piece); q := v(Piece); - IF (p.file = q.file) & (p.org + p.len = q.org) THEN - IF T.cache = u THEN INC(T.corg, q.len) - ELSIF T.cache = v THEN T.cache := T.head; T.corg := 0 - END; - INC(p.len, q.len); v := v.next - END - END - END Merge; - - PROCEDURE Splice (un, v, w: Run; base: Text); (* (u, un) -> (u, v, w, un) *) - VAR u: Run; - BEGIN - IF v # w.next THEN u := un.prev; - u.next := v; v.prev := u; un.prev := w; w.next := un; - REPEAT - IF v IS Elem THEN v(Elem).base := base END; - v := v.next - UNTIL v = un - END - END Splice; - - PROCEDURE ClonePiece (p: Piece): Piece; - VAR q: Piece; - BEGIN NEW(q); q^ := p^; RETURN q - END ClonePiece; - - PROCEDURE CloneElem (e: Elem): Elem; - VAR msg: CopyMsg; - BEGIN msg.e := NIL; e.handle(e, msg); RETURN msg.e - END CloneElem; - - - (** Elements **) - - PROCEDURE CopyElem* (SE, DE: Elem); - BEGIN DE.len := SE.len; DE.fnt := SE.fnt; DE.col := SE.col; DE.voff := SE.voff; - DE.W := SE.W; DE.H := SE.H; DE.handle := SE.handle - END CopyElem; - - PROCEDURE ElemBase* (E: Elem): Text; - BEGIN RETURN E.base - END ElemBase; - - PROCEDURE ElemPos* (E: Elem): LONGINT; - VAR u: Run; pos: LONGINT; - BEGIN u := E.base.head.next; pos := 0; - WHILE u # E DO pos := pos + u.len; u := u.next END; - RETURN pos - END ElemPos; - - - PROCEDURE HandleAlien (E: Elem; VAR msg: ElemMsg); - VAR e: Alien; r: Files.Rider; i: LONGINT; ch: CHAR; - BEGIN - WITH E: Alien DO - IF msg IS CopyMsg THEN - WITH msg: CopyMsg DO NEW(e); CopyElem(E, e); - e.file := E.file; e.org := E.org; e.span := E.span; e.mod := E.mod; e.proc := E.proc; - msg.e := e - END - ELSIF msg IS IdentifyMsg THEN - WITH msg: IdentifyMsg DO - COPY(E.mod, msg.mod); COPY(E.proc, msg.proc); msg.mod[31] := 1X (*alien*) - END - ELSIF msg IS FileMsg THEN - WITH msg: FileMsg DO - IF msg.id = store THEN Files.Set(r, E.file, E.org); i := E.span; - WHILE i > 0 DO Files.Read(r, ch); Files.Write(msg.r, ch); DEC(i) END - END - END - END - END - END HandleAlien; - - - (** Buffers **) - - PROCEDURE OpenBuf* (B: Buffer); - VAR u: Run; - BEGIN NEW(u); u.next := u; u.prev := u; B.head := u; B.len := 0 - END OpenBuf; - - PROCEDURE Copy* (SB, DB: Buffer); - VAR u, v, vn: Run; - BEGIN u := SB.head.next; v := DB.head.prev; - WHILE u # SB.head DO - IF u IS Piece THEN vn := ClonePiece(u(Piece)) ELSE vn := CloneElem(u(Elem)) END; - v.next := vn; vn.prev := v; v := vn; u := u.next - END; - v.next := DB.head; DB.head.prev := v; - INC(DB.len, SB.len) - END Copy; - - PROCEDURE Recall* (VAR B: Buffer); - BEGIN B := del; del := NIL - END Recall; - - - (** Texts **) - - PROCEDURE Save* (T: Text; beg, end: LONGINT; B: Buffer); - VAR u, v, w, wn: Run; uo, ud, vo, vd: LONGINT; - BEGIN Find(T, beg, u, uo, ud); Find(T, end, v, vo, vd); - w := B.head.prev; - WHILE u # v DO - IF u IS Piece THEN wn := ClonePiece(u(Piece)); DEC(wn.len, ud); INC(wn(Piece).org, ud) - ELSE wn := CloneElem(u(Elem)) - END; - w.next := wn; wn.prev := w; w := wn; u := u.next; ud := 0 - END; - IF vd > 0 THEN (*v IS Piece*) wn := ClonePiece(v(Piece)); wn.len := vd - ud; INC(wn(Piece).org, ud); - w.next := wn; wn.prev := w; w := wn - END; - w.next := B.head; B.head.prev := w; - INC(B.len, end - beg) - END Save; - - PROCEDURE Insert* (T: Text; pos: LONGINT; B: Buffer); - VAR u, un, v: Run; p, q: Piece; uo, ud, len: LONGINT; - BEGIN Find(T, pos, u, uo, ud); Split(ud, u, un); - len := B.len; v := B.head.next; - Merge(T, u, v); Splice(un, v, B.head.prev, T); - INC(T.len, len); B.head.next := B.head; B.head.prev := B.head; B.len := 0; - END Insert; - - PROCEDURE Append* (T: Text; B: Buffer); - VAR v: Run; pos, len: LONGINT; - BEGIN pos := T.len; len := B.len; v := B.head.next; - Merge(T, T.head.prev, v); Splice(T.head, v, B.head.prev, T); - INC(T.len, len); B.head.next := B.head; B.head.prev := B.head; B.len := 0; - END Append; - - PROCEDURE Delete* (T: Text; beg, end: LONGINT); - VAR c, u, un, v, vn: Run; co, uo, ud, vo, vd: LONGINT; - BEGIN - Find(T, beg, u, uo, ud); Split(ud, u, un); c := T.cache; co := T.corg; - Find(T, end, v, vo, vd); Split(vd, v, vn); T.cache := c; T.corg := co; - NEW(del); OpenBuf(del); del.len := end - beg; - Splice(del.head, un, v, NIL); - Merge(T, u, vn); u.next := vn; vn.prev := u; - DEC(T.len, end - beg); - END Delete; - - PROCEDURE ChangeLooks* (T: Text; beg, end: LONGINT; sel: SET; fnt: FontsFont; col, voff: SHORTINT); - VAR c, u, un, v, vn: Run; co, uo, ud, vo, vd: LONGINT; - BEGIN Find(T, beg, u, uo, ud); Split(ud, u, un); c := T.cache; co := T.corg; - Find(T, end, v, vo, vd); Split(vd, v, vn); T.cache := c; T.corg := co; - WHILE un # vn DO - IF (0 IN sel) & (fnt # NIL) THEN un.fnt := fnt END; - IF 1 IN sel THEN un.col := col END; - IF 2 IN sel THEN un.voff := voff END; - Merge(T, u, un); - IF u.next = un THEN u := un; un := un.next ELSE u.next := un; un.prev := u END - END; - Merge(T, u, un); u.next := un; un.prev := u; - END ChangeLooks; - - - (** Readers **) - - PROCEDURE OpenReader* (VAR R: Reader; T: Text; pos: LONGINT); - VAR u: Run; - BEGIN - IF pos >= T.len THEN pos := T.len END; - Find(T, pos, u, R.org, R.off); R.run := u; R.eot := FALSE; - IF u IS Piece THEN - Files.Set(R.rider, u(Piece).file, u(Piece).org + R.off) - END - END OpenReader; -(* - PROCEDURE Read* (VAR R: Reader; VAR ch: CHAR); - VAR u: Run; - BEGIN u := R.run; R.fnt := u.fnt; R.col := u.col; R.voff := u.voff; INC(R.off); - IF u IS Piece THEN Files.Read(R.rider, ch); R.elem := NIL; - IF (ch = 0AX) & u(Piece).ascii THEN ch := CR END (* << LF to CR *) - ELSIF u IS Elem THEN ch := ElemChar; R.elem := u(Elem) - ELSE ch := 0X; R.elem := NIL; R.eot := TRUE - END; - IF R.off = u.len THEN INC(R.org, u.len); u := u.next; - IF u IS Piece THEN - WITH u: Piece DO Files.Set(R.rider, u.file, u.org) END - END; - R.run := u; R.off := 0 - END - END Read; -*) - PROCEDURE Read* (VAR R: Reader; VAR ch: CHAR); - VAR u: Run; pos: LONGINT; nextch: CHAR; - BEGIN u := R.run; R.fnt := u.fnt; R.col := u.col; R.voff := u.voff; INC(R.off); - IF u IS Piece THEN Files.Read(R.rider, ch); R.elem := NIL; - IF (ch = 0AX) & u(Piece).ascii THEN ch := CR (* << LF to CR *) - ELSIF (ch = CR) & u(Piece).ascii THEN (* << CR LF to CR *) - pos := Files.Pos(R.rider); Files.Read(R.rider, nextch); - IF nextch = 0AX THEN INC(R.off) ELSE Files.Set(R.rider, u(Piece).file, pos) END - END - ELSIF u IS Elem THEN ch := ElemChar; R.elem := u(Elem) - ELSE ch := 0X; R.elem := NIL; R.eot := TRUE - END; - IF R.off = u.len THEN INC(R.org, u.len); u := u.next; - IF u IS Piece THEN - WITH u: Piece DO Files.Set(R.rider, u.file, u.org) END - END; - R.run := u; R.off := 0 - END - END Read; - - - PROCEDURE ReadElem* (VAR R: Reader); - VAR u, un: Run; - BEGIN u := R.run; - WHILE u IS Piece DO INC(R.org, u.len); u := u.next END; - IF u IS Elem THEN un := u.next; R.run := un; INC(R.org); R.off := 0; - R.fnt := u.fnt; R.col := u.col; R.voff := u.voff; R.elem := u(Elem); - IF un IS Piece THEN - WITH un: Piece DO Files.Set(R.rider, un.file, un.org) END - END - ELSE R.eot := TRUE; R.elem := NIL - END - END ReadElem; - - PROCEDURE ReadPrevElem* (VAR R: Reader); - VAR u: Run; - BEGIN u := R.run.prev; - WHILE u IS Piece DO DEC(R.org, u.len); u := u.prev END; - IF u IS Elem THEN R.run := u; DEC(R.org); R.off := 0; - R.fnt := u.fnt; R.col := u.col; R.voff := u.voff; R.elem := u(Elem) - ELSE R.eot := TRUE; R.elem := NIL - END - END ReadPrevElem; - - PROCEDURE Pos* (VAR R: Reader): LONGINT; - BEGIN RETURN R.org + R.off - END Pos; - - - (** Scanners --------------- NW --------------- **) - - PROCEDURE OpenScanner* (VAR S: Scanner; T: Text; pos: LONGINT); - BEGIN OpenReader(S, T, pos); S.line := 0; S.nextCh := " " - END OpenScanner; - - (*IEEE floating point formats: - x = 2^(e-127) * 1.m bit 0: sign, bits 1- 8: e, bits 9-31: m - x = 2^(e-1023) * 1.m bit 0: sign, bits 1-11: e, bits 12-63: m *) - - PROCEDURE Scan* (VAR S: Scanner); - CONST maxD = 32; - VAR ch, term: CHAR; - neg, negE, hex: BOOLEAN; - i, j, h: SHORTINT; - e: INTEGER; k: LONGINT; - x, f: REAL; y, g: LONGREAL; - d: ARRAY maxD OF CHAR; - - PROCEDURE ReadScaleFactor; - BEGIN Read(S, ch); - IF ch = "-" THEN negE := TRUE; Read(S, ch) - ELSE negE := FALSE; - IF ch = "+" THEN Read(S, ch) END - END; - WHILE ("0" <= ch) & (ch <= "9") DO - e := e*10 + ORD(ch) - 30H; Read(S, ch) - END - END ReadScaleFactor; - - BEGIN ch := S.nextCh; i := 0; - LOOP - IF ch = CR THEN INC(S.line) - ELSIF (ch # " ") & (ch # TAB) THEN EXIT - END ; - Read(S, ch) - END; - IF ("A" <= CAP(ch)) & (CAP(ch) <= "Z") OR (ch = "/") OR (ch = ".") THEN (*name*) (* << *) - REPEAT S.s[i] := ch; INC(i); Read(S, ch) - UNTIL (CAP(ch) > "Z") & (ch # "_") (* << *) - OR ("A" > CAP(ch)) & (ch > "9") - OR ("0" > ch) & (ch # ".") & (ch # "/") (* << *) - OR (i = 63); (* << *) - S.s[i] := 0X; S.len := i; S.class := 1 - ELSIF ch = 22X THEN (*literal string*) - Read(S, ch); - WHILE (ch # 22X) & (ch >= " ") & (i # 63) DO (* << *) - S.s[i] := ch; INC(i); Read(S, ch) - END; - S.s[i] := 0X; S.len := i+1; Read(S, ch); S.class := 2 - ELSE - IF ch = "-" THEN neg := TRUE; Read(S, ch) ELSE neg := FALSE END ; - IF ("0" <= ch) & (ch <= "9") THEN (*number*) - hex := FALSE; j := 0; - LOOP d[i] := ch; INC(i); Read(S, ch); - IF ch < "0" THEN EXIT END; - IF "9" < ch THEN - IF ("A" <= ch) & (ch <= "F") THEN hex := TRUE; ch := CHR(ORD(ch)-7) - ELSIF ("a" <= ch) & (ch <= "f") THEN hex := TRUE; ch := CHR(ORD(ch)-27H) - ELSE EXIT - END - END - END; - IF ch = "H" THEN (*hex number*) - Read(S, ch); S.class := 3; - IF i-j > 8 THEN j := i-8 END ; - k := ORD(d[j]) - 30H; INC(j); - IF (i-j = 7) & (k >= 8) THEN DEC(k, 16) END ; - WHILE j < i DO k := k*10H + (ORD(d[j]) - 30H); INC(j) END ; - IF neg THEN S.i := -k ELSE S.i := k END - ELSIF ch = "." THEN (*read real*) - Read(S, ch); h := i; - WHILE ("0" <= ch) & (ch <= "9") DO d[i] := ch; INC(i); Read(S, ch) END ; - IF ch = "D" THEN - e := 0; y := 0; g := 1; - REPEAT y := y*10 + (ORD(d[j]) - 30H); INC(j) UNTIL j = h; - WHILE j < i DO g := g/10; y := (ORD(d[j]) - 30H)*g + y; INC(j) END ; - ReadScaleFactor; - IF negE THEN - IF e <= 308 THEN y := y / Reals.TenL(e) ELSE y := 0 END - ELSIF e > 0 THEN - IF e <= 308 THEN y := Reals.TenL(e) * y ELSE HALT(40) END - END ; - IF neg THEN y := -y END ; - S.class := 5; S.y := y - ELSE e := 0; x := 0; f := 1; - REPEAT x := x*10 + (ORD(d[j]) - 30H); INC(j) UNTIL j = h; - WHILE j < i DO f := f/10; x := (ORD(d[j])-30H)*f + x; INC(j) END; - IF ch = "E" THEN ReadScaleFactor END ; - IF negE THEN - IF e <= 38 THEN x := x / Reals.Ten(e) ELSE x := 0 END - ELSIF e > 0 THEN - IF e <= 38 THEN x := Reals.Ten(e) * x ELSE HALT(40) END - END ; - IF neg THEN x := -x END ; - S.class := 4; S.x := x - END ; - IF hex THEN S.class := 0 END - ELSE (*decimal integer*) - S.class := 3; k := 0; - REPEAT k := k*10 + (ORD(d[j]) - 30H); INC(j) UNTIL j = i; - IF neg THEN S.i := -k ELSE S.i := k END; - IF hex THEN S.class := 0 ELSE S.class := 3 END - END - ELSE S.class := 6; - IF neg THEN S.c := "-" ELSE S.c := ch; Read(S, ch) END - END - END; - S.nextCh := ch - END Scan; - - - (** Writers **) - - PROCEDURE OpenWriter* (VAR W: Writer); - BEGIN NEW(W.buf); OpenBuf(W.buf); - W.fnt := FontsDefault; W.col := Displaywhite; W.voff := 0; - W.file := Files.New(""); Files.Set(W.rider, W.file, 0) - END OpenWriter; - - PROCEDURE SetFont* (VAR W: Writer; fnt: FontsFont); - BEGIN W.fnt := fnt - END SetFont; - - PROCEDURE SetColor* (VAR W: Writer; col: SHORTINT); - BEGIN W.col := col - END SetColor; - - PROCEDURE SetOffset* (VAR W: Writer; voff: SHORTINT); - BEGIN W.voff := voff - END SetOffset; - - - PROCEDURE Write* (VAR W: Writer; ch: CHAR); - VAR u, un: Run; p: Piece; - BEGIN Files.Write(W.rider, ch); INC(W.buf.len); un := W.buf.head; u := un.prev; - IF (u IS Piece) & (u(Piece).file = W.file) & (u.fnt.name = W.fnt.name) & (u.col = W.col) & (u.voff = W.voff) - & ~u(Piece).ascii THEN (* << *) - INC(u.len) - ELSE NEW(p); u.next := p; p.prev := u; p.next := un; un.prev := p; - p.len := 1; p.fnt := W.fnt; p.col := W.col; p.voff := W.voff; - p.file := W.file; p.org := Files.Length(W.file) - 1; p.ascii := FALSE (* << *) - END - END Write; - - PROCEDURE WriteElem* (VAR W: Writer; e: Elem); - VAR u, un: Run; - BEGIN - IF e.base # NIL THEN HALT(99) END; - INC(W.buf.len); e.len := 1; e.fnt := W.fnt; e.col := W.col; e.voff := W.voff; - un := W.buf.head; u := un.prev; u.next := e; e.prev := u; e.next := un; un.prev := e - END WriteElem; - - PROCEDURE WriteLn* (VAR W: Writer); - BEGIN Write(W, CR) - END WriteLn; - - PROCEDURE WriteString* (VAR W: Writer; s: ARRAY OF CHAR); - VAR i: INTEGER; - BEGIN i := 0; - WHILE s[i] >= " " DO Write(W, s[i]); INC(i) END - END WriteString; - - PROCEDURE WriteInt* (VAR W: Writer; x, n: LONGINT); - VAR i: INTEGER; x0: LONGINT; - a: ARRAY 11 OF CHAR; - BEGIN i := 0; - IF x < 0 THEN - IF x = MIN(LONGINT) THEN WriteString(W, " -2147483648"); RETURN - ELSE DEC(n); x0 := -x - END - ELSE x0 := x - END; - REPEAT - a[i] := CHR(x0 MOD 10 + 30H); x0 := x0 DIV 10; INC(i) - UNTIL x0 = 0; - WHILE n > i DO Write(W, " "); DEC(n) END; - IF x < 0 THEN Write(W, "-") END; - REPEAT DEC(i); Write(W, a[i]) UNTIL i = 0 - END WriteInt; - - PROCEDURE WriteHex* (VAR W: Writer; x: LONGINT); - VAR i: INTEGER; y: LONGINT; - a: ARRAY 10 OF CHAR; - BEGIN i := 0; Write(W, " "); - REPEAT y := x MOD 10H; - IF y < 10 THEN a[i] := CHR(y + 30H) ELSE a[i] := CHR(y + 37H) END; - x := x DIV 10H; INC(i) - UNTIL i = 8; - REPEAT DEC(i); Write(W, a[i]) UNTIL i = 0 - END WriteHex; - - PROCEDURE WriteReal* (VAR W: Writer; x: REAL; n: INTEGER); - VAR e: INTEGER; x0: REAL; - d: ARRAY maxD OF CHAR; - BEGIN e := Reals.Expo(x); - IF e = 0 THEN - WriteString(W, " 0"); - REPEAT Write(W, " "); DEC(n) UNTIL n <= 3 - ELSIF e = 255 THEN - WriteString(W, " NaN"); - WHILE n > 4 DO Write(W, " "); DEC(n) END - ELSE - IF n <= 9 THEN n := 3 ELSE DEC(n, 6) END; - REPEAT Write(W, " "); DEC(n) UNTIL n <= 8; - (*there are 2 < n <= 8 digits to be written*) - IF x < 0.0 THEN Write(W, "-"); x := -x ELSE Write(W, " ") END; - e := (e - 127) * 77 DIV 256; - IF e >= 0 THEN x := x / Reals.Ten(e) ELSE x := Reals.Ten(-e) * x END; - IF x >= 10.0 THEN x := 0.1*x; INC(e) END; - x0 := Reals.Ten(n-1); x := x0*x + 0.5; - IF x >= 10.0*x0 THEN x := x*0.1; INC(e) END; - Reals.Convert(x, n, d); - DEC(n); Write(W, d[n]); Write(W, "."); - REPEAT DEC(n); Write(W, d[n]) UNTIL n = 0; - Write(W, "E"); - IF e < 0 THEN Write(W, "-"); e := -e ELSE Write(W, "+") END; - Write(W, CHR(e DIV 10 + 30H)); Write(W, CHR(e MOD 10 + 30H)) - END - END WriteReal; - - PROCEDURE WriteRealFix* (VAR W: Writer; x: REAL; n, k: INTEGER); - VAR e, i: INTEGER; sign: CHAR; x0: REAL; - d: ARRAY maxD OF CHAR; - - PROCEDURE seq(ch: CHAR; n: INTEGER); - BEGIN WHILE n > 0 DO Write(W, ch); DEC(n) END - END seq; - - PROCEDURE dig(n: INTEGER); - BEGIN - WHILE n > 0 DO - DEC(i); Write(W, d[i]); DEC(n) - END - END dig; - - BEGIN e := Reals.Expo(x); - IF k < 0 THEN k := 0 END; - IF e = 0 THEN seq(" ", n-k-2); Write(W, "0"); seq(" ", k+1) - ELSIF e = 255 THEN WriteString(W, " NaN"); seq(" ", n-4) - ELSE e := (e - 127) * 77 DIV 256; - IF x < 0 THEN sign := "-"; x := -x ELSE sign := " " END; - IF e >= 0 THEN (*x >= 1.0, 77/256 = log 2*) x := x/Reals.Ten(e) - ELSE (*x < 1.0*) x := Reals.Ten(-e) * x - END; - IF x >= 10.0 THEN x := 0.1*x; INC(e) END; - (* 1 <= x < 10 *) - IF k+e >= maxD-1 THEN k := maxD-1-e - ELSIF k+e < 0 THEN k := -e; x := 0.0 - END; - x0 := Reals.Ten(k+e); x := x0*x + 0.5; - IF x >= 10.0*x0 THEN INC(e) END; - (*e = no. of digits before decimal point*) - INC(e); i := k+e; Reals.Convert(x, i, d); - IF e > 0 THEN - seq(" ", n-e-k-2); Write(W, sign); dig(e); - Write(W, "."); dig(k) - ELSE seq(" ", n-k-3); - Write(W, sign); Write(W, "0"); Write(W, "."); - seq("0", -e); dig(k+e) - END - END - END WriteRealFix; - - PROCEDURE WriteRealHex* (VAR W: Writer; x: REAL); - VAR i: INTEGER; - d: ARRAY 8 OF CHAR; - BEGIN Reals.ConvertH(x, d); i := 0; - REPEAT Write(W, d[i]); INC(i) UNTIL i = 8 - END WriteRealHex; - - PROCEDURE WriteLongReal* (VAR W: Writer; x: LONGREAL; n: INTEGER); - CONST maxD = 16; - VAR e: INTEGER; x0: LONGREAL; - d: ARRAY maxD OF CHAR; - BEGIN e := Reals.ExpoL(x); - IF e = 0 THEN - WriteString(W, " 0"); - REPEAT Write(W, " "); DEC(n) UNTIL n <= 3 - ELSIF e = 2047 THEN - WriteString(W, " NaN"); - WHILE n > 4 DO Write(W, " "); DEC(n) END - ELSE - IF n <= 10 THEN n := 3 ELSE DEC(n, 7) END; - REPEAT Write(W, " "); DEC(n) UNTIL n <= maxD; - (*there are 2 <= n <= maxD digits to be written*) - IF x < 0 THEN Write(W, "-"); x := -x ELSE Write(W, " ") END; - e := SHORT(LONG(e - 1023) * 77 DIV 256); - IF e >= 0 THEN x := x / Reals.TenL(e) ELSE x := Reals.TenL(-e) * x END ; - IF x >= 10.0D0 THEN x := 0.1D0 * x; INC(e) END ; - x0 := Reals.TenL(n-1); x := x0*x + 0.5D0; - IF x >= 10.0D0*x0 THEN x := 0.1D0 * x; INC(e) END ; - Reals.ConvertL(x, n, d); - DEC(n); Write(W, d[n]); Write(W, "."); - REPEAT DEC(n); Write(W, d[n]) UNTIL n = 0; - Write(W, "D"); - IF e < 0 THEN Write(W, "-"); e := -e ELSE Write(W, "+") END; - Write(W, CHR(e DIV 100 + 30H)); e := e MOD 100; - Write(W, CHR(e DIV 10 + 30H)); - Write(W, CHR(e MOD 10 + 30H)) - END - END WriteLongReal; - - PROCEDURE WriteLongRealHex* (VAR W: Writer; x: LONGREAL); - VAR i: INTEGER; - d: ARRAY 16 OF CHAR; - BEGIN Reals.ConvertHL(x, d); i := 0; - REPEAT Write(W, d[i]); INC(i) UNTIL i = 16 - END WriteLongRealHex; - - PROCEDURE WriteDate* (VAR W: Writer; t, d: LONGINT); - - PROCEDURE WritePair(ch: CHAR; x: LONGINT); - BEGIN Write(W, ch); - Write(W, CHR(x DIV 10 + 30H)); Write(W, CHR(x MOD 10 + 30H)) - END WritePair; - - BEGIN - WritePair(" ", d MOD 32); WritePair(".", d DIV 32 MOD 16); WritePair(".", d DIV 512 MOD 128); - WritePair(" ", t DIV 4096 MOD 32); WritePair(":", t DIV 64 MOD 64); WritePair(":", t MOD 64) - END WriteDate; - - - (** Text Filing **) - - PROCEDURE Load0 (VAR r: Files.Rider; T: Text); - VAR u, un: Run; p: Piece; e: Elem; - org, pos, hlen, plen: LONGINT; ecnt, fno, fcnt, col, voff: SHORTINT; - f: Files.File; - msg: FileMsg; - mods, procs: ARRAY 64, 32 OF CHAR; - name: ARRAY 32 OF CHAR; - fnts: ARRAY 32 OF FontsFont; - - PROCEDURE LoadElem (VAR r: Files.Rider; pos, span: LONGINT; VAR e: Elem); - VAR M: Modules.Module; Cmd: Modules.Command; a: Alien; - org, ew, eh: LONGINT; eno: SHORTINT; - BEGIN new := NIL; - Files.ReadLInt(r, ew); Files.ReadLInt(r, eh); Files.Read(r, eno); - IF eno > ecnt THEN ecnt := eno; Files.ReadString(r, mods[eno]); Files.ReadString(r, procs[eno]) END; - org := Files.Pos(r); M := Modules.ThisMod(mods[eno]); - IF M # NIL THEN Cmd := Modules.ThisCommand(M, procs[eno]); - IF Cmd # NIL THEN Cmd END - END; - e := new; - IF e # NIL THEN e.W := ew; e.H := eh; e.base := T; - msg.pos := pos; e.handle(e, msg); - IF Files.Pos(r) # org + span THEN e := NIL END - END; - IF e = NIL THEN Files.Set(r, f, org + span); - NEW(a); a.W := ew; a.H := eh; a.handle := HandleAlien; a.base := T; - a.file := f; a.org := org; a.span := span; - COPY(mods[eno], a.mod); COPY(procs[eno], a.proc); - e := a - END - END LoadElem; - - BEGIN pos := Files.Pos(r); f := Files.Base(r); - NEW(u); u.len := MAX(LONGINT); (*u.fnt := FontsDefault;*)u.fnt := NIL; u.col := Displaywhite; - T.head := u; ecnt := 0; fcnt := 0; - msg.id := load; msg.r := r; - Files.ReadLInt(msg.r, hlen); (*!!!org := pos + hlen;*) org := pos -2 + hlen; pos := org; Files.Read(msg.r, fno); - WHILE fno # 0 DO - IF fno > fcnt THEN fcnt := fno; Files.ReadString(msg.r, name); fnts[fno] := FontsThis(name) END; - Files.Read(msg.r, col); Files.Read(msg.r, voff); Files.ReadLInt(msg.r, plen); - IF plen > 0 THEN NEW(p); p.file := f; p.org := pos; p.ascii := FALSE; un := p; un.len := plen - ELSE LoadElem(msg.r, pos - org, -plen, e); un := e; un.len := 1 - END; - un.fnt := fnts[fno]; un.col := col; un.voff := voff; - INC(pos, un.len); u.next := un; un.prev := u; u := un; Files.Read(msg.r, fno) - END; - u.next := T.head; T.head.prev := u; T.cache := T.head; T.corg := 0; - Files.ReadLInt(msg.r, T.len); Files.Set(r, f, Files.Pos(msg.r) + T.len) - END Load0; - - PROCEDURE Load* (VAR r: Files.Rider; T: Text); - CONST oldTag = -4095; - VAR tag: INTEGER; - BEGIN - (* for compatibility inner text tags are checked and skipped; remove this in a later version *) - Files.ReadInt(r, tag); IF tag # oldTag THEN Files.Set(r, Files.Base(r), Files.Pos(r)-2) END; - Load0(r, T) - END Load; - - PROCEDURE Open* (T: Text; name: ARRAY OF CHAR); - VAR f: Files.File; r: Files.Rider; u: Run; p: Piece; tag, version: CHAR; hlen: LONGINT; - BEGIN f := Files.Old(name); - IF f = NIL THEN f := Files.New("") END; - Files.Set(r, f, 0); Files.Read(r, tag); Files.Read(r, version); - IF (tag = textTag) OR (tag = 01X) & (version = textTag) THEN Load0(r, T) - ELSE (*ascii*) - NEW(u); u.len := MAX(LONGINT); u.fnt := NIL; u.col := Displaywhite; - NEW(p); - IF (tag = DocBlockId) & (version = 07X) THEN (* extract ascii text from System 3 text document *) - Files.Set(r, f, 28); Files.ReadLInt(r, hlen); - Files.Set(r, f, 22 + hlen); Files.ReadLInt(r, T.len); p.org := 26 + hlen - ELSE - T.len := Files.Length(f); p.org := 0 - END ; - IF T.len > 0 THEN p.len := T.len; p.fnt := FontsDefault; - p.col := Displaywhite; p.voff := 0; p.file := f; p.ascii := TRUE; - u.next := p; u.prev := p; p.next := u; p.prev := u - ELSE u.next := u; u.prev := u - END; - T.head := u; T.cache := T.head; T.corg := 0 - END - END Open; - - PROCEDURE Store* (VAR r: Files.Rider; T: Text); - VAR r1: Files.Rider; u, un: Run; e: Elem; org, pos, delta, hlen, rlen: LONGINT; ecnt, fno, fcnt: SHORTINT; ch: CHAR; (* << *) - msg: FileMsg; iden: IdentifyMsg; - mods, procs: ARRAY 64, 32 OF CHAR; - fnts: ARRAY 32 OF FontsFont; - block: ARRAY 1024 OF CHAR; - - PROCEDURE StoreElem (VAR r: Files.Rider; pos: LONGINT; e: Elem); - VAR r1: Files.Rider; org, span: LONGINT; eno: SHORTINT; - BEGIN COPY(iden.mod, mods[ecnt]); COPY(iden.proc, procs[ecnt]); eno := 1; - WHILE (mods[eno] # iden.mod) OR (procs[eno] # iden.proc) DO INC(eno) END; - Files.Set(r1, Files.Base(r), Files.Pos(r)); - Files.WriteLInt(r, 0); Files.WriteLInt(r, 0); Files.WriteLInt(r, 0); (*fixup slot*) - Files.Write(r, eno); - IF eno = ecnt THEN INC(ecnt); Files.WriteString(r, iden.mod); Files.WriteString(r, iden.proc) END; - msg.pos := pos; org := Files.Pos(r); e.handle(e, msg); span := Files.Pos(r) - org; - Files.WriteLInt(r1, -span); Files.WriteLInt(r1, e.W); Files.WriteLInt(r1, e.H) (*fixup*) - END StoreElem; - - BEGIN - org := Files.Pos(r); msg.id := store; msg.r := r; Files.WriteLInt(msg.r, 0); (*fixup slot*) - u := T.head.next; pos := 0; delta := 0; fcnt := 1; ecnt := 1; - WHILE u # T.head DO - IF u IS Elem THEN iden.mod[0] := 0X; u(Elem).handle(u(Elem), iden) ELSE iden.mod[0] := 1X END; - IF iden.mod[0] # 0X THEN - fnts[fcnt] := u.fnt; fno := 1; - WHILE fnts[fno].name # u.fnt.name DO INC(fno) END; - Files.Write(msg.r, fno); - IF fno = fcnt THEN INC(fcnt); Files.WriteString(msg.r, u.fnt.name) END; - Files.Write(msg.r, u.col); Files.Write(msg.r, u.voff) - END; - IF u IS Piece THEN rlen := u.len; un := u.next; - WHILE (un IS Piece) & (un.fnt = u.fnt) & (un.col = u.col) & (un.voff = u.voff) DO - INC(rlen, un.len); un := un.next - END; - Files.WriteLInt(msg.r, rlen); INC(pos, rlen); u := un - ELSIF iden.mod[0] # 0X THEN StoreElem(msg.r, pos, u(Elem)); INC(pos); u := u.next - ELSE INC(delta); u := u.next - END - END; - Files.Write(msg.r, 0); Files.WriteLInt(msg.r, T.len - delta); - (*!!!hlen := Files.Pos(msg.r) - org;*) hlen := Files.Pos(msg.r) - org + 2; - Files.Set(r1, Files.Base(msg.r), org); Files.WriteLInt(r1, hlen); (*fixup*) - u := T.head.next; - WHILE u # T.head DO - IF u IS Piece THEN - WITH u: Piece DO - IF u.ascii THEN Files.Set(r1, u.file, u.org); delta := u.len; (* << LF to CR *) - WHILE delta > 0 DO Files.Read(r1, ch); DEC(delta); - IF ch = 0AX THEN Files.Write(msg.r, CR) ELSE Files.Write(msg.r, ch) END - END - ELSE Files.Set(r1, u.file, u.org); delta := u.len; - WHILE delta > LEN(block) DO Files.ReadBytes(r1, block, LEN(block)); - Files.WriteBytes(msg.r, block, LEN(block)); DEC(delta, LEN(block)) - END; - Files.ReadBytes(r1, block, delta); Files.WriteBytes(msg.r, block, delta) - END - END - ELSE iden.mod[0] := 0X; u(Elem).handle(u(Elem), iden); - IF iden.mod[0] # 0X THEN Files.Write(msg.r, ElemChar) END - END; - u := u.next - END; - r := msg.r; - END Store; - - PROCEDURE Close* (T: Text; name: ARRAY OF CHAR); - VAR f: Files.File; r: Files.Rider; i, res: INTEGER; bak: ARRAY 64 OF CHAR; - BEGIN - f := Files.New(name); Files.Set(r, f, 0); Files.Write(r, textTag); Files.Write(r, version); Store(r, T); - i := 0; WHILE name[i] # 0X DO INC(i) END; - COPY(name, bak); bak[i] := "."; bak[i+1] := "B"; bak[i+2] := "a"; bak[i+3] := "k"; bak[i+4] := 0X; - Files.Rename(name, bak, res); Files.Register(f) - END Close; - -BEGIN del := NIL; NEW(FontsDefault); FontsDefault.name := "Syntax10.Scn.Fnt" -END Texts0. diff --git a/src/lib/system/darwin/clang/Texts.Mod b/src/lib/v4/Texts.Mod similarity index 100% rename from src/lib/system/darwin/clang/Texts.Mod rename to src/lib/v4/Texts.Mod diff --git a/src/lib/system/darwin/clang/Texts0.Mod b/src/lib/v4/Texts0.Mod similarity index 100% rename from src/lib/system/darwin/clang/Texts0.Mod rename to src/lib/v4/Texts0.Mod diff --git a/voc b/voc index a83463f1bd176d0b864cc0a3b180832597048124..4d768c90746d68b61cd2ee1294d42f21190a43e6 100755 GIT binary patch delta 228984 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 z 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

~+LQcVd27K?qcO2vfe8)j+p?+ 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 ad+bZ;FHIc3ucmdYOQZMg$!xW$**^fXLzVad delta 231062 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≥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

hbA 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%0A7!{VCEH6o{;i95fTI|4{ap<0?^Ag?AB^tBVEtTi zI3YSU!A<5?CiYL@nz@Q;=CmZ@^|qLN5jRNd5pSh9Ir$eP?G2snslB{jKKal8ffe-89#Pc&{l|UGK1ZTi{dPFn2fU z9=n3BLORvD5s&rFSK^7+ywl{p+Q)l)U@qfNq$_-C6NvlYR`n|Jf5%y^cr)oG#Qk@y zxxjVEisq12$?R@3T-u#PM8D}NzcbLKy>8$r@n`CpEAFClCGqUK=DKzqKQ1Y*b1fd- zYfbsu+sxJew+A*b{0S$&ml@i}P``r;B|OQ5VZgoG0@sc&(>L`FQr>??zpq4|f|HX- zcjQApJ!x(f@wk~58vjfDIp7+ydpMWuKzy=ir=j^{9r4$IYqm;!C(u>`kH)>xrc-co zA(da`=4mS`A5|Pq3vxSr1Mv?jU#Dx(MJ%`-r;2#}=2lsONK?25-1SZJ&4a=%+uaC| zZl{rnChk9XIC*C{iDhuN0j_;c;vgG=y0LKufvYEq4h(QpdBxIl22j2o-|q1c@u8IW zcMi#h*KjiTmz{2Os&CD%ojdK9Mve2r8g}m5*?BHy{Mb?B@43HImu}LpN#jt9E`jdO z)8kW~8#Q9|$nhhdN_lGZC}+Y8sT1zGze}gM{d<};zVKx22@}UZJL>uU%hDQeuJ`|W Ca*E^t diff --git a/vocstatic.linux.gcc.x86_64 b/vocstatic.linux.gcc.x86_64 index a83463f1bd176d0b864cc0a3b180832597048124..4d768c90746d68b61cd2ee1294d42f21190a43e6 100755 GIT binary patch delta 228984 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 z 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
hbA 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%0A7!{VCEH6o{;i95fTI|4{ap<0?^Ag?AB^tBVEtTi zI3YSU!A<5?CiYL@nz@Q;=CmZ@^|qLN5jRNd5pSh9Ir$eP?G2snslB{jKKal8ffe-89#Pc&{l|UGK1ZTi{dPFn2fU z9=n3BLORvD5s&rFSK^7+ywl{p+Q)l)U@qfNq$_-C6NvlYR`n|Jf5%y^cr)oG#Qk@y zxxjVEisq12$?R@3T-u#PM8D}NzcbLKy>8$r@n`CpEAFClCGqUK=DKzqKQ1Y*b1fd- zYfbsu+sxJew+A*b{0S$&ml@i}P``r;B|OQ5VZgoG0@sc&(>L`FQr>??zpq4|f|HX- zcjQApJ!x(f@wk~58vjfDIp7+ydpMWuKzy=ir=j^{9r4$IYqm;!C(u>`kH)>xrc-co zA(da`=4mS`A5|Pq3vxSr1Mv?jU#Dx(MJ%`-r;2#}=2lsONK?25-1SZJ&4a=%+uaC| zZl{rnChk9XIC*C{iDhuN0j_;c;vgG=y0LKufvYEq4h(QpdBxIl22j2o-|q1c@u8IW zcMi#h*KjiTmz{2Os&CD%ojdK9Mve2r8g}m5*?BHy{Mb?B@43HImu}LpN#jt9E`jdO z)8kW~8#Q9|$nhhdN_lGZC}+Y8sT1zGze}gM{d<};zVKx22@}UZJL>uU%hDQeuJ`|W Ca*E^t

~+LQcVd27K?qcO2vfe8)j+p?+ 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 ad+bZ;FHIc3ucmdYOQZMg$!xW$**^fXLzVad delta 231062 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≥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