# LibLouis Table for Greek Braille - Common Rules
# ελληνικό σύστημα μπράιγ [Greek Braille System]
# κέντρο εκπαίδευσης και αποκατάστασης τυφλών [Center for Education and Rehabilitation for the Blind]

# Copyright (C) 2017 Dave Mielke: <dave@mielke.cc>, [http://mielke.cc/]
#
# This file is part of LibLouis.
#
# LibLouis is free software. You may 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 and maintained by Dave Mielke: <dave@mielke.cc>, [http://mielke.cc/]

##########
# Spaces #
##########

space	\s	0	space
space	\x00A0	0	non-trivial blank
space	\t	0	HT, CTRL-I
space	\v	0	VT, CTRL-V
space	\f	0	FF, CTRL-L
space	\r	0	CR, CTRL-M

##################
# Greek Alphabet #
##################

uplow	\x0391\x03B1	1	# Αα Alpha
uplow	\x0392\x03B2	12	# Ββ Beta
uplow	\x0393\x03B3	1245	# Γγ Gamma
uplow	\x0394\x03B4	145	# Δδ Delta
uplow	\x0395\x03B5	15	# Εε Epsilon
uplow	\x0396\x03B6	1356	# Ζζ Zeta
uplow	\x0397\x03B7	345	# Ηη Eta
uplow	\x0398\x03B8	1456	# Θθ Theta
uplow	\x0399\x03B9	24	# Ιι Iota
uplow	\x039A\x03BA	13	# Κκ Kappa
uplow	\x039B\x03BB	123	# Λλ Lambda
uplow	\x039C\x03BC	134	# Μμ Mu
uplow	\x039D\x03BD	1345	# Νν Nu
uplow	\x039E\x03BE	1346	# Ξξ Xi
uplow	\x039F\x03BF	135	# Οο Omicron
uplow	\x03A0\x03C0	1234	# Ππ Pi
uplow	\x03A1\x03C1	1235	# Ρρ Rho
uplow	\x03A3\x03C3	234	# Σσ Sigma
uplow	\x03A4\x03C4	2345	# Ττ Tau
uplow	\x03A5\x03C5	13456	# Υυ Upsilon
uplow	\x03A6\x03C6	124	# Φφ Phi
uplow	\x03A7\x03C7	125	# Χχ Chi
uplow	\x03A8\x03C8	12346	# Ψψ Psi
uplow	\x03A9\x03C9	245	# Ωω Omega

# ς Final Sigma
lowercase \x03C2 234
endword \x03C2 234

#################
# Greek Accents #
#################

sign	\x1FEF	4	# ` Grave Accent (Varia)
sign	\x0384	5	# ΄ Acute Accent (Tonos)
sign	\x1FFD	5	# ´ Acute Accent (Oxia)
sign	\x1FC0	6	# ῀ Circumflex Accent (Perispomeni)

sign	\x1FCD	23456	# ῍ Smooth and Grave Accent (Psili and Varia)
sign	\x1FCE	356	# ῎ Smooth and Acute Accent (Psili and Oxia)
sign	\x1FCF	256	# ῏ Smooth and Circumflex Accent (Psili and Perispomeni)

sign	\x1FFE	1236	# ῾ Rough Breathing Accent (Dasia)
sign	\x1FDD	12356	# ῝ Rough and Grave Accent (Dasia and Varia)
sign	\x1FDE	26	# ῞ Rough and Acute Accent (Dasia and Oxia)
sign	\x1FDF	235	# ῟ Rough and Circumflex Accent (Dasia and Perispomeni)

##########################
# Greek Accented Letters #
##########################

uplow \x0386\x03AC 5-1 # Άά Alpha with Tonos
uplow \x1FBB\x1F71 5-1 # Άά Alpha with Oxia
uplow \x1FBA\x1F70 4-1 # Ὰὰ Alpha with Varia
uplow \x1FB9\x1FB1 1 # Ᾱᾱ Alpha with Macron
uplow \x1FB8\x1FB0 1 # Ᾰᾰ Alpha with Vrachy
uplow \x1F08\x1F00 1 # Ἀἀ Alpha with Psili
uplow \x1F0C\x1F04 356-1 # Ἄἄ Alpha with Psili and Oxia
uplow \x1F0A\x1F02 23456-1 # Ἂἂ Alpha with Psili and Varia
uplow \x1F0E\x1F06 256-1 # Ἆἆ Alpha with Psili and Perispomeni
uplow \x1F09\x1F01 1236-1 # Ἁἁ Alpha with Dasia
uplow \x1F0D\x1F05 26-1 # Ἅἅ Alpha with Dasia and Oxia
uplow \x1F0B\x1F03 12356-1 # Ἃἃ Alpha with Dasia and Varia
uplow \x1F0F\x1F07 235-1 # Ἇἇ Alpha with Dasia and Perispomeni
uplow \x0388\x03AD 5-15 # Έέ Epsilon with Tonos
uplow \x1FC9\x1F73 5-15 # Έέ Epsilon with Oxia
uplow \x1FC8\x1F72 4-15 # Ὲὲ Epsilon with Varia
uplow \x1F18\x1F10 15 # Ἐἐ Epsilon with Psili
uplow \x1F1C\x1F14 356-15 # Ἔἔ Epsilon with Psili and Oxia
uplow \x1F1A\x1F12 23456-15 # Ἒἒ Epsilon with Psili and Varia
uplow \x1F19\x1F11 1236-15 # Ἑἑ Epsilon with Dasia
uplow \x1F1D\x1F15 26-15 # Ἕἕ Epsilon with Dasia and Oxia
uplow \x1F1B\x1F13 12356-15 # Ἓἓ Epsilon with Dasia and Varia
uplow \x0389\x03AE 5-345 # Ήή Eta with Tonos
uplow \x1FCB\x1F75 5-345 # Ήή Eta with Oxia
uplow \x1FCA\x1F74 4-345 # Ὴὴ Eta with Varia
uplow \x1F28\x1F20 345 # Ἠἠ Eta with Psili
uplow \x1F2C\x1F24 356-345 # Ἤἤ Eta with Psili and Oxia
uplow \x1F2A\x1F22 23456-345 # Ἢἢ Eta with Psili and Varia
uplow \x1F2E\x1F26 256-345 # Ἦἦ Eta with Psili and Perispomeni
uplow \x1F29\x1F21 1236-345 # Ἡἡ Eta with Dasia
uplow \x1F2D\x1F25 26-345 # Ἥἥ Eta with Dasia and Oxia
uplow \x1F2B\x1F23 12356-345 # Ἣἣ Eta with Dasia and Varia
uplow \x1F2F\x1F27 235-345 # Ἧἧ Eta with Dasia and Perispomeni
uplow \x03AA\x03CA 24 # Ϊϊ Iota with Dialytika
uplow \x038A\x03AF 5-24 # Ίί Iota with Tonos
uplow \x1FDB\x1F77 5-24 # Ίί Iota with Oxia
uplow \x1FDA\x1F76 4-24 # Ὶὶ Iota with Varia
uplow \x1FD9\x1FD1 24 # Ῑῑ Iota with Macron
uplow \x1FD8\x1FD0 24 # Ῐῐ Iota with Vrachy
uplow \x1F38\x1F30 24 # Ἰἰ Iota with Psili
uplow \x1F3C\x1F34 356-24 # Ἴἴ Iota with Psili and Oxia
uplow \x1F3A\x1F32 23456-24 # Ἲἲ Iota with Psili and Varia
uplow \x1F3E\x1F36 256-24 # Ἶἶ Iota with Psili and Perispomeni
uplow \x1F39\x1F31 1236-24 # Ἱἱ Iota with Dasia
uplow \x1F3D\x1F35 26-24 # Ἵἵ Iota with Dasia and Oxia
uplow \x1F3B\x1F33 12356-24 # Ἳἳ Iota with Dasia and Varia
uplow \x1F3F\x1F37 235-24 # Ἷἷ Iota with Dasia and Perispomeni
uplow \x038C\x03CC 5-135 # Όό Omicron with Tonos
uplow \x1FF9\x1F79 5-135 # Όό Omicron with Oxia
uplow \x1FF8\x1F78 4-135 # Ὸὸ Omicron with Varia
uplow \x1F48\x1F40 135 # Ὀὀ Omicron with Psili
uplow \x1F4C\x1F44 356-135 # Ὄὄ Omicron with Psili and Oxia
uplow \x1F4A\x1F42 23456-135 # Ὂὂ Omicron with Psili and Varia
uplow \x1F49\x1F41 1236-135 # Ὁὁ Omicron with Dasia
uplow \x1F4D\x1F45 26-135 # Ὅὅ Omicron with Dasia and Oxia
uplow \x1F4B\x1F43 12356-135 # Ὃὃ Omicron with Dasia and Varia
uplow \x1FEC\x1FE5 1236-1235 # Ῥῥ Rho with Dasia
uplow \x03AB\x03CB 13456 # Ϋϋ Upsilon with Dialytika
uplow \x038E\x03CD 5-13456 # Ύύ Upsilon with Tonos
uplow \x1FEB\x1F7B 5-13456 # Ύύ Upsilon with Oxia
uplow \x1FEA\x1F7A 4-13456 # Ὺὺ Upsilon with Varia
uplow \x1FE9\x1FE1 13456 # Ῡῡ Upsilon with Macron
uplow \x1FE8\x1FE0 13456 # Ῠῠ Upsilon with Vrachy
uplow \x1F59\x1F51 1236-13456 # Ὑὑ Upsilon with Dasia
uplow \x1F5D\x1F55 26-13456 # Ὕὕ Upsilon with Dasia and Oxia
uplow \x1F5B\x1F53 12356-13456 # Ὓὓ Upsilon with Dasia and Varia
uplow \x1F5F\x1F57 235-13456 # Ὗὗ Upsilon with Dasia and Perispomeni
uplow \x038F\x03CE 5-245 # Ώώ Omega with Tonos
uplow \x1FFB\x1F7D 5-245 # Ώώ Omega with Oxia
uplow \x1FFA\x1F7C 4-245 # Ὼὼ Omega with Varia
uplow \x1F68\x1F60 245 # Ὠὠ Omega with Psili
uplow \x1F6C\x1F64 356-245 # Ὤὤ Omega with Psili and Oxia
uplow \x1F6A\x1F62 23456-245 # Ὢὢ Omega with Psili and Varia
uplow \x1F6E\x1F66 256-245 # Ὦὦ Omega with Psili and Perispomeni
uplow \x1F69\x1F61 1236-245 # Ὡὡ Omega with Dasia
uplow \x1F6D\x1F65 26-245 # Ὥὥ Omega with Dasia and Oxia
uplow \x1F6B\x1F63 12356-245 # Ὣὣ Omega with Dasia and Varia
uplow \x1F6F\x1F67 235-245 # Ὧὧ Omega with Dasia and Perispomeni

uppercase \x1FBC 35 # ᾼ Capital Alpha with Prosgegrammeni
uppercase \x1F88 35 # ᾈ Capital Alpha with Psili and Prosgegrammeni
uppercase \x1F8C 356-35 # ᾌ Capital Alpha with Psili and Oxia and Prosgegrammeni
uppercase \x1F8A 23456-35 # ᾊ Capital Alpha with Psili and Varia and Prosgegrammeni
uppercase \x1F8E 256-35 # ᾎ Capital Alpha with Psili and Perispomeni and Prosgegrammeni
uppercase \x1F89 1236-35 # ᾉ Capital Alpha with Dasia and Prosgegrammeni
uppercase \x1F8D 26-35 # ᾍ Capital Alpha with Dasia and Oxia and Prosgegrammeni
uppercase \x1F8B 12356-35 # ᾋ Capital Alpha with Dasia and Varia and Prosgegrammeni
uppercase \x1F8F 235-35 # ᾏ Capital Alpha with Dasia and Perispomeni and Prosgegrammeni
uppercase \x1FCC 3456 # ῌ Capital Eta with Prosgegrammeni
uppercase \x1F98 3456 # ᾘ Capital Eta with Psili and Prosgegrammeni
uppercase \x1F9C 356-3456 # ᾜ Capital Eta with Psili and Oxia and Prosgegrammeni
uppercase \x1F9A 23456-3456 # ᾚ Capital Eta with Psili and Varia and Prosgegrammeni
uppercase \x1F9E 256-3456 # ᾞ Capital Eta with Psili and Perispomeni and Prosgegrammeni
uppercase \x1F99 1236-3456 # ᾙ Capital Eta with Dasia and Prosgegrammeni
uppercase \x1F9D 26-3456 # ᾝ Capital Eta with Dasia and Oxia and Prosgegrammeni
uppercase \x1F9B 12356-3456 # ᾛ Capital Eta with Dasia and Varia and Prosgegrammeni
uppercase \x1F9F 235-3456 # ᾟ Capital Eta with Dasia and Perispomeni and Prosgegrammeni
uppercase \x1FFC 2456 # ῼ Capital Omega with Prosgegrammeni
uppercase \x1FA8 2456 # ᾨ Capital Omega with Psili and Prosgegrammeni
uppercase \x1FAC 356-2456 # ᾬ Capital Omega with Psili and Oxia and Prosgegrammeni
uppercase \x1FAA 23456-2456 # ᾪ Capital Omega with Psili and Varia and Prosgegrammeni
uppercase \x1FAE 256-2456 # ᾮ Capital Omega with Psili and Perispomeni and Prosgegrammeni
uppercase \x1FA9 1236-2456 # ᾩ Capital Omega with Dasia and Prosgegrammeni
uppercase \x1FAD 26-2456 # ᾭ Capital Omega with Dasia and Oxia and Prosgegrammeni
uppercase \x1FAB 12356-2456 # ᾫ Capital Omega with Dasia and Varia and Prosgegrammeni
uppercase \x1FAF 235-2456 # ᾯ Capital Omega with Dasia and Perispomeni and Prosgegrammeni

lowercase \x1FB6 6-1 # ᾶ Small Alpha with Perispomeni
lowercase \x1FB3 35 # ᾳ Small Alpha with Ypogegrammeni
lowercase \x1FB4 5-35 # ᾴ Small Alpha with Oxia and Ypogegrammeni
lowercase \x1FB2 4-35 # ᾲ Small Alpha with Varia and Ypogegrammeni
lowercase \x1FB7 6-35 # ᾷ Small Alpha with Perispomeni and Ypogegrammeni
lowercase \x1F80 35 # ᾀ Small Alpha with Psili and Ypogegrammeni
lowercase \x1F84 356-35 # ᾄ Small Alpha with Psili and Oxia and Ypogegrammeni
lowercase \x1F82 23456-35 # ᾂ Small Alpha with Psili and Varia and Ypogegrammeni
lowercase \x1F86 256-35 # ᾆ Small Alpha with Psili and Perispomeni and Ypogegrammeni
lowercase \x1F81 1236-35 # ᾁ Small Alpha with Dasia and Ypogegrammeni
lowercase \x1F85 26-35 # ᾅ Small Alpha with Dasia and Oxia and Ypogegrammeni
lowercase \x1F83 12356-35 # ᾃ Small Alpha with Dasia and Varia and Ypogegrammeni
lowercase \x1F87 235-35 # ᾇ Small Alpha with Dasia and Perispomeni and Ypogegrammeni
lowercase \x1FC6 6-345 # ῆ Small Eta with Perispomeni
lowercase \x1FC3 3456 # ῃ Small Eta with Ypogegrammeni
lowercase \x1FC4 5-3456 # ῄ Small Eta with Oxia and Ypogegrammeni
lowercase \x1FC2 4-3456 # ῂ Small Eta with Varia and Ypogegrammeni
lowercase \x1FC7 6-3456 # ῇ Small Eta with Perispomeni and Ypogegrammeni
lowercase \x1F90 3456 # ᾐ Small Eta with Psili and Ypogegrammeni
lowercase \x1F94 356-3456 # ᾔ Small Eta with Psili and Oxia and Ypogegrammeni
lowercase \x1F92 23456-3456 # ᾒ Small Eta with Psili and Varia and Ypogegrammeni
lowercase \x1F96 256-3456 # ᾖ Small Eta with Psili and Perispomeni and Ypogegrammeni
lowercase \x1F91 1236-3456 # ᾑ Small Eta with Dasia and Ypogegrammeni
lowercase \x1F95 26-3456 # ᾕ Small Eta with Dasia and Oxia and Ypogegrammeni
lowercase \x1F93 12356-3456 # ᾓ Small Eta with Dasia and Varia and Ypogegrammeni
lowercase \x1F97 235-3456 # ᾗ Small Eta with Dasia and Perispomeni and Ypogegrammeni
lowercase \x0390 5-24 # ΐ Small Iota with Dialytika and Tonos
lowercase \x1FD3 5-24 # ΐ Small Iota with Dialytika and Oxia
lowercase \x1FD2 4-24 # ῒ Small Iota with Dialytika and Varia
lowercase \x1FD6 6-24 # ῖ Small Iota with Perispomeni
lowercase \x1FD7 6-24 # ῗ Small Iota with Dialytika and Perispomeni
lowercase \x1FE4 1235 # ῤ Small Rho with Psili
lowercase \x03B0 5-13456 # ΰ Small Upsilon with Dialytika and Tonos
lowercase \x1FE3 5-13456 # ΰ Small Upsilon with Dialytika and Oxia
lowercase \x1FE2 4-13456 # ῢ Small Upsilon with Dialytika and Varia
lowercase \x1FE6 6-13456 # ῦ Small Upsilon with Perispomeni
lowercase \x1FE7 6-13456 # ῧ Small Upsilon with Dialytika and Perispomeni
lowercase \x1F50 13456 # ὐ Small Upsilon with Psili
lowercase \x1F54 356-13456 # ὔ Small Upsilon with Psili and Oxia
lowercase \x1F52 23456-13456 # ὒ Small Upsilon with Psili and Varia
lowercase \x1F56 256-13456 # ὖ Small Upsilon with Psili and Perispomeni
lowercase \x1FF6 6-245 # ῶ Small Omega with Perispomeni
lowercase \x1FF3 2456 # ῳ Small Omega with Ypogegrammeni
lowercase \x1FF4 5-2456 # ῴ Small Omega with Oxia and Ypogegrammeni
lowercase \x1FF2 4-2456 # ῲ Small Omega with Varia and Ypogegrammeni
lowercase \x1FF7 6-2456 # ῷ Small Omega with Perispomeni and Ypogegrammeni
lowercase \x1FA0 2456 # ᾠ Small Omega with Psili and Ypogegrammeni
lowercase \x1FA4 356-2456 # ᾤ Small Omega with Psili and Oxia and Ypogegrammeni
lowercase \x1FA2 23456-2456 # ᾢ Small Omega with Psili and Varia and Ypogegrammeni
lowercase \x1FA6 256-2456 # ᾦ Small Omega with Psili and Perispomeni and Ypogegrammeni
lowercase \x1FA1 1236-2456 # ᾡ Small Omega with Dasia and Ypogegrammeni
lowercase \x1FA5 26-2456 # ᾥ Small Omega with Dasia and Oxia and Ypogegrammeni
lowercase \x1FA3 12356-2456 # ᾣ Small Omega with Dasia and Varia and Ypogegrammeni
lowercase \x1FA7 235-2456 # ᾧ Small Omega with Dasia and Perispomeni and Ypogegrammeni

