ph_hindi 920 Bytes
// Differences from ph_hindi_base

phoneme V
  vowel flag1 starttype #@  endtype #@
  length 140

  IF thisPh(isWordStart) THEN
    FMT(vowel/V_3)
    RETURN
  ENDIF

  IF thisPh(isNotStressed) THEN
    length 130

    IF thisPh(isWordEnd) AND NOT thisPh(isFirstVowel) THEN
      ChangePhoneme(NULL)
    ENDIF

    IF prevPh(H) THEN
      ChangePhoneme(@)
    ENDIF

    IF prev2PhW(isVowel) AND NOT nextVowel(isFlag1) THEN
      IF thisPh(isFinalVowel) AND nextPhW(isNotVowel) THEN
        // don't delete schwa before a word-final consonant
      ELSE
        ChangePhoneme(NULL)
      ENDIF
    ENDIF

    IF prevPh(isPalatal) AND NOT nextPh(H) THEN
      ChangePhoneme(@3)
    ELSEIF prevPh(r) THEN
      ChangePhoneme(@2)
    ELSE
      ChangePhoneme(@)
    ENDIF
  ENDIF
  
  IF nextPh(H) OR prevPh(H) THEN
    FMT(vowel/@_low)
  ENDIF

  IF prevPh(w) THEN
    FMT(vowel/V_4)
  ENDIF

  FMT(vowel/V_3)
endphoneme