<> <> <> DIRECTORY Rope USING [ROPE]; ColorNames: CEDAR DEFINITIONS = BEGIN UndefinedName: SIGNAL; HueType: TYPE = { undefined, black, white, gray, grey, red, orangishRed, redOrange, reddishOrange, brownishRed, redBrown, reddishBrown, orange, yellowishOrange, orangeYellow, orangishYellow, brown, yellowishBrown, brownYellow, brownishYellow, yellow, greenishYellow, yellowGreen, yellowishGreen, green, bluishGreen, greenBlue, greenishBlue, blue, purplishBlue, bluePurple, bluishPurple, purple, reddishPurple, purpleRed, purplishRed }; SaturationType: TYPE = { default, achromatic, weak, moderate, strong, vivid }; LightnessType: TYPE = { default, veryDark, dark, medium, light, veryLight }; Names: TYPE = RECORD[hue: HueType, saturation: SaturationType, lightness: LightnessType]; ParseColorName: PUBLIC PROCEDURE [rope: Rope.ROPE] RETURNS [Names]; <> <> <<>> <> <> <> <> <> <> <> <<>> NamesToRope: PUBLIC PROCEDURE [names: Names] RETURNS [rope: Rope.ROPE]; NamesToHSL: PUBLIC PROCEDURE [names: Names] RETURNS [h,s,l: REAL]; HSLToNames: PUBLIC PROCEDURE [h,s,l: REAL] RETURNS [Names]; END.