summaryrefslogtreecommitdiff
path: root/language/hebrew/makor/omega/otp/makor2/m2putvwl.otp
diff options
context:
space:
mode:
Diffstat (limited to 'language/hebrew/makor/omega/otp/makor2/m2putvwl.otp')
-rw-r--r--language/hebrew/makor/omega/otp/makor2/m2putvwl.otp83
1 files changed, 83 insertions, 0 deletions
diff --git a/language/hebrew/makor/omega/otp/makor2/m2putvwl.otp b/language/hebrew/makor/omega/otp/makor2/m2putvwl.otp
new file mode 100644
index 0000000000..087c709542
--- /dev/null
+++ b/language/hebrew/makor/omega/otp/makor2/m2putvwl.otp
@@ -0,0 +1,83 @@
+input:
+ 1
+ ;
+output:
+ 1
+ ;
+aliases:
+
+ CON = (96-122|144-171|176-181|192-199|140|172-173|189) % Hebrew letters
+ ;
+ VWL = (65-72|74-77|182-187) % vowels, excluding holamdot
+ ;
+ TRP = (209-225|227-239) % trope
+ ;
+ NUM = (48-57)
+ ;
+%% A sequence of 0 or more vowels can be terminated by another
+%% consonant, a space, a non-letter, or the end of input.
+ NL = (33-64|78-81|85|91-95|123-127|139|143|188|208-225|227-239)
+ ; % non-letters
+ CNL = ({CON}|{NL}) % consonant or non-letter
+ ;
+ SPACE = 32
+ ;
+%% We need to keep track of trope that occurs above/below the
+%% letter...
+ UTRP = (210-213|215-217|220-225|232-233|235-236|238-239) % upper
+ ;
+ LTRP = (209|214|218-219|227-231|234|237) % lower
+ ;
+%% Some upper trope occurs at right edge, and some at left edge...
+ RTTRP = (221|224) % all upper right tropes
+ ;
+ LFTTRP = (217|233|238) % all upper left tropes
+ ;
+expressions:
+%% Apart from the below-named cases, the BHS text is not 100\% consistent
+%% in its conventions. Sometimes, an upper trope appears as the first
+%% element of a word.
+ {NL}{UTRP}{CON}{VWL} => \1"\PutUTrpVwl{" \3 "}{" \2 "}{" \4 "}"
+ ;
+ {NL}{UTRP}{CON} => \1 "\PutUTrp{" \3 "}{" \2 "}"
+ ;
+%% Words can also be started by a space.
+ {SPACE}{UTRP}{CON}{VWL} => \1"\PutUTrpVwl{" \3 "}{" \2 "}{" \4 "}"
+ ;
+ {SPACE}{UTRP}{CON} => \1 "\PutUTrp{" \3 "}{" \2 "}"
+ ;
+%% Here are all the cases to be considered when placing the vowel place-
+%% ment macros. One case is C (consonant) followed by no vowel (V) or trope.
+%% No markup is necessary for this case.
+%% Next,
+%% 1. C V LT|UT (LT=lower trope, UT=upper trope)
+%% 2. C V
+%% 3. C LT|UT V
+%% 4. C LT|UT
+%% This method is also efficacious because it lets us test the trope
+%% separately (in the TeX macro) to see if it is a `right edge' or
+%% `left edge' trope. Remember, this information has been encoded in
+%% the trope's italic correction.
+ {CON}{VWL}{UTRP} => "\PutVwlUTrp{" \1 "}{" \2 "}{" \3 "}"
+ ;
+ {CON}{VWL}{LTRP} => "\PutVwlLTrp{" \1 "}{" \2 "}{" \3 "}"
+ ;
+ {CON}{VWL} => "\PutVwl{" \1 "}{" \2 "}"
+ ;
+ {CON}{UTRP}{VWL} => "\PutUTrpVwl{" \1 "}{" \2 "}{" \3 "}"
+ ;
+ {CON}{LTRP}{VWL} => "\PutLTrpVwl{" \1 "}{" \2 "}{" \3 "}"
+ ;
+ {CON}{UTRP} => "\PutUTrp{" \1 "}{" \2 "}"
+ ;
+ {CON}{LTRP} => "\PutLTrp{" \1 "}{" \2 "}"
+ ;
+
+%% In case of unadorned consonants, we surround them with a macro as
+%% well..
+ {CON} => "\PutCon{" \1 "}"
+ ;
+ {NUM} => "\PutNum{" \1 "}"
+ ;
+ . => "\PutOther{" \1 "}"
+ ; \ No newline at end of file