nvdaportable/NVDA/louis/tables/hbo-common-rules.uti

143 lines
4.4 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# liblouis: common rules for Classical/Biblical Hebrew
#
#-license: lgpl-2.1
# 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.
# This table contains rules that are shared by all three Classical/
# Biblical Hebrew systems: the International Hebrew Braille Code
# (hbo-ihbc.uti and hbo.utb), the fully cantillated IHBC-McAllister
# system (hbo-cantillated.uti and hbo-cantillated.utb), and the
# Katz system with no shewas or dageshes (hbo-slim.uti and
# hbo-slim.utb).
# Developed by Eric J. Harvey with support from the national
# Endowment for the Humanities (USA) and Stanford University.
# Many thanks to Leonard de Ruijter, Sarah Blake LaRose, Matthew
# Yeater, and Paul Geoghegan for their help developing and testing the
# tables, and to Abbie Howell for suggesting the inclusion of Yiddish
# characters and reviewing code.
# Copyright (C) 2025 Eric J. Harvey
#-copyright: 2025, Eric J. Harvey
#-maintainer: Eric J. Harvey <eric@blindscholar.com>
#-author: Eric J. Harvey <eric@blindscholar.com>
# Include common characters
include he-common-consonants.uti
include he-common-vowels-ihbc.uti
include spaces.uti
# Eliminate direction-switching characters
noback correct "" ? # Left-to-right mark
noback correct "" ? # Right-to-left mark
noback correct "" ? # left-to-right override
noback correct "" ? # Right-to-left override
# In rules below, attribute $x is %vowel, defined in he-common-vowels-ihbc.uti
# Attribute $y is %extcant, defined in he-common-vowels-ihbc.uti
# character reordering
## Move dagesh before nearest preceding consonant
noback correct [$l]"ּ" "ּ"*
noback correct [$l$xy.]"ּ" "ּ"*
## Move shin and sin dot next to sin/shin consonant
## Prerequisite for “always” rule in he-common-consonants.uti
## to work with vocalized texts.
noback correct [$xy.]"ׂ" "ׂ"*
noback correct [$xy.]"ׁ" "ׁ"*
# Contracting dagesh for bet, kaf, pe, and tav
noback context "ּב" @12
noback context "ּכ" @13
noback context "ּך" @13
noback context "ּפ" @1234
noback context "ּף" @1234
noback context "ּת" @1256
# Contracting ultralong vowels (vowel+mater lectionis)
attribute majCant \x05bc\x05bd
## Holam-waw and consonantal waw
noback pass3 !$xyz[@2456-135a] @246
noback pass3 [@2456-135a]$sp @246
noback pass3 [@2456-135a]~ @246
noback pass3 [@135a-2456]%hebLetter @246
## Shuruq and consonantal waw
noback context "ּו" @346
noback pass2 [@346]$xy @5a-2456
## Hiriq Yod
noback pass3 @24a-245 @35 Hiriq-yod
## Contract tsere-yod
noback pass3 @34a-245 @3456
## Shin and sin with dagesh
noback correct ["ש"$xy.]"\x05bc\x05c2" "\x05bc\x05c2"*
noback correct ["ש"$xy.]"\x05bc\x05c1" "\x05bc\x05c1"*
noback always \x05c1\x05e9 146
noback always \x05c2\x05e9 156
noback pass2 @146-5a @5a-146
noback pass2 @156-5a @5a-156
## Changing dagesh-he to mappiq
noback pass3 @5a-125 @45-125
# Back-translation rules
## dagesh
nofor pass2 @5[$l] *@5
## Reverse mappiq
nofor pass3 @45-125 @5-125
## Uncontract hiriq-yod
nofor pass4 @35 @24-245 Hiriq-yod
## Uncontract tsere-yod
nofor pass4 $lxy[@3456] @34-245
## Final letters
nofor correct _$lS"כ"~ "ך"
nofor correct _$lS"כ"[$sp] "ך"*
nofor correct _$lS"כ"[$S.$sp] "ך"*
nofor correct _$lS"כ"[$S.]~ "ך"*
nofor correct _$lS"מ"~ "ם"
nofor correct _$lS"מ"[$sp] "ם"*
nofor correct _$lS"מ"[$S.$sp] "ם"*
nofor correct _$lS"מ"[$S.]~ "ם"*
nofor correct _$lS"נ"~ "ן"
nofor correct _$lS"נ"[$sp] "ן"*
nofor correct _$lS"נ"[$S.$sp] "ן"*
nofor correct _$lS"נ"[$S.]~ "ן"*
nofor correct _$lS"פ"~ "ף"
nofor correct _$lS"פ"[$sp] "ף"*
nofor correct _$lS"פ"[$S.$sp] "ף"*
nofor correct _$lS"פ"[$S.]~ "ף"*
nofor correct _$lS"צ"~ "ץ"
nofor correct _$lS"צ"[$sp] "ץ"*
nofor correct _$lS"צ"[$S.$sp] "ץ"*
nofor correct _$lS"צ"[$S.]~ "ץ"*
## Holam-waw and shuruq
nofor always וּ 346
nofor always וֹ 246