# AshaninkaReduplication.script
define RedupSyl [{ri}|{po}|{mi}|{pi}|{ra}];
define V [a|e|i|o];
define REDUPSYL ?* "+redup.syl.";
define Ashaninka 0:"^["
[{pinairi}|{sori}|{shipo}|{tsimi}|{sapi}|{shipari}|{sakiri}|{shiri}|{pakara}|{teri}|{mari}|{mantsari}|{moreri}]
["+redup.syl."]
0:"^]";
define DeleteRedupSyl "+redup.syl." -> 0;
define AshaninkaRedup RedupSyl @-> "[" ... "]^{1,5}" || V _ REDUPSYL "^]" .#. ;
regex Ashaninka .o. AshaninkaRedup .o. DeleteRedupSyl ;
set retokenize off
compile-replace lower
#print lower-words
#####################################################################
! Test
! xfst[12]: up mantsari
! mantsari+redup.syl.
! xfst[12]: up mantsariri
! mantsari+redup.syl.
! xfst[12]: up mantsaririri
! mantsari+redup.syl.