AtomValue: TYPE ~ REF AtomValueRep;
AtomCharValue: TYPE ~ REF char AtomValueRep;
AtomRopeValue: TYPE ~ REF rope AtomValueRep;
AtomBoxValue: TYPE ~ REF box AtomValueRep;
AtomOtherValue: TYPE ~ REF other AtomValueRep;
AtomValueRep:
TYPE ~
RECORD [
SELECT type:*
FROM
char => [char: ImagerFont.XChar],
rope => [rope: Rope.ROPE],
box => [box: ImagerFont.Extents],
other => [other: REF ANY],
ENDCASE
];
Style:
TYPE ~
RECORD [
font: Rope.ROPE, -- pathname of font file to use
scale: REAL ← 1.0, -- scaling factor for font to normalize bounding box sizes
looks: REF ANY ← NIL -- to be determined
];
FormatClass:
TYPE ~ {atom, parens, binaryOp, op, relation, over, matrix, radical, other};