1
0
forked from GitHub/gf-rgl

1 Commits

Author SHA1 Message Date
Inari Listenmaa
8d40fdf79f (Lav) replace Case in VP and Prep by smaller param 2023-08-16 10:25:50 +03:00
11 changed files with 136 additions and 126 deletions

View File

@@ -21,12 +21,12 @@ lin
-- e.g. "married to her" -- e.g. "married to her"
ComplA2 a np = { ComplA2 a np = {
s = \\d,g,n,c => case np.isPron of { s = \\d,g,n,c => case np.isPron of {
False => a.s ! (AAdj Posit d g n c) ++ a.prep.s ++ np.s ! (a.prep.c ! (fromAgr np.agr).num) ; False => a.s ! (AAdj Posit d g n c) ++ a.prep.s ++ np.s ! partcase2case (a.prep.c ! (fromAgr np.agr).num) ;
True => a.prep.s ++ np.s ! (a.prep.c ! (fromAgr np.agr).num) ++ a.s ! (AAdj Posit d g n c) True => a.prep.s ++ np.s ! partcase2case (a.prep.c ! (fromAgr np.agr).num) ++ a.s ! (AAdj Posit d g n c)
} }
} ; } ;
ReflA2 a = { s = \\d,g,n,c => a.s ! (AAdj Posit d g n c) ++ a.prep.s ++ reflPron ! (a.prep.c ! n) } ; ReflA2 a = { s = \\d,g,n,c => a.s ! (AAdj Posit d g n c) ++ a.prep.s ++ reflPron ! partcase2case (a.prep.c ! n) } ;
AdAP ada ap = { s = \\d,g,n,c => ada.s ++ ap.s ! d ! g ! n ! c } ; AdAP ada ap = { s = \\d,g,n,c => ada.s ++ ap.s ! d ! g ! n ! c } ;

View File

@@ -16,7 +16,7 @@ lin
-- Prep -> NP -> Adv -- Prep -> NP -> Adv
-- e.g. "in the house" -- e.g. "in the house"
-- FIXME: postpozīcijas prievārdi -- FIXME: postpozīcijas prievārdi
PrepNP prep np = {s = prep.s ++ np.s ! (prep.c ! (fromAgr np.agr).num) ; isPron = np.isPron} ; PrepNP prep np = {s = prep.s ++ np.s ! partcase2case (prep.c ! (fromAgr np.agr).num) ; isPron = np.isPron} ;
-- CAdv -> A -> NP -> Adv -- CAdv -> A -> NP -> Adv
-- e.g. "more warmly than John" -- e.g. "more warmly than John"

View File

