--# -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") ; }