# Liblouis: Misc character definitions for Danish 6 dots (all grades)
#
# By Bue Vester-Andersen
#
#  This file is part of liblouis.
#
#  liblouis is free software: you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as
#  published by the Free Software Foundation, either version 2.1 of the
#  License, or (at your option) any later version.
#
#  liblouis is distributed in the hope that it will be useful, but
#  WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
#  Lesser General Public License for more details.
#
#  You should have received a copy of the GNU Lesser General Public
#  License along with liblouis. If not, see
#  <http://www.gnu.org/licenses/>.
#
#------------
# This file contains miscelaneous unicode character definitions used by 6 dots, all grades.
# The aim is to include all unicode characters that have a meaningful 6 dots representation in Danish Braille.
#
# Most character definitions in this file have the noback flag set,
# meaning they will not be used for back-translation.
# This is due to the fact that many characters share the same Braille definition.
# The characters used for back-translation are marked with (back) making them more searchable.
# Where cp1252 and unicode overlap, the unicode version of a character is used for back-translation.
#
# Version: Bue Vester-Andersen 170604

# CP1252 (\x0080-\x009f)
noback sign \x0080 45-15 #EURO SIGN (0x80)
noback punctuation \x0082 4 #Low single quote (0x82)
noback sign \x0083 45-124 #Flurihn (0x83)
noback punctuation \x0084 2356 #Low quote (0x84)
noback punctuation \x0085 3-3-3 #Elipsis (0x85)
noback math \x0089 245-356-356 #permille sign (0x89)
noback uplow \x008a\x009a 5-234 #LATIN LETTER S WITH CARON (0x8a)
noback punctuation \x008b 4 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK (0x8b)
noback uplow \x008c\x009c 135-15 #LATIN LIGATURE OE (0x8c)
noback uplow \x008e\x009e 5-1356 #LATIN CAPITAL LETTER Z WITH CARON (0x8e)
noback punctuation \x0091 4 #LEFT SINGLE QUOTATION MARK (0x91)
noback punctuation \x0092 4 #RIGHT SINGLE QUOTATION MARK (0x92)
noback punctuation \x0093 2356 #LEFT DOUBLE QUOTATION MARK (0x93)
noback punctuation \x0094 2356 #RIGHT DOUBLE QUOTATION MARK (0x94)
noback sign \x0095 45-3 #Bullit (0x95)
noback sign \x0096 36-36 #EN DASH (0x96)
noback sign \x0097 36-36 #Em DASH (0x97)
noback sign \x0099 45-2345 #TRADE MARK SIGN (0x99)
noback punctuation \x009b 4 #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (0x9b)
noback uppercase \x009f 5-13456 #LATIN CAPITAL LETTER Y WITH DIAERESIS (0x9f)

