mirror of
https://github.com/vishapoberon/compiler.git
synced 2026-04-06 09:52:24 +00:00
ported ulmStrings, ulmConstStrings.
changed hidden fields limit in OPM module. makefiles
This commit is contained in:
parent
d3d8ac9de6
commit
6ef66fa542
12 changed files with 122 additions and 110 deletions
|
|
@ -45,12 +45,12 @@
|
|||
----------------------------------------------------------------------------
|
||||
*)
|
||||
|
||||
MODULE ConstStrings;
|
||||
MODULE ulmConstStrings;
|
||||
|
||||
(* WORM-device for strings *)
|
||||
|
||||
IMPORT Disciplines, Events, Objects, Process, Services, Streams, Strings,
|
||||
Texts, Types;
|
||||
IMPORT Disciplines := ulmDisciplines, Events := ulmEvents, Objects := ulmObjects, Process := ulmProcess, Services := ulmServices, Streams := ulmStreams, Strings := ulmStrings,
|
||||
Texts := ulmTexts, Types := ulmTypes;
|
||||
|
||||
CONST
|
||||
tabsize = 1031; (* should be a prime number *)
|
||||
|
|
@ -74,8 +74,8 @@ MODULE ConstStrings;
|
|||
RECORD
|
||||
(Disciplines.ObjectRec)
|
||||
(* read-only *)
|
||||
len*: Streams.Count; (* length of string in bytes *)
|
||||
hashval*: LONGINT; (* hash value *)
|
||||
len-: Streams.Count; (* length of string in bytes *)
|
||||
hashval-: LONGINT; (* hash value *)
|
||||
(* private part *)
|
||||
domain: Domain;
|
||||
length: Streams.Count; (* private copy of length *)
|
||||
|
|
@ -84,7 +84,7 @@ MODULE ConstStrings;
|
|||
next: String; (* list of strings with same hash value *)
|
||||
END;
|
||||
|
||||
TYPE
|
||||
TYPE
|
||||
DomainRec* =
|
||||
RECORD
|
||||
(Disciplines.ObjectRec)
|
||||
|
|
@ -214,9 +214,9 @@ MODULE ConstStrings;
|
|||
offset := buf.free;
|
||||
WHILE len > 0 DO
|
||||
IF len <= bufsize - domain.tail.free THEN
|
||||
INC(domain.tail.free, len); len := 0;
|
||||
INC(domain.tail.free, SHORT(len)); len := 0;
|
||||
ELSE
|
||||
DEC(len, bufsize - domain.tail.free);
|
||||
DEC(len, bufsize - LONG(domain.tail.free));
|
||||
domain.tail.free := bufsize;
|
||||
NewBuffer;
|
||||
END;
|
||||
|
|
@ -427,7 +427,7 @@ MODULE ConstStrings;
|
|||
INC(count, s.count);
|
||||
EXIT
|
||||
END;
|
||||
INC(count, bytes); DEC(len, bytes); INC(offset, bytes);
|
||||
INC(count, bytes); DEC(len, bytes); INC(offset, SHORT(bytes));
|
||||
IF offset >= bufsize THEN
|
||||
buf := buf.next;
|
||||
offset := 0;
|
||||
|
|
@ -480,7 +480,7 @@ MODULE ConstStrings;
|
|||
END;
|
||||
END ReadByte;
|
||||
|
||||
PROCEDURE ReadBuf(s: Streams.Stream; VAR buf: ARRAY OF BYTE;
|
||||
PROCEDURE ReadBuf(s: Streams.Stream; VAR buf: ARRAY OF Types.Byte(*BYTE*);
|
||||
off, cnt: Streams.Count) : Streams.Count;
|
||||
VAR
|
||||
bytes, max: Streams.Count;
|
||||
|
|
@ -530,10 +530,10 @@ MODULE ConstStrings;
|
|||
END;
|
||||
WHILE s.pos < realpos DO
|
||||
IF realpos - s.pos < bufsize - s.offset THEN
|
||||
INC(s.offset, realpos - s.pos);
|
||||
INC(s.offset, SHORT(realpos - s.pos));
|
||||
s.pos := realpos;
|
||||
ELSE
|
||||
INC(s.pos, bufsize - s.offset);
|
||||
INC(s.pos, LONG(bufsize - s.offset));
|
||||
s.offset := 0;
|
||||
s.buf := s.buf.next;
|
||||
END;
|
||||
|
|
@ -572,4 +572,4 @@ BEGIN
|
|||
if.tell := Tell;
|
||||
Events.Handler(Process.startOfGarbageCollection, FreeHandler);
|
||||
Services.CreateType(type, "ConstStrings.ReadStream", "Streams.Stream");
|
||||
END ConstStrings.
|
||||
END ulmConstStrings.
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ MODULE OPM; (* RC 6.3.89 / 28.6.89, J.Templ 10.7.89 / 22.7.96 *)
|
|||
MaxGPtr* = MAX(LONGINT);
|
||||
|
||||
(* maximal number of hidden fields in an exported record: *)
|
||||
MaxHdFld* = 512;
|
||||
MaxHdFld* = 2048;
|
||||
|
||||
HdPtrName* = "@ptr";
|
||||
HdProcName* = "@proc";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue