WITH t: seb[sei]
SELECT
FROM
mode => 1, -- fudge for compiler (Pass4.Binding)
basic => (t.length + wordFill)/WordLength,
enumerated => IF t.empty THEN 0 ELSE 1,
record => (t.length.LONG + wordFill)/WordLength,
ref => 1,
array =>
IF (b𡤋itsPerElement[t.componentType, t.packed])#0
AND b<=PackedBitCount.
LAST
b IN PackedBitCount
THEN (Cardinality[t.indexType] + (itemsPerWord[b]-1))/itemsPerWord[b]
ELSE Cardinality[t.indexType] * ((b+wordFill)/WordLength),
arraydesc => 2,
transfer => IF t.mode = port THEN 2 ELSE 1,
relative => WordsForType[t.offsetType],
opaque => (t.length.LONG + wordFill)/WordLength,
zone => (IF t.mds THEN 1 ELSE 2),
subrange => IF t.empty THEN 0 ELSE 1,
long => WordsForType[t.rangeType] + 1,
real => 2,
ENDCASE => 0