lang/laantas-old/sc.phonix

217 lines
6.3 KiB
Plaintext
Raw Permalink Normal View History

2021-06-05 02:48:54 -04:00
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]