#
#  Copyright (C) 2015,2016 Tsengel Maidar tsengel@digitalsunngo.org of Digital Sun Accessible Technology Development
#  Copyright (C) 2015 Sreeja sreeja.param@gmail.com
#  Copyright (C) 2015 Dipendra Manocha d@saksham.org
#
#  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 table contains braille codes and rules for Mongolian script.
# Contributors: Dipendra Manocha, Sreeja, Tsengel
# To report any bugs or any suggestion, please write to d@saksham.org and sreeja.param@gmail.com

include ru-ru.dis    # All display opcodes
include UEBC-g1.utb

# ----------- define all chars --------------------------------------

space \t 0
space \x000A 0
space \x000D 0
space \s 0 blank
replace \x0007

punctuation \x00AB 236
punctuation \x00BB 356
include loweredDigits6Dots.uti

# mongolian symbols

punctuation ? 26
math < 4-26
math > 4-345
math = 5-2356
sign @ 4-1
punctuation ; 23
punctuation : 25
math / 34
punctuation . 256
punctuation - 36
punctuation , 2
sign * 5-35
math + 5-235
punctuation ' 3
punctuation ( 5-126
punctuation ) 5-345
punctuation ! 235
punctuation " 45-356
sign # 456-1456
sign $ 4-234
sign % 46-356
sign & 4-12346
punctuation [ 46-126
punctuation ] 46-345
punctuation { 456-126
punctuation } 456-345
sign ^ 4-26
sign _ 46-36
sign ` 356
sign | 456-1256
 math ~ 4-35


# The Alphabet
uplow \x0410\x0430 1
uplow \x0411\x0431 12
uplow \x0412\x0432 2456
uplow \x0413\x0433 1245
uplow \x0414\x0434 145
uplow \x0415\x0435 15
uplow \x0416\x0436 245
uplow \x0417\x0437 1356
uplow \x0418\x0438 24
uplow \x0419\x0439 12346
uplow \x041A\x043A 13
uplow \x041B\x043B 123
uplow \x041C\x043C 134
uplow \x041D\x043D 1345
uplow \x041E\x043E 135
uplow \x041F\x043F 1234
uplow \x0420\x0440 1235
uplow \x0421\x0441 234
uplow \x0422\x0442 2345
uplow \x0423\x0443 136
uplow \x0424\x0444 124
uplow \x0425\x0445 125
uplow \x0426\x0446 14
uplow \x0427\x0447 12345
uplow \x0428\x0448 156
uplow \x0429\x0449 1346
uplow \x042A\x044A 12356
uplow \x042B\x044B 2346
uplow \x042C\x044C 23456
uplow \x042D\x044D 246
uplow \x042E\x044E 1256
uplow \x042F\x044F 1246
uplow \x0401\x0451 16


#mongolian symbols

sign  ` 356
sign ` 236 dots
sign  `  356
sign – 36
sign — 6-36
sign ' 3
sign ‘ 6-236
sign ’ 6-356
sign « 456-236
sign » 456-356
sign ± 456-235
sign ● 45-1246
sign ¨ 45-25
sign  ➔ 25-135
sign • 456-256
sign − 5-36
sign \x2213 456-36
sign  ≤ 456-4-126
sign  ≥ 456-4-345
sign \x2286 456-45-126
sign \x2287 456-45-345
sign \x266E 3456-16
sign ♭ 3456-126
sign ♯ 3456-146
sign ₣ 4-124
sign † 1-6-1456
sign ‡ 1-6-12456
sign ♀ 45-1346
sign ♂ 45-13456
sign 〃 5-2
sign ∥ 3456-123
sign ◦ 5-356
sign \x27C2 3456-36
sign \x2228 4-235
sign ∧ 4-236
sign ∪ 46-235
sign ∀ 45-1
sign ∇ 45-145
sign ‹ 124568
sign › 5-8
sign ≡ 456-123456
sign ≈ 45-35
sign ∫ 56-2346
sign ⌠ 347
sign ⌡ 1567
sign ∩ 46-236
sign ∙ 48
sign ¯ 4-36
sign ― 5-6-36
sign ‗  36
sign ′ 56-2356
sign ″ 56-2356-56-2356
sign ∞ 3456-123456
sign ∂ 4-145
sign √ 5-146
sign α 56-46-1
sign π 56-46-1234
sign β 56-46-12
sign º 145-1245
sign ¼  3456-1-34-145
sign ½  3456-1-34-12
sign ¾  3456-14-34-145
sign ´  45-34
sign ● 35

sign \\ 12567                   # 92

space \X00A0 0                  # 160 no-break space
sign \x00A2 4-14                # 162 ¢ cents sign
sign \x00A3 4-123               # 163 £ pounds sign

sign \x00A5 4-13456             # 165 ¥ yen sign

sign § 4-234-3                  # 167 section sign \x00A7

