forked from GitHub/gf-rgl
uses of Finnish infinitive forms in syntax
This commit is contained in:
19
src/finnish/infinitives/Infinitive.gf
Normal file
19
src/finnish/infinitives/Infinitive.gf
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
abstract Infinitive =
|
||||||
|
|
||||||
|
Grammar,
|
||||||
|
Lexicon
|
||||||
|
** {
|
||||||
|
|
||||||
|
fun
|
||||||
|
PresPartPassSubjVP : VP -> VP ; -- (minun) on mentävä
|
||||||
|
PresPartPassObjVP : VPSlash -> VP ; -- (oluesta) on pidettävä
|
||||||
|
|
||||||
|
PastPartPassAdv : NP -> VP -> Adv ; -- junan mentyä
|
||||||
|
AgentPartAP : NP -> VPSlash -> AP ; -- koiran syömä
|
||||||
|
|
||||||
|
Inf2InessAdv : NP -> VP -> Adv ; -- junan mennessä
|
||||||
|
Inf2InessPassAdv : NP -> VPSlash -> Adv ; -- junaa odotettaessa
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
65
src/finnish/infinitives/InfinitiveFin.gf
Normal file
65
src/finnish/infinitives/InfinitiveFin.gf
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
--# -path=..:alltenses
|
||||||
|
|
||||||
|
concrete InfinitiveFin of Infinitive =
|
||||||
|
GrammarFin,
|
||||||
|
LexiconFin
|
||||||
|
** open
|
||||||
|
ResFin,
|
||||||
|
StemFin,
|
||||||
|
Prelude
|
||||||
|
in {
|
||||||
|
|
||||||
|
lin
|
||||||
|
PresPartPassSubjVP vp = vp ** {
|
||||||
|
s = vpVerbOlla ** {sc = SCGen} ;
|
||||||
|
s2 = \\b,p,a => vp.s.s ! PresPartPass (AN (NCase Sg Nom)) ++ vp.s2 ! b ! p ! a ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
PresPartPassObjVP vpslash = vpslash ** {
|
||||||
|
s = vpVerbOlla ** {sc = npform2subjcase vpslash.c2.c} ;
|
||||||
|
s2 = \\b,p,a => vpslash.c2.s.p2 ++ vpslash.s.s ! PresPartPass (AN (NCase Sg Nom)) ++ vpslash.s2 ! b ! p ! a ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
PastPartPassAdv np vp = {
|
||||||
|
s = np.s ! NPCase Gen ++
|
||||||
|
vp.s.s ! PastPartPass (AN (NCase Sg Part)) ++
|
||||||
|
vp.s2 ! True ! Pos ! np.a ++
|
||||||
|
vp.adv ! Pos ++
|
||||||
|
vp.ext
|
||||||
|
} ;
|
||||||
|
|
||||||
|
AgentPartAP np vp = {
|
||||||
|
s = \\_, nf =>
|
||||||
|
np.s ! NPCase Gen ++
|
||||||
|
vp.s2 ! True ! Pos ! np.a ++
|
||||||
|
vp.adv ! Pos ++
|
||||||
|
vp.c2.s.p2 ++
|
||||||
|
vp.s.s ! AgentPart (AN nf) ++
|
||||||
|
vp.ext ;
|
||||||
|
hasPrefix = False ;
|
||||||
|
p = []
|
||||||
|
} ;
|
||||||
|
|
||||||
|
Inf2InessAdv np vp = {
|
||||||
|
s = np.s ! NPCase Gen ++
|
||||||
|
infVP SCNom Pos np.a vp Inf2Iness
|
||||||
|
} ;
|
||||||
|
|
||||||
|
Inf2InessPassAdv np vps = {
|
||||||
|
s = np.s ! NPCase Part ++
|
||||||
|
infVP SCNom Pos np.a <vps : VP> Inf2InessPass
|
||||||
|
} ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- {s = vp.s.s ! Inf Inf1Long} ;
|
||||||
|
-- {s = vp.s.s ! Inf Inf2Instr} ;
|
||||||
|
|
||||||
|
-- {s = vp.s.s ! Inf Inf2InessPass} ;
|
||||||
|
-- {s = vp.s.s ! Inf Inf2Adess} ;
|
||||||
|
-- {s = vp.s.s ! Inf InfPresPart} ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user