%% 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!
	.     => \*
	      ;
