package Ġsh mp . lang . language . der ivation Ċ Ċ import Ġsh mp . lang . language . ph ono logy . pro s ody . Pro s ody Ċ import Ġsh mp . lang . language . ph ono logy . pro s ody . St ress ĊĊ Ċ interface ĠCompound Pro s ody Rule Ġ{ ĊĠĠĠ Ġfun Ġchange Pro s ody ( word Ind : ĠInt , Ġpro s odies : ĠList < Pro s ody >): ĠList < Pro s ody > ĊĊĠĠĠ Ġval Ġdefault ToString : ĠString Ċ } Ċ Ċ abstract Ġclass ĠAbstract Compound Pro s ody Rule Ġ: ĠCompound Pro s ody Rule Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġdefault ToString Ċ } ĊĊ Ċ object ĠPass ing Pro s ody Rule Ġ: ĠAbstract Compound Pro s ody Rule () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġchange Pro s ody ( word Ind : ĠInt , Ġpro s odies : ĠList < Pro s ody >) Ġ= Ġpro s odies ĊĊĠĠĠ Ġoverride Ġval Ġdefault ToString Ġ= Ġ" Words Ġare Ġconcaten ated Ġwithout Ġchange " Ċ } ĊĊ Ċ class ĠSt ress On Word Rule ( private Ġval Ġst ressed Word Index : ĠInt ) Ġ: ĠAbstract Compound Pro s ody Rule () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġchange Pro s ody ( word Ind : ĠInt , Ġpro s odies : ĠList < Pro s ody >) Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( word Ind Ġ!= Ġst ressed Word Index ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpro s odies . filter Ġ{ Ġit Ġ! is ĠSt ress Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġpro s odies ĊĊĠĠĠ Ġoverride Ġval Ġdefault ToString Ġ= Ġ" St ress Ġis Ġput Ġon Ġ${ st ressed Word Index Ġ+ Ġ 1 } th Ġword " Ċ } Ċ