MODULE XhtmlEntitySets;
(**
project = "BlackBox"
organization = "www.oberon.ch"
contributors = "Oberon microsystems"
version = "System/Rsrc/About"
copyright = "System/Rsrc/About"
references = "http://www.w3.org/TR/xhtml1/DTD/HTMLlat1x.ent,
http://www.w3.org/TR/xhtml1/DTD/HTMLspecialx.ent,
http://www.w3.org/TR/xhtml1/DTD/HTMLsymbolx.ent"
license = "Docu/BB-License"
changes = ""
issues = ""
**)
(* XHTML entity sets (Latin-1 characters, special characters, symbols) according to:
Portions (C) International Organization for Standardization 1986
Permission to copy in any form is granted for use with
conforming SGML systems and applications as defined in
ISO 8879, provided this notice is included in all copies.
*)
PROCEDURE MapCharToEntity* (ch: CHAR; OUT s: ARRAY OF CHAR);
BEGIN
IF ch <= 00FFX THEN (* Latin-1 *)
CASE ch OF
| 0022X: s := """
| 0026X: s := "&"
| 003CX: s := "<"
| 003EX: s := ">"
(* character entities *)
| 00A0X: s := " "
| 00A1X: s := "¡"
| 00A2X: s := "¢"
| 00A3X: s := "£"
| 00A4X: s := "¤"
| 00A5X: s := "¥"
| 00A6X: s := "¦"
| 00A7X: s := "§"
| 00A8X: s := "¨"
| 00A9X: s := "©"
| 00AAX: s := "ª"
| 00ABX: s := "«"
| 00ACX: s := "¬"
| 00ADX: s := "­"
| 00AEX: s := "®"
| 00AFX: s := "¯"
| 00B0X: s := "°"
| 00B1X: s := "±"
| 00B2X: s := "²"
| 00B3X: s := "³"
| 00B4X: s := "´"
| 00B5X: s := "µ"
| 00B6X: s := "¶"
| 00B7X: s := "·"
| 00B8X: s := "¸"
| 00B9X: s := "¹"
| 00BAX: s := "º"
| 00BBX: s := "»"
| 00BCX: s := "¼"
| 00BDX: s := "½"
| 00BEX: s := "¾"
| 00BFX: s := "¿"
| 00C0X: s := "À"
| 00C1X: s := "Á"
| 00C2X: s := "Â"
| 00C3X: s := "Ã"
| 00C4X: s := "Ä"
| 00C5X: s := "Å"
| 00C6X: s := "Æ"
| 00C7X: s := "Ç"
| 00C8X: s := "È"
| 00C9X: s := "É"
| 00CAX: s := "Ê"
| 00CBX: s := "Ë"
| 00CCX: s := "Ì"
| 00CDX: s := "Í"
| 00CEX: s := "Î"
| 00CFX: s := "Ï"
| 00D0X: s := "Ð"
| 00D1X: s := "Ñ"
| 00D2X: s := "Ò"
| 00D3X: s := "Ó"
| 00D4X: s := "Ô"
| 00D5X: s := "Õ"
| 00D6X: s := "Ö"
| 00D7X: s := "×"
| 00D8X: s := "Ø"
| 00D9X: s := "Ù"
| 00DAX: s := "Ú"
| 00DBX: s := "Û"
| 00DCX: s := "Ü"
| 00DDX: s := "Ý"
| 00DEX: s := "Þ"
| 00DFX: s := "ß"
| 00E0X: s := "à"
| 00E1X: s := "á"
| 00E2X: s := "â"
| 00E3X: s := "ã"
| 00E4X: s := "ä"
| 00E5X: s := "å"
| 00E6X: s := "æ"
| 00E7X: s := "ç"
| 00E8X: s := "è"
| 00E9X: s := "é"
| 00EAX: s := "ê"
| 00EBX: s := "ë"
| 00ECX: s := "ì"
| 00EDX: s := "í"
| 00EEX: s := "î"
| 00EFX: s := "ï"
| 00F0X: s := "ð"
| 00F1X: s := "ñ"
| 00F2X: s := "ò"
| 00F3X: s := "ó"
| 00F4X: s := "ô"
| 00F5X: s := "õ"
| 00F6X: s := "ö"
| 00F7X: s := "÷"
| 00F8X: s := "ø"
| 00F9X: s := "ù"
| 00FAX: s := "ú"
| 00FBX: s := "û"
| 00FCX: s := "ü"
| 00FDX: s := "ý"
| 00FEX: s := "þ"
| 00FFX: s := "ÿ"
ELSE
s[0] := ch; s[1] := 0X
END
ELSIF ch <= 02DCX THEN (* Latin Extended-A and spacing modifier letters *)
IF ch = 0152X THEN s := "Œ"
ELSIF ch = 0153X THEN s := "œ"
ELSIF ch = 0160X THEN s := "Š"
ELSIF ch = 0161X THEN s := "š"
ELSIF ch = 0178X THEN s := "Ÿ"
ELSIF ch = 02C6X THEN s := "ˆ"
ELSIF ch = 02DCX THEN s := "˜"
ELSE s := ""
END
ELSIF ch <= 03D6X THEN (* greek *)
CASE ch OF
| 0391X: s := "Α"
| 0392X: s := "Β"
| 0393X: s := "Γ"
| 0394X: s := "Δ"
| 0395X: s := "Ε"
| 0396X: s := "Ζ"
| 0397X: s := "Η"
| 0398X: s := "Θ"
| 0399X: s := "Ι"
| 039AX: s := "Κ"
| 039BX: s := "Λ"
| 039CX: s := "Μ"
| 039DX: s := "Ν"
| 039EX: s := "Ξ"
| 039FX: s := "Ο"
| 03A0X: s := "Π"
| 03A1X: s := "Ρ"
| 03A3X: s := "Σ"
| 03A4X: s := "Τ"
| 03A5X: s := "Υ"
| 03A6X: s := "Φ"
| 03A7X: s := "Χ"
| 03A8X: s := "Ψ"
| 03A9X: s := "Ω"
| 03B1X: s := "α"
| 03B2X: s := "β"
| 03B3X: s := "γ"
| 03B4X: s := "δ"
| 03B5X: s := "ε"
| 03B6X: s := "ζ"
| 03B7X: s := "η"
| 03B8X: s := "θ"
| 03B9X: s := "ι"
| 03BAX: s := "κ"
| 03BBX: s := "λ"
| 03BCX: s := "μ"
| 03BDX: s := "ν"
| 03BEX: s := "ξ"
| 03BFX: s := "ο"
| 03C0X: s := "π"
| 03C1X: s := "ρ"
| 03C2X: s := "ς"
| 03C3X: s := "σ"
| 03C4X: s := "τ"
| 03C5X: s := "υ"
| 03C6X: s := "φ"
| 03C7X: s := "χ"
| 03C8X: s := "ψ"
| 03C9X: s := "ω"
| 03D1X: s := "ϑ"
| 03D2X: s := "ϒ"
| 03D6X: s := "ϖ"
ELSE s := ""
END
ELSIF ch <= 232AX THEN (* general punctuation, arrows, etc. *)
CASE ch OF
| 2002X: s := " "
| 2003X: s := " "
| 2009X: s := " "
| 2022X: s := "•"
| 2026X: s := "…"
| 2032X: s := "′"
| 2033X: s := "″"
| 203EX: s := "‾"
| 2044X: s := "⁄"
| 2070X: s := "‌"
| 200DX: s := "‍"
| 200EX: s := "‎"
| 200FX: s := "‏"
| 2013X: s := "–"
| 2014X: s := "—"
| 2018X: s := "‘"
| 2019X: s := "’"
| 201AX: s := "‚"
| 201CX: s := "“"
| 201DX: s := "”"
| 201EX: s := "„"
| 2020X: s := "†"
| 2021X: s := "‡"
| 2030X: s := "‰"
| 2039X: s := "‹"
| 203AX: s := "›"
| 20ACX: s := "€"
| 2118X: s := "℘"
| 2111X: s := "ℑ"
| 211CX: s := "ℜ"
| 2122X: s := "™"
| 2135X: s := "ℵ"
| 2190X: s := "←"
| 2191X: s := "↑"
| 2192X: s := "→"
| 2193X: s := "↓"
| 2194X: s := "↔"
| 21B5X: s := "↵"
| 21D0X: s := "⇐"
| 21D1X: s := "⇑"
| 21D2X: s := "⇒"
| 21D3X: s := "⇓"
| 21D4X: s := "⇔"
| 2200X: s := "∀"
| 2202X: s := "∂"
| 2203X: s := "∃"
| 2205X: s := "∅"
| 2207X: s := "∇"
| 2208X: s := "∈"
| 2209X: s := "∉"
| 220BX: s := "∋"
| 220FX: s := "∏"
| 2211X: s := "∑"
| 2212X: s := "−"
| 2217X: s := "∗"
| 221AX: s := "√"
| 221DX: s := "∝"
| 221EX: s := "∞"
| 2220X: s := "∠"
| 2227X: s := "∧"
| 2228X: s := "∨"
| 2229X: s := "∩"
| 222AX: s := "∪"
| 222BX: s := "∫"
| 2234X: s := "∴"
| 223CX: s := "∼"
| 2245X: s := "≅"
| 2248X: s := "≈"
| 2260X: s := "≠"
| 2261X: s := "≡"
| 2264X: s := "≤"
| 2265X: s := "≥"
| 2282X: s := "⊂"
| 2283X: s := "⊃"
| 2284X: s := "⊄"
| 2286X: s := "⊆"
| 2287X: s := "⊇"
| 2295X: s := "⊕"
| 2297X: s := "⊗"
| 22A5X: s := "⊥"
| 22C5X: s := "⋅"
| 2308X: s := "⌈"
| 2309X: s := "⌉"
| 230AX: s := "⌊"
| 230BX: s := "⌋"
| 2329X: s := "⟨"
| 232AX: s := "⟩"
ELSE
s := ""
END
ELSE (* miscellaneous other symbols *)
IF ch = 25CAX THEN s := "◊"
ELSIF ch = 2660X THEN s := "♠"
ELSIF ch = 2663X THEN s := "♣"
ELSIF ch = 2665X THEN s := "♥"
ELSIF ch = 2666X THEN s := "♦"
ELSE s := ""
END
END
END MapCharToEntity;
END XhtmlEntitySets.