mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-22 01:22:51 -06:00
updated clefts in Idiom (now all except Russian)
This commit is contained in:
@@ -12,7 +12,7 @@ concrete IdiomDan of Idiom = CatDan **
|
|||||||
(insertObj (\\_ => np.s ! rs.c) (predV verbBe))) ;
|
(insertObj (\\_ => np.s ! rs.c) (predV verbBe))) ;
|
||||||
|
|
||||||
CleftAdv ad s = mkClause "det" (agrP3 neutrum Sg)
|
CleftAdv ad s = mkClause "det" (agrP3 neutrum Sg)
|
||||||
(insertObj (\\_ => s.s ! Main)
|
(insertObj (\\_ => "som" ++ s.s ! Sub)
|
||||||
(insertObj (\\_ => ad.s) (predV verbBe))) ;
|
(insertObj (\\_ => ad.s) (predV verbBe))) ;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ concrete CatFin of Cat = CommonX ** open ResFin, Prelude in {
|
|||||||
|
|
||||||
S = {s : Str} ;
|
S = {s : Str} ;
|
||||||
QS = {s : Str} ;
|
QS = {s : Str} ;
|
||||||
RS = {s : Agr => Str} ;
|
RS = {s : Agr => Str ; c : NPForm} ;
|
||||||
|
|
||||||
-- Sentence
|
-- Sentence
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@ concrete CatFin of Cat = CommonX ** open ResFin, Prelude in {
|
|||||||
|
|
||||||
-- Relative
|
-- Relative
|
||||||
|
|
||||||
RCl = {s : Tense => Anteriority => Polarity => Agr => Str} ;
|
RCl = {s : Tense => Anteriority => Polarity => Agr => Str ; c : NPForm} ;
|
||||||
RP = {s : Number => NPForm => Str ; a : RAgr} ;
|
RP = {s : Number => NPForm => Str ; a : RAgr} ;
|
||||||
|
|
||||||
-- Verb
|
-- Verb
|
||||||
|
|||||||
@@ -23,6 +23,18 @@ concrete IdiomFin of Idiom = CatFin **
|
|||||||
s = \\t,a,p => cl.s ! t ! a ! p ! SDecl
|
s = \\t,a,p => cl.s ! t ! a ! p ! SDecl
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
-- Notice the nominative in the cleft $NP$: "se on Matti josta Liisa pitää"
|
||||||
|
|
||||||
|
CleftNP np rs = mkClause (\_ -> "se") (agrP3 Sg)
|
||||||
|
(insertExtrapos (rs.s ! np.a)
|
||||||
|
(insertObj (\\_,_,_ => np.s ! NPCase Nom) (predV olla))) ;
|
||||||
|
|
||||||
|
-- This gives the almost forbidden "se on Porissa kun Matti asuu".
|
||||||
|
|
||||||
|
CleftAdv ad s = mkClause (\_ -> "se") (agrP3 Sg)
|
||||||
|
(insertExtrapos ("kun" ++ s.s)
|
||||||
|
(insertObj (\\_,_,_ => ad.s) (predV olla))) ;
|
||||||
|
|
||||||
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) {
|
||||||
@@ -32,7 +44,6 @@ concrete IdiomFin of Idiom = CatFin **
|
|||||||
sc = vp.sc
|
sc = vp.sc
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
ProgrVP vp =
|
ProgrVP vp =
|
||||||
let
|
let
|
||||||
inf = (vp.s ! VIInf Inf3Iness ! Simul ! Pos ! agrP3 Sg).fin ;
|
inf = (vp.s ! VIInf Inf3Iness ! Simul ! Pos ! agrP3 Sg).fin ;
|
||||||
@@ -44,6 +55,15 @@ concrete IdiomFin of Idiom = CatFin **
|
|||||||
sc = vp.sc
|
sc = vp.sc
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
-- This gives "otetaan oluet" instead of "ottakaamme oluet".
|
||||||
|
-- The imperative is not available in a $VP$.
|
||||||
|
|
||||||
|
ImpPl1 vp =
|
||||||
|
let vps = vp.s ! VIPass ! Simul ! Pos ! {n = Pl ; p = P1}
|
||||||
|
in
|
||||||
|
{s = vps.fin ++ vps.inf ++ vp.s2 ! True ! Pos ! {n = Pl ; p = P1} ++ vp.ext
|
||||||
|
} ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
olla = verbOlla ** {sc = NPCase Nom} ;
|
olla = verbOlla ** {sc = NPCase Nom} ;
|
||||||
|
|
||||||
|
|||||||
@@ -5,8 +5,9 @@ concrete RelativeFin of Relative = CatFin ** open Prelude, ResFin, MorphoFin in
|
|||||||
lin
|
lin
|
||||||
|
|
||||||
RelCl cl = {
|
RelCl cl = {
|
||||||
s = \\t,a,p,_ => "siten" ++ "että" ++ cl.s ! t ! a ! p ! SDecl
|
s = \\t,a,p,_ => "siten" ++ "että" ++ cl.s ! t ! a ! p ! SDecl ;
|
||||||
---- sellainen
|
---- sellainen
|
||||||
|
c = NPCase Nom
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
RelVP rp vp = {
|
RelVP rp vp = {
|
||||||
@@ -18,7 +19,8 @@ concrete RelativeFin of Relative = CatFin ** open Prelude, ResFin, MorphoFin in
|
|||||||
} ;
|
} ;
|
||||||
cl = mkClause (subjForm {s = rp.s ! agr.n ; a = agr ; isPron = False} vp.sc) agr vp
|
cl = mkClause (subjForm {s = rp.s ! agr.n ; a = agr ; isPron = False} vp.sc) agr vp
|
||||||
in
|
in
|
||||||
cl.s ! t ! ant ! b ! SDecl
|
cl.s ! t ! ant ! b ! SDecl ;
|
||||||
|
c = NPCase Nom
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
RelSlash rp slash = {
|
RelSlash rp slash = {
|
||||||
@@ -27,7 +29,8 @@ concrete RelativeFin of Relative = CatFin ** open Prelude, ResFin, MorphoFin in
|
|||||||
cls = slash.s ! t ! a ! p ;
|
cls = slash.s ! t ! a ! p ;
|
||||||
who = appCompl True p slash.c2 (rp2np ag.n rp)
|
who = appCompl True p slash.c2 (rp2np ag.n rp)
|
||||||
in
|
in
|
||||||
who ++ cls
|
who ++ cls ;
|
||||||
|
c = slash.c2.c
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
FunRP p np rp = {
|
FunRP p np rp = {
|
||||||
|
|||||||
@@ -59,6 +59,9 @@ concrete SentenceFin of Sentence = CatFin ** open Prelude, ResFin in {
|
|||||||
|
|
||||||
UseCl t a p cl = {s = t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! SDecl} ;
|
UseCl t a p cl = {s = t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! SDecl} ;
|
||||||
UseQCl t a p cl = {s = t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p} ;
|
UseQCl t a p cl = {s = t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p} ;
|
||||||
UseRCl t a p cl = {s = \\r => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! r} ;
|
UseRCl t a p cl = {
|
||||||
|
s = \\r => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! r ;
|
||||||
|
c = cl.c
|
||||||
|
} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
concrete IdiomFre of Idiom = CatFre **
|
concrete IdiomFre of Idiom = CatFre **
|
||||||
open PhonoFre, MorphoFre, ParadigmsFre, Prelude in {
|
open (P = ParamX), PhonoFre, MorphoFre, ParadigmsFre, Prelude in {
|
||||||
|
|
||||||
flags optimize=all_subs ;
|
flags optimize=all_subs ;
|
||||||
|
|
||||||
@@ -17,11 +17,27 @@ concrete IdiomFre of Idiom = CatFre **
|
|||||||
(mkClause "il" (agrP3 Masc Sg) (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
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
CleftNP np rs = mkClause elisCe (agrP3 Masc Sg)
|
||||||
|
(insertComplement (\\_ => rs.s ! Indic ! np.a)
|
||||||
|
(insertComplement (\\_ => np.s ! Ton rs.c) (predV copula))) ;
|
||||||
|
|
||||||
|
CleftAdv ad s = mkClause elisCe (agrP3 Masc Sg)
|
||||||
|
(insertComplement (\\_ => conjThat ++ s.s ! Indic)
|
||||||
|
(insertComplement (\\_ => ad.s) (predV copula))) ;
|
||||||
|
|
||||||
|
|
||||||
ProgrVP vp =
|
ProgrVP vp =
|
||||||
insertComplement
|
insertComplement
|
||||||
(\\a => "en" ++ "train" ++ elisDe ++ infVP vp a)
|
(\\a => "en" ++ "train" ++ elisDe ++ infVP vp a)
|
||||||
(predV copula) ;
|
(predV copula) ;
|
||||||
|
|
||||||
|
ImpPl1 vp = {s =
|
||||||
|
(mkClause [] {g = Fem ; n = Pl ; p = P1} vp).s ! P.Pres ! Simul ! Pos ! Indic
|
||||||
|
} ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
elisCe = elision "c" ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -8,11 +8,11 @@ concrete IdiomGer of Idiom = CatGer **
|
|||||||
GenericCl vp = mkClause "man" (agrP3 Sg) vp ;
|
GenericCl vp = mkClause "man" (agrP3 Sg) vp ;
|
||||||
|
|
||||||
CleftNP np rs = mkClause "es" (agrP3 Sg)
|
CleftNP np rs = mkClause "es" (agrP3 Sg)
|
||||||
(insertObj (\\_ => rs.s ! gennum np.a.g np.a.n) ----
|
(insertExtrapos (rs.s ! gennum np.a.g np.a.n) ----
|
||||||
(insertObj (\\_ => np.s ! rs.c) (predV sein_V))) ;
|
(insertObj (\\_ => np.s ! rs.c) (predV sein_V))) ;
|
||||||
|
|
||||||
CleftAdv ad s = mkClause "es" (agrP3 Sg)
|
CleftAdv ad s = mkClause "es" (agrP3 Sg)
|
||||||
(insertObj (\\_ => s.s ! Main)
|
(insertExtrapos (conjThat ++ s.s ! Sub)
|
||||||
(insertObj (\\_ => ad.s) (predV sein_V))) ;
|
(insertObj (\\_ => ad.s) (predV sein_V))) ;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
concrete IdiomIta of Idiom = CatIta **
|
concrete IdiomIta of Idiom = CatIta **
|
||||||
open PhonoIta, MorphoIta, BeschIta, ParadigmsIta, Prelude in {
|
open (P = ParamX), PhonoIta, MorphoIta, BeschIta, ParadigmsIta, Prelude in {
|
||||||
|
|
||||||
flags optimize=all_subs ;
|
flags optimize=all_subs ;
|
||||||
|
|
||||||
@@ -7,6 +7,14 @@ concrete IdiomIta of Idiom = CatIta **
|
|||||||
ImpersCl vp = mkClause [] (agrP3 Masc Sg) vp ;
|
ImpersCl vp = mkClause [] (agrP3 Masc Sg) vp ;
|
||||||
GenericCl vp = mkClause "si" (agrP3 Masc Sg) vp ; ---- non se ci fanno cose
|
GenericCl vp = mkClause "si" (agrP3 Masc Sg) vp ; ---- non se ci fanno cose
|
||||||
|
|
||||||
|
CleftNP np rs = mkClause [] (agrP3 Masc Sg)
|
||||||
|
(insertComplement (\\_ => rs.s ! Indic ! np.a)
|
||||||
|
(insertComplement (\\_ => np.s ! Ton rs.c) (predV copula))) ;
|
||||||
|
|
||||||
|
CleftAdv ad s = mkClause [] (agrP3 Masc Sg)
|
||||||
|
(insertComplement (\\_ => conjThat ++ s.s ! Indic)
|
||||||
|
(insertComplement (\\_ => ad.s) (predV copula))) ;
|
||||||
|
|
||||||
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")
|
||||||
@@ -17,7 +25,8 @@ concrete IdiomIta of Idiom = CatIta **
|
|||||||
s = \\t,a,p,_ =>
|
s = \\t,a,p,_ =>
|
||||||
ip.s ! Nom ++
|
ip.s ! Nom ++
|
||||||
(mkClause [] (agrP3 ip.a.g ip.a.n)
|
(mkClause [] (agrP3 ip.a.g ip.a.n)
|
||||||
(insertClit2 (elision "ci" "c'" "ci") (predV copula))).s ! t ! a ! p ! Indic
|
(insertClit2 (elision "ci" "c'" "ci")
|
||||||
|
(predV copula))).s ! t ! a ! p ! Indic
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
ProgrVP vp =
|
ProgrVP vp =
|
||||||
@@ -31,5 +40,9 @@ concrete IdiomIta of Idiom = CatIta **
|
|||||||
)
|
)
|
||||||
(predV (essereV (verboV (stare_16 "stare")))) ;
|
(predV (essereV (verboV (stare_16 "stare")))) ;
|
||||||
|
|
||||||
|
ImpPl1 vp = {s =
|
||||||
|
(mkClause [] {g = Fem ; n = Pl ; p = P1} vp).s ! P.Pres ! Simul ! Pos ! Indic
|
||||||
|
} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ concrete IdiomNor of Idiom = CatNor **
|
|||||||
(insertObj (\\_ => np.s ! rs.c) (predV verbBe))) ;
|
(insertObj (\\_ => np.s ! rs.c) (predV verbBe))) ;
|
||||||
|
|
||||||
CleftAdv ad s = mkClause "det" (agrP3 neutrum Sg)
|
CleftAdv ad s = mkClause "det" (agrP3 neutrum Sg)
|
||||||
(insertObj (\\_ => s.s ! Main)
|
(insertObj (\\_ => "som" ++ s.s ! Sub)
|
||||||
(insertObj (\\_ => ad.s) (predV verbBe))) ;
|
(insertObj (\\_ => ad.s) (predV verbBe))) ;
|
||||||
|
|
||||||
ExistNP np =
|
ExistNP np =
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ incomplete concrete CatRomance of Cat =
|
|||||||
|
|
||||||
S = {s : Mood => Str} ;
|
S = {s : Mood => Str} ;
|
||||||
QS = {s : QForm => Str} ;
|
QS = {s : QForm => Str} ;
|
||||||
RS = {s : Mood => Agr => Str} ;
|
RS = {s : Mood => Agr => Str ; c : Case} ;
|
||||||
|
|
||||||
-- Sentence
|
-- Sentence
|
||||||
|
|
||||||
@@ -26,7 +26,10 @@ incomplete concrete CatRomance of Cat =
|
|||||||
|
|
||||||
-- Relative
|
-- Relative
|
||||||
|
|
||||||
RCl = {s : Agr => Tense => Anteriority => Polarity => Mood => Str} ;
|
RCl = {
|
||||||
|
s : Agr => Tense => Anteriority => Polarity => Mood => Str ;
|
||||||
|
c : Case
|
||||||
|
} ;
|
||||||
RP = {s : Bool => AAgr => Case => Str ; a : AAgr ; hasAgr : Bool} ;
|
RP = {s : Bool => AAgr => Case => Str ; a : AAgr ; hasAgr : Bool} ;
|
||||||
|
|
||||||
-- Verb
|
-- Verb
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ incomplete concrete RelativeRomance of Relative =
|
|||||||
lin
|
lin
|
||||||
|
|
||||||
RelCl cl = {
|
RelCl cl = {
|
||||||
s = \\ag,t,a,p,m => pronSuch ! ag ++ conjThat ++ cl.s ! t ! a ! p ! m
|
s = \\ag,t,a,p,m => pronSuch ! ag ++ conjThat ++ cl.s ! t ! a ! p ! m ;
|
||||||
|
c = Nom
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
--- more efficient to compile than case inside mkClause; see log.txt
|
--- more efficient to compile than case inside mkClause; see log.txt
|
||||||
@@ -15,18 +16,20 @@ incomplete concrete RelativeRomance of Relative =
|
|||||||
(mkClause
|
(mkClause
|
||||||
(rp.s ! False ! {g = ag.g ; n = ag.n} ! Nom)
|
(rp.s ! False ! {g = ag.g ; n = ag.n} ! Nom)
|
||||||
{g = rp.a.g ; n = rp.a.n ; p = P3}
|
{g = rp.a.g ; n = rp.a.n ; p = P3}
|
||||||
vp).s} ;
|
vp).s ; c = Nom} ;
|
||||||
False => {s = \\ag =>
|
False => {s = \\ag =>
|
||||||
(mkClause
|
(mkClause
|
||||||
(rp.s ! False ! {g = ag.g ; n = ag.n} ! Nom)
|
(rp.s ! False ! {g = ag.g ; n = ag.n} ! Nom)
|
||||||
ag
|
ag
|
||||||
vp).s
|
vp).s ; c = Nom
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
RelSlash rp slash = {
|
RelSlash rp slash = {
|
||||||
s = \\ag,t,a,p,m =>
|
s = \\ag,t,a,p,m =>
|
||||||
slash.c2.s ++ rp.s ! False ! {g = ag.g ; n = ag.n} ! slash.c2.c ++ slash.s ! t ! a ! p ! m
|
slash.c2.s ++ rp.s ! False ! {g = ag.g ; n = ag.n} ! slash.c2.c ++
|
||||||
|
slash.s ! t ! a ! p ! m ;
|
||||||
|
c = Acc
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
FunRP p np rp = {
|
FunRP p np rp = {
|
||||||
|
|||||||
@@ -35,7 +35,9 @@ incomplete concrete SentenceRomance of Sentence =
|
|||||||
|
|
||||||
UseCl t a p cl = {s = \\o => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! o} ;
|
UseCl t a p cl = {s = \\o => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! o} ;
|
||||||
UseQCl t a p cl = {s = \\q => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! q} ;
|
UseQCl t a p cl = {s = \\q => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! q} ;
|
||||||
UseRCl t a p cl =
|
UseRCl t a p cl = {
|
||||||
{s = \\r,ag => t.s ++ a.s ++ p.s ++ cl.s ! ag ! t.t ! a.a ! p.p ! r} ;
|
s = \\r,ag => t.s ++ a.s ++ p.s ++ cl.s ! ag ! t.t ! a.a ! p.p ! r ;
|
||||||
|
c = cl.c
|
||||||
|
} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
concrete IdiomSpa of Idiom = CatSpa **
|
concrete IdiomSpa of Idiom = CatSpa **
|
||||||
open MorphoSpa, ParadigmsSpa, BeschSpa, Prelude in {
|
open (P = ParamX), MorphoSpa, ParadigmsSpa, BeschSpa, Prelude in {
|
||||||
|
|
||||||
flags optimize=all_subs ;
|
flags optimize=all_subs ;
|
||||||
|
|
||||||
@@ -7,6 +7,15 @@ concrete IdiomSpa of Idiom = CatSpa **
|
|||||||
ImpersCl vp = mkClause [] (agrP3 Masc Sg) vp ;
|
ImpersCl vp = mkClause [] (agrP3 Masc Sg) vp ;
|
||||||
GenericCl vp = mkClause "se" (agrP3 Masc Sg) vp ; ---- just Italian ?
|
GenericCl vp = mkClause "se" (agrP3 Masc Sg) vp ; ---- just Italian ?
|
||||||
|
|
||||||
|
CleftNP np rs = mkClause [] (agrP3 Masc Sg)
|
||||||
|
(insertComplement (\\_ => rs.s ! Indic ! np.a)
|
||||||
|
(insertComplement (\\_ => np.s ! Ton rs.c) (predV copula))) ;
|
||||||
|
|
||||||
|
CleftAdv ad s = mkClause [] (agrP3 Masc Sg)
|
||||||
|
(insertComplement (\\_ => conjThat ++ s.s ! Indic)
|
||||||
|
(insertComplement (\\_ => ad.s) (predV copula))) ;
|
||||||
|
|
||||||
|
|
||||||
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")))) ;
|
||||||
@@ -27,4 +36,8 @@ concrete IdiomSpa of Idiom = CatSpa **
|
|||||||
)
|
)
|
||||||
(predV (verboV (estar_2 "estar"))) ;
|
(predV (verboV (estar_2 "estar"))) ;
|
||||||
|
|
||||||
|
ImpPl1 vp = {s =
|
||||||
|
(mkClause [] {g = Fem ; n = Pl ; p = P1} vp).s ! P.Pres ! Simul ! Pos ! Indic
|
||||||
|
} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ concrete IdiomSwe of Idiom = CatSwe **
|
|||||||
(insertObj (\\_ => np.s ! rs.c) (predV verbBe))) ;
|
(insertObj (\\_ => np.s ! rs.c) (predV verbBe))) ;
|
||||||
|
|
||||||
CleftAdv ad s = mkClause "det" (agrP3 neutrum Sg)
|
CleftAdv ad s = mkClause "det" (agrP3 neutrum Sg)
|
||||||
(insertObj (\\_ => s.s ! Main)
|
(insertObj (\\_ => "som" ++ s.s ! Sub)
|
||||||
(insertObj (\\_ => ad.s) (predV verbBe))) ;
|
(insertObj (\\_ => ad.s) (predV verbBe))) ;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user