Finite state and Constraint Grammar based analysers, proofing tools and other resources
View the project on GitHub giellalt/lang-cor
Cornish morph-phon grammar file
This is the file for the morphophonological rules.
We keep a verbose style, at each point we tell what we will do. That is the echo commands.
Here, we have left some documentation for curious readers:
These triggers are given a name, so that we can delete them when they have done their job.
DummySymbols
Boundary
Dummy
Cns
Yy
Symbols
Here the action begins.
!identity
gsoft: If we encounter a final %^S symbol, we delete an initial g
Etc for changing g to h in front of %^M, etc.
Then we generalise: softmut p -> b etc. in front of %^S
Change gw to g with gwsimplification
Aspirant mutation p > f etc. in front of %^A
k to h in front of %^A with kaspmut
!The other consonant rules
Devoicing b -> p etc. in front of %^P
Voiced plosive to fric with mixed in front of %^M
Nonmutation as identity when we do not have triggers. Hmm, why is this needed?
ConsonantDoublingI bdg in front of %^CD
ConsonantDoublingII t in front of %^CD
ConsonantDoublingIII various cns in front of %^CD
Devoicing b -> p
Deleting light stem vowel with LightStemVow
AuslautHerdung
Umlaut of e3, a4, … in %^UML contexts Always Uml if affix. Then Uml if no affix, but when %^UML mark
The triggers have done their work The order of rules here is not crucial, crucial is the order below: But it is a good idea to have the same rule here as well. Dummydeletion comes last:
ArchiPhonemes should not be on the surface
Then we compile, one rule after another.
This (part of) documentation was generated from src/fst/morphology/phonology.xfscript