! This file is a script for the Xerox xfst interface. clear stack echo << THE DEFININTIONS >> echo << defining Vow >> define Vow [ a | á | e | i | o | u | y | æ | ä | ø | ö | å | é | ó | ú | í | à | è | ò | ù | ì | ë | ü | ï | â | ê | ô | û | î | ã | ý | A | Á | Â | Å | E | I | O | Õ | Æ | Ø | Ö ] ; echo << defining Cns >> define Cns [ b | c | c1 | d | d1 | f | g | g1 | g2 | h | j | k | k1 | l | m | n | p | q | q1 | q2 | r | s | s1 | t | t1 | v | w | x | z | z1 | B | C | C1 | D | D1 | F | G | G1 | G2 | H | J | K | K1 | L | M | N | P | Q | Q1 | Q2 | R | S | S1 | T | T1 | V | W | X | Z | Z1 ] ; echo << defining Dummy >> define Dummy [ X1 | X2 | X3 | X4 | X5 | X6 | X7 | X8 | X9 | Q1 | Q2 | Q3 | Q4 | Q5 | Q6 | Q7 | Q8 | Q9 | Y1 | Y2 | Y3 | Y4 | Y5 | Y6 | Y7 | Y8 | %^P3 ] ; echo << defining WeG >> define WeG [ X2 | X3 | Q1 | Q2 | Q3 ] ; echo << defining StemCns >> define StemCns [ b | b3 | d | d3 | g | g2 | g3 | h | h2 | h3 | j | l | m | m2 | m3 | n | n2 | ñ | r | s ] ; ! Consonant alternations in certain pos ! ------------------------------------- ! Vowel shifts ! ------------ echo << THE VOWEL SHIFT RULES >> echo << defining the LongVowel-Lowering rule >> define LongVowelLowering i i -> e e , õ õ-> â â , u u -> o o , a a -> ä ä , o u -> å u , i õ -> e â , i â -> e ä , u õ -> u â , u å -> u ä || Cns _ Cns+ *? %^P3 ; echo << defining the ShortVowel-Lowering rule >> define ShortVowelLowering i -> e , õ -> â , u -> o , a -> ä || Cns _ Cns+ *? %^P3 ; ! Stem vowel alternations ! ----------------------- ! a-stem alternations ! - - - - - - - - - - ! e-stem alternations ! - - - - - - - - - - ! o-stem alternations ! - - - - - - - - - - ! alternations valid for several stem types ! - - - - - - - - - - - - - - - - - - - - - ! Diphtong simplification ! ----------------------- ! Consonant gradation rules ! ------------------------- echo << THE CONSONANT GRADATON RULES >> ! Deletion rules ! - - - - - - - - echo << defining t Deletion >> define tDeletion [ t -> 0 || Vow t _ Vow WeG ] ; !define tDeletion t -> 0 || Vow t:d1 _ Vow WeG ; ! Change rules ! - - - - - - echo << CLEANING UP AND COMPOSING END RESULT >> echo << defining DummyDeletion >> define DummyDeletion [ Dummy -> 0 ] ; echo << composing different parts >> read regex [ LongVowelLowering .o. ShortVowelLowering .o. tDeletion .o. DummyDeletion ] ;