sign \x00A9 2356-6-14-2356      # 169 © copyright sign
sign \x00AE 2356-6-1235-2356    # Registered
# sign \X2116 1345 # NUMERO SIGN
punctuation \x00Ad 36           # 173 soft hyphen
sign \x00B0 356 degrees
sign \x00B4 4
always \x00B4 4                 # acute accent sign
sign \x00B5 2-134               # micro sign, (mu)
sign \x00B6 4-1234-345          # 182  ¶ pilcrow sign

punctuation \x2010 36           # 8208  hyphen
punctuation \x2011 23478        # 8209  non-breaking hyphen

punctuation \x2013 36-36        # 8211  en dash
punctuation \x2014 36-36        # em dash
punctuation \x2018 6-236        # 8216  smart single left quotation mark
punctuation \x2019 356-3        # 8217  smart single right quotation mark

punctuation \x201C 236          # 8220  smart opening double quote
punctuation \x201D 356          # 8221  smart closing double quote
punctuation \x201E 236          # 8222  smart double low quotation mark
punctuation \x201F 356          # 8223  smart double high reverse quotation mark

punctuation \x2026 256-256-256  # 8230 smart ellipsis
sign \x20AC 4-15                # 8364 Euro sign anywhere else

sign \x2116 4-1345              # mongolian number sign
sign \x20AE 4-2345              # mongolian currency symbol

# Braille indicators
numsign 3456  #number sign, just a dots operand
capsletter 6
emphclass italic
begemphphrase italic 456

# the decimal digits
include litdigits6Dots.uti

# Letters are defined in en-chardefs
include chardefs.cti

# accented letters

uplow \x00C0\x00E0 1            # a with grave
uplow \x00C1\x00E1 1            # a with acute
uplow \x00C2\x00E2 1            # a with circumflex
uplow \x00C3\x00E3 1            # a with tilde
uplow \x00C4\x00E4 1            # a with dieresis
uplow \x00C5\x00E5 1            # a with ring above
uplow \x00C6\x00E6 1            # letter ae
uplow \x00C7\x00E7 14           # c with cedilla
uplow \x00C8\x00E8 15           # e with grave
uplow \x00C9\x00E9 15           # e with acute
uplow \x00CA\x00EA 15           # e with circumflex
uplow \x00CB\x00EB 15           # e with dieresis
uplow \x00CC\x00EC 24           # i with grave above
uplow \x00CD\x00ED 24           # i with acute above
uplow \x00CE\x00EE 24           # i with circumflex
uplow \x00CF\x00EF 24           # i with dieresis
uplow \x00D0\x00F0 15           # letter eth
uplow \x00D1\x00F1 1345         # n with tilde
uplow \x00D2\x00F2 135          # o with grave above
uplow \x00D3\x00F3 135          # o with acute above
uplow \x00D4\x00F4 135          # o with circumflex
uplow \x00D5\x00F5 135          # o with tilde
uplow \x00D6\x00F6 135          # o with dieresis
uplow \x00D8\x00F8 135          # o with stroke
uplow \x00D9\x00F9 136          # u with grave above
uplow \x00DA\x00FA 136          # u with acute above
uplow \x00DB\x00FB 136          # u with circumflex above
uplow \x00DC\x00FC 136          # u with dieeresis
uplow \x00DD\x00FD 13456        # y with acute above
uplow \x00DE\x00FE 4-1456       # letter thorn
letter \x00DF 2346              # small sharp s
uplow \x0174\x0175 4-2456       # w with circumflex
uplow \x0176\x0177 4-13456      # y with circumflex
uplow \x0178\x00ff 4-13456      # y with diaeresis
uplow \x1ef2\x1ef3 4-13456      # y with grave
largesign \x00C0 4-1      # [C0] upper a grave
largesign \x00E0 4-1      # [E0] lower a grave
largesign \x00C1 4-1      # [C1] upper a acute
largesign \x00E1 4-1      # [E1] lower a acute
largesign \x00C2 4-1      # [C2] upper a circumflex
largesign \x00E2 4-1      # [E2] lower a circumflex
largesign \x00C3 4-1      # [C3] upper a tilde
largesign \x00E3 4-1      # [E3] lower a tilde
largesign \x00C4 4-1      # [C4] upper a dieresis
largesign \x00E4 4-1      # [E4] lower a dieresis

largesign \x00C5 4-1      # [C5] upper a ring
largesign \x00E5 4-1      # [E5] lower a ring

largesign \x00C6 1-15     # [C6] upper ae
largesign \x00E6 1-15     # [E6] lower ae

largesign \x00C7 4-14     # [C7] upper c cedilla
largesign \x00E7 4-14     # [E7] lower c cedilla

largesign \x00C8 4-15     # [C8] upper e grave
largesign \x00E8 4-15     # [E8] lower e grave