#######################
# General Punctuation #
#######################

# Hyphen
sign	-	36
hyphen	-	36

punctuation	'	3	# ’ Apostrophe
always '\x03C2 3-234
always \x03C3' 234-3

punctuation , 2 # , Comma
midnum , 2 # Decimal Point

punctuation	:	25	# : Colon

punctuation	\x0387	23	# · Greek Semicolon
punctuation	\x2015	6-36	# ― Dialog (Horizontal) Bar
punctuation	\x2026	3-3-3	# … Horizontal Ellipsis

#########
# Signs #
#########

sign	*	35-35	# Asterisk
sign	/	34	# Slash
sign	_	456	# Underline
sign	@	4-1	# At Sign
sign	%	4-356	# Percent Sign
sign	€	4-15	# Euro Sign
sign	$	4-234	# Dollar Sign

################
# Math Symbols #
################

math	+	346	# Addition

math	\x2212	36	# Subtraction
endnum	-	36	# Subtraction

math	\x00D7	46-16	# Multiplication
endnum	*	46-16	# Multiplication

math	\x00F7	46-34	# Division
endnum	/	46-34	# Division

math	=	46-13	# Equals
math	<	5-13	# Less Than
math	>	46-2	# Greater Than

#################
# Braille Cells #
#################

include braille-patterns.cti

