DictionaryP1313V1AuxImpl:
CEDAR
PROGRAM
IMPORTS Convert, Rope
EXPORTS DictionaryP1313V1Aux ~ {
OPEN DictionaryP1313V1, DictionaryP1313V1Aux;
ROPE: TYPE ~ Rope.ROPE;
ExposeDictionariesAvailable:
PUBLIC
PROC [arg: DictionariesAvailable, level:
NAT]
RETURNS [res:
ROPE] ~ {
res ¬ "[";
FOR i:
CARDINAL
IN [0..arg.length)
DO
res ¬ Rope.Cat[res, IF i>0 THEN ", " ELSE NIL, arg.body[i]];
ENDLOOP;
res ¬ Rope.Concat[res, "]"];
};
ExposeRawDefinition:
PUBLIC
PROC [arg: RawDefinition, level:
NAT]
RETURNS [res:
ROPE] ~ {
res ¬ "[";
FOR i:
CARDINAL
IN [0..arg.length)
DO
res ¬ Rope.Cat[res, IF i>0 THEN ", " ELSE NIL, ExposeComponent[arg.body[i], (level+1)]];
ENDLOOP;
res ¬ Rope.Concat[res, "]"];
};
ExposeLooks:
PUBLIC
PROC [arg: Looks, level:
NAT]
RETURNS [res:
ROPE] ~ {
res ¬ "[";
FOR i:
CARDINAL
IN [0..arg.length)
DO
res ¬ Rope.Cat[res, IF i>0 THEN ", " ELSE NIL, ExposeLooks2[arg.body[i], (level+1)]];
ENDLOOP;
res ¬ Rope.Concat[res, "]"];
};
ExposeSynonymClass:
PUBLIC
PROC [arg: SynonymClass, level:
NAT]
RETURNS [res:
ROPE] ~ {
res ¬ "[";
FOR i:
CARDINAL
IN [0..arg.length)
DO
res ¬ Rope.Cat[res, IF i>0 THEN ", " ELSE NIL, arg.body[i]];
ENDLOOP;
res ¬ Rope.Concat[res, "]"];
};
ExposeComponent:
PUBLIC
PROC [arg: Component, level:
NAT]
RETURNS [res:
ROPE] ~ {
res ¬ "[";
res ¬ Rope.Cat[res, "type~", arg.type, ", "];
res ¬ Rope.Cat[res, "text~", arg.text, ", "];
res ¬ Rope.Cat[res, "defaultFont~", arg.defaultFont, ", "];
res ¬ Rope.Cat[res, "runs~", ExposeRuns[arg.runs, (level+1)], "]"];
};
ExposeRawIntersectionResults:
PUBLIC
PROC [arg: RawIntersectionResults, level:
NAT]
RETURNS [res:
ROPE] ~ {
res ¬ "[";
FOR i:
CARDINAL
IN [0..arg.length)
DO
res ¬ Rope.Cat[res, IF i>0 THEN ", " ELSE NIL, ExposeRawIntersectionResult[arg.body[i], (level+1)]];
ENDLOOP;
res ¬ Rope.Concat[res, "]"];
};
ExposeLooks2:
PUBLIC
PROC [arg: Looks2, level:
NAT]
RETURNS [res:
ROPE] ~ {
res ¬ "[";
FOR i:
CARDINAL
IN [0..arg.length)
DO
res ¬ Rope.Cat[res, IF i>0 THEN ", " ELSE NIL, arg.body[i]];
ENDLOOP;
res ¬ Rope.Concat[res, "]"];
};
ExposeLanguages:
PUBLIC
PROC [arg: Languages, level:
NAT]
RETURNS [res:
ROPE] ~ {
res ¬ "[";
FOR i:
CARDINAL
IN [0..arg.length)
DO
res ¬ Rope.Cat[res, IF i>0 THEN ", " ELSE NIL, arg.body[i]];
ENDLOOP;
res ¬ Rope.Concat[res, "]"];
};
ExposeConjugations:
PUBLIC
PROC [arg: Conjugations, level:
NAT]
RETURNS [res:
ROPE] ~ {
res ¬ "[";
FOR i:
CARDINAL
IN [0..arg.length)
DO
res ¬ Rope.Cat[res, IF i>0 THEN ", " ELSE NIL, ExposeConjugation[arg.body[i], (level+1)]];
ENDLOOP;
res ¬ Rope.Concat[res, "]"];
};
ExposeCodes:
PUBLIC
PROC [arg: Codes, level:
NAT]
RETURNS [res:
ROPE] ~ {
res ¬ "[";
FOR i:
CARDINAL
IN [0..arg.length)
DO
res ¬ Rope.Cat[res, IF i>0 THEN ", " ELSE NIL, arg.body[i]];
ENDLOOP;
res ¬ Rope.Concat[res, "]"];
};
ExposeSynonymClasses:
PUBLIC
PROC [arg: SynonymClasses, level:
NAT]
RETURNS [res:
ROPE] ~ {
res ¬ "[";
FOR i:
CARDINAL
IN [0..arg.length)
DO
res ¬ Rope.Cat[res, IF i>0 THEN ", " ELSE NIL, ExposeSynonymClass[arg.body[i], (level+1)]];
ENDLOOP;
res ¬ Rope.Concat[res, "]"];
};
ExposeRuns:
PUBLIC
PROC [arg: Runs, level:
NAT]
RETURNS [res:
ROPE] ~ {
res ¬ "[";
FOR i:
CARDINAL
IN [0..arg.length)
DO
res ¬ Rope.Cat[res, IF i>0 THEN ", " ELSE NIL, ExposeRun[arg.body[i], (level+1)]];
ENDLOOP;
res ¬ Rope.Concat[res, "]"];
};
ExposeIntersectionResult:
PUBLIC
PROC [arg: IntersectionResult, level:
NAT]
RETURNS [res:
ROPE] ~ {
res ¬ "[";
res ¬ Rope.Cat[res, "keys~", ExposeWords[arg.keys, (level+1)], ", "];
res ¬ Rope.Cat[res, "results~", ExposeWords[arg.results, (level+1)], "]"];
};
ExposeRawIntersectionResult:
PUBLIC
PROC [arg: RawIntersectionResult, level:
NAT]
RETURNS [res:
ROPE] ~ {
res ¬ "[";
res ¬ Rope.Cat[res, "keys~", ExposeWords[arg.keys, (level+1)], ", "];
res ¬ Rope.Cat[res, "results~", ExposeIntegers[arg.results, (level+1)], "]"];
};
ExposeIntersectionResults:
PUBLIC
PROC [arg: IntersectionResults, level:
NAT]
RETURNS [res:
ROPE] ~ {
res ¬ "[";
FOR i:
CARDINAL
IN [0..arg.length)
DO
res ¬ Rope.Cat[res, IF i>0 THEN ", " ELSE NIL, ExposeIntersectionResult[arg.body[i], (level+1)]];
ENDLOOP;
res ¬ Rope.Concat[res, "]"];
};
ExposeConjugation:
PUBLIC
PROC [arg: Conjugation, level:
NAT]
RETURNS [res:
ROPE] ~ {
res ¬ "[";
res ¬ Rope.Cat[res, "partsOfSpeech~", arg.partsOfSpeech, ", "];
res ¬ Rope.Cat[res, "definition~", arg.definition, ", "];
res ¬ Rope.Cat[res, "status~", arg.status, "]"];
};
ExposeWords:
PUBLIC
PROC [arg: Words, level:
NAT]
RETURNS [res:
ROPE] ~ {
res ¬ "[";
FOR i:
CARDINAL
IN [0..arg.length)
DO
res ¬ Rope.Cat[res, IF i>0 THEN ", " ELSE NIL, arg.body[i]];
ENDLOOP;
res ¬ Rope.Concat[res, "]"];
};
ExposeSelection:
PUBLIC
PROC [arg: Selection, level:
NAT]
RETURNS [res:
ROPE] ~ {
res ¬ "[";
res ¬ Rope.Cat[res, "start~", Convert.RopeFromInt[arg.start], ", "];
res ¬ Rope.Cat[res, "length~", Convert.RopeFromInt[arg.length], "]"];
};
ExposeRun:
PUBLIC
PROC [arg: Run, level:
NAT]
RETURNS [res:
ROPE] ~ {
res ¬ "[";
res ¬ Rope.Cat[res, "start~", Convert.RopeFromInt[arg.start], ", "];
res ¬ Rope.Cat[res, "length~", Convert.RopeFromInt[arg.length], ", "];
res ¬ Rope.Cat[res, "font~", arg.font, "]"];
};
ExposeIntegers:
PUBLIC
PROC [arg: Integers, level:
NAT]
RETURNS [res:
ROPE] ~ {
res ¬ "[";
FOR i:
CARDINAL
IN [0..arg.length)
DO
res ¬ Rope.Cat[res, IF i>0 THEN ", " ELSE NIL, Convert.RopeFromInt[arg.body[i]]];
ENDLOOP;
res ¬ Rope.Concat[res, "]"];
};
ExposeDefinition:
PUBLIC
PROC [arg: Definition, level:
NAT]
RETURNS [res:
ROPE] ~ {
res ¬ "[";
res ¬ Rope.Cat[res, "definition~", arg.definition, ", "];
res ¬ Rope.Cat[res, "runs~", ExposeRuns[arg.runs, (level+1)], "]"];
};
}...