# Latin-1 Supplement (Unicode block) (\x00a0-\x00ff)
noback punctuation \x00a0 0 NO-BREAK SPACE (0xa0)
noback punctuation \x00a1 256 INVERTED EXCLAMATION MARK )0xa1)
punctuation \x00a2 45-25 CENT SIGN (0xa2)
punctuation \x00a3 45-123 POUND SIGN (0xa3)
#punctuation \x00a4 2367 CURRENCY SIGN (0xa4)
punctuation \x00a5 45-13456 YEN SIGN (0xa5)
#punctuation \x00a6 3478 BROKEN BAR (0xa6)
#punctuation \x00a8 6-56 DIAERESIS (0xa8)
punctuation \x00a9 45-14 COPYRIGHT SIGN (0xa9)
#letter \x00aa 234678 FEMININE ORDINAL INDICATOR (0xaa)
noback punctuation \x00ab 2356 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK (0xab)
#punctuation \x00ac 34567 NOT SIGN (0xac)
noback punctuation \x00ad 36 SOFT HYPHEN (0xad)
punctuation \x00ae 45-1235 REGISTERED SIGN (0xae)
#punctuation \x00af 23567 MACRON (0xaf)
sign \x00b0 4-356 DEGREE SIGN (0xb0)
noback math \x00b1 45-235-36 PLUS-MINUS SIGN
digit \x00b2 346-12 SUPERSCRIPT TWO
digit \x00b3 346-14 SUPERSCRIPT THREE
noback punctuation \x00b4 4 ACUTE ACCENT
sign \x00b5 5-134 MICRO SIGN
#punctuation \x00b6 1234568 PILCROW SIGN
#punctuation \x00b7 38 MIDDLE DOT
#punctuation \x00b8 4678 CEDILLA
digit \x00b9 346-1 SUPERSCRIPT ONE
#letter \x00ba 12345678 MASCULINE ORDINAL INDICATOR
noback punctuation \x00bb 2356 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
sign \x00bc 3456-1-34-145 VULGAR FRACTION ONE QUARTER
sign \x00bd 3456-1-34-12 VULGAR FRACTION ONE HALF
sign \x00be 3456-14-34-145 VULGAR FRACTION THREE QUARTERS
noback punctuation \x00bf 26 INVERTED QUESTION MARK
uplow \x00c0\x00e0 5-1 LATIN LETTER A WITH GRAVE
noback uplow \x00c1\x00e1 5-1 LATIN LETTER A WITH ACUTE
noback uplow \x00c2\x00e2 5-1 LATIN LETTER A WITH CIRCUMFLEX
noback uplow \x00c3\x00e3 5-1 LATIN LETTER A WITH TILDE
noback uplow \x00c4\x00e4 345 LATIN LETTER A WITH DIAERESIS
uplow \x00c7\x00e7 5-14 LATIN LETTER C WITH CEDILLA
noback uplow \x00c8\x00e8 5-15 LATIN LETTER E WITH GRAVE
uplow \x00c9\x00e9 5-15 LATIN LETTER E WITH ACUTE 
noback uplow \x00ca\x00ea 5-15 LATIN LETTER E WITH CIRCUMFLEX
noback uplow \x00cb\x00eb 5-15 LATIN LETTER E WITH DIAERESIS
noback uplow \x00cc\x00ec 5-24 LATIN LETTER I WITH GRAVE
noback uplow \x00cd\x00ed 5-24 LATIN LETTER I WITH ACUTE
uplow \x00ce\x00ee 5-24 LATIN LETTER I WITH CIRCUMFLEX (first for back-translation)
noback uplow \x00cf\x00ef 5-24 LATIN LETTER I WITH DIAERESIS
uplow \x00d0\x00f0 5-145 LATIN LETTER ETH
uplow \x00d1\x00f1 5-1345 LATIN LETTER N WITH TILDE
noback uplow \x00d2\x00f2 5-135 LATIN LETTER O WITH GRAVE
noback uplow \x00d3\x00f3 5-135 LATIN LETTER O WITH ACUTE
uplow \x00d4\x00f4 5-135 LATIN LETTER O WITH CIRCUMFLEX (first for back-translation)
noback uplow \x00d5\x00f5 5-135 LATIN LETTER O WITH TILDE
noback uplow \x00d6\x00f6 246 LATIN LETTER O WITH DIAERESIS
math \x00d7 45-3 MULTIPLICATION SIGN
noback uplow \x00d9\x00f9 5-136 LATIN LETTER U WITH GRAVE
noback uplow \x00da\x00fa 5-136 LATIN LETTER U WITH ACUTE
uplow \x00db\x00fb 5-136 LATIN LETTER U WITH CIRCUMFLEX (first for back-translation
uplow \x00dd\x00fd 5-13456 LATIN LETTER Y WITH ACUTE (infinite?)
uplow \x00de\x00fe 5-2345 LATIN CAPITAL LETTER THORN
noback lowercase \x00df 234-234 LATIN SMALL LETTER SHARP S
math \x00f7 45-256 DIVISION SIGN

# Latin Extended-A (\x0100-\x017f)

noback uplow \x0100\x0101 5-1 Latin letter a with macron
noback uplow \x0102\x0103 5-1 Latin letter a with breve
noback uplow \x0104\x0105 5-1 Latin letter a with ogonek
noback uplow \x0106\x0107 5-14 Latin letter c with acute
noback uplow \x0108\x0109 5-14 Latin letter c with circumflex
noback uplow \x010a\x010b 5-14 Latin letter c with dot above
noback uplow \x010c\x010d 5-14 Latin letter c with caron
noback uplow \x010e\x010f 5-145 Latin letter d with caron
noback uplow \x0110\x0111 5-145 Latin letter d with stroke
noback uplow \x0112\x0113 5-15 Latin letter e with macron
noback uplow \x0114\x0115 5-15 Latin letter e with breve
noback uplow \x0116\x0117 5-15 Latin letter e with dot above
noback uplow \x0118\x0119 5-15 Latin letter e with ogonek
noback uplow \x011a\x011b 5-15 Latin letter e with caron
noback uplow \x011c\x011d 5-1245 Latin letter g with circumflex
noback uplow \x011e\x011f 5-1245 Latin letter g with breve
noback uplow \x0120\x0121 5-1245 Latin letter g with dot above
noback uplow \x0122\x0123 5-1245 Latin letter g with cedilla
noback uplow \x0124\x0125 5-125 Latin letter h with circumflex
noback uplow \x0126\x0127 5-125 Latin letter h with stroke
noback uplow \x0128\x0129 5-24 Latin letter i with tilde
noback uplow \x012a\x012b 5-24 Latin letter i with macron
noback uplow \x012c\x012d 5-24 Latin letter i with breve
noback uplow \x012e\x012f 5-24 Latin letter i with ogonek
noback uplow \x0130\x0131 5-24 Latin capital letter i with dot above / small dotless i
noback uplow \x0132\x0133 24-245 Latin ligature ij
noback uplow \x0134\x0135 5-245 Latin letter j with circumflex
noback uplow \x0136\x0137 5-13 Latin letter k with cedilla
noback lowercase \x0138 5-12345 Small latin letter kra (Greenlandic q)
noback uplow \x0139\x013a 5-123 Latin letter l with acute
noback uplow \x013b\x013c 5-123 Latin letter l with cedilla
noback uplow \x013d\x013e 5-123 Latin letter l with caron
noback uplow \x013f\x0140 5-123 Latin letter l with middle dot
noback uplow \x0141\x0142 5-123 Latin letter l with stroke
noback uplow \x0143\x0144 5-1345 Latin letter n with acute
noback uplow \x0145\x0146 5-1345 Latin letter n with cedilla
noback uplow \x0147\x0148 5-1345 Latin letter n with caron
noback lowercase \x0149 4-1345 Latin small letter n preceeded by apostrophe
noback uplow \x014a\x014b 5-1345 Latin letter eng
noback uplow \x014c\x014d 5-135 Latin letter o with macron
noback uplow \x014e\x014f 5-135 Latin letter o with breve
noback uplow \x0150\x0151 5-135 Latin letter o with double acute
noback uplow \x0152\x0153 135-15 #LATIN LIGATURE OE (0x8c)
noback uplow \x0154\x0155 5-1235 Latin letter r with acute
noback uplow \x0156\x0157 5-1235 Latin letter r with cedilla
noback uplow \x0158\x0159 5-1235 Latin letter r with caron
noback uplow \x015a\x015b 5-234 Latin letter s with acute
noback uplow \x015c\x015d 5-234 Latin letter s with circumflex
noback uplow \x015e\x015f 5-234 Latin letter s with cedilla
uplow \x0160\x0161 5-234 #LATIN LETTER S WITH CARON (0x8a)
noback uplow \x0162\x0163 5-2345 Latin letter t with cedilla
noback uplow \x0164\x0165 5-2345 Latin letter t with caron
noback uplow \x0166\x0167 5-2345 Latin letter t with stroke
noback uplow \x0168\x0169 5-136 Latin letter u with tilde
noback uplow \x016a\x016b 5-136 Latin letter u with macron
noback uplow \x016c\x016d 5-136 Latin letter u with breve
noback uplow \x016e\x016f 5-136 Latin letter u with ring above
noback uplow \x0170\x0171 5-136 Latin letter u with double acute
noback uplow \x0172\x0173 5-136 Latin letter u with ogonek
noback uplow \x0174\x0175 5-2456 Latin letter w with circumflex
noback uplow \x0176\x0177 5-13456 Latin letter y with circumflex
uplow \x0178\x00ff 5-13456 #LATIN LETTER Y WITH DIAERESIS (0x9f)
noback uplow \x0179\x017a 5-1356 Latin letter z with acute
noback uplow \x017b\x017c 5-1356 Latin letter z with dot above
uplow \x017d\x017e 5-1356 #LATIN LETTER Z WITH CARON (0x8e)
noback lowercase \x017f 5-234 Latin small letter long s 

# Latin Extended-B 


sign \x0192 45-124 #Flurihn (0x83)
#letter \x02c6 5678 #Modifier letter circumflex (0x88)
noback sign \x02DC 45-6 #SMALL TILDE (0x98)

# Greek letters (with dot 5 as prefix)

noback uplow \x0386\x03AC 5-1 Greek letter alpha with tonos
noback uplow \x0388\x03AD 5-15 Greek letter epsilon with tonos
noback uplow \x0389\x03AE 5-345 Greek letter eta with tonos
noback uplow \x038A\x03AF 5-24 Greek letter iota with sonos
noback uplow \x038C\x03CC 5-135 Greek letter omicron with tonos
noback uplow \x038E\x03CD 5-13456 Greek letter upsilon with tonos
noback uplow \x038F\x03CE 5-245 Greek letter omega with tonos

noback uplow \x0391\X03B1 5-1 Greek letter alpha
noback uplow \x0392\X03B2 5-12 Greek letter beta
noback uplow \x0393\X03B3 5-1245 Greek letter gamma
noback uplow \x0394\X03B4 5-145 Greek letter delta
noback uplow \x0395\X03B5 5-15 Greek letter epsilon
noback uplow \x0396\X03B6 5-1356 Greek letter zeta
noback uplow \x0397\X03B7 5-345 Greek letter eta
noback uplow \x0398\X03B8 5-1456 Greek letter theta
noback uplow \x0399\X03B9 5-24 Greek letter iota
noback uplow \x039A\X03BA 5-13 Greek letter kappa
noback uplow \x039B\X03BB 5-123 Greek letter lamda
noback uplow \x039C\X03BC 5-134 Greek letter Mu
noback uplow \x039D\X03BD 5-1345 Greek letter Nu
noback uplow \x039E\X03BE 5-1346 Greek letter Xi
noback uplow \x039F\X03BF 5-135 Greek letter Omicron
noback uplow \x03A0\X03C0 5-1234 Greek letter Pi
noback uplow \x03A1\X03C1 5-1235 Greek letter Rho
noback uplow \x03A3\X03C3 5-234 Greek letter sigma
noback uplow \x03A4\X03C4 5-2345			Greek letter Tau
noback uplow \x03A5\X03C5 5-13456 Greek letter Upsilon
noback uplow \x03A6\X03C6 5-124 Greek letter Phi
noback uplow \x03A7\X03C7 5-125 Greek letter Chi
noback uplow \x03A8\X03C8 5-12346 Greek letter Psi
noback uplow \x03A9\X03C9 5-245 Greek letter Omega




noback sign \x2013 36-36 #EN DASH (0x96)
noback sign \x2014 36-36 #Em DASH (0x97)
noback punctuation \x2018 4 #LEFT SINGLE QUOTATION MARK (0x91)
noback punctuation \x2019 4 #RIGHT SINGLE QUOTATION MARK (0x92)
noback punctuation \x201A 4 #Low single quote (0x82)
noback punctuation \x201c 2356 #LEFT DOUBLE QUOTATION MARK (0x93)
noback punctuation \x201d 2356 #RIGHT DOUBLE QUOTATION MARK (0x94)
noback punctuation \x201E 2356 #Low quote (0x84)
#letter \x2020 2357 #Dagger (0x86
#letter \x2021 23578 #Double dagger (0x87
sign \x2022 45-3 #Bullit (0x95)
noback sign \x2023 45-3 #Triangular bullit
noback punctuation \x2026 3-3-3 #Elipsis (0x85)
math \x2030 245-356-356 #permille sign (0x89)
noback punctuation \x2039 4 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK (0x8b)
noback punctuation \x203A 4 #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (0x9b)
noback sign \x2043 45-3 # Hyphen bullet (0x95)
noback sign \x204c 45-3 # BLACK LEFTWARDS BULLET 
noback sign \x204d 45-3 # BLACK RIGHTWARDS BULLET 
sign \x20AC 45-15 #EURO SIGN (0x80)
sign \x2122 45-2345 #TRADE MARK SIGN (0x99)

# Arrows

sign \x2190 45-2456 Left arrow
sign \x2191 45-12356 Up arrow
sign \x2192 45-1235 Right arrow
sign \x2193 45-12345 Down arrow

# Geometrical shapes

noback sign \x25e6 45-3 #White bullet
