# liblouis: Unified English Braille Grade 1 Table
#
# Based on the braille contraction modules in BRLTTY
#
# Copyright (C) 1995-2004 by The BRLTTY Team.
# Copyright (C) 2004 ViewPlus Technologies, Inc., www.viewplustech.com
# Copyright (C) 2004 Computers to Help People, Inc., www.chpi.org

# This file 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.

# This file 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 this file; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
# liblouis  comes with ABSOLUTELY NO WARRANTY.

include text_nabcc.dis All display opcodes

include ukchardefs.cti All character definition opcodes


# Braille indicators
numsign 3456  number sign, just a dots operand
multind 56-6 letsign capsletter
letsign 56
capsletter 6
begcapsword 6-6
#begphasecaps 6-6-6
endcapsword 6-3
emphclass italic
emphclass underline
emphclass bold
begemph italic 46-2356
endemph italic 46-3
begemph bold 45-2356
endemph bold 45-3
#begnocont 56-56-56
#endnocont 56-3

# the decimal digits
include litdigits6Dots.uti

# Letters are defined in chardefs.cti


#single letter words
largesign a 1
largesign A 1
word I 24
word o 135
word O 135

# punctuation
prepunc " 236
postpunc " 356
always " 6-2356
prepunc ' 6-236
postpunc ' 6-356
postpunc '' 356
postpunc ''' 356-3-356

always ' 3
endword 'd 3-145
word 'em 3-15-134 
endword 'll 3-123-123
endword 'm 3-134
endword 're 3-1235-15
endword 's 3-234
endword 't 3-2345
word 'tis 3-2345-24-234
word 'twas 3-2345-2456-1-234
endword 've 3-1236-15
always , 2
midnum . 256
decpoint . 256
always . 256
always ; 23
always : 25
always ! 235
always # 456-1456
midnum / 34-3456
always / 456-34
always ? 236
always % 46-356
always ^ 4-26
always ~ 4-35
always & 4-12346
midnum * 5-236-3456
always * 5-35
repeated *** 5-35-5-35-5-35
always ( 5-126
always ) 5-345
always [ 46-126
always ] 46-345
always { 456-126
always } 456-345
always -com =
endword -to = pointed-to resource
endword -by = used-by
always _ 46-36
prepunc `` 236
prepunc ` 6-236
always ` 46-16
always @ 4-1
always \\ 456-16
always | 456-1256
repeated --- 6-36-6-36-6-36

repeated ___ 46-36-46-36-46-36


repeated ::: 25-25-25

repeated === 5-2356-5-2356-5-2356
repeated ~~~ 4-35-4-35-4-35
always \s-\s 6-36
always \s-\scom 6-36-14-135-134
always ... 256-256-256
always .\s.\s. 256-256-256 . . .
always  \x2026 256-256-256 # 8230			MS Word smart ellipsis

# the hyphen
# always ­ 36
repeated ­­­ 36-36-36
always \s­\s 36-36

# 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
# \x00D7	× multiplication sign	----------------------
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 2345			# letter thorn
letter \x00DF 2346		# small sharp s
uplow \x0174\x0175 2456 w with circumflex
uplow \x0176\x0177 13456 # y with circumflex
uplow \x0178\x00ff 13456 # y with diaeresis
uplow \x1ef2\x1ef3 13456 # y with grave

largesign \x00C0 45-16-1      [C0] upper a grave
largesign \x00E0   45-16-1      [E0] lower a grave

largesign \x00C1 45-34-1      [C1] upper a acute
largesign \x00E1   45-34-1      [E1] lower a acute

largesign \x00C2 45-146-1      [C2] upper a circumflex
largesign \x00E2   45-146-1      [E2] lower a circumflex

largesign \x00C3 45-12456-1      [C3] upper a tilde
largesign \x00E3   45-12456-1      [E3] lower a tilde

largesign \x00C4 45-25-1      [C4] upper a dieresis
largesign \x00E4   45-25-1      [E4] lower a dieresis

largesign \x00C5 45-1246-1      [C5] upper a ring
largesign \x00E5   45-1246-1      [E5] lower a ring

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

largesign \x00C7 45-12346-14     [C7] upper c cedilla
largesign \x00E7   45-12346-14     [E7] lower c cedilla

largesign \x00C8 45-16-15     [C8] upper e grave
largesign \x00E8   45-16-15     [E8] lower e grave

largesign \x00C9 45-34-15     [C9] upper e acute
largesign \x00E9   45-34-15     [E9] lower e acute

largesign \x00CA 45-146-15     [CA] upper e circumflex
largesign \x00EA   45-146-15     [EA] lower e circumflex

largesign \x00CB 45-25-15     [CB] upper e dieresis
largesign \x00EB   45-25-15     [EB] lower e dieresis

largesign \x00CC 45-16-24     [CC] upper i grave
largesign \x00EC   45-16-24     [EC] lower i grave

largesign \x00CD 45-34-24     [CD] upper i acute
largesign \x00ED   45-34-24     [ED] lower i acute

largesign \x00CE 45-146-24     [CE] upper i circumflex
largesign \x00EE   45-146-24     [EE] lower i circumflex

largesign \x00CF 45-25-24     [CF] upper i dieresis
largesign \x00EF   45-25-24     [EF] lower i dieresis

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

largesign \x00D1 45-12456-1345   [D1] upper n tilde
largesign \x00F1   45-12456-1345   [F1] lower n tilde

largesign \x00D2 45-16-135    [D2] upper o grave
largesign \x00F2   45-16-135    [F2] lower o grave

largesign \x00D3 45-34-135    [D3] upper o acute
largesign \x00F3   45-34-135    [F3] lower o acute

largesign \x00D4 45-146-135    [D4] upper o circumflex
largesign \x00F4   45-146-135    [F4] lower o circumflex

largesign \x00D5 45-12456-135    [D5] upper o tilde
largesign \x00F5   45-12456-135    [F5] lower o tilde

largesign \x00D6 45-25-135    [D6] upper o dieresis
largesign \x00F6   45-25-135			[F6] lower o dieresis

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

largesign \x00D9 45-16-136    [D9] upper u grave
largesign \x00F9   45-16-136    [F9] lower u grave

largesign \x00DA 45-25-136    [DA] upper u acute
largesign \x00FA   45-25-136    [FA] lower u acute

largesign \x00DB 45-146-136    [DB] upper u circumflex
largesign \x00FB   45-146-136    [FB] lower u circumflex

largesign \x00DC 45-25-136    [DC] upper u dieresis
largesign \x00FC   45-25-136    [FC] lower u dieresis

largesign \x00DD 45-34-13456  [DD] upper y acute
largesign \x00FD   45-34-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 45-146-2456 lower w circumflex
largesign \x0175 45-146-2456 upper w circumflex

largesign \x0176 45-146-13456 upper y circumflex
largesign \x0177 45-146-13456 lower y circumflex

largesign \x0178 45-26-13456 upper y dieresis
largesign \x00FF 45-25-13456 lower y dieresis

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

# always	\x2010 36		 # 8208			hyphen
hyphen 	\x2010 36		 # 8208			hyphen

# always	\x2011 46		 # 8209			non-breaking hyphen
punctuation \x2011 36		 # 8209			non-breaking hyphen

always	\x2013 5-36		 # 8211		smart minus sign


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

# mathematical symbols
decpoint . 256
always < 4-126
always = 5-2356
midnum = 5-2356-3456
always > 4-345
always + 5-235
midnum + 5-235-3456
midnum - 36-3456
always - 36
always × 5-236
midnum × 5-236-3456
midnum ÷ 5-34-3456 division sign
always ÷ 5-34



# other special characters
always © 45-14 copyright
sign  45-2345 trademark
sign ® 45-1235 registered
always ¶ 45-1234 paragraph
always § 45-234 section
always ° 45-245 degrees
always £ 4-123 pounds
always $ 4-234
always ¢ 4-14 cents
sign  4-15	euro
always  4-15	euro
always ¥ 4-13456 yen
always µ 46-134 mu

