
#  Copyright (C) 2012 Braille Section Team, Anna Centenary Library, Chennai <brailleacl@gmail.com>
#  Copyright (C) 2014 National Institute for Visually Handicapped, 116, Rajpur Road, Dehradun, Uttrakhand, India
# 
#  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/>.

# The Liblouis table for Tamil was developed by
#
#   Shankar Subbiah S <shankar@agateinfotek.in>
#   K. Navarasan
#   T. D. Dinakar <td.dinkar@gmail.com> and
#   Mesar Hameed <mesar.hameed@gmail.com>
#
# Together they go under the name of Braille Section Team, Anna
# Centenary Library as the table was tested on the Braille display
# that was available in the Anna Centinary Library, Chennai.

include text_nabcc.dis
include braille-patterns.cti # unicode braille.

punctuation	\x2018 236 #left single quote
punctuation	\x2019 356 #right single quote
punctuation	\x201c 6-236 #left quote
punctuation	\x201d 356-3 #right quote

include en-us-g1.ctb

sign	\x0b82	56	# TAMIL SIGN ANUSVARA
sign	\x0b83	6	# TAMIL SIGN VISARGA
sign	\x0b85	1	# TAMIL sign A
sign	\x0b86	345	# TAMIL sign AA
sign	\x0b87	24	# TAMIL sign I
sign	\x0b88	35	# TAMIL sign II
sign	\x0b89	136	# TAMIL sign U
sign	\x0b8a	1256	# TAMIL sign UU

sign	\x0b8e	26	# TAMIL sign E

sign	\x0b8f	15	# TAMIL sign EE
sign	\x0b90	34	# TAMIL sign AI

sign	\x0b92	1346	# TAMIL sign O

letter	\x0b93	135	# TAMIL sign OO
letter	\x0b94	246	# TAMIL sign AU
letter	\x0b95	13	# TAMIL sign KA
letter	\x0b99	346	# TAMIL sign NGA
letter	\x0b9a	14	# TAMIL sign CA
letter	\x0b9c	245	# TAMIL sign JA
letter	\x0b9e	25	# TAMIL sign NYA
letter	\x0b9f	23456	# TAMIL sign TTA
letter	\x0ba3	3456	# TAMIL sign NNA
letter	\x0ba4	2345	# TAMIL sign TA
letter	\x0ba8	1345	# TAMIL sign NA
letter	\x0ba9	56	# TAMIL sign NNNA
letter	\x0baa	1234	# TAMIL sign PA
letter	\x0bae	134	# TAMIL sign MA
letter	\x0baf	13456	# TAMIL sign YA
letter	\x0bb0	1235	# TAMIL sign RA

sign	\x0bb1	12456	# TAMIL sign RRA

sign	\x0bb2	123	# TAMIL sign LA

sign	\x0bb3	456	# TAMIL sign LLA

sign	\x0bb4	12356	# TAMIL sign LLLA

sign	\x0bb5	1236	# TAMIL sign VA
sign	\x0bb6	146	# TAMIL sign SHA
sign	\x0bb7	12346	# TAMIL sign SSA
sign	\x0bb8	234	# TAMIL sign SA
sign	\x0bb9	125	# TAMIL sign HA
sign	\x0bbe	345	# TAMIL VOWEL SIGN AA
sign	\x0bbf	24	# TAMIL VOWEL SIGN I
sign	\x0bc0	35	# TAMIL VOWEL SIGN II
sign	\x0bc1	136	# TAMIL VOWEL SIGN U
sign	\x0bc2	1256	# TAMIL VOWEL SIGN UU

sign	\x0bc6	26	# TAMIL VOWEL SIGN E

sign	\x0bc7	15	# TAMIL VOWEL SIGN EE
sign	\x0bc8	34	# TAMIL VOWEL SIGN AI

sign	\x0bca	1346	# TAMIL VOWEL SIGN O

sign	\x0bcb	135	# TAMIL VOWEL SIGN OO
sign	\x0bcc	246	# TAMIL VOWEL SIGN AU
sign	\x0bcd	4	# TAMIL SIGN VIRAMA
sign	\x0be6	245	# TAMIL DIGIT ZERO
sign	\x0be7	1	# TAMIL DIGIT ONE
sign	\x0be8	12	# TAMIL DIGIT TWO
sign	\x0be9	14	# TAMIL DIGIT THREE
sign	\x0bea	145	# TAMIL DIGIT FOUR
sign	\x0beb	15	# TAMIL DIGIT FIVE
sign	\x0bec	124	# TAMIL DIGIT SIX
sign	\x0bed	1245	# TAMIL DIGIT SEVEN
sign	\x0bee	125	# TAMIL DIGIT EIGHT
sign	\x0bef	24	# TAMIL DIGIT NINE

#--------
# half characters

always \x0b95\x0bcd 4-13
always \x0b99\x0bcd 4-346
always \x0b9a\x0bcd 4-14
always \x0b9e\x0bcd 4-25
always \x0b9f\x0bcd 4-23456
always \x0ba3\x0bcd 4-3456
always \x0ba4\x0bcd 4-2345
always \x0ba8\x0bcd 4-1345
always \x0baa\x0bcd 4-1234
always \x0bae\x0bcd 4-134
always \x0baf\x0bcd 4-13456
always \x0bb0\x0bcd 4-1235
always \x0bb2\x0bcd 4-123
always \x0bb5\x0bcd 4-1236
always \x0bb4\x0bcd 4-12356
always \x0bb3\x0bcd 4-456
always \x0bb1\x0bcd 4-12456
always \x0ba9\x0bcd 4-56
always \x0b9c\x0bcd 4-245
always \x0bb7\x0bcd 4-12346
always \x0bb8\x0bcd 4-234
always \x0bb9\x0bcd 4-125

# words and partwords
# sri
word \x0bb8\x0bcd\x0bb0\x0bc0 234

always \x0b95\x0bcd\x0bb7 12345   #ksh
always \x0b95\x0bcd\x0bb7\x0bcd 4-12345   #ksh with varama
