mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-06 17:52:51 -06:00
updated ExistIP for all languages
This commit is contained in:
@@ -4,11 +4,24 @@ concrete IdiomDan of Idiom = CatDan **
|
|||||||
flags optimize=all_subs ;
|
flags optimize=all_subs ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
|
ImpersCl vp = mkClause "det" (agrP3 neutrum Sg) vp ;
|
||||||
|
GenericCl vp = mkClause "man" (agrP3 neutrum Sg) vp ;
|
||||||
|
|
||||||
ExistNP np =
|
ExistNP np =
|
||||||
mkClause "det" (agrP3 neutrum Sg) (insertObj
|
mkClause "det" (agrP3 neutrum Sg) (insertObj
|
||||||
(\\_ => np.s ! accusative) (predV (depV finne_V))) ;
|
(\\_ => np.s ! accusative) (predV (depV finne_V))) ;
|
||||||
ImpersCl vp = mkClause "det" (agrP3 neutrum Sg) vp ;
|
|
||||||
GenericCl vp = mkClause "man" (agrP3 neutrum Sg) vp ;
|
ExistIP ip = {
|
||||||
|
s = \\t,a,p =>
|
||||||
|
let
|
||||||
|
cls =
|
||||||
|
(mkClause "det" (agrP3 neutrum Sg) (predV (depV finne_V))).s ! t ! a ! p ;
|
||||||
|
who = ip.s ! accusative
|
||||||
|
in table {
|
||||||
|
QDir => who ++ cls ! Inv ;
|
||||||
|
QIndir => who ++ cls ! Sub
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
|
||||||
ProgrVP vp =
|
ProgrVP vp =
|
||||||
insertObj (\\a => ["ved å"] ++ infVP vp a) (predV verbBe) ;
|
insertObj (\\a => ["ved å"] ++ infVP vp a) (predV verbBe) ;
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ concrete CatEng of Cat = CommonX ** open ResEng, Prelude in {
|
|||||||
ad : Str ;
|
ad : Str ;
|
||||||
s2 : Agr => Str
|
s2 : Agr => Str
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
Comp = {s : Agr => Str} ;
|
Comp = {s : Agr => Str} ;
|
||||||
SC = {s : Str} ;
|
SC = {s : Str} ;
|
||||||
|
|
||||||
|
|||||||
@@ -10,12 +10,7 @@ concrete IdiomEng of Idiom = CatEng ** open Prelude, ResEng in {
|
|||||||
mkClause "there" (agrP3 np.a.n) (insertObj (\\_ => np.s ! Acc) (predAux auxBe)) ;
|
mkClause "there" (agrP3 np.a.n) (insertObj (\\_ => np.s ! Acc) (predAux auxBe)) ;
|
||||||
|
|
||||||
ExistIP ip =
|
ExistIP ip =
|
||||||
let cl =
|
mkQuestion (ss (ip.s ! Nom)) (mkClause "there" (agrP3 ip.n) (predAux auxBe)) ;
|
||||||
mkClause (ip.s ! Nom) (agrP3 ip.n) (insertObj (\\_ => "there") (predAux auxBe))
|
|
||||||
in {
|
|
||||||
s = \\t,a,b,_ => cl.s ! t ! a ! b ! ODir --- "what is there", no "what there is"
|
|
||||||
} ;
|
|
||||||
|
|
||||||
|
|
||||||
ProgrVP vp = insertObj (\\a => vp.ad ++ vp.prp ++ vp.s2 ! a) (predAux auxBe) ;
|
ProgrVP vp = insertObj (\\a => vp.ad ++ vp.prp ++ vp.s2 ! a) (predAux auxBe) ;
|
||||||
|
|
||||||
|
|||||||
@@ -41,19 +41,4 @@ concrete QuestionEng of Question = CatEng ** open ResEng, Prelude in {
|
|||||||
|
|
||||||
CompIAdv a = a ;
|
CompIAdv a = a ;
|
||||||
|
|
||||||
oper
|
|
||||||
mkQuestion :
|
|
||||||
{s : Str} -> Clause ->
|
|
||||||
{s : Tense => Anteriority => Polarity => QForm => Str} = \wh,cl ->
|
|
||||||
{
|
|
||||||
s = \\t,a,p =>
|
|
||||||
let
|
|
||||||
cls = cl.s ! t ! a ! p ;
|
|
||||||
why = wh.s
|
|
||||||
in table {
|
|
||||||
QDir => why ++ cls ! OQuest ;
|
|
||||||
QIndir => why ++ cls ! ODir
|
|
||||||
}
|
|
||||||
} ;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -180,6 +180,7 @@ resource ResEng = ParamX ** open Prelude in {
|
|||||||
s2 : Agr => Str
|
s2 : Agr => Str
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
--- The order gets wrong with AdV, but works around a parser
|
--- The order gets wrong with AdV, but works around a parser
|
||||||
--- generation bug.
|
--- generation bug.
|
||||||
|
|
||||||
@@ -390,4 +391,18 @@ resource ResEng = ParamX ** open Prelude in {
|
|||||||
_ => ten + "th"
|
_ => ten + "th"
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
mkQuestion :
|
||||||
|
{s : Str} -> Clause ->
|
||||||
|
{s : Tense => Anteriority => Polarity => QForm => Str} = \wh,cl ->
|
||||||
|
{
|
||||||
|
s = \\t,a,p =>
|
||||||
|
let
|
||||||
|
cls = cl.s ! t ! a ! p ;
|
||||||
|
why = wh.s
|
||||||
|
in table {
|
||||||
|
QDir => why ++ cls ! OQuest ;
|
||||||
|
QIndir => why ++ cls ! ODir
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,5 +33,4 @@ concrete VerbEng of Verb = CatEng ** open ResEng in {
|
|||||||
CompNP np = {s = \\_ => np.s ! Acc} ;
|
CompNP np = {s = \\_ => np.s ! Acc} ;
|
||||||
CompAdv a = {s = \\_ => a.s} ;
|
CompAdv a = {s = \\_ => a.s} ;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,15 @@ concrete IdiomFin of Idiom = CatFin **
|
|||||||
mkClause noSubj (agrP3 Sg) (insertObj
|
mkClause noSubj (agrP3 Sg) (insertObj
|
||||||
(\\_,b,_ => "olemassa" ++ np.s ! cas b) (predV olla)) ;
|
(\\_,b,_ => "olemassa" ++ np.s ! cas b) (predV olla)) ;
|
||||||
|
|
||||||
|
ExistIP ip =
|
||||||
|
let
|
||||||
|
cas : NPForm = NPCase Part ; --- dep on num, pol?
|
||||||
|
vp = insertObj (\\_,b,_ => "olemassa") (predV olla) ;
|
||||||
|
cl = mkClause (subjForm (ip ** {isPron = False ; a = agrP3 Sg}) cas) (agrP3 Sg) vp
|
||||||
|
in {
|
||||||
|
s = \\t,a,p => cl.s ! t ! a ! p ! SDecl
|
||||||
|
} ;
|
||||||
|
|
||||||
ImpersCl vp = mkClause noSubj (agrP3 Sg) vp ;
|
ImpersCl vp = mkClause noSubj (agrP3 Sg) vp ;
|
||||||
|
|
||||||
GenericCl vp = mkClause noSubj (agrP3 Sg) {
|
GenericCl vp = mkClause noSubj (agrP3 Sg) {
|
||||||
|
|||||||
@@ -7,15 +7,14 @@ concrete IdiomFre of Idiom = CatFre **
|
|||||||
ImpersCl vp = mkClause "il" (agrP3 Masc Sg) vp ;
|
ImpersCl vp = mkClause "il" (agrP3 Masc Sg) vp ;
|
||||||
GenericCl vp = mkClause "on" (agrP3 Masc Sg) vp ;
|
GenericCl vp = mkClause "on" (agrP3 Masc Sg) vp ;
|
||||||
|
|
||||||
|
|
||||||
ExistNP np =
|
ExistNP np =
|
||||||
mkClause "il" (agrP3 Masc Sg)
|
mkClause "il" (agrP3 Masc Sg)
|
||||||
(insertClit2 "y" (insertComplement (\\_ => np.s ! Ton Acc) (predV avoir_V))) ;
|
(insertClit2 "y" (insertComplement (\\_ => np.s ! Ton Acc) (predV avoir_V))) ;
|
||||||
|
|
||||||
ExistIP ip = {
|
ExistIP ip = {
|
||||||
s = \\t,a,p,_ =>
|
s = \\t,a,p,_ =>
|
||||||
(mkClause (ip.s ! Nom) (agrP3 ip.a.g ip.a.n)
|
ip.s ! Nom ++
|
||||||
(insertClit2 "y" (predV avoir_V))).s ! t ! a ! p ! Indic
|
(mkClause "il" (agrP3 Masc Sg) (insertClit2 "y" (predV avoir_V))).s ! t ! a ! p ! Indic
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
ProgrVP vp =
|
ProgrVP vp =
|
||||||
|
|||||||
@@ -4,13 +4,21 @@ concrete IdiomIta of Idiom = CatIta **
|
|||||||
flags optimize=all_subs ;
|
flags optimize=all_subs ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
|
ImpersCl vp = mkClause [] (agrP3 Masc Sg) vp ;
|
||||||
|
GenericCl vp = mkClause "si" (agrP3 Masc Sg) vp ; ---- non se ci fanno cose
|
||||||
|
|
||||||
ExistNP np =
|
ExistNP np =
|
||||||
mkClause [] (agrP3 np.a.g np.a.n)
|
mkClause [] (agrP3 np.a.g np.a.n)
|
||||||
(insertClit2 (elision "ci" "c'" "ci")
|
(insertClit2 (elision "ci" "c'" "ci")
|
||||||
(insertComplement (\\_ => np.s ! Ton Nom)
|
(insertComplement (\\_ => np.s ! Ton Nom)
|
||||||
(predV copula))) ;
|
(predV copula))) ;
|
||||||
ImpersCl vp = mkClause [] (agrP3 Masc Sg) vp ;
|
|
||||||
GenericCl vp = mkClause "si" (agrP3 Masc Sg) vp ; ---- non se ci fanno cose
|
ExistIP ip = {
|
||||||
|
s = \\t,a,p,_ =>
|
||||||
|
ip.s ! Nom ++
|
||||||
|
(mkClause [] (agrP3 ip.a.g ip.a.n)
|
||||||
|
(insertClit2 (elision "ci" "c'" "ci") (predV copula))).s ! t ! a ! p ! Indic
|
||||||
|
} ;
|
||||||
|
|
||||||
ProgrVP vp =
|
ProgrVP vp =
|
||||||
insertComplement
|
insertComplement
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ resource PhonoIta = open Prelude in {
|
|||||||
|
|
||||||
oper
|
oper
|
||||||
vocale : Strs = strs {
|
vocale : Strs = strs {
|
||||||
"a" ; "e" ; "h" ; "i" ; "o" ; "u"
|
"a" ; "e" ; "h" ; "i" ; "o" ; "u" ; "è"
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
sImpuro : Strs = strs {
|
sImpuro : Strs = strs {
|
||||||
|
|||||||
@@ -4,11 +4,25 @@ concrete IdiomNor of Idiom = CatNor **
|
|||||||
flags optimize=all_subs ;
|
flags optimize=all_subs ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
|
|
||||||
|
ImpersCl vp = mkClause "det" (agrP3 neutrum Sg) vp ;
|
||||||
|
GenericCl vp = mkClause "man" (agrP3 neutrum Sg) vp ;
|
||||||
|
|
||||||
ExistNP np =
|
ExistNP np =
|
||||||
mkClause "det" (agrP3 neutrum Sg) (insertObj
|
mkClause "det" (agrP3 neutrum Sg) (insertObj
|
||||||
(\\_ => np.s ! accusative) (predV (depV finne_V))) ;
|
(\\_ => np.s ! accusative) (predV (depV finne_V))) ;
|
||||||
ImpersCl vp = mkClause "det" (agrP3 neutrum Sg) vp ;
|
|
||||||
GenericCl vp = mkClause "man" (agrP3 neutrum Sg) vp ;
|
ExistIP ip = {
|
||||||
|
s = \\t,a,p =>
|
||||||
|
let
|
||||||
|
cls =
|
||||||
|
(mkClause "det" (agrP3 neutrum Sg) (predV (depV finne_V))).s ! t ! a ! p ;
|
||||||
|
who = ip.s ! accusative
|
||||||
|
in table {
|
||||||
|
QDir => who ++ cls ! Inv ;
|
||||||
|
QIndir => who ++ cls ! Sub
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
|
||||||
ProgrVP vp =
|
ProgrVP vp =
|
||||||
insertObj (\\a => ["ved å"] ++ infVP vp a) (predV verbBe) ;
|
insertObj (\\a => ["ved å"] ++ infVP vp a) (predV verbBe) ;
|
||||||
|
|||||||
@@ -4,11 +4,17 @@ concrete IdiomSpa of Idiom = CatSpa **
|
|||||||
flags optimize=all_subs ;
|
flags optimize=all_subs ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
|
ImpersCl vp = mkClause [] (agrP3 Masc Sg) vp ;
|
||||||
|
GenericCl vp = mkClause "se" (agrP3 Masc Sg) vp ; ---- just Italian ?
|
||||||
|
|
||||||
ExistNP np =
|
ExistNP np =
|
||||||
mkClause [] (agrP3 Masc Sg)
|
mkClause [] (agrP3 Masc Sg)
|
||||||
(insertComplement (\\_ => np.s ! Ton Acc) (predV (verboV (hay_3 "haber")))) ;
|
(insertComplement (\\_ => np.s ! Ton Acc) (predV (verboV (hay_3 "haber")))) ;
|
||||||
ImpersCl vp = mkClause [] (agrP3 Masc Sg) vp ;
|
ExistIP ip = {
|
||||||
GenericCl vp = mkClause "se" (agrP3 Masc Sg) vp ; ---- just Italian ?
|
s = \\t,a,p,_ =>
|
||||||
|
ip.s ! Nom ++
|
||||||
|
(mkClause [] (agrP3 Masc Sg) (predV (verboV (hay_3 "haber")))).s ! t ! a ! p ! Indic
|
||||||
|
} ;
|
||||||
|
|
||||||
ProgrVP vp =
|
ProgrVP vp =
|
||||||
insertComplement
|
insertComplement
|
||||||
|
|||||||
Reference in New Issue
Block a user