Rules marked as propagate are only applied once if the match is <syl> (and further narrowing of the match such as <syl>&[unstressed] makes no difference either).
Minimal working demonstration adapted from the Advancedish example:
Feature type(*cons, vowel)
Feature (syllable) stress(*unstressed, secondary, primary)
Diacritic ˈ (before) [primary]
Diacritic ˌ (before) [secondary]
Symbol a [vowel]
Syllables:
[cons]? [vowel]
primary-stress-second-last-syllable:
<syl> => [primary] / _ <syl> $
add-secondary-stress propagate:
# This rule appears to be applied only once despite propagate
<syl> => [secondary] / _ <syl> {[primary], [secondary]}
Testinput: papapapapapa
output: pa.pa.ˌpa.pa.ˈpa.pa
expected: ˌpa.pa.ˌpa.pa.ˈpa.pa (with secondary stress on the first syllable)
The issue isn’t related to the number of syllables either; you always get only one secondary stress, regardless of the number of syllables in the input (as long as that number is ≥4 obviously).
Rules marked as propagate are only applied once if the match is
<syl>
(and further narrowing of the match such as<syl>&[unstressed]
makes no difference either).Minimal working demonstration adapted from the Advancedish example:
Testinput:
papapapapapa
output:pa.pa.ˌpa.pa.ˈpa.pa
expected:ˌpa.pa.ˌpa.pa.ˈpa.pa
(with secondary stress on the first syllable)The issue isn’t related to the number of syllables either; you always get only one secondary stress, regardless of the number of syllables in the input (as long as that number is ≥4 obviously).