mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-12 22:39:31 -06:00
existential relative in ExtraFin
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
--# -path=.:abstract:common:prelude
|
||||
|
||||
concrete ExtraFin of ExtraFinAbs = CatFin ** open ResFin, MorphoFin, Coordination, Prelude, StructuralFin in {
|
||||
concrete ExtraFin of ExtraFinAbs = CatFin **
|
||||
open ResFin, MorphoFin, Coordination, Prelude, StructuralFin in {
|
||||
|
||||
lin
|
||||
GenNP np = {
|
||||
@@ -28,6 +29,20 @@ concrete ExtraFin of ExtraFinAbs = CatFin ** open ResFin, MorphoFin, Coordinatio
|
||||
mkClause (\_ -> adv.s) np.a (insertObj
|
||||
(\\_,b,_ => np.s ! NPCase Nom) (predV (verbOlla ** {sc = NPCase Nom}))) ;
|
||||
|
||||
RelExistNP prep rp np = {
|
||||
s = \\t,ant,bo,ag =>
|
||||
let cl =
|
||||
mkClause
|
||||
(\_ -> appCompl True Pos prep (rp2np ag.n rp))
|
||||
np.a
|
||||
(insertObj
|
||||
(\\_,b,_ => np.s ! NPCase Nom)
|
||||
(predV (verbOlla ** {sc = NPCase Nom}))) ;
|
||||
in
|
||||
cl.s ! t ! ant ! bo ! SDecl ;
|
||||
c = NPCase Nom
|
||||
} ;
|
||||
|
||||
AdvPredNP adv v np =
|
||||
mkClause (\_ -> adv.s) np.a (insertObj
|
||||
(\\_,b,_ => np.s ! NPCase Nom) (predV v)) ;
|
||||
|
||||
@@ -5,6 +5,8 @@ abstract ExtraFinAbs = Extra [
|
||||
AdvExistNP : Adv -> NP -> Cl ; -- kuvassa olemme me
|
||||
AdvPredNP : Adv -> V -> NP -> Cl ; -- kuvassa hymyilee Veikko
|
||||
|
||||
RelExistNP : Prep -> RP -> NP -> RCl ; -- jossa on jazzia
|
||||
|
||||
i_implicPron : Pron ; -- (minä), minut, ...
|
||||
whatPart_IP : IP ;
|
||||
|
||||
|
||||
@@ -17,7 +17,9 @@ concrete RelativeFin of Relative = CatFin ** open Prelude, ResFin, MorphoFin in
|
||||
RNoAg => ag ;
|
||||
RAg a => a
|
||||
} ;
|
||||
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
|
||||
cl.s ! t ! ant ! b ! SDecl ;
|
||||
c = NPCase Nom
|
||||
@@ -43,11 +45,6 @@ concrete RelativeFin of Relative = CatFin ** open Prelude, ResFin, MorphoFin in
|
||||
a = RNoAg
|
||||
} ;
|
||||
|
||||
oper
|
||||
rp2np : Number -> {s : Number => NPForm => Str ; a : RAgr} -> NP = \n,rp -> {
|
||||
s = rp.s ! n ;
|
||||
a = agrP3 Sg ; -- does not matter (--- at least in Slash)
|
||||
isPron = False -- has no special accusative
|
||||
} ;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -563,4 +563,10 @@ oper
|
||||
possSuffix : Agr -> Str = \agr ->
|
||||
table Agr ["ni" ; "si" ; "nsa" ; "mme" ; "nne" ; "nsa"] ! agr ;
|
||||
|
||||
oper
|
||||
rp2np : Number -> {s : Number => NPForm => Str ; a : RAgr} -> NP = \n,rp -> {
|
||||
s = rp.s ! n ;
|
||||
a = agrP3 Sg ; -- does not matter (--- at least in Slash)
|
||||
isPron = False -- has no special accusative
|
||||
} ;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user