Skip to content
Find file
Fetching contributors…
Cannot retrieve contributors at this time
55 lines (41 sloc) 1.55 KB
Alphabet a b c d e f g h i I:i I:0 k l m n o p q r s t u v w x y z %-:0 ;
Sets
V = a e i o u ;
C = b c d f g h k l m n p q r s t v w x y z ;
Definitions
Cons = [ C | q u ] ;
Rules
"-a drop before -o and -e"
a:0 <=> _ %-: [ o | e ] ;
"-i theme vowel between consonant and s, t and m"
%-:i <=> Cons _ [ s | t | m ] ;
"-e theme vowel before -r"
%-:e <=> Cons _ r ;
"Short -i to -e before -r"
I:e <=> _ %-: r ;
!"-e theme vowel before -r"
!%-:e <=> [ Cons | I: ] _ r ;
!
!"Short -i drops before -e morpheme boundary"
!I:0 <=> _ %-:e ;
"-u theme vowel between consonant and n"
!%-:u <=> [ Cons | ~[ %-: e r ] :i ] _ n ; ! Should convey my intention. Doesn't work though.
%-:u <=> [ Cons | \%-: \e \r :i | .#. (i^1,2) :i ] _ n ; ! This works. It's ugly as sin, but it works.
"Loss of -I before present passive infinitive and first person imperative ending"
I:0 <=> _ %-: [ i | e ] .#. ;
! This rule has to be refined. First of all, it's possible for verbs ending in
! -e to have perfect stem -ev. Second, it's a bit more complicated than what
! I've currently implemented, see Ernout pp. 209-212.
! XXX: [i:|e:] should be replacable by `?'?
"Weird perfects, -v loss"
v:0 => a _ %-: [ i: | e: ] [ s | r ] ;
i _ %-: [ i: | e: ] ;
e _ %-: [ i: | e: ] ; ! XXX: More constraints?
! TODO: This rule has to be extended to remove all illegal forms.
"Stop -v syncope when it would cause confusion with other forms"
v:0 /<= a _ %-: ? r e .#. ;
"Weird perfects, -i loss"
i:0 <=> a v:0 %-: _ ;
i v:0 %-: _ s ;
"Weird perfects, -e loss"
e:0 <=> a v:0 %-: _ ;
Something went wrong with that request. Please try again.