mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 11:42:49 -06:00
ergative predication started
This commit is contained in:
@@ -39,7 +39,7 @@ concrete CatHin of Cat = CommonX ** open ResHin, Prelude in {
|
|||||||
---- Verb
|
---- Verb
|
||||||
--
|
--
|
||||||
VP = ResHin.VPH ;
|
VP = ResHin.VPH ;
|
||||||
-- VPSlash = ResHin.VP ** {c2 : Str} ;
|
VPSlash = ResHin.VPHSlash ;
|
||||||
-- Comp = {s : Agr => Str} ;
|
-- Comp = {s : Agr => Str} ;
|
||||||
--
|
--
|
||||||
---- Adjective
|
---- Adjective
|
||||||
|
|||||||
@@ -5,6 +5,6 @@ concrete LangHin of Lang =
|
|||||||
LexiconHin
|
LexiconHin
|
||||||
** {
|
** {
|
||||||
|
|
||||||
flags startcat = Phr ; unlexer = text ; lexer = text ;
|
flags startcat = Phr ; unlexer=unwords ; lexer=words ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -204,10 +204,23 @@ resource ResHin = ParamX ** open Prelude in {
|
|||||||
comp = \\_ => []
|
comp = \\_ => []
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
VPHSlash = VPH ** {c2 : Compl} ;
|
||||||
|
|
||||||
Clause : Type = {s : VPHTense => Bool => Str} ;
|
Clause : Type = {s : VPHTense => Bool => Str} ;
|
||||||
|
|
||||||
Compl : Type = {s : Str ; c : VType} ;
|
Compl : Type = {s : Str ; c : VType} ;
|
||||||
|
|
||||||
|
insertObject : NP -> VPHSlash -> VPH = \np,vp -> {
|
||||||
|
s = \\b,vh => case <vp.c2.c,vh> of {
|
||||||
|
<VTrans, VPTense VPPerf _> =>
|
||||||
|
vp.s ! b ! VPTense VPPerf np.a ; -- ergative: agr to object
|
||||||
|
_ => vp.s ! b ! vh
|
||||||
|
} ;
|
||||||
|
obj = vp.obj ++ np.s ! NPC Obl ++ vp.c2.s ;
|
||||||
|
subj = vp.c2.c ;
|
||||||
|
comp = vp.comp
|
||||||
|
} ;
|
||||||
|
|
||||||
param
|
param
|
||||||
Agr = Ag Gender Number Person ;
|
Agr = Ag Gender Number Person ;
|
||||||
NPCase = NPC Case | NPErg ;
|
NPCase = NPC Case | NPErg ;
|
||||||
@@ -231,7 +244,10 @@ resource ResHin = ParamX ** open Prelude in {
|
|||||||
s = \\vt,b =>
|
s = \\vt,b =>
|
||||||
let
|
let
|
||||||
vps = vp.s ! b ! VPTense vt np.a ;
|
vps = vp.s ! b ! VPTense vt np.a ;
|
||||||
subj = NPC Dir
|
subj = case <vp.subj,vt> of {
|
||||||
|
<VTrans,VPPerf> => NPErg ;
|
||||||
|
_ => NPC Dir
|
||||||
|
}
|
||||||
in
|
in
|
||||||
np.s ! subj ++ vp.obj ++ vp.comp ! np.a ++ vps.neg ++ vps.inf ++ vps.fin
|
np.s ! subj ++ vp.obj ++ vp.comp ! np.a ++ vps.neg ++ vps.inf ++ vps.fin
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -5,7 +5,8 @@ concrete VerbHin of Verb = CatHin ** open ResHin in {
|
|||||||
lin
|
lin
|
||||||
UseV = predV ;
|
UseV = predV ;
|
||||||
|
|
||||||
-- SlashV2a v = predVc v ;
|
SlashV2a v = predV v ** {c2 = v.c2} ;
|
||||||
|
|
||||||
-- Slash2V3 v np =
|
-- Slash2V3 v np =
|
||||||
-- insertObjc (\\_ => v.c2 ++ np.s ! Acc) (predV v ** {c2 = v.c3}) ;
|
-- insertObjc (\\_ => v.c2 ++ np.s ! Acc) (predV v ** {c2 = v.c3}) ;
|
||||||
-- Slash3V3 v np =
|
-- Slash3V3 v np =
|
||||||
@@ -20,9 +21,9 @@ concrete VerbHin of Verb = CatHin ** open ResHin in {
|
|||||||
-- SlashV2S v s = insertObjc (\\_ => conjThat ++ s.s) (predVc v) ;
|
-- SlashV2S v s = insertObjc (\\_ => conjThat ++ s.s) (predVc v) ;
|
||||||
-- SlashV2Q v q = insertObjc (\\_ => q.s ! QIndir) (predVc v) ;
|
-- SlashV2Q v q = insertObjc (\\_ => q.s ! QIndir) (predVc v) ;
|
||||||
-- SlashV2A v ap = insertObjc (\\a => ap.s ! a) (predVc v) ; ----
|
-- SlashV2A v ap = insertObjc (\\a => ap.s ! a) (predVc v) ; ----
|
||||||
--
|
|
||||||
-- ComplSlash vp np = insertObjPre (\\_ => vp.c2 ++ np.s ! Acc) vp ;
|
ComplSlash vp np = insertObject np vp ;
|
||||||
--
|
|
||||||
-- SlashVV vv vp =
|
-- SlashVV vv vp =
|
||||||
-- insertObj (\\a => infVP vv.isAux vp a) (predVV vv) **
|
-- insertObj (\\a => infVP vv.isAux vp a) (predVV vv) **
|
||||||
-- {c2 = vp.c2} ;
|
-- {c2 = vp.c2} ;
|
||||||
|
|||||||
Reference in New Issue
Block a user