forked from GitHub/gf-rgl
Fix word order error in IdiomEst.ExistNP and IdiomEst.ExistIP
This commit is contained in:
@@ -9,16 +9,16 @@ concrete IdiomEst of Idiom = CatEst **
|
||||
cas : Polarity -> NPForm = \p -> case p of {
|
||||
Pos => NPCase Nom ; -- on olemas lammas
|
||||
Neg => NPCase Part -- ei ole olemas lammast
|
||||
}
|
||||
} ;
|
||||
vp = insertObj (\\_,b,_ => "olemas" ++ np.s ! cas b) (predV olla)
|
||||
in
|
||||
mkClause noSubj (agrP3 Sg) (insertObj
|
||||
(\\_,b,_ => "olemas" ++ np.s ! cas b) (predV olla)) ;
|
||||
existClause noSubj (agrP3 Sg) vp ;
|
||||
|
||||
ExistIP ip =
|
||||
let
|
||||
cas : NPForm = NPCase Nom ; ---- also partitive in Extra
|
||||
vp = insertObj (\\_,b,_ => "olemas") (predV olla) ;
|
||||
cl = mkClause (subjForm (ip ** {isPron = False ; a = agrP3 ip.n}) cas) (agrP3 Sg) vp
|
||||
cl = existClause (subjForm (ip ** {isPron = False ; a = agrP3 ip.n}) cas) (agrP3 Sg) vp
|
||||
in {
|
||||
s = \\t,a,p => cl.s ! t ! a ! p ! SDecl
|
||||
} ;
|
||||
|
||||
@@ -304,9 +304,8 @@ oper
|
||||
-- Not sure if SInv is needed, but keeping it for possible future use.
|
||||
-- There's need for an inverted word order with auxiliary verbs; infVP handles that. ComplVV calls infVP, which inverts the word order for the complement VP, and puts it into the resulting VP's `compl' field.
|
||||
-- SInv made by mkClause would be for cases where you just need to construct an inverted word order, and then call it from some other place; application grammar (TODO: api oper for SType) or ExtraEst.
|
||||
mkClause : (Polarity -> Str) -> Agr -> VP -> Clause =
|
||||
\sub,agr,vp -> {
|
||||
s = \\t,a,b =>
|
||||
mkClause : (Polarity -> Str) -> Agr -> VP -> Clause = \sub,agr,vp ->
|
||||
{ s = \\t,a,b =>
|
||||
let
|
||||
c = (mkClausePlus sub agr vp).s ! t ! a ! b ;
|
||||
-- saan sinust aru 0
|
||||
@@ -323,6 +322,19 @@ oper
|
||||
}
|
||||
} ;
|
||||
|
||||
existClause : (Polarity -> Str) -> Agr -> VP -> Clause = \sub,agr,vp ->
|
||||
{ s = \\t,a,b =>
|
||||
let
|
||||
c = (mkClausePlus sub agr vp).s ! t ! a ! b ;
|
||||
-- (mis) on olnud olemas (lammas)
|
||||
declCl = c.subj ++ c.fin ++ c.inf ++ c.compl ;
|
||||
in
|
||||
table {
|
||||
SQuest => "kas" ++ declCl ;
|
||||
_ => declCl
|
||||
}
|
||||
} ;
|
||||
|
||||
mkClausePlus : (Polarity -> Str) -> Agr -> VP -> ClausePlus =
|
||||
\sub,agr,vp -> {
|
||||
s = \\t,a,b =>
|
||||
@@ -342,6 +354,7 @@ oper
|
||||
}
|
||||
} ;
|
||||
|
||||
|
||||
insertKinClausePlus : Predef.Ints 1 -> ClausePlus -> ClausePlus = \p,cl -> {
|
||||
s = \\t,a,b =>
|
||||
let
|
||||
@@ -383,7 +396,6 @@ oper
|
||||
|
||||
subjForm : NP -> NPForm -> Polarity -> Str = \np,sc,b ->
|
||||
appCompl False b {s = [] ; c = sc ; isPre = True} np ;
|
||||
|
||||
infVP : NPForm -> Polarity -> Agr -> VP -> InfForm -> Str =
|
||||
\sc,pol,agr,vp,vi ->
|
||||
let
|
||||
|
||||
Reference in New Issue
Block a user