Files
gf-core/examples/SUMO/RGLExt/ExtensionFre.gf
2010-02-17 11:07:24 +00:00

64 lines
2.0 KiB
Plaintext

--# -path=.:../romance:../common:../abstract:../prelude:
concrete ExtensionFre of Extension = CatFre ** open MorphoFre, Prelude, Coordination,ParamBasic, ResFre, GrammarFre, ParadigmsFre in {
lincat
PolSentence = {s : SentForm => Polarity => Str ; flag : Flag};
[CN] = {s1,s2 : Number => Str ; g : Gender} ;
SS = {s : Str};
lin
VerbToNoun v = {s = \\_ => v.s ! (VInfin True);
g = Masc};
VerbToNounV2 v2 = VerbToNoun v2 ** {c2 = v2.c2};
VerbToGerundA v = {s = \\_,af => case af of
{AF g n => v.s ! VGer; -- need more data for feminine and plural forms
AA => "en" ++ v.s ! VGer
};
isPre = False};
VerbToParticipeA v = {s = \\_,af => case af of
{AF g n => v.s ! (VPart g n);
AA => "en" ++ v.s ! VGer
};
isPre = False} ;
mkPolSent cl = {s = \\f,b => cl.s ! DDir ! RPres ! Simul ! b ! Indic ;
flag = NothingS ;
lock_PolSentence = <>
};
sentToNoun ps = heavyNP {s = \\_ => "\"" ++ ps.s ! Indep ! Pos ++ "\"";
a = agrP3 Masc Sg
};
at_Prep = mkPreposition "à" ;
per_Prep = mkPreposition "per" ;
ConjCN conj ss = conjunctDistrTable Number conj ss ** {
g = ss.g
};
BaseCN x y ={
s1 = \\n => x.s ! n ;
s2 = \\n => y.s ! n ;
g = x.g};
ConsCN xs x = consrTable Number comma xs x ** {g = x.g} ;
UsePolSentence p ps = {s = ps.s ! Indep ! p.p};
O1 = UsePN (mkPN "o1") ;
O2 = UsePN (mkPN "o2") ;
O3 = UsePN (mkPN "o3") ;
O4 = UsePN (mkPN "o4") ;
O5 = UsePN (mkPN "o5") ;
}