mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-16 16:29:32 -06:00
48 lines
1.6 KiB
Plaintext
48 lines
1.6 KiB
Plaintext
--# -path=.:../romance:../common:../abstract
|
|
|
|
resource MakeStructuralFre = open CatFre, (P = ParadigmsFre), MorphoFre, Prelude in {
|
|
|
|
oper
|
|
|
|
mkConj = overload {
|
|
mkConj : Str -> Conj = \s -> lin Conj {s1 = [] ; s2 = s ; n = Pl} ;
|
|
|
|
mkConj : Str -> Str -> Number -> Conj = \x,y,n ->
|
|
{s1 = x ; s2 = y ; n = n ; lock_Conj = <>} ;
|
|
} ;
|
|
mkSubj : Str -> Subj = \x ->
|
|
{s = x ; m = Indic ; lock_Subj = <>} ;
|
|
mkSubjSubj : Str -> Subj = \x ->
|
|
{s = x ; m = Conjunct ; lock_Subj = <>} ;
|
|
|
|
mkQuant : (_,_,_,_ : Str) -> Quant = \sm,sf,pm,pf ->
|
|
let aucun : ParadigmsFre.Number => ParadigmsFre.Gender => Case => Str = table {
|
|
Sg => \\g,c => prepCase c ++ genForms sm sf ! g ;
|
|
Pl => \\g,c => prepCase c ++ genForms pm pf ! g
|
|
}
|
|
in lin Quant {
|
|
s = \\_ => aucun ;
|
|
sp = aucun ;
|
|
s2 = [] ;
|
|
isNeg = False
|
|
} ;
|
|
|
|
mkIQuant : Str -> IQuant = \s ->
|
|
{s = \\_,_,c => prepCase c ++ s ; lock_IQuant = <>} ;
|
|
|
|
mkPredet : Str -> Str -> Prep -> Bool -> Predet = \m,f,c,p -> lin Predet {
|
|
s = \\g,k => prepCase k ++ case g.g of {Masc => m ; Fem => f} ;
|
|
c = c.c ;
|
|
a = if_then_else PAgr p (PAg Sg) PNoAg ---- e,g, "chacun de"; other possibilities?
|
|
} ;
|
|
|
|
mkInterj : Str -> Interj = \s -> lin Interj (ss s) ;
|
|
mkDet = overload {
|
|
mkDet : Str -> Det = \s -> lin Det {s,sp = \\_,c => prepCase c ++ s ; n = Sg ; s2 = [] ; isNeg = False} ;
|
|
mkDet : Str -> Str -> Number -> Det = \m,f,n -> lin Det {
|
|
s,sp = \\g,c => prepCase c ++ case g of {Masc => m ; Fem => f} ; n = n ; s2 = [] ; isNeg = False
|
|
} ;
|
|
} ;
|
|
|
|
}
|