@@ -54,7 +54,7 @@ lin
-- NP -> V2 -> NP -- NP -> V2 -> NP
-- e.g. 'the man seen' -- e.g. 'the man seen'
PPartNP np v2 = { PPartNP np v2 = {
s = \\c => v2.s ! Pos ! (VPart Pass (fromAgr np.agr).gend (fromAgr np.agr).num c) ++ np.s ! c ; s = \\c => v2.s ! Pos ! (VPart Pass (fromAgr np.agr).gend (fromAgr np.agr).num (case2partcase c)) ++ np.s ! c ;
agr = np.agr ; agr = np.agr ;
pol = np.pol ; pol = np.pol ;
isRel = np.isRel ; isRel = np.isRel ;
@@ -181,7 +181,7 @@ lin
-- e.g. 'mother of the king' -- e.g. 'mother of the king'
ComplN2 n2 np = { ComplN2 n2 np = {
s = \\_,num,c => preOrPost n2.isPre s = \\_,num,c => preOrPost n2.isPre
(n2.prep.s ++ np.s ! (n2.prep.c ! (fromAgr np.agr).num) ++ closeRelCl np.isRel) (n2.prep.s ++ np.s ! partcase2case (n2.prep.c ! (fromAgr np.agr).num) ++ closeRelCl np.isRel)
(n2.s ! num ! c) ; (n2.s ! num ! c) ;
gend = n2.gend ; gend = n2.gend ;
isRel = False isRel = False
@@ -191,7 +191,7 @@ lin
-- e.g. 'distance from this city (to Paris)' -- e.g. 'distance from this city (to Paris)'
ComplN3 n3 np = { ComplN3 n3 np = {
s = \\num,c => preOrPost n3.isPre1 s = \\num,c => preOrPost n3.isPre1
(n3.prep1.s ++ np.s ! (n3.prep1.c ! (fromAgr np.agr).num) ++ closeRelCl np.isRel) (n3.prep1.s ++ np.s ! partcase2case (n3.prep1.c ! (fromAgr np.agr).num) ++ closeRelCl np.isRel)
(n3.s ! num ! c) ; (n3.s ! num ! c) ;
gend = n3.gend ; gend = n3.gend ;
prep = n3.prep2 ; prep = n3.prep2 ;

View File

@@ -68,7 +68,7 @@ oper
-- kā šis mkA(Str) atšķirsies no citiem mkA(Str)? -- kā šis mkA(Str) atšķirsies no citiem mkA(Str)?
mkAdjective_Participle : Verb -> Voice -> Adjective = \v,p -> { mkAdjective_Participle : Verb -> Voice -> Adjective = \v,p -> {
s = table { s = table {
AAdj Posit Indef g n c => v.s ! Pos ! (VPart p g n c) ; AAdj Posit Indef g n c => v.s ! Pos ! (VPart p g n (case2partcase c)) ;
_ => NON_EXISTENT _ => NON_EXISTENT
} }
}; };

View File

@@ -101,18 +101,18 @@ oper
} ; } ;
mkVS = overload { mkVS = overload {
mkVS : V -> Subj -> VS = \v,c -> lin VS {s = v.s ; leftVal = Nom ; conj = c} ; mkVS : V -> Subj -> VS = \v,c -> lin VS {s = v.s ; leftVal = PartNom ; conj = c} ;
mkVS : V -> Subj -> Case -> VS = \v,c,s -> lin VS {s = v.s ; leftVal = s ; conj = c} ; mkVS : V -> Subj -> Case -> VS = \v,c,s -> lin VS {s = v.s ; leftVal = case2partcase s ; conj = c} ;
} ; } ;
mkVQ = overload { mkVQ = overload {
mkVQ : V -> VQ = \v -> lin VQ {s = v.s ; leftVal = Nom} ; mkVQ : V -> VQ = \v -> lin VQ {s = v.s ; leftVal = PartNom} ;
mkVQ : V -> Case -> VQ = \v,c -> lin VQ {s = v.s ; leftVal = c} ; mkVQ : V -> Case -> VQ = \v,c -> lin VQ {s = v.s ; leftVal = case2partcase c} ;
} ; } ;
mkVV = overload { mkVV = overload {
mkVV : V -> VV = \v -> lin VV {s = v.s ; leftVal = Nom} ; mkVV : V -> VV = \v -> lin VV {s = v.s ; leftVal = PartNom} ;
mkVV : V -> Case -> VV = \v,c -> lin VV {s = v.s ; leftVal = c} ; mkVV : V -> Case -> VV = \v,c -> lin VV {s = v.s ; leftVal = case2partcase c} ;
} ; } ;
mkV3 = overload { mkV3 = overload {
@@ -131,8 +131,8 @@ oper
-- Prepositions -- Prepositions
mkPrep = overload { mkPrep = overload {
mkPrep : Str -> Case -> Case -> Prep = \p,sg,pl -> lin Prep {s = p ; c = table {Sg => sg ; Pl => pl}} ; mkPrep : Str -> Case -> Case -> Prep = \p,sg,pl -> lin Prep {s = p ; c = table {Sg => case2partcase sg ; Pl => case2partcase pl}} ;
mkPrep : Case -> Prep = \c -> lin Prep {s = [] ; c = \\_ => c} ; mkPrep : Case -> Prep = \c -> lin Prep {s = [] ; c = \\_ => case2partcase c} ;
} ; } ;
nom_Prep : Prep = mkPrep Nom ; nom_Prep : Prep = mkPrep Nom ;

View File

@@ -14,7 +14,7 @@ oper
Pos => (mkVerb_Pos lemma conj).s ; Pos => (mkVerb_Pos lemma conj).s ;
Neg => (filter_Neg (mkVerb_Pos ("ne"+lemma) conj)).s Neg => (filter_Neg (mkVerb_Pos ("ne"+lemma) conj)).s
} ; } ;
leftVal = leftVal leftVal = case2partcase leftVal
} ; } ;
-- First conjugation -- First conjugation
@@ -23,7 +23,7 @@ oper
Pos => (mkVerbC1_Pos lemma lemma2 lemma3).s ; Pos => (mkVerbC1_Pos lemma lemma2 lemma3).s ;
Neg => (filter_Neg (mkVerbC1_Pos ("ne"+lemma) ("ne"+lemma2) ("ne"+lemma3))).s Neg => (filter_Neg (mkVerbC1_Pos ("ne"+lemma) ("ne"+lemma2) ("ne"+lemma3))).s
} ; } ;
leftVal = leftVal leftVal = case2partcase leftVal
} ; } ;
mkVerb_Pos : Str -> Conjugation -> Verb_TMP = \lemma,conj -> mkVerb_Pos : Str -> Conjugation -> Verb_TMP = \lemma,conj ->
@@ -378,7 +378,7 @@ oper
x => (mkVerb_C1 "nebūt" "neesu" "nebiju").s ! x -- the incorrect 'neesu' will be overriden x => (mkVerb_C1 "nebūt" "neesu" "nebiju").s ! x -- the incorrect 'neesu' will be overriden
} }
} ; } ;
leftVal = leftVal leftVal = case2partcase leftVal
} ; } ;
mkVerb_Irreg_Go : Case -> Verb = \leftVal -> mkVerb_Irreg_Go_Prefix "" leftVal ; mkVerb_Irreg_Go : Case -> Verb = \leftVal -> mkVerb_Irreg_Go_Prefix "" leftVal ;
@@ -397,7 +397,7 @@ oper
x => (mkVerb_C1 ("ne" + pref + "iet") ("ne" + pref + "eju") ("ne" + pref + "gāju")).s ! x x => (mkVerb_C1 ("ne" + pref + "iet") ("ne" + pref + "eju") ("ne" + pref + "gāju")).s ! x
} }
} ; } ;
leftVal = leftVal leftVal = case2partcase leftVal
} ; } ;
mkVerb_Irreg_Sleep : Case -> Verb = \leftVal -> { mkVerb_Irreg_Sleep : Case -> Verb = \leftVal -> {
@@ -429,7 +429,7 @@ oper
x => (mkVerb_C3 "negulēt").s ! x x => (mkVerb_C3 "negulēt").s ! x
} }
} ; } ;
leftVal = leftVal leftVal = case2partcase leftVal
} ; } ;
-- Auxiliaries: palatalization rules -- Auxiliaries: palatalization rules
@@ -548,122 +548,110 @@ oper
-- TODO: -ot, -am, -ām; -dams/dama, -damies/damās; -ams/ama, -āms/āma -- TODO: -ot, -am, -ām; -dams/dama, -damies/damās; -ams/ama, -āms/āma
-- -ošs/oša ir tikai adjektīvi! Divdabji - tikai verbālās formas! (sk. Baibas sarakstu) -- -ošs/oša ir tikai adjektīvi! Divdabji - tikai verbālās formas! (sk. Baibas sarakstu)
mkParticiple_IsUsi : Gender -> Number -> Case -> Str -> Str = \g,n,c,stem -> mkParticiple_IsUsi : Gender -> Number -> PartCase -> Str -> Str = \g,n,c,stem ->
case g of { case g of {
Masc => case n of { Masc => case n of {
Sg => case c of { Sg => case c of {
Nom => stem + "is" ; PartNom => stem + "is" ;
Gen => stem + "uša" ; PartGen => stem + "uša" ;
Dat => stem + "ušam" ; PartDat => stem + "ušam" ;
Acc => stem + "ušu" ; PartAcc => stem + "ušu" ;
Loc => stem + "ušā" ; PartLoc => stem + "ušā"
Voc => NON_EXISTENT
} ; } ;
Pl => case c of { Pl => case c of {
Nom => stem + "uši" ; PartNom => stem + "uši" ;
Gen => stem + "ušu" ; PartGen => stem + "ušu" ;
Dat => stem + "ušiem" ; PartDat => stem + "ušiem" ;
Acc => stem + "ušus" ; PartAcc => stem + "ušus" ;
Loc => stem + "ušos" ; PartLoc => stem + "ušos"
Voc => NON_EXISTENT
} }
} ; } ;
Fem => case n of { Fem => case n of {
Sg => case c of { Sg => case c of {
Nom => stem + "usi" ; PartNom => stem + "usi" ;
Gen => stem + "ušas" ; PartGen => stem + "ušas" ;
Dat => stem + "ušai" ; PartDat => stem + "ušai" ;
Acc => stem + "ušu" ; PartAcc => stem + "ušu" ;
Loc => stem + "ušā" ; PartLoc => stem + "ušā"
Voc => NON_EXISTENT
} ; } ;
Pl => case c of { Pl => case c of {
Nom => stem + "ušas" ; PartNom => stem + "ušas" ;
Gen => stem + "ušu" ; PartGen => stem + "ušu" ;
Dat => stem + "ušām" ; PartDat => stem + "ušām" ;
Acc => stem + "ušas" ; PartAcc => stem + "ušas" ;
Loc => stem + "ušās" ; PartLoc => stem + "ušās"
Voc => NON_EXISTENT
} }
} }
} ; } ;
mkParticiple_TsTa : Gender -> Number -> Case -> Str -> Str = \g,n,c,stem -> mkParticiple_TsTa : Gender -> Number -> PartCase -> Str -> Str = \g,n,c,stem ->
case g of { case g of {
Masc => case n of { Masc => case n of {
Sg => case c of { Sg => case c of {
Nom => stem + "ts" ; PartNom => stem + "ts" ;
Gen => stem + "ta" ; PartGen => stem + "ta" ;
Dat => stem + "tam" ; PartDat => stem + "tam" ;
Acc => stem + "tu" ; PartAcc => stem + "tu" ;
Loc => stem + "tā" ; PartLoc => stem + "tā"
Voc => NON_EXISTENT -- FIXME: -tais ?
} ; } ;
Pl => case c of { Pl => case c of {
Nom => stem + "ti" ; PartNom => stem + "ti" ;
Gen => stem + "tu" ; PartGen => stem + "tu" ;
Dat => stem + "tiem" ; PartDat => stem + "tiem" ;
Acc => stem + "tus" ; PartAcc => stem + "tus" ;
Loc => stem + "tos" ; PartLoc => stem + "tos"
Voc => NON_EXISTENT -- FIXME: -tie ?
} }
} ; } ;
Fem => case n of { Fem => case n of {
Sg => case c of { Sg => case c of {
Nom => stem + "ta" ; PartNom => stem + "ta" ;
Gen => stem + "tas" ; PartGen => stem + "tas" ;
Dat => stem + "tai" ; PartDat => stem + "tai" ;
Acc => stem + "tu" ; PartAcc => stem + "tu" ;
Loc => stem + "tā" ; PartLoc => stem + "tā"
Voc => NON_EXISTENT -- FIXME: -tā ?
} ; } ;
Pl => case c of { Pl => case c of {
Nom => stem + "tas" ; PartNom => stem + "tas" ;
Gen => stem + "tu" ; PartGen => stem + "tu" ;
Dat => stem + "tām" ; PartDat => stem + "tām" ;
Acc => stem + "tas" ; PartAcc => stem + "tas" ;
Loc => stem + "tās" ; PartLoc => stem + "tās"
Voc => NON_EXISTENT -- FIXME: -tās ?
} }
} }
} ; } ;
mkParticiple_IesUsies : Gender -> Number -> Case -> Str -> Str = \g,n,c,stem -> mkParticiple_IesUsies : Gender -> Number -> PartCase -> Str -> Str = \g,n,c,stem ->
case g of { case g of {
Masc => case n of { Masc => case n of {
Sg => case c of { Sg => case c of {
Nom => stem + "ies" ; PartNom => stem + "ies" ;
Gen => NON_EXISTENT ; PartGen => NON_EXISTENT ;
Dat => NON_EXISTENT ; PartDat => NON_EXISTENT ;
Acc => stem + "ušos" ; PartAcc => stem + "ušos" ;
Loc => NON_EXISTENT ; PartLoc => NON_EXISTENT
Voc => NON_EXISTENT
} ; } ;
Pl => case c of { Pl => case c of {
Nom => stem + "ušies" ; PartNom => stem + "ušies" ;
Gen => stem + "ušos" ; PartGen => stem + "ušos" ;
Dat => NON_EXISTENT ; PartDat => NON_EXISTENT ;
Acc => stem + "ušos" ; PartAcc => stem + "ušos" ;
Loc => NON_EXISTENT ; PartLoc => NON_EXISTENT
Voc => NON_EXISTENT
} }
} ; } ;
Fem => case n of { Fem => case n of {
Sg => case c of { Sg => case c of {
Nom => stem + "usies" ; PartNom => stem + "usies" ;
Gen => stem + "ušās" ; PartGen => stem + "ušās" ;
Dat => NON_EXISTENT ; PartDat => NON_EXISTENT ;
Acc => stem + "ušos" ; PartAcc => stem + "ušos" ;
Loc => NON_EXISTENT ; PartLoc => NON_EXISTENT
Voc => NON_EXISTENT
} ; } ;
Pl => case c of { Pl => case c of {
Nom => stem + "ušās" ; PartNom => stem + "ušās" ;
Gen => stem + "ušos" ; PartGen => stem + "ušos" ;
Dat => NON_EXISTENT ; PartDat => NON_EXISTENT ;
Acc => stem + "ušos" ; PartAcc => stem + "ušos" ;
Loc => NON_EXISTENT ; PartLoc => NON_EXISTENT
Voc => NON_EXISTENT
} }
} }
} ; } ;

