lang/laantas-old/sc.phonix

217 lines
6.3 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import std.features
import std.symbols.ipa
import std.symbols.ipa.diacritics
#########
# SETUP #
#########
feature stress
# needs to go directly after vowel instead of the normal place
symbol ˈ (diacritic) [+stress]
symbol ɡ [(g)]
symbol ɫ [(l) +bk +hi]
symbol ɬ [(l) -son -vc]
symbol dʒ [(ʒ) -cont]
symbol tʃ [(ʃ) -cont]
feature [V] [-cons +syll]
feature [I] [[V] +fr +hi]
feature [U] [[V] -bk +hi]
feature [A] [[V] +lo]
feature [N] [+nas +cons *syll]
feature [ALV] [+ant -dist *syll +cons]
feature [PST] [+str -ant +dist *syll +cons]
# Phonix hangs if it's unable to display a sound. And fricatives aren't just
# plosive +cont, because of course they aren't.
symbol ?v [(b) +cont] rule ?v-v (persist) ?v => v
symbol ?f [(p) +cont] rule ?f-f (persist) ?f => f
symbol ?θ [(t) +cont] rule ?θ-θ (persist) ?θ => θ
symbol ?ð [(d) +cont] rule ?ð-ð (persist) ?ð => ð
symbol ?x [(k) +cont] rule ?x-x (persist) ?x => x
symbol ?ɣ [(g) +cont] rule ?ɣ-ɣ (persist) ?ɣ => ɣ
feature long
symbol ː (diacritic) [+long]
rule schwa-glide ə => [-syll]
syllable
onset [-syll]
onset [*syll]
nucleus [+syll]
coda [-syll]
coda ([-syll])[*syll]
#####################
# INITIAL ALLOPHONY #
#####################
rule nasal-assim [+nas] => [$Place] / _ [$Place +cons]
rule r-before-i ɾ => zʲ / _ i
rule s-after-postalv s => ʃ / _ [+str +dist]
rule nas-cont1 [-cons] => [+nas] / _ [[N]][+cons +cont]
rule nas-cont2 [[N]] => * / [+nas -cons] _ [+cons +cont]
rule nas-cont3 [[N]] => * / [+syll +cons] _ [+cons +cont]
rule nas-vowel-spread [-cons] => [+nas] / _ [+nas -cons]
rule nas-glide-fix
[+syll -cons][-cons -syll +nas] => [+nas][-nas]
rule iv-voiced [+vc -cont] => [+cont] / [-cons] _ [-cons]
rule x-before-sr x => h / r̩ _
rule x-after-sr x => h / _ r̩
rule x-before-i x => ç / _ i
rule double-r ɾɾ => ʐʐ
rule final-r ɾ => ɾ̥ / _ $
rule double-l ll => ɫɫ
rule postv-l l => lʲ / _ [+cons] // _ l
rule tl l => ɬ / t _
rule final-l l => ɬʲ / _ $
rule lθ lθ => ɬʲɬʲ
rule l-back l => ɫ / _ [+bk]
rule back-a [[A]] => [-fr +bk] / [+bk] _
rule lower-hi1 [[V] +hi] => [-hi +str] / [+bk] _ // [+lat] _
rule lower-hi2 [-hi -lo *long] => [-str] // _ [-cons]
rule ji [[V] +fr +hi] => [-hi +str] / j _
rule ju [[V] +bk +hi] => [-bk +fr] / j _
rule pst-u [[V] +bk +hi] => [-bk +fr] / [[PST]] _
rule wu [[V] +bk +hi] => [-hi +str] / w _
rule alv-i [[V] +fr +hi] => [-str] / [[ALV]] _
rule syll-l l̩ => ɫ̩
rule syll-n-v n̩ => ŋ̩ / _ [+bk +cons]
#################
# SOUND CHANGES #
#################
rule init-j-nasal j => ɲ / $ _
rule iv-j-fort j => ʒ / [[V]] _ [[V]]
rule au-mono [[A] *stress] => ɔː / _ w
rule au-mono2 w => * / [(ɔː)] _
rule ai-mono-f [[A] *stress] => æː / _ j
rule ai-mono-f2 j => * / [(æː)] _
rule uə-mono [[V] *stress +bk] => ɤː / _ ə̯
rule uə-mono2 ə̯ => * / [(ɤː)] _
rule iə-mono [[V] *stress +fr *ro] => ɨː / _ ə̯
rule iə-mono2 ə̯ => * / [(ɨː)] _
rule ye-mono [[V] *stress +fr +ro] => øː / _ ə̯
rule yə-mono2 ə̯ => * / [(øː)] _
rule hiatus-merge1 [+long] => [*long] / _ [[V]]
rule hiatus-merge2 [+long] => [*long] / [[V]] _
rule hiatus-merge3 [[V]] => [-syll] / [[V]] _
rule one-glide [-cons -syll] => * / _ [-cons -syll]
rule ns-a-frontness [-cons -syll +lo] => [$fr $bk] / [-cons $fr $bk] _
rule eow-nasal1 [[V]] => [+nas] / _ [+nas *syll] $
rule eow-nasal2 [+nas *syll] => * / [[V] +nas] _ $
syllable
onset [-syll]
onset [*syll]
nucleus [+syll]
coda [-syll]
coda ([-syll])[*syll]
rule poststress-vowel1 [[V] *long] => * / [+stress] [*syll] _ [] // _ [<coda>]
rule poststress-vowel2 [[V] *long] => * / [+stress] [-syll] _ [] // _ [<coda>]
rule unstressed-short [[V] *stress] => [*long] // _ $
rule eow-u [[V] +ro -fr] => u / _ $
rule eow-schwa1 [[V] *long *nas -hi] => ə / _ $
rule no-v-wj [-cons -syll] => * / [+cons] _ [+cons]
rule init-glide-cons [-cons -syll] => * / $ _ [+cons]
rule syll-glide [+cons +syll *stress] => [*syll] / _ [-cons -syll]
rule l-light ɫ => l / _ j
rule l-pal l => ʎ / _ j
rule l-pal2 j => * / ʎ _
rule syll-r-v1 * => ɑ / _ [(r̩)]
rule syll-r-v2 [+syll] => [+stress] / _ [(r) +stress]
rule syll-r-v3 [(r̩)] => ɾ
rule syll-n-v1 n̩ˈ => ɛ̃ˈ
rule syll-n-v2 * => j / ɛ̃ˈ _
rule syll-n-v3 n̩ => ɛ̃
rule syll-m-v1 m̩ˈ => ɔ̃ˈ
rule syll-m-v2 * => w / ɔ̃ˈ _
rule syll-m-v3 m̩ => ɔ̃
rule syll-l-v1 ɫ̩ˈ => uˈ
rule syll-l-v2 ɫ̩ => u
syllable
onset [-syll]
onset [*syll]
nucleus [+syll]
coda [-syll]
coda ([-syll])(ɾ)[*syll]
rule nonrhotic [(ɾ) <coda>] => ə̯
rule a-r a => ɑ / _ ə̯
rule voice-l [(ɬ)] => l
rule coda-l [+lat <coda>] => ɫ
rule debuc-fric-coda
[+cont -vc <coda> $Place $Manner] => χ // _ [$Place $Manner]
rule debuc-fric-coda2
χ => ç / [+fr +syll] _
rule ts-pal1 t => tʃ / _ s
rule ts-pal2 s => * / tʃ _
rule ts-pal3 ɪ => i / [[PST]] _
rule nasal-a ã => ɑ̃
rule nasal-y [+fr +hi +ro +nas +syll] => ø̃
rule nasal-i [+fr +hi *ro +nas +syll] => ẽ
rule nasal-u [+bk +hi +nas +syll] => õ
rule ps p => w / [-cons] _ s
rule ww w => * / _ w
rule ks k => j / [-cons] _ s
rule jj j => * / _ j
rule iv-pls-v [-cont -vc] => [+vc] / [-cons] _ [-cons]
rule iv-s-v s => z / [-cons] _ [-cons]
rule iv-š-v ʃ => ʒ / [-cons] _ [-cons]
rule iv-gem-s
[-son $Place $Manner] => * / [-cons] _ [$Place $Manner] [-cons]
rule iv-gem-s2 t => * / _ tʃ
rule final-i-pst [+hi +fr *ro] => * / [[PST]] _ $
rule ð-ɣ ð => ɣ / [-cons] _ [-cons]
rule ð-ː ð => [$Place $Manner $vc] / [+cons $vc $Place $Manner] _
rule ɣ-w wɣ => ɣw
rule ɣ-j ɣ => * / j _
rule t-pls t => θ / _ [-cont] // _ t
rule ə̯-unstressed ə̯ => * / [*stress] _ // _ $
rule a-unstressed [+lo *stress] => ə // _ [-cons <coda>]
rule ɣɣ => ʁ
rule χɾ χ => ʃ / _ ɾ
###########
# CLEANUP #
###########
rule cleanup-syll [+cons -syll] => [*syll]