Node:
TYPE =
MACHINE DEPENDENT RECORD [
free (0: 0..0): BOOL, -- reserved for allocator
name (0: 1..8): NodeName,
attr1 (0: 9..9), attr2 (0: 10..10), attr3 (0: 11..11): BOOL,
subInfo (0: 12..15): SubInfo,
shared (0: 16..16): BOOL,
nSons (0: 17..31): NAT15,
info (0: 32..63): Info,
son (64/BITS[WORD]): SEQUENCE COMPUTED SonId OF Tree.Link];
SubInfo:
TYPE = [0..15];
The following values for SubInfo are used in the optionTC case
packedOption: SubInfo = 1;
msbitOption: SubInfo = 2;
lsbitOption: SubInfo = 3;
nativeOption: SubInfo = 4;
word8Option: SubInfo = 5;
word16Option: SubInfo = 6;
word32Option: SubInfo = 7;
word64Option: SubInfo = 8;
NodeName:
TYPE =
MACHINE DEPENDENT {
general tree constructors
list (0), item (1),
declarations
decl, typedecl,
basicTC, enumeratedTC, recordTC, monitoredTC, variantTC,
refTC, pointerTC, listTC, arrayTC, arraydescTC, sequenceTC,
procTC, processTC, portTC, signalTC, errorTC, programTC,
anyTC, definitionTC, unionTC, relativeTC,
subrangeTC, longTC, opaqueTC, zoneTC, linkTC, varTC,
implicitTC, frameTC, discrimTC,
paintTC, optionTC, spareTC,
unit, diritem, module, body, inline, lambda, block,
statements
assign, extract,
if,
case, casetest, caseswitch,
bind,
do, forseq, upthru, downthru,
return, result,
goto, exit, loop,
free,
resume, reject, continue, retry, catchmark,
restart, stop,
lock, wait, notify, broadcast, unlock,
null,
label,
open,
enable, catch,
dst, lste, lstf,
syscall, checked, lst, spareS3,
subst, call, portcall, signal, error, syserror, xerror,
start, join,
expressions
apply,
callx, portcallx, signalx, errorx, syserrorx, startx, fork, joinx,
index, dindex, seqindex, reloc,
construct, union, rowcons, sequence, listcons,
substx,
ifx, casex, bindx,
assignx, extractx,
or, and,
relE, relN, relL, relGE, relG, relLE, in, notin,
plus, minus, times, div, mod, power,
dot, cdot, dollar,
create,
not,
uminus,
addr,
uparrow,
min, max, ord, val, abs, all,
size, first, last, pred, succ,
arraydesc, length, base,
loophole,
nil,
new,
void,
clit, llit,
cast, check, float, pad, chop, safen,
syscallx, narrow, istype,
openx,
mwconst, cons,
atom, typecode,
stringinit, textlit, signalinit, procinit,
intOO, intOC, intCO, intCC,
thread,
none,
exlist,
initlist,
ditem,
lengthen, shorten,
self,
gcrt, proccheck,
entry, internal,
invalid};