##########################
# Positional Punctuation #
##########################

# . Period
punctuation . 256
midnum . 46 # Digit Grouping
postpunc . 256

# « Greek Opening Quotation Mark (Left-Pointing Double Angle Quotation Mark)
punctuation \x00AB 23678
prepunc     \x00AB 236

# » Greek Closing Quotation Mark (Right-Pointing Double Angle Quotation Mark)
punctuation \x00BB 35678
postpunc    \x00BB 356

# "" English Quotation Marks
punctuation " 235678
prepunc     " 6-236
postpunc    " 356-3

# ( Opening Parenthesis
punctuation ( 23678
prepunc     ( 2356

# ) Closing Parenthesis
punctuation ) 35678
postpunc    ) 2356

# [ Opening Bracket
punctuation [ 1235678
prepunc     [ 12356

# ] Closing Bracket
punctuation ] 2345678
postpunc    ] 23456

# { Opening Brace
punctuation { 1234678
prepunc     { 12346

# } Closing Brace
punctuation } 1345678
postpunc    } 13456

# ? English Question Mark
punctuation ? 236
postpunc ? 236

# ! Exclamation Mark
punctuation	!	235
postpunc	!	235

# ; Greek Question Mark
punctuation	\x037E	26
postpunc	\x037E	26

###########
# Numbers #
###########

include digits6Dots.uti

####################
# Greek Diphthongs #
####################

always \x03B1\x03B9	126	# αι Alpha Iota
always \x03B1\x03C5	16	# αυ Alpha Upsilon
always \x03B5\x03B9	146	# ει Epsilon Iota
always \x03B5\x03C5	156	# ευ Epsilon Upsilon
always \x03B7\x03C5	1256	# ηυ Eta Upsilon
always \x03BF\x03B9	246	# οι Omicron Iota
always \X03BF\x03C5	136	# ου Omicron Upsilon
always \x03C5\x03B9	12456	# υι Upsilon Iota

# The Tonos accent, if present, is always on the second letter.
always \x03B1\x03AF	5-126	# αί Alpha Iota
always \x03B1\x03CD	5-16	# αύ Alpha Upsilon
always \x03B5\x03AF	5-146	# εί Epsilon Iota
always \x03B5\x03CD	5-156	# εύ Epsilon Upsilon
always \x03B7\x03CD	5-1256	# ηύ Eta Upsilon
always \x03BF\x03AF	5-246	# οί Omicron Iota
always \X03BF\x03CD	5-136	# ού Omicron Upsilon
always \x03C5\x03AF	5-12456	# υί Upsilon Iota

