Codes.Mesa
Copyright © 1986 by Xerox Corporation. All rights reserved.
Spreitzer, January 15, 1986 4:40:44 pm PST
DIRECTORY Rope;
Codes: CEDAR DEFINITIONS = {
ROPE: TYPE = Rope.ROPE;
Alphabet: TYPE = REF AlphabetPrivate;
AlphabetPrivate: TYPE = RECORD [
chars: ROPE,
includes: ARRAY CHAR OF BOOL
];
Code: TYPE = REF CodePrivate;
CodePrivate: TYPE = RECORD [
to: ARRAY Language OF DecisionTree,
dangles: ARRAY Language OF INT,
size: INT
];
Language: TYPE = {A, B};
DecisionTree: TYPE = REF DecisionTreePrivatePrivate;
DecisionTreePrivate: TYPE = RECORD [
variant: SELECT kind: * FROM
branch => [a: ARRAY CHAR OF DecisionTree ← ALL[NIL]],
leaf => [r: Relation],
ENDCASE];
Relation: TYPE = REF RelationPrivate;
RelationPrivate: TYPE = RECORD [
codeword: ARRAY Language OF ROPE,
index: INT];
OtherLanguage: ARRAY Language OF Language
= [A: B, B: A];
Translate: PROC [code: Code, source: ROPE, to: Language] RETURNS [translated: ROPE];
}.