1
0
forked from GitHub/gf-rgl

(Pes) Add word order argument OV/VO to showVPH + use VO in Extend.ByVP

Co-Authored-By: Nasrin M <Nasrin63@users.noreply.github.com>
This commit is contained in:
Inari Listenmaa
2019-04-26 19:06:48 +02:00
parent 2103a9c576
commit 516d4444d3
2 changed files with 14 additions and 9 deletions

View File

@@ -40,7 +40,7 @@ lin
AdvIsNP adv np = mkClause (indeclNP adv.s ** {a = np.a}) (UseComp (CompNP np)) ; AdvIsNP adv np = mkClause (indeclNP adv.s ** {a = np.a}) (UseComp (CompNP np)) ;
-- : VP -> Adv ; -- by publishing the document -- : VP -> Adv ; -- by publishing the document
ByVP vp = lin Adv {s = with_Prep.s ++ showVPH Inf defaultAgr vp} ; ByVP vp = lin Adv {s = with_Prep.s ++ showVPH' VO False VVPres Inf defaultAgr vp } ;
-- : VP -> Adv ; -- (in order) to publish the document -- : VP -> Adv ; -- (in order) to publish the document
InOrderToVP vp = lin Adv {s = for_Prep.s ++ showVPH PerfStem defaultAgr vp} ; InOrderToVP vp = lin Adv {s = for_Prep.s ++ showVPH PerfStem defaultAgr vp} ;

View File

@@ -15,6 +15,7 @@ resource ResPes = MorphoPes ** open Prelude,Predef in {
CardOrd = NCard | NOrd ; CardOrd = NCard | NOrd ;
RAgr = RNoAg | RAg Agr ; RAgr = RNoAg | RAg Agr ;
RelPron = Ance | Ke ; -- https://en.wiktionary.org/wiki/%D8%A2%D9%86%DA%86%D9%87 RelPron = Ance | Ke ; -- https://en.wiktionary.org/wiki/%D8%A2%D9%86%DA%86%D9%87
WordOrder = OV | VO ; -- for showVPH
oper oper
CN : Type = Noun ** { CN : Type = Noun ** {
@@ -102,18 +103,22 @@ oper
} ; } ;
showVPH = overload { showVPH = overload {
showVPH : VerbForm -> Agr -> VPH -> Str = showVPH' False VVPres ; showVPH : VerbForm -> Agr -> VPH -> Str = showVPH' OV False VVPres ;
showVPH : VVTense -> VerbForm -> Agr -> VPH -> Str = showVPH' False showVPH : VVTense -> VerbForm -> Agr -> VPH -> Str = showVPH' OV False
} ; } ;
showVPH' : Bool -> VVTense -> VerbForm -> Agr -> VPH -> Str = showVPH' : WordOrder -> Bool -> VVTense -> VerbForm -> Agr -> VPH -> Str =
\showImpPref,ant,vf,agr,vp -> \wo,showImpPref,ant,vf,agr,vp ->
let impPref = case showImpPref of { let impPref = case showImpPref of {
True => vp.s ! ImpPrefix Pos ; True => vp.s ! ImpPrefix Pos ;
False => [] } False => [] }
in vp.ad ++ vp.comp ! agr ++ vp.obj in case wo of {
++ vp.prefix ++ impPref ++ vp.s ! vf OV => vp.ad ++ vp.comp ! agr ++ vp.obj
++ vp.vComp ! agr ! ant ++ vp.embComp ; ++ vp.prefix ++ impPref ++ vp.s ! vf
++ vp.vComp ! agr ! ant ++ vp.embComp ;
VO => vp.prefix ++ vp.s ! vf ++ vp.ad
++ vp.comp ! agr ++ vp.obj ++ impPref
++ vp.vComp ! agr ! ant ++ vp.embComp } ;
Compl : Type = {s : Str ; ra : Str ; mod : Mod} ; Compl : Type = {s : Str ; ra : Str ; mod : Mod} ;
@@ -189,7 +194,7 @@ oper
\\agr,ant => if_then_Str vv.isAux conjThat [] ++ \\agr,ant => if_then_Str vv.isAux conjThat [] ++
case <ant,vv.isDef,vv.compl> of { case <ant,vv.isDef,vv.compl> of {
-- Auxiliaries with defective inflection: complement inflects in tense -- Auxiliaries with defective inflection: complement inflects in tense
<VVPast Indic,True,> => showVPH' True VVPres (VPast Pos agr) agr vp ; <VVPast Indic,True,> => showVPH' OV True VVPres (VPast Pos agr) agr vp ;
<VVPast Indic,_,_> => showVPH (VPast Pos agr) agr vp ; <VVPast Indic,_,_> => showVPH (VPast Pos agr) agr vp ;
<VVPast Subj> => showVPH PerfStem agr vp ++ subjAux Pos agr ; <VVPast Subj> => showVPH PerfStem agr vp ++ subjAux Pos agr ;