largesign \x00C9 4-15     # [C9] upper e acute
largesign \x00E9 4-15     # [E9] lower e acute

largesign \x00CA 4-15     # [CA] upper e circumflex
largesign \x00EA 4-15     # [EA] lower e circumflex

largesign \x00CB 4-15     # [CB] upper e dieresis
largesign \x00EB 4-15     # [EB] lower e dieresis

largesign \x00CC 4-24     # [CC] upper i grave
largesign \x00EC 4-24     # [EC] lower i grave

largesign \x00CD 4-24     # [CD] upper i acute
largesign \x00ED 4-24     # [ED] lower i acute

largesign \x00CE 4-24     # [CE] upper i circumflex
largesign \x00EE 4-24     # [EE] lower i circumflex

largesign \x00CF 4-24     # [CF] upper i dieresis
largesign \x00EF 4-24     # [EF] lower i dieresis

largesign \x00D0 4-15     # [D0] upper eth
largesign \x00F0 4-15     # [F0] lower eth

largesign \x00D1 4-1345   # [D1] upper n tilde
largesign \x00F1 4-1345   # [F1] lower n tilde

largesign \x00D2 4-135    # [D2] upper o grave
largesign \x00F2 4-135    # [F2] lower o grave

largesign \x00D3 4-135    # [D3] upper o acute
largesign \x00F3 4-135    # [F3] lower o acute

largesign \x00D4 4-135    # [D4] upper o circumflex
largesign \x00F4 4-135    # [F4] lower o circumflex

largesign \x00D5 4-135    # [D5] upper o tilde
largesign \x00F5 4-135    # [F5] lower o tilde

largesign \x00D6 4-135    # [D6] upper o dieresis
largesign \x00F6 4-135    # [F6] lower o dieresis

largesign \x00D8 4-135    # [D8] upper o slash
largesign \x00f8 4-135    # [F8] lower o slash

largesign \x00D9 4-136    # [D9] upper u grave
largesign \x00F9 4-136    # [F9] lower u grave

largesign \x00DA 4-136    # [DA] upper u acute
largesign \x00FA 4-136    # [FA] lower u acute

largesign \x00DB 4-136    # [DB] upper u circumflex
largesign \x00FB 4-136    # [FB] lower u circumflex

largesign \x00DC 4-136    # [DC] upper u dieresis
largesign \x00FC 4-136    # [FC] lower u dieresis

largesign \x00DD 4-13456  # [DD] upper y acute
largesign \x00FD 4-13456  # [FD] lower y acute

largesign \x00DE 4-2345   # [DE] upper t horn
largesign \x00FE 4-2345   # [FE] lower t horn

largesign \x00DF 234-234  # (DF) lower ss

largesign \x0174 4-2456   # lower w circumflex
largesign \x0175 4-2456   # upper w circumflex

largesign \x0176 4-13456  # upper y circumflex
largesign \x0177 4-13456  # lower y circumflex

largesign \x0178 4-13456  # upper y with dieresis
largesign \x00FF 4-13456  # lower y with dieresis

largesign \x1EF2 4-13456  # upper y with grave
largesign \x1EF3 4-13456  # lower y with grave

midword \x2019 3          # stupid smart apostrophe

# mongolian tables
punctuation \x2013 36-36  # 8211 en dash
punctuation \x2014 36-36  # em dash
prepunc ( 5-126
postpunc ) 5-345
begword ` 6-236
prepunc " 45-236
postpunc " 45-356
always \x00AB 236       # (opening quotation mark)
always \x00BB 356       # (closing quotation mark)
prepunc ' 236
postpunc ' 356
word 'em =
word 'tis =
word 'twas =
begnum # 456-1456       # print number sign before number
begnum ° 145-1245       # degrees sign
endnum ° 56-145-1245    # dg degrees sign
begnum  \x20AC 15       # euro sign at beginning of number
endnum  \x20AC 4-15     # euro sign atend  of number
postpunc , 2
hyphen - 36
postpunc . 256
postpunc ; 23
postpunc : 25
postpunc ! 235
always / 34
always < 5-13
always > 46-2
postpunc ? 26
midnum + 0-235-3456
always + 235
endnum % 46-356
always ^ 4-26
always ~ 4-12346
always * 5-35

always [ 46-126
always ] 46-345
always { 456-126
always } 456-345
prepunc ` 6-236
always @ 4-1
always \\ 456-16
always | 456-1256
always ... 256-256-256
always .\s.\s. 256-256-256 . . .
always $ 256-3456

# special character sequences
sign \x00BD 3456-1-34-12        # 1/2 fraction
sign \x00BC 3456-1-34-145       # 1/4 fraction
sign \x00BE 3456-14-34-145      # 3/4 fraction

# Mongolian additional characters
uplow \x04E8\x04E9 1236
uplow \x04AE\x04AF 1456
