%% A Makor-Omega otp file to do preliminary analysis for Yiddish input.
%% The sequential file m2yidcon.otd does contextual analysis of some
%% word-initial forms.
input:
1;
output:
1;
states:
WORD_INIT
;
aliases:
VALIDNONALPH = (39|`^'|`.')
;
VALIDVWL = (`a'|`o'|`u'|`i'|`e')
;
VALIDCONS =(`b'|`v'|`g'|`d'|`h'|`y'|`z'|`k'|`t'|
`l'|`m'|`n'|`s'|`p'|`f'|`r'|`c'|`j')
;
VALIDYID = (128-135)
;
VALID = ({VALIDNONALPH}|{VALIDVWL}|{VALIDCONS}|{VALIDYID})
;
INVALID = ^({VALIDNONALPH}|{VALIDVWL}|{VALIDCONS}|{VALIDYID})
;
expressions:
%% Handle `f' first...
`f' {INVALID} => `f' `^' \$
;
`f' => 135
;
%% These certain vowels will be the subject of contextual analysis,
%% since they must be preceded with an alef at word-beginnings.
`o'`y' => 129
;
`o'`i' => 129
;
`o'`o' => `w'
;
`u' => `w'
;
`a'`y' => 133
;
`e'`i' => 133
;
`e'`y' => 130
;
`i' => `y'
;
%% 3-char input conventions...
`v'`o'`o' => 128 `o' `o'
;
`.'`k'`h' => `c' `h'
;
%% 2-char input conventions...
`.'`v' => 134
;
`v'`u' => 128 `o' `o'
;
`o'`o' => `w'
;
`e'`e' => 131
;
`y'`i' => 132
;
`k'`h' => \*
;
`.'`k' => `k'
;
`t'`s' => \*
;
`^'`s' => \*
;
`s'`h' => \*
;
`.'`t' => `t'
;
`.'`s' => `t'`h'
;
`d'`z' => \*
;
`z'`h' => `z'`s'`h'
;
`c'`h' => `.'`t'`s'`h'
;
%% 1-char input conventions...
`j' => `d'`z'`s'`h'
;
39 => "^" 39
;
`a' => "^" 39 `a'
;
`o' => "^" 39 `a'`u'
;
`b' => `v'
;
`g' => \*
;
`d' => \*
;
`h' => \*
;
`v' => 128
;
`u' => `w'
;
`z' => \*
;
`t' => `.'`t'
;
`y' => `y'`y' % a flag for m2yidcon otp
;
`l' => \*
;
`m' => \*
;
`n' => \*
;
`s' => `.' `s'
;
`e' => 96
;
`p' => `p' `_'
;
`k' => `q'
;
`r' => \*
;
%% Everything else!
. => \*
;