1
0
forked from GitHub/gf-core

refactored Fin so that the stemmed and the unstemmed versions share all code except StemFin. It is chosen by setting the path; a functor solution would be purer, but it feels like overkill.

This commit is contained in:
aarne
2013-08-06 21:36:12 +00:00
parent c836e04764
commit 7a446f5cd1
32 changed files with 417 additions and 2903 deletions

View File

@@ -1,4 +1,4 @@
concrete CatFin of Cat = CommonX ** open ResFin, Prelude in {
concrete CatFin of Cat = CommonX ** open ResFin, StemFin, Prelude in {
flags optimize=all_subs ;
@@ -48,7 +48,7 @@ concrete CatFin of Cat = CommonX ** open ResFin, Prelude in {
-- The $Bool$ tells if a possessive suffix is attached, which affects the case.
CN = {s : NForm => Str ; h : Harmony} ;
Pron = {s : NPForm => Str ; a : Agr} ;
Pron = {s : NPForm => Str ; a : Agr ; hasPoss : Bool} ;
NP = {s : NPForm => Str ; a : Agr ; isPron : Bool ; isNeg : Bool} ;
Det = {
s1 : Case => Str ; -- minun kolme
@@ -81,21 +81,19 @@ concrete CatFin of Cat = CommonX ** open ResFin, Prelude in {
-- Open lexical classes, e.g. Lexicon
V, VS, VQ = Verb1 ; -- = {s : VForm => Str ; sc : Case} ;
V2, VA, V2Q, V2S = Verb1 ** {c2 : Compl} ;
V2A = Verb1 ** {c2, c3 : Compl} ;
VV = Verb1 ** {vi : InfForm} ; ---- infinitive form
V2V = Verb1 ** {c2 : Compl ; vi : InfForm} ; ---- infinitive form
V3 = Verb1 ** {c2, c3 : Compl} ;
V, VS, VQ = SVerb1 ;
V2, VA, V2Q, V2S = SVerb1 ** {c2 : Compl} ;
V2A = SVerb1 ** {c2, c3 : Compl} ;
VV = SVerb1 ** {vi : InfForm} ; ---- infinitive form
V2V = SVerb1 ** {c2 : Compl ; vi : InfForm} ; ---- infinitive form
V3 = SVerb1 ** {c2, c3 : Compl} ;
A = {s : Degree => AForm => Str} ;
A2 = {s : Degree => AForm => Str ; c2 : Compl} ;
A = {s : Degree => SAForm => Str ; h : Harmony} ;
A2 = {s : Degree => SAForm => Str ; h : Harmony ; c2 : Compl} ;
N = {s : NForm => Str ; h : Harmony} ;
N2 = {s : NForm => Str ; h: Harmony} ** {c2 : Compl ; isPre : Bool} ;
N3 = {s : NForm => Str ; h: Harmony} ** {c2,c3 : Compl ; isPre,isPre2 : Bool} ;
PN = {s : Case => Str} ;
oper Verb1 = {s : VForm => Str ; sc : NPForm ; qp : Bool ; p : Str} ;
N = SNoun ;
N2 = SNoun ** {c2 : Compl ; isPre : Bool} ;
N3 = SNoun ** {c2,c3 : Compl ; isPre,isPre2 : Bool} ;
PN = SPN ;
}