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 {
|
cas : Polarity -> NPForm = \p -> case p of {
|
||||||
Pos => NPCase Nom ; -- on olemas lammas
|
Pos => NPCase Nom ; -- on olemas lammas
|
||||||
Neg => NPCase Part -- ei ole olemas lammast
|
Neg => NPCase Part -- ei ole olemas lammast
|
||||||
}
|
} ;
|
||||||
|
vp = insertObj (\\_,b,_ => "olemas" ++ np.s ! cas b) (predV olla)
|
||||||
in
|
in
|
||||||
mkClause noSubj (agrP3 Sg) (insertObj
|
existClause noSubj (agrP3 Sg) vp ;
|
||||||
(\\_,b,_ => "olemas" ++ np.s ! cas b) (predV olla)) ;
|
|
||||||
|
|
||||||
ExistIP ip =
|
ExistIP ip =
|
||||||
let
|
let
|
||||||
cas : NPForm = NPCase Nom ; ---- also partitive in Extra
|
cas : NPForm = NPCase Nom ; ---- also partitive in Extra
|
||||||
vp = insertObj (\\_,b,_ => "olemas") (predV olla) ;
|
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 {
|
in {
|
||||||
s = \\t,a,p => cl.s ! t ! a ! p ! SDecl
|
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.
|
-- 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.
|
-- 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.
|
-- 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 =
|
mkClause : (Polarity -> Str) -> Agr -> VP -> Clause = \sub,agr,vp ->
|
||||||
\sub,agr,vp -> {
|
{ s = \\t,a,b =>
|
||||||
s = \\t,a,b =>
|
|
||||||
let
|
let
|
||||||
c = (mkClausePlus sub agr vp).s ! t ! a ! b ;
|
c = (mkClausePlus sub agr vp).s ! t ! a ! b ;
|
||||||
-- saan sinust aru 0
|
-- 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 =
|
mkClausePlus : (Polarity -> Str) -> Agr -> VP -> ClausePlus =
|
||||||
\sub,agr,vp -> {
|
\sub,agr,vp -> {
|
||||||
s = \\t,a,b =>
|
s = \\t,a,b =>
|
||||||
@@ -342,6 +354,7 @@ oper
|
|||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
insertKinClausePlus : Predef.Ints 1 -> ClausePlus -> ClausePlus = \p,cl -> {
|
insertKinClausePlus : Predef.Ints 1 -> ClausePlus -> ClausePlus = \p,cl -> {
|
||||||
s = \\t,a,b =>
|
s = \\t,a,b =>
|
||||||
let
|
let
|
||||||
@@ -383,7 +396,6 @@ oper
|
|||||||
|
|
||||||
subjForm : NP -> NPForm -> Polarity -> Str = \np,sc,b ->
|
subjForm : NP -> NPForm -> Polarity -> Str = \np,sc,b ->
|
||||||
appCompl False b {s = [] ; c = sc ; isPre = True} np ;
|
appCompl False b {s = [] ; c = sc ; isPre = True} np ;
|
||||||
|
|
||||||
infVP : NPForm -> Polarity -> Agr -> VP -> InfForm -> Str =
|
infVP : NPForm -> Polarity -> Agr -> VP -> InfForm -> Str =
|
||||||
\sc,pol,agr,vp,vi ->
|
\sc,pol,agr,vp,vi ->
|
||||||
let
|
let
|
||||||
|
|||||||
Reference in New Issue
Block a user