# The Oxia accent, if present, is always on the second letter.
always \x03B1\x1F77	5-126	# αί Alpha Iota
always \x03B1\x1F7B	5-16	# αύ Alpha Upsilon
always \x03B5\x1F77	5-146	# εί Epsilon Iota
always \x03B5\x1F7B	5-156	# εύ Epsilon Upsilon
always \x03B7\x1F7B	5-1256	# ηύ Eta Upsilon
always \x03BF\x1F77	5-246	# οί Omicron Iota
always \X03BF\x1F7B	5-136	# ού Omicron Upsilon
always \x03C5\x1F77	5-12456	# υί Upsilon Iota

##############
# Indicators #
##############

capsletter	46
begcapsword 46-46
numsign 3456

####################
# English Alphabet #
####################

# Define all of them as just letters in order to avoid Greek capital signs.
# Add virtual dot E to the uppercase letters, and virtual dot F to the
# lowercase letters, so that they have unique braille representations that
# don't overlap with those used for Greek characters.

# The uppercase English letters.
letter A 1E
letter B 12E
letter C 14E
letter D 145E
letter E 15E
letter F 124E
letter G 1245E
letter H 125E
letter I 24E
letter J 245E
letter K 13E
letter L 123E
letter M 134E
letter N 1345E
letter O 135E
letter P 1234E
letter Q 12345E
letter R 1235E
letter S 234E
letter T 2345E
letter U 136E
letter V 1236E
letter W 2456E
letter X 1346E
letter Y 13456E
letter Z 1356E

# The lowercase English letters.
letter a 1F
letter b 12F
letter c 14F
letter d 145F
letter e 15F
letter f 124F
letter g 1245F
letter h 125F
letter i 24F
letter j 245F
letter k 13F
letter l 123F
letter m 134F
letter n 1345F
letter o 135F
letter p 1234F
letter q 12345F
letter r 1235F
letter s 234F
letter t 2345F
letter u 136F
letter v 1236F
letter w 2456F
letter x 1346F
letter y 13456F
letter z 1356F

##########################################
# Forward Translation of English Letters #
##########################################

# Prepend the English letter sign to each block of English letters.
class englishLetter abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
noback pass2 %englishLetter. @56*

# Prepend the English capital sign to each uppercase English letter.
class englishUpper ABCDEFGHIJKLMNOPQRSTUVWXYZ
noback pass3 %englishUpper @6*

# Remove virtual dot F from the lowercase English letters.
noback pass4 [@1F] @1 # a
noback pass4 [@12F] @12 # b
noback pass4 [@14F] @14 # c
noback pass4 [@145F] @145 # d
noback pass4 [@15F] @15 # e
noback pass4 [@124F] @124 # f
noback pass4 [@1245F] @1245 # g
noback pass4 [@125F] @125 # h
noback pass4 [@24F] @24 # i
noback pass4 [@245F] @245 # j
noback pass4 [@13F] @13 # k
noback pass4 [@123F] @123 # l
noback pass4 [@134F] @134 # m
noback pass4 [@1345F] @1345 # n
noback pass4 [@135F] @135 # o
noback pass4 [@1234F] @1234 # p
noback pass4 [@12345F] @12345 # q
noback pass4 [@1235F] @1235 # r
noback pass4 [@234F] @234 # s
noback pass4 [@2345F] @2345 # t
noback pass4 [@136F] @136 # u
noback pass4 [@1236F] @1236 # v
noback pass4 [@2456F] @2456 # w
noback pass4 [@1346F] @1346 # x
noback pass4 [@13456F] @13456 # y
noback pass4 [@1356F] @1356 # z

# Remove virtual dot E from the uppercase English letters.
noback pass4 [@1E] @1 # A
noback pass4 [@12E] @12 # B
noback pass4 [@14E] @14 # C
noback pass4 [@145E] @145 # D
noback pass4 [@15E] @15 # E
noback pass4 [@124E] @124 # F
noback pass4 [@1245E] @1245 # G
noback pass4 [@125E] @125 # H
noback pass4 [@24E] @24 # I
noback pass4 [@245E] @245 # J
noback pass4 [@13E] @13 # K
noback pass4 [@123E] @123 # L
noback pass4 [@134E] @134 # M
noback pass4 [@1345E] @1345 # N
noback pass4 [@135E] @135 # O
noback pass4 [@1234E] @1234 # P
noback pass4 [@12345E] @12345 # Q
noback pass4 [@1235E] @1235 # R
noback pass4 [@234E] @234 # S
noback pass4 [@2345E] @2345 # T
noback pass4 [@136E] @136 # U
noback pass4 [@1236E] @1236 # V
noback pass4 [@2456E] @2456 # W
noback pass4 [@1346E] @1346 # X
noback pass4 [@13456E] @13456 # Y
noback pass4 [@1356E] @1356 # Z

###########################################
# Backward Translation of English Letters #
###########################################

nofor pass2 @56 ?#1=1
nofor pass2 #1=1@6 ?#1=2
nofor pass2 [$a] *#1=0

# Add virtual dot F to indicate a lowercase English letter.
nofor pass2 #1=1@1 @1F # a
nofor pass2 #1=1@12 @12F # b
nofor pass2 #1=1@14 @14F # c
nofor pass2 #1=1@145 @145F # d
nofor pass2 #1=1@15 @15F # e
nofor pass2 #1=1@124 @124F # f
nofor pass2 #1=1@1245 @1245F # g
nofor pass2 #1=1@125 @125F # h
nofor pass2 #1=1@24 @24F # i
nofor pass2 #1=1@245 @245F # j
nofor pass2 #1=1@13 @13F # k
nofor pass2 #1=1@123 @123F # l
nofor pass2 #1=1@134 @134F # m
nofor pass2 #1=1@1345 @1345F # n
nofor pass2 #1=1@135 @135F # o
nofor pass2 #1=1@1234 @1234F # p
nofor pass2 #1=1@12345 @12345F # q
nofor pass2 #1=1@1235 @1235F # r
nofor pass2 #1=1@234 @234F # s
nofor pass2 #1=1@2345 @2345F # t
nofor pass2 #1=1@136 @136F # u
nofor pass2 #1=1@1236 @1236F # v
nofor pass2 #1=1@2456 @2456F # w
nofor pass2 #1=1@1346 @1346F # x
nofor pass2 #1=1@13456 @13456F # y
nofor pass2 #1=1@1356 @1356F # z

# Add virtual dot E to indicate an uppercase English letter.
nofor pass2 #1=2@1 @1E#1=1 # A
nofor pass2 #1=2@12 @12E#1=1 # B
nofor pass2 #1=2@14 @14E#1=1 # C
nofor pass2 #1=2@145 @145E#1=1 # D
nofor pass2 #1=2@15 @15E#1=1 # E
nofor pass2 #1=2@124 @124E#1=1 # F
nofor pass2 #1=2@1245 @1245E#1=1 # G
nofor pass2 #1=2@125 @125E#1=1 # H
nofor pass2 #1=2@24 @24E#1=1 # I
nofor pass2 #1=2@245 @245E#1=1 # J
nofor pass2 #1=2@13 @13E#1=1 # K
nofor pass2 #1=2@123 @123E#1=1 # L
nofor pass2 #1=2@134 @134E#1=1 # M
nofor pass2 #1=2@1345 @1345E#1=1 # N
nofor pass2 #1=2@135 @135E#1=1 # O
nofor pass2 #1=2@1234 @1234E#1=1 # P
nofor pass2 #1=2@12345 @12345E#1=1 # Q
nofor pass2 #1=2@1235 @1235E#1=1 # R
nofor pass2 #1=2@234 @234E#1=1 # S
nofor pass2 #1=2@2345 @2345E#1=1 # T
nofor pass2 #1=2@136 @136E#1=1 # U
nofor pass2 #1=2@1236 @1236E#1=1 # V
nofor pass2 #1=2@2456 @2456E#1=1 # W
nofor pass2 #1=2@1346 @1346E#1=1 # X
nofor pass2 #1=2@13456 @13456E#1=1 # Y
nofor pass2 #1=2@1356 @1356E#1=1 # Z