View File

@@ -17,7 +17,7 @@ lin
QuestVP ip vp = { s = \\m,p => ip.s ! Nom ++ buildVerb vp.v m p (AgrP3 ip.num Masc) Pos vp.rightPol } ; QuestVP ip vp = { s = \\m,p => ip.s ! Nom ++ buildVerb vp.v m p (AgrP3 ip.num Masc) Pos vp.rightPol } ;
QuestSlash ip slash = { s = \\m,p => slash.prep.s ++ ip.s ! (slash.prep.c ! ip.num) ++ slash.s ! m ! p } ; QuestSlash ip slash = { s = \\m,p => slash.prep.s ++ ip.s ! partcase2case (slash.prep.c ! ip.num) ++ slash.s ! m ! p } ;
QuestIAdv iadv cl = { s = \\m,p => iadv.s ++ cl.s ! m ! p } ; QuestIAdv iadv cl = { s = \\m,p => iadv.s ++ cl.s ! m ! p } ;
@@ -38,7 +38,7 @@ lin
num = ip.num num = ip.num
} ; } ;
PrepIP p ip = { s = p.s ++ ip.s ! (p.c ! ip.num) } ; PrepIP p ip = { s = p.s ++ ip.s ! partcase2case (p.c ! ip.num) } ;
IdetCN idet cn = { IdetCN idet cn = {
s = \\c => idet.s ! cn.gend ++ cn.s ! Def ! idet.num ! c ; s = \\c => idet.s ! cn.gend ++ cn.s ! Def ! idet.num ! c ;

View File

@@ -20,7 +20,7 @@ oper
-- TODO: PassV2 verbs jāsaskaņo ar objektu, nevis subjektu (by8means_Prep: AgP3 Sg Masc) - done? -- TODO: PassV2 verbs jāsaskaņo ar objektu, nevis subjektu (by8means_Prep: AgP3 Sg Masc) - done?
mkRelClause : RP -> CatLav.VP -> RCl = \rp,vp -> mkRelClause : RP -> CatLav.VP -> RCl = \rp,vp ->
let subjInTopic : Bool = case <vp.voice, vp.leftVal> of { let subjInTopic : Bool = case <vp.voice, partcase2case vp.leftVal> of {
<Act, Nom> => True ; <Act, Nom> => True ;
<Act, _ > => False ; <Act, _ > => False ;
<Pass, Acc> => False ; <Pass, Acc> => False ;
@@ -34,7 +34,7 @@ oper
} in } in
case mood of { -- subject case mood of { -- subject
Deb _ _ => rp.s ! Masc ! Dat ; --# notpresent Deb _ _ => rp.s ! Masc ! Dat ; --# notpresent
_ => rp.s ! Masc ! vp.leftVal _ => rp.s ! Masc ! partcase2case vp.leftVal
} ++ } ++
case vp.objPron of { case vp.objPron of {
False => verb ++ vp.compl ! agr ; False => verb ++ vp.compl ! agr ;
@@ -47,13 +47,13 @@ lin
-- FIXME: vārdu secība - nevis 'kas mīl viņu' bet 'kas viņu mīl' (?) -- FIXME: vārdu secība - nevis 'kas mīl viņu' bet 'kas viņu mīl' (?)
-- FIXME: Masc varētu nebūt labi -- FIXME: Masc varētu nebūt labi
RelSlash rp slash = { RelSlash rp slash = {
s = \\m,p,ag => slash.prep.s ++ rp.s ! Masc ! (slash.prep.c ! Sg) ++ slash.s ! m ! p s = \\m,p,ag => slash.prep.s ++ rp.s ! Masc ! partcase2case (slash.prep.c ! Sg) ++ slash.s ! m ! p
} ; } ;
-- FIXME: placeholder -- FIXME: placeholder
-- TODO: jātestē, kautkas nav labi ar testpiemēru -- TODO: jātestē, kautkas nav labi ar testpiemēru
FunRP p np rp = { FunRP p np rp = {
s = \\g,c => p.s ++ rp.s ! g ! c ++ np.s ! (p.c ! (fromAgr np.agr).num) s = \\g,c => p.s ++ rp.s ! g ! c ++ np.s ! partcase2case (p.c ! (fromAgr np.agr).num)
} ; } ;
IdRP = { IdRP = {

View File

@@ -48,8 +48,30 @@ param
| VDeb | VDeb
| VImp Number | VImp Number
| VDebRel -- the relative subtype of debitive | VDebRel -- the relative subtype of debitive
| VPart Voice Gender Number Case ; | VPart Voice Gender Number PartCase ;
PartCase = PartNom | PartGen | PartDat | PartAcc | PartLoc ;
oper
partcase2case : PartCase -> Case = \c -> case c of {
PartNom => Nom ;
PartDat => Dat ;
PartGen => Gen ;
PartAcc => Acc ;
PartLoc => Loc
} ;
case2partcase : Case -> PartCase = \c -> case c of {
Nom => PartNom ;
Gen => PartGen ;
Dat => PartDat ;
Acc => PartAcc ;
Loc => PartLoc ;
_ => PartNom
} ;
param
-- Number and gender has to be agreed in predicative nominal clauses -- Number and gender has to be agreed in predicative nominal clauses
Agreement = Agreement =
AgrP1 Number Gender AgrP1 Number Gender
@@ -73,15 +95,15 @@ oper
Adjective : Type = {s : AForm => Str} ; Adjective : Type = {s : AForm => Str} ;
Preposition : Type = {s : Str ; c : Number => Case} ; Preposition : Type = {s : Str ; c : Number => PartCase} ;
Verb : Type = {s : Polarity => VForm => Str ; leftVal : Case} ; Verb : Type = {s : Polarity => VForm => Str ; leftVal : PartCase} ;
VP : Type = { VP : Type = {
v : Verb ; v : Verb ;
compl : Agreement => Str ; -- the subject-complement agreement compl : Agreement => Str ; -- the subject-complement agreement
voice : Voice ; voice : Voice ;
leftVal : Case ; -- the left valence (typically, the subject) leftVal : PartCase ; -- the left valence (typically, the subject)
rightAgr : Agreement ; -- for the potential subject-verb agreement (the subject can be on the right side) rightAgr : Agreement ; -- for the potential subject-verb agreement (the subject can be on the right side)
rightPol : Polarity ; -- for the potential double negation rightPol : Polarity ; -- for the potential double negation
objPron : Bool -- true, if object is a Pron (for modifying the neutral word order) objPron : Bool -- true, if object is a Pron (for modifying the neutral word order)

View File

@@ -67,7 +67,7 @@ lin
oper oper
-- TODO: PassV2 verbs jāsaskaņo ar objektu, nevis subjektu (by8means_Prep: AgP3 Sg Masc) -- TODO: PassV2 verbs jāsaskaņo ar objektu, nevis subjektu (by8means_Prep: AgP3 Sg Masc)
mkClause : NP -> CatLav.VP -> Cl = \np,vp -> mkClause : NP -> CatLav.VP -> Cl = \np,vp ->
let agr : Agreement = case <vp.voice, vp.leftVal> of { let agr : Agreement = case <vp.voice, partcase2case vp.leftVal> of {
<Act, Nom> => np.agr ; <Act, Nom> => np.agr ;
<Act, _ > => vp.rightAgr ; <Act, _ > => vp.rightAgr ;
<Pass, Acc> => vp.rightAgr ; <Pass, Acc> => vp.rightAgr ;
@@ -77,7 +77,7 @@ oper
s = \\mood,pol => s = \\mood,pol =>
case mood of { -- subject case mood of { -- subject
Deb _ _ => np.s ! Dat ; --# notpresent Deb _ _ => np.s ! Dat ; --# notpresent
_ => np.s ! vp.leftVal _ => np.s ! partcase2case vp.leftVal
} ++ } ++
closeRelCl np.isRel ++ -- comma, if necessary closeRelCl np.isRel ++ -- comma, if necessary
case vp.objPron of { case vp.objPron of {

View File

@@ -98,7 +98,7 @@ lin
-- V3 -> NP -> VPSlash -- V3 -> NP -> VPSlash
-- e.g. 'give it (to her)' -- e.g. 'give it (to her)'
Slash2V3 v3 np = insertObjSlash Slash2V3 v3 np = insertObjSlash
(\\_ => v3.rightVal2.s ++ np.s ! (v3.rightVal2.c ! (fromAgr np.agr).num)) (\\_ => v3.rightVal2.s ++ np.s ! partcase2case (v3.rightVal2.c ! (fromAgr np.agr).num))
{ {
v = v3 ; v = v3 ;
compl = \\_ => [] ; -- will be overriden compl = \\_ => [] ; -- will be overriden
@@ -116,7 +116,7 @@ lin
-- V3 -> NP -> VPSlash -- V3 -> NP -> VPSlash
-- e.g. 'give (it) to her' -- e.g. 'give (it) to her'
Slash3V3 v3 np = insertObjSlash Slash3V3 v3 np = insertObjSlash
(\\_ => v3.rightVal2.s ++ np.s ! (v3.rightVal2.c ! (fromAgr np.agr).num)) (\\_ => v3.rightVal2.s ++ np.s ! partcase2case (v3.rightVal2.c ! (fromAgr np.agr).num))
{ {
v = v3 ; v = v3 ;
compl = \\_ => [] ; -- will be overriden compl = \\_ => [] ; -- will be overriden
@@ -195,7 +195,7 @@ lin
} ++ vpslash.compl ! agr ; } ++ vpslash.compl ! agr ;
-} -}
compl = \\agr => vpslash.rightVal.s ++ compl = \\agr => vpslash.rightVal.s ++
np.s ! (vpslash.rightVal.c ! (fromAgr agr).num) ++ np.s ! partcase2case (vpslash.rightVal.c ! (fromAgr agr).num) ++
vpslash.compl ! agr ; vpslash.compl ! agr ;
voice = vpslash.voice ; voice = vpslash.voice ;
leftVal = vpslash.leftVal ; leftVal = vpslash.leftVal ;
@@ -221,7 +221,7 @@ lin
-- V2V -> NP -> VPSlash -> VPSlash -- V2V -> NP -> VPSlash -> VPSlash
-- e.g. '-- beg me to buy' -- e.g. '-- beg me to buy'
SlashV2VNP v2v np vpslash = insertObjSlash SlashV2VNP v2v np vpslash = insertObjSlash
(\\_ => v2v.rightVal.s ++ np.s ! (v2v.rightVal.c ! (fromAgr np.agr).num)) (\\_ => v2v.rightVal.s ++ np.s ! partcase2case (v2v.rightVal.c ! (fromAgr np.agr).num))
{ {
v = v2v ; v = v2v ;
compl = \\agr => buildVP vpslash Pos VInf agr ; compl = \\agr => buildVP vpslash Pos VInf agr ;
@@ -238,7 +238,7 @@ lin
-- VPSlash -> VP -- VPSlash -> VP
-- e.g. 'love himself' -- e.g. 'love himself'
ReflVP vpslash = insertObjPre ReflVP vpslash = insertObjPre
(\\agr => vpslash.rightVal.s ++ reflPron ! (vpslash.rightVal.c ! (fromAgr agr).num)) (\\agr => vpslash.rightVal.s ++ reflPron ! partcase2case (vpslash.rightVal.c ! (fromAgr agr).num))
vpslash ; vpslash ;
-- Comp -> VP -- Comp -> VP
@@ -247,7 +247,7 @@ lin
v = mkV "būt" ; v = mkV "būt" ;
compl = \\agr => comp.s ! agr ; compl = \\agr => comp.s ! agr ;
voice = Act ; voice = Act ;
leftVal = Nom ; leftVal = PartNom ;
rightAgr = AgrP3 Sg Masc ; rightAgr = AgrP3 Sg Masc ;
rightPol = Pos ; rightPol = Pos ;
objPron = False objPron = False
@@ -323,7 +323,7 @@ oper
} ; } ;
agr = fromAgr agr agr = fromAgr agr
; --# notpresent ; --# notpresent
part = v.s ! Pos ! (VPart Pass agr.gend agr.num Nom) --# notpresent part = v.s ! Pos ! (VPart Pass agr.gend agr.num PartNom) --# notpresent
in case mood of { in case mood of {
Ind Simul tense => v.s ! finalPol ! (VInd agr.pers agr.num tense) Ind Simul tense => v.s ! finalPol ! (VInd agr.pers agr.num tense)
; --# notpresent ; --# notpresent
@@ -337,7 +337,7 @@ oper
Deb Simul tense => (mkV "būt").s ! finalPol ! (VInd P3 Sg tense) ++ --# notpresent Deb Simul tense => (mkV "būt").s ! finalPol ! (VInd P3 Sg tense) ++ --# notpresent
v.s ! Pos ! VDeb ; --# notpresent v.s ! Pos ! VDeb ; --# notpresent
Deb Anter tense => (mkV "būt").s ! finalPol ! (VInd P3 Sg tense) ++ --# notpresent Deb Anter tense => (mkV "būt").s ! finalPol ! (VInd P3 Sg tense) ++ --# notpresent
(mkV "būt").s ! Pos ! (VPart Pass Masc Sg Nom) ++ --# notpresent (mkV "būt").s ! Pos ! (VPart Pass Masc Sg PartNom) ++ --# notpresent
v.s ! Pos ! VDeb ; --# notpresent v.s ! Pos ! VDeb ; --# notpresent
Condit Simul => v.s ! finalPol ! (VInd agr.pers agr.num ParamX.Cond) ; --# notpresent Condit Simul => v.s ! finalPol ! (VInd agr.pers agr.num ParamX.Cond) ; --# notpresent