# liblouis: Polish Grade 1 Braille Table
#
#  Copyright (C) 2004-2008 ViewPlus Technologies, Inc. www.viewplus.com
#  Copyright (C) 2004-2006 JJB Software, Inc. www.jjb-software.com
#  Copyright (C) 2012 Mesar Hameed <mesar.hameed@gmail.com>
#  Copyright (C) 2019 Łukasz Golonka <wulfryk1@gmail.com>
#
#  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/>.

# Created & maintained by Leon Ungier <Leon.Ungier@ViewPlus.com>.

space \x00a0 a
include spaces.uti
include text_nabcc.dis

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

punctuation ! 235			exclamation sign   						x0021
punctuation " 356			double quote									x0022
sign # 3456						number sign										x0023
sign $ 4-145						dollar sign										x0024
sign % 3456-245-356					percent sign									x0025
sign & 456-12346			ampersand											z0026
noback punctuation ' 3				apostrophe										x0027
nofor punctuation ' 4				apostrophe										x0027
punctuation ( 2356			left parenthesis						x0028
punctuation ) 2356			right parenthesis						x0029
sign * 35						asterisk										x002A
math + 235							plus												002B
punctuation , 2					coma												002C
punctuation - 36				hyphen-minus								002D
punctuation . 3					point												002E
math / 256						solidus											002F

punctuation : 25				colon								x003A
punctuation ; 23				semicolon						x003B
punctuation < 5-13			less-than sign			x003C
math = 2356			equal sign					x003D
math > 46-2			greater-than sign		x003E
punctuation ? 26				question mark				x003F
sign @ 345			commercial at				x0040

include latinLetterDef6Dots.uti

include digits6Dots.uti # Must come after letters.
include litdigits6Dots.uti # Must come after letters.

# all Polish diacritics must come before other symbols to make back-translation working.
# the letter a with ogonek -----------------------------------
uplow \x0104\x0105 16

# the letter c with acute
uplow \x0106\x0107 146

# the letter e with ogonek
uplow \x0118\x0119 156

# the letter l with stroke
uplow \x0141\x0142 126

# the letter n with acute
uplow \x0143\x0144 1456

# the letter o with acute
uplow	\x00D3\x00F3	346											x00D3 / 00F3

# the letter s	with acute
# always	\x015A	246																	x015A
# always	\x015B	246
uplow \x015A\x015B 246

# the letter z	with acute
# always	\x0179	2346																x0179
# always	\x017A	2346
uplow \x0179\x017A 2346

# the letter z with dot above
# always	\x017B	12346																x017B
# always	\x017C	12346																x017C
uplow \x017B\x017C 12346


punctuation [ 12356		left square bracket						x005B
sign \\ 34				reverse solidus								x005C
punctuation ] 23456		right square bracket					x005D
sign ^ 5				circumflex accent							x005E
sign _ 46				low line											x005F
sign ` 4				grave accent									x0060

# a - z								# 97 - 122								x0061-x007A

punctuation { 246				left curly bracket					x007B
sign | 56					vertical line								x007C
punctuation } 12456			right curly bracket					x007D
math ~ 256				tilde												x007E
sign \x0080 15-136-1235-135										x0080

sign ¢ 4-14				cent sign																			x00A2
sign £ 45-123			pound sign																		x00A3
sign ¤ 45-15			currency sign																	x00A4
sign ¥ 45-13456		yen	sign																			x00A5
sign § 346				section sign																	x00A7
sign © 2356-6-14-2356		copyright																x00A9
punctuation « 236				left-pointing double angle quotation 		x00AB
punctuation \x00AD 36 soft hyphen
sign ° 4-356			degree sign																		x00B0
sign ² 4-6-126		superscript 2 sign														x00B2
sign ³ 4-6-146		superscript 3 sign														x00B3
sign µ 46-134			micro sign																		x00B5
sign ¶ 4-1234-345 pilcrow sign (paragraph)											x00B6
sign ¹ 1-27				superscript 1 sign														x00B9
punctuation » 356			right-pointing double angle quotation		x00BB
math ¼ 6-16-34-1456		vulgar fraction one quarter								x00BC
math ½ 6-16-34-126		vulgar fraction one half									x00BD
math ¾ 6-126-34-1456	vulgar fraction 3 quarters								x00BE

uplow Åå 16					A with ring above											x00C5 / 00E5
uplow \x00C2\x00E2 16					letter a with circumflex						x00E2

uplow \x00C0\x00E0 12356	letter a with grave							x00C0 / 00E0
uplow \x00C1\x00E1 12356			letter a with acute									x00E1
uplow \x00C3\x00E3 126		letter a with tilde											x00E3
uplow Ää 345				A with diaeresis											x00C4 / 00E4
uplow \x00C6\x00E6 6-345	ae															x00C6
uplow Çç 12346			letter c with cedilla									x00C7 / 00E7
uplow Èè 2346				e with grave													x00C8 / 00E8
uplow \x00C9\x00E9 123456		e with acute													x00E9
uplow \x00CA\x00EA 126			e with circumflex											x00EA
uplow \x00CB\x00EB 1246		e with diaeresis												x00EB
uplow \x00CD\x00ED 34			i with acute													x00ED
uplow \x00CE\x00EE 146		i with circumflex											x00EE
uplow \x00CF\x00EF 12456	i with diaeresis								x00CF / 00EF

uplow \x00D4\x00F4 1456	o with circumflex													x00F4
uplow \x00D5\x00F5 246		o with tilde														x00F5
uplow Öö 246						O with diaeresis									x00D6 / 00F6
math × 3				multiplication sign											x00D7
uplow \x00D8\x00F8 246		o with stroke										x00D8 / 00F8

math ÷ 256				division sign										x00F7

uplow \x00DA\x00FA 23456			u with acute							x00DA / 00FA
uplow \x00DB\x00FB 156				u with circumflex					x00FB
uplow \x00DC\x00FC 1256				u with diaeresis					x00FC
uplow \x00DD\x00FD 12346			y with acute							x00DD / 00FD


punctuation	\x2010 36		 # 8208			hyphen
punctuation	\x2011 36		 # 8209			non-breaking hyphen
punctuation	\x2013 36		 # 8211			smart minus sign
punctuation	\x2018 3		 # 8216			smart single left quotation mark
punctuation	\x2019 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 3-3-3 # 8230		smart ellipsis

noback sign \x25CF 35-35	# 9679 black circle

# ------------------------------------------------------


capsletter 46			# single capital letter indicator
begcapsword 46-46			# a block of consecutive capital letters indicator

numsign 3456		#	number sign, just one operand
midnum , 2
midnum . 3

endnum # 56-3456

prepunc " 236
postpunc " 356

prepunc ' 6-236
postpunc ' 356-3
postpunc '' 356
postpunc ''' 356-3-356

repeated *** 16-16-16

prepunc `` 236
prepunc ` 6-236


repeated --- 36-36-36

repeated ___ 46-46-46

repeated ::: 25-25-25
repeated === 46-13-46-13-46-13
repeated ~~~ 4-156-4-156-4-156
always \s-\scom 36-36-14-135-134
always ... 3-3-3
always .\s.\s. 3-3-3 . . .

always \s­\s 36-36

# special character sequences
literal :// URLs
literal www.

literal .com
literal .edu
literal .gov
literal .mil
literal .net
literal .org

literal .doc
literal .htm
literal .html
literal .tex
literal .txt

literal .gif
literal .jpg
literal .png
literal .wav

literal .tar
literal .zip

# Greek letters

noback letter \x0391 456-1 # Α
noback letter \x0392 456-12 # Β
noback letter \x0393 456-1245 # Γ
noback letter \x0394 456-145 # Δ
noback letter \x0395 456-15 # Ε
noback letter \x0396 456-1356 # Ζ
noback letter \x0397 456-156 # Η
noback letter \x0398 456-1456 # Θ
noback letter \x0399 456-24 # Ι
noback letter \x039A 456-13 # Κ
noback letter \x039B 456-123 # Λ
noback letter \x039C 456-134 # Μ
noback letter \x039D 456-1345 # Ν
noback letter \x039E 456-1346 # Ξ
noback letter \x039F 456-135 # Ο
noback letter \x03A0 456-1234 # Π
noback letter \x03A1 456-1235 # Ρ
noback letter \x03A3 456-234 # Σ
noback letter \x03A4 456-2345 # Τ
noback letter \x03A5 456-136 # Υ
noback letter \x03A6 456-124 # Φ
noback letter \x03A7 456-12346 # Χ
noback letter \x03A8 456-13456 # Ψ
noback letter \x03A9 456-2456 # Ω

noback letter \x03B1 56-1 # α
noback letter \x03B2 56-12 # β
noback letter \x03B3 56-1245 # γ
noback letter \x03B4 56-145 # δ
noback letter \x03B5 56-15 # ε
noback letter \x03B6 56-1356 # ζ
noback letter \x03B7 56-156 # η
noback letter \x03B8 56-1456 # θ
noback letter \x03B9 56-24 # ι
noback letter \x03BA 56-13 # κ
noback letter \x03BB 56-123 # λ
noback letter \x03BC 56-134 # μ
noback letter \x03BD 56-1345 # ν
noback letter \x03BE 56-1346 # ξ
noback letter \x03BF 56-135 # ο
noback letter \x03C0 56-1234 # π
noback letter \x03C1 56-1235 # ρ
noback letter \x03C2 56-234 # ς
noback letter \x03C3 56-234
noback letter \x03C4 56-2345 # τ
noback letter \x03C5 56-136 # υ
noback letter \x03C6 56-124 # φ
noback letter \x03C7 56-12346 # χ
noback letter \x03C8 56-13456 # ψ
noback letter \x03C9 56-2456 # ω

# Arrows:

noback sign \x2192 25-135
noback sign \x2190 246-25


noback sign \x2264 246-2356 # Less than or equal to
noback sign \x2265 135-2356 #  Greater than or equal to
