mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 11:42:49 -06:00
German double infinitives, place of adverbials
This commit is contained in:
@@ -196,13 +196,15 @@ resource ResGer = ParamGer ** open Prelude in {
|
|||||||
|
|
||||||
VP : Type = {
|
VP : Type = {
|
||||||
s : Agr => VPForm => {
|
s : Agr => VPForm => {
|
||||||
fin : Str ; -- V1 hat
|
fin : Str ; -- hat
|
||||||
inf : Str -- V2 gesagt
|
inf : Str -- wollen
|
||||||
} ;
|
} ;
|
||||||
a1 : Polarity => Str ; -- A1 nicht
|
a1 : Polarity => Str ; -- nicht
|
||||||
n2 : Agr => Str ; -- N2 dich
|
n2 : Agr => Str ; -- dich
|
||||||
a2 : Str ; -- A2 heute
|
a2 : Str ; -- heute
|
||||||
ext : Str -- S-Ext dass sie kommt
|
isAux : Bool ; -- is a double infinitive
|
||||||
|
inf : Str ; -- sagen
|
||||||
|
ext : Str -- dass sie kommt
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
predV : Verb -> VP = predVGen False ;
|
predV : Verb -> VP = predVGen False ;
|
||||||
@@ -248,7 +250,8 @@ resource ResGer = ParamGer ** open Prelude in {
|
|||||||
VRefl c => \\a => reflPron ! a ! c
|
VRefl c => \\a => reflPron ! a ! c
|
||||||
} ;
|
} ;
|
||||||
a2 : Str = [] ;
|
a2 : Str = [] ;
|
||||||
ext : Str = []
|
isAux = isAux ; ----
|
||||||
|
inf,ext : Str = []
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
auxPerfect : Verb -> VForm => Str = \verb ->
|
auxPerfect : Verb -> VForm => Str = \verb ->
|
||||||
@@ -314,6 +317,8 @@ resource ResGer = ParamGer ** open Prelude in {
|
|||||||
a1 = vp.a1 ;
|
a1 = vp.a1 ;
|
||||||
n2 = \\a => vp.n2 ! a ++ obj ! a ;
|
n2 = \\a => vp.n2 ! a ++ obj ! a ;
|
||||||
a2 = vp.a2 ;
|
a2 = vp.a2 ;
|
||||||
|
isAux = vp.isAux ;
|
||||||
|
inf = vp.inf ;
|
||||||
ext = vp.ext
|
ext = vp.ext
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -322,6 +327,8 @@ resource ResGer = ParamGer ** open Prelude in {
|
|||||||
a1 = \\a => vp.a1 ! a ++ adv ;
|
a1 = \\a => vp.a1 ! a ++ adv ;
|
||||||
n2 = vp.n2 ;
|
n2 = vp.n2 ;
|
||||||
a2 = vp.a2 ;
|
a2 = vp.a2 ;
|
||||||
|
isAux = vp.isAux ;
|
||||||
|
inf = vp.inf ;
|
||||||
ext = vp.ext
|
ext = vp.ext
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -330,6 +337,8 @@ resource ResGer = ParamGer ** open Prelude in {
|
|||||||
a1 = vp.a1 ;
|
a1 = vp.a1 ;
|
||||||
n2 = vp.n2 ;
|
n2 = vp.n2 ;
|
||||||
a2 = vp.a2 ++ adv ;
|
a2 = vp.a2 ++ adv ;
|
||||||
|
isAux = vp.isAux ;
|
||||||
|
inf = vp.inf ;
|
||||||
ext = vp.ext
|
ext = vp.ext
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -338,9 +347,21 @@ resource ResGer = ParamGer ** open Prelude in {
|
|||||||
a1 = vp.a1 ;
|
a1 = vp.a1 ;
|
||||||
n2 = vp.n2 ;
|
n2 = vp.n2 ;
|
||||||
a2 = vp.a2 ;
|
a2 = vp.a2 ;
|
||||||
|
isAux = vp.isAux ;
|
||||||
|
inf = vp.inf ;
|
||||||
ext = vp.ext ++ ext
|
ext = vp.ext ++ ext
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
insertInf : Str -> VP -> VP = \inf,vp -> {
|
||||||
|
s = vp.s ;
|
||||||
|
a1 = vp.a1 ;
|
||||||
|
n2 = vp.n2 ;
|
||||||
|
a2 = vp.a2 ;
|
||||||
|
isAux = vp.isAux ; ----
|
||||||
|
inf = vp.inf ++ inf ;
|
||||||
|
ext = vp.ext
|
||||||
|
} ;
|
||||||
|
|
||||||
-- For $Sentence$.
|
-- For $Sentence$.
|
||||||
|
|
||||||
Clause : Type = {
|
Clause : Type = {
|
||||||
@@ -353,13 +374,18 @@ resource ResGer = ParamGer ** open Prelude in {
|
|||||||
verb = vp.s ! agr ! VPFinite t a ;
|
verb = vp.s ! agr ! VPFinite t a ;
|
||||||
neg = vp.a1 ! b ;
|
neg = vp.a1 ! b ;
|
||||||
obj = vp.n2 ! agr ++ vp.a2 ;
|
obj = vp.n2 ! agr ++ vp.a2 ;
|
||||||
compl = neg ++ obj ++ verb.inf ;
|
compl = neg ++ obj ;
|
||||||
|
inf = vp.inf ++ verb.inf ;
|
||||||
extra = vp.ext ;
|
extra = vp.ext ;
|
||||||
|
inffin = case <a,vp.isAux> of {
|
||||||
|
<Anter,True> => verb.fin ++ inf ; -- double infinitive
|
||||||
|
_ => inf ++ verb.fin --- or just auxiliary vp
|
||||||
|
}
|
||||||
in
|
in
|
||||||
case o of {
|
case o of {
|
||||||
Main => subj ++ verb.fin ++ compl ++ extra ;
|
Main => subj ++ verb.fin ++ compl ++ inf ++ extra ;
|
||||||
Inv => verb.fin ++ subj ++ compl ++ extra ;
|
Inv => verb.fin ++ subj ++ compl ++ inf ++ extra ;
|
||||||
Sub => subj ++ compl ++ verb.fin ++ extra
|
Sub => subj ++ compl ++ inffin ++ extra
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ concrete StructuralGer of Structural = CatGer **
|
|||||||
he_Pron = mkPronPers "er" "ihn" "ihm" "seiner" "sein" Sg P3 ;
|
he_Pron = mkPronPers "er" "ihn" "ihm" "seiner" "sein" Sg P3 ;
|
||||||
here7to_Adv = ss ["hierher"] ;
|
here7to_Adv = ss ["hierher"] ;
|
||||||
here7from_Adv = ss ["hieraus"] ;
|
here7from_Adv = ss ["hieraus"] ;
|
||||||
here_Adv = ss ["to hier"] ;
|
here_Adv = ss "hier" ;
|
||||||
how_IAdv = ss "wie" ;
|
how_IAdv = ss "wie" ;
|
||||||
how8many_IDet = detLikeAdj Pl "wieviel" ;
|
how8many_IDet = detLikeAdj Pl "wieviel" ;
|
||||||
if_Subj = ss "wenn" ;
|
if_Subj = ss "wenn" ;
|
||||||
|
|||||||
@@ -11,13 +11,15 @@ concrete VerbGer of Verb = CatGer ** open Prelude, ResGer in {
|
|||||||
|
|
||||||
ComplVV v vp =
|
ComplVV v vp =
|
||||||
let
|
let
|
||||||
compl : Agr => Str = \\a =>
|
compl : Agr -> (Str * Str) = \a ->
|
||||||
let
|
let
|
||||||
vpi = vp.s ! a ! VPInfinit Simul
|
vpi = vp.s ! a ! VPInfinit Simul
|
||||||
in
|
in
|
||||||
vp.n2 ! a ++ vp.a2 ++ vpi.fin ++ infPart v.isAux ++ vpi.inf
|
<vp.n2 ! a ++ vp.a2, infPart v.isAux ++ vpi.inf> ;
|
||||||
|
obj : Agr => Str = \\a => (compl a).p1 ;
|
||||||
|
inf : Str = (compl (agrP3 Sg)).p2 ; --- agr makes no diff here
|
||||||
in
|
in
|
||||||
insertObj compl (predVGen v.isAux v) ;
|
insertInf inf (insertObj obj (predVGen v.isAux v)) ;
|
||||||
|
|
||||||
ComplVS v s =
|
ComplVS v s =
|
||||||
insertExtrapos (conjThat ++ s.s ! Sub) (predV v) ;
|
insertExtrapos (conjThat ++ s.s ! Sub) (predV v) ;
|
||||||
|
|||||||
Reference in New Issue
Block a user