mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 11:42:49 -06:00
several fixes in German RGL: compound verbs added; compound forms of nouns added; made dative -e optional; made mkV Str V recognize which prefixes are certainly not movable ones ((be,er,ge,ver,zer)
This commit is contained in:
@@ -88,9 +88,9 @@ concrete CatGer of Cat =
|
|||||||
A = {s : Degree => AForm => Str} ;
|
A = {s : Degree => AForm => Str} ;
|
||||||
A2 = {s : Degree => AForm => Str ; c2 : Preposition} ;
|
A2 = {s : Degree => AForm => Str ; c2 : Preposition} ;
|
||||||
|
|
||||||
N = {s : Number => Case => Str ; g : Gender} ;
|
N = ResGer.Noun ;
|
||||||
N2 = {s : Number => Case => Str ; g : Gender} ** {c2 : Preposition} ;
|
N2 = ResGer.Noun ** {c2 : Preposition} ;
|
||||||
N3 = {s : Number => Case => Str ; g : Gender} ** {c2,c3 : Preposition} ;
|
N3 = ResGer.Noun ** {c2,c3 : Preposition} ;
|
||||||
PN = {s : Case => Str} ;
|
PN = {s : Case => Str} ;
|
||||||
|
|
||||||
-- tense with possibility to choose conjunctive forms
|
-- tense with possibility to choose conjunctive forms
|
||||||
|
|||||||
@@ -139,19 +139,18 @@ concrete NounGer of Noun = CatGer ** open ResGer, MorphoGer, Prelude in {
|
|||||||
|
|
||||||
ComplN3 f x = {
|
ComplN3 f x = {
|
||||||
s = \\n,c => f.s ! n ! c ++ appPrep f.c2 x.s ;
|
s = \\n,c => f.s ! n ! c ++ appPrep f.c2 x.s ;
|
||||||
|
co = f.co ++ appPrep f.c2 x.s ; ---- should not occur at all; the abstract syntax is problematic in giving N2
|
||||||
|
uncap = {
|
||||||
|
s = \\n,c => f.uncap.s ! n ! c ++ appPrep f.c2 x.s ;
|
||||||
|
co = f.uncap.co ++ appPrep f.c2 x.s ; ---- should not occur at all; the abstract syntax is problematic in giving N2
|
||||||
|
} ;
|
||||||
g = f.g ;
|
g = f.g ;
|
||||||
c2 = f.c3
|
c2 = f.c3
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
Use2N3 f = {
|
Use2N3 f = f ;
|
||||||
s = f.s ;
|
|
||||||
g = f.g ;
|
|
||||||
c2 = f.c2
|
|
||||||
} ;
|
|
||||||
|
|
||||||
Use3N3 f = {
|
Use3N3 f = f ** {
|
||||||
s = f.s ;
|
|
||||||
g = f.g ;
|
|
||||||
c2 = f.c3
|
c2 = f.c3
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -90,8 +90,17 @@ mkN : overload {
|
|||||||
|
|
||||||
mkN : Str -> N -> N ; -- Auto + Fahrer -> Autofahrer
|
mkN : Str -> N -> N ; -- Auto + Fahrer -> Autofahrer
|
||||||
|
|
||||||
|
mkN : N -> N -> N ; -- Freiheit + Kampf -> Freiheitskampf
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
-- The default compound form can be changed:
|
||||||
|
|
||||||
|
changeCompoundN : Str -> N -> N ; -- kyrko + kyrka_N
|
||||||
|
|
||||||
|
-- Add dative -e ; typically used as variant, either first or second.
|
||||||
|
|
||||||
|
dative_eN : N -> N ;
|
||||||
|
|
||||||
-- Relational nouns need a preposition. The most common is "von" with
|
-- Relational nouns need a preposition. The most common is "von" with
|
||||||
-- the dative, and there is a special case for regular nouns.
|
-- the dative, and there is a special case for regular nouns.
|
||||||
@@ -211,7 +220,7 @@ mkV : overload {
|
|||||||
|
|
||||||
-- To add a movable prefix e.g. "auf(fassen)".
|
-- To add a movable prefix e.g. "auf(fassen)".
|
||||||
|
|
||||||
mkV : Str -> V -> V -- movable prefix, e.g. auf+fassen
|
mkV : Str -> V -> V -- movable prefix, e.g. auf+fassen, or fix prefix if one of be,er,ge,ver,zer
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -234,6 +243,10 @@ mkV : overload {
|
|||||||
|
|
||||||
reflV : V -> Case -> V ; -- reflexive, with case
|
reflV : V -> Case -> V ; -- reflexive, with case
|
||||||
|
|
||||||
|
-- Compound verbs: verbs with a fixed particle; syntactically similar to prefix but written separately.
|
||||||
|
|
||||||
|
compoundV : Str -> V -> V ; -- verb with a separate "particle", e.g. "Trinkgeld geben"
|
||||||
|
|
||||||
|
|
||||||
--3 Two-place verbs
|
--3 Two-place verbs
|
||||||
|
|
||||||
@@ -347,12 +360,13 @@ mkV2 : overload {
|
|||||||
singular = Sg ;
|
singular = Sg ;
|
||||||
plural = Pl ;
|
plural = Pl ;
|
||||||
|
|
||||||
mk6N a b c d e f g = MorphoGer.mkN a b c d e f g ** {lock_N = <>} ;
|
mk6N a b c d e f g = MorphoGer.mkN a b c d e f (mkCompoundForm a) g ** {lock_N = <>} ;
|
||||||
|
|
||||||
regN : Str -> N = \hund -> case hund of {
|
regN : Str -> N = \hund -> case hund of {
|
||||||
_ + "e" => mk6N hund hund hund hund (hund + "n") (hund + "n") Fem ;
|
_ + "e" => mk6N hund hund hund hund (hund + "n") (hund + "n") Fem ;
|
||||||
_ + ("ion" | "ung") => mk6N hund hund hund hund (hund + "en") (hund + "en") Fem ;
|
_ + ("ion" | "ung") => mk6N hund hund hund hund (hund + "en") (hund + "en") Fem ;
|
||||||
_ + ("er" | "en" | "el") => mk6N hund hund hund (genitS (True | False) hund) hund (pluralN hund) Masc ;
|
_ + ("er" | "en" | "el") => mk6N hund hund hund (genitS (True | False) hund) hund (pluralN hund) Masc ;
|
||||||
|
_ + "nis" => mk6N hund hund hund hund (hund + "se") (hund + "sen") Neutr ;
|
||||||
_ => mk6N hund hund hund (genitS (True | False) hund) (hund + "e") (pluralN hund) Masc
|
_ => mk6N hund hund hund (genitS (True | False) hund) (hund + "e") (pluralN hund) Masc
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -366,17 +380,20 @@ mkV2 : overload {
|
|||||||
mk6N hund hunde hunde hunde hunde hunde g ;
|
mk6N hund hunde hunde hunde hunde hunde g ;
|
||||||
<_, Masc> =>
|
<_, Masc> =>
|
||||||
let hunde = hund + "e" ; hunden = pluralN hunde in
|
let hunde = hund + "e" ; hunden = pluralN hunde in
|
||||||
variants {mk6N hund hund (dativE True hund) (genitS True hund) hunde hunden g ;
|
mk6N hund hund hund (genitS True hund) hunde hunden g ;
|
||||||
mk6N hund hund (dativE False hund) (genitS False hund) hunde hunden g} ;
|
---variants {mk6N hund hund (dativE True hund) (genitS True hund) hunde hunden g ;
|
||||||
|
--- mk6N hund hund (dativE False hund) (genitS False hund) hunde hunden g} ;
|
||||||
<_, Neutr> =>
|
<_, Neutr> =>
|
||||||
let hunde = hund + "er" ; hunden = pluralN hunde in
|
let hunde = hund + "er" ; hunden = pluralN hunde in
|
||||||
variants {mk6N hund hund (dativE True hund) (genitS True hund) hunde hunden g ;
|
variants {mk6N hund hund hund (genitS True hund) hunde hunden g ;
|
||||||
mk6N hund hund (dativE False hund) (genitS False hund) hunde hunden g} ;
|
mk6N hund hund hund (genitS False hund) hunde hunden g} ;
|
||||||
|
--- variants {mk6N hund hund (dativE True hund) (genitS True hund) hunde hunden g ;
|
||||||
|
--- mk6N hund hund (dativE False hund) (genitS False hund) hunde hunden g} ;
|
||||||
<_, Fem> =>
|
<_, Fem> =>
|
||||||
let hunde : Str = case hund of {_ + "e" => hund + "n" ; _ => hund + "en"} ;
|
let hunde : Str = case hund of {_ + "e" => hund + "n" ; _ => hund + "en"} ;
|
||||||
hunden = hunde
|
hunden = hunde
|
||||||
in mk6N hund hund hund hund hunde hunden g ;
|
in mk6N hund hund hund hund hunde hunden g ;
|
||||||
_ => {s = (regN hund).s ; g = g ; lock_N = <>}
|
_ => regN hund ** {g = g}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
reg2N : (x1,x2 : Str) -> Gender -> N = \hund,hunde,g ->
|
reg2N : (x1,x2 : Str) -> Gender -> N = \hund,hunde,g ->
|
||||||
@@ -384,8 +401,10 @@ mkV2 : overload {
|
|||||||
in
|
in
|
||||||
case <hund,hunde,g> of { -- Duden p. 223
|
case <hund,hunde,g> of { -- Duden p. 223
|
||||||
<_,_ + ("e" | "er"), Masc | Neutr> => -- I,IV
|
<_,_ + ("e" | "er"), Masc | Neutr> => -- I,IV
|
||||||
variants {mk6N hund hund (dativE True hund) (genitS True hund) hunde hunden g ;
|
variants {mk6N hund hund hund (genitS True hund) hunde hunden g ;
|
||||||
mk6N hund hund (dativE False hund) (genitS False hund) hunde hunden g} ;
|
mk6N hund hund hund (genitS False hund) hunde hunden g} ;
|
||||||
|
--- variants {mk6N hund hund (dativE True hund) (genitS True hund) hunde hunden g ;
|
||||||
|
--- mk6N hund hund (dativE False hund) (genitS False hund) hunde hunden g} ;
|
||||||
<_ + ("el"|"er"|"en"),_ + ("el"|"er"|"en"), Masc | Neutr> => -- II
|
<_ + ("el"|"er"|"en"),_ + ("el"|"er"|"en"), Masc | Neutr> => -- II
|
||||||
mk6N hund hund hund (genitS (True | False) hund) hunde hunden g ;
|
mk6N hund hund hund (genitS (True | False) hund) hunde hunden g ;
|
||||||
<_,_ + "s", Masc | Neutr> => -- V
|
<_,_ + "s", Masc | Neutr> => -- V
|
||||||
@@ -396,9 +415,20 @@ mkV2 : overload {
|
|||||||
mk6N hund hund hund hund hunde hunden g ;
|
mk6N hund hund hund hund hunde hunden g ;
|
||||||
<_,_ + ("n" | "s"), Fem> => -- IX,X
|
<_,_ + ("n" | "s"), Fem> => -- IX,X
|
||||||
mk6N hund hund hund hund hunde hunde g ;
|
mk6N hund hund hund hund hunde hunde g ;
|
||||||
_ => {s = (regN hund).s ; g = g ; lock_N = <>}
|
<_,_ + ("n" | "s"), Neutr> => --- not mentioned; Konto-Kontos
|
||||||
|
mk6N hund hund hund hund hunde hunde g ;
|
||||||
|
_ => regN hund ** {g = g}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
changeCompoundN : Str -> N -> N = \co,n -> n ** {
|
||||||
|
co = co ;
|
||||||
|
uncap = n.uncap ** {co = toLowerFirst co} ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
dative_eN : N -> N = \n -> n ** {
|
||||||
|
s = table {Sg => table {Dat => n.s ! Sg ! Dat + "e" ; c => n.s ! Sg ! c} ; Pl => n.s ! Pl} ;
|
||||||
|
} ; ---- change uncap as well?
|
||||||
|
|
||||||
mkN2 = overload {
|
mkN2 = overload {
|
||||||
mkN2 : Str -> N2 = \s -> vonN2 (regN s) ;
|
mkN2 : Str -> N2 = \s -> vonN2 (regN s) ;
|
||||||
mkN2 : N -> N2 = vonN2 ;
|
mkN2 : N -> N2 = vonN2 ;
|
||||||
@@ -499,19 +529,18 @@ mkV2 : overload {
|
|||||||
|
|
||||||
prefixV p v = MorphoGer.prefixV p v ** {lock_V = v.lock_V} ;
|
prefixV p v = MorphoGer.prefixV p v ** {lock_V = v.lock_V} ;
|
||||||
|
|
||||||
habenV v =
|
compoundV p v = v ** {particle = p} ;
|
||||||
{s = v.s ; prefix = v.prefix ; lock_V = v.lock_V ; aux = VHaben ; vtype = v.vtype} ;
|
|
||||||
seinV v =
|
habenV v = v ** {aux = VHaben} ;
|
||||||
{s = v.s ; prefix = v.prefix ; lock_V = v.lock_V ; aux = VSein ; vtype = v.vtype} ;
|
seinV v = v ** {aux = VSein} ;
|
||||||
reflV v c =
|
reflV v c = v ** {aux = VHaben ; vtype = VRefl (prepC c).c} ;
|
||||||
{s = v.s ; prefix = v.prefix ; lock_V = v.lock_V ; aux = VHaben ; vtype = VRefl (prepC c).c} ;
|
|
||||||
|
|
||||||
no_geV v = let vs = v.s in {
|
no_geV v = let vs = v.s in {
|
||||||
s = table {
|
s = table {
|
||||||
p@(VPastPart _) => Predef.drop 2 (vs ! p) ;
|
p@(VPastPart _) => Predef.drop 2 (vs ! p) ;
|
||||||
p => vs ! p
|
p => vs ! p
|
||||||
} ;
|
} ;
|
||||||
prefix = v.prefix ; lock_V = v.lock_V ; aux = v.aux ; vtype = v.vtype
|
prefix = v.prefix ; particle = v.particle ; lock_V = v.lock_V ; aux = v.aux ; vtype = v.vtype
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
fixprefixV s v = let vs = v.s in {
|
fixprefixV s v = let vs = v.s in {
|
||||||
@@ -520,12 +549,12 @@ mkV2 : overload {
|
|||||||
p@(VPastPart _) => s + Predef.drop 2 (vs ! p) ;
|
p@(VPastPart _) => s + Predef.drop 2 (vs ! p) ;
|
||||||
p => s + vs ! p
|
p => s + vs ! p
|
||||||
} ;
|
} ;
|
||||||
prefix = v.prefix ; lock_V = v.lock_V ; aux = v.aux ; vtype = v.vtype
|
prefix = v.prefix ; particle = v.particle ; lock_V = v.lock_V ; aux = v.aux ; vtype = v.vtype
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
haben_V = MorphoGer.haben_V ** {lock_V = <>} ;
|
haben_V = MorphoGer.haben_V ** {particle = [] ; lock_V = <>} ;
|
||||||
sein_V = MorphoGer.sein_V ** {lock_V = <>} ;
|
sein_V = MorphoGer.sein_V ** {particle = [] ; lock_V = <>} ;
|
||||||
werden_V = MorphoGer.werden_V ** {lock_V = <>} ;
|
werden_V = MorphoGer.werden_V ** {particle = [] ; lock_V = <>} ;
|
||||||
|
|
||||||
prepV2 v c = v ** {c2 = c ; lock_V2 = <>} ;
|
prepV2 v c = v ** {c2 = c ; lock_V2 = <>} ;
|
||||||
dirV2 v = prepV2 v accPrep ;
|
dirV2 v = prepV2 v accPrep ;
|
||||||
@@ -597,11 +626,23 @@ mkV2 : overload {
|
|||||||
mkN : (x1,x2 : Str) -> Gender -> N = reg2N ;
|
mkN : (x1,x2 : Str) -> Gender -> N = reg2N ;
|
||||||
mkN : (x1,_,_,_,_,x6 : Str) -> Gender -> N = mk6N ;
|
mkN : (x1,_,_,_,_,x6 : Str) -> Gender -> N = mk6N ;
|
||||||
mkN : Str -> N -> N -- Auto + Fahrer -> Autofahrer
|
mkN : Str -> N -> N -- Auto + Fahrer -> Autofahrer
|
||||||
= \s,x -> lin N {s = \\n,c => s + Predef.toLower (x.s ! n ! c) ; g = x.g} ;
|
= \s,x -> mkCompoundN s x ;
|
||||||
|
mkN : N -> N -> N
|
||||||
|
= \n,x -> mkCompoundN n.co x ;
|
||||||
mkN : Str -> Gender -> Gender -> N
|
mkN : Str -> Gender -> Gender -> N
|
||||||
= \s,g,h -> reg1N s g | reg1N s h ;
|
= \s,g,h -> reg1N s g | reg1N s h ;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
mkCompoundN : Str -> N -> N -- Auto + Fahrer -> Autofahrer
|
||||||
|
= \s,x -> lin N {
|
||||||
|
s = \\n,c => s + x.uncap.s ! n ! c ;
|
||||||
|
co = s + x.uncap.co ;
|
||||||
|
uncap = {
|
||||||
|
s = \\n,c => toLowerFirst s + x.uncap.s ! n ! c ;
|
||||||
|
co = toLowerFirst s + x.uncap.co ;
|
||||||
|
} ;
|
||||||
|
g = x.g
|
||||||
|
} ;
|
||||||
|
|
||||||
|
|
||||||
regA : Str -> A ;
|
regA : Str -> A ;
|
||||||
@@ -625,7 +666,10 @@ mkV2 : overload {
|
|||||||
mkV : Str -> V = regV ;
|
mkV : Str -> V = regV ;
|
||||||
mkV : (x1,_,_,_,x5 : Str) -> V = irregV ;
|
mkV : (x1,_,_,_,x5 : Str) -> V = irregV ;
|
||||||
mkV : (x1,_,_,_,_,x6 : Str) -> V = mk6V ;
|
mkV : (x1,_,_,_,_,x6 : Str) -> V = mk6V ;
|
||||||
mkV : Str -> V -> V = prefixV
|
mkV : Str -> V -> V = \p,v -> case p of {
|
||||||
|
"be" | "er" | "ge" | "ver" | "zer" => fixprefixV p v ;
|
||||||
|
_ => MorphoGer.prefixV p v ** {lock_V = v.lock_V}
|
||||||
|
} ;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -217,17 +217,48 @@ resource ResGer = ParamX ** open Prelude in {
|
|||||||
-- are always the same except for the dative. Actually the six forms are never
|
-- are always the same except for the dative. Actually the six forms are never
|
||||||
-- needed at the same time, but just subsets of them.
|
-- needed at the same time, but just subsets of them.
|
||||||
|
|
||||||
Noun : Type = {s : Number => Case => Str ; g : Gender} ;
|
Noun : Type = {
|
||||||
|
s : Number => Case => Str ;
|
||||||
|
co : Str ; -- compound form, first part
|
||||||
|
uncap : { -- compound form, second part, uncapitalized
|
||||||
|
s : Number => Case => Str ; --- just a copy of the normal noun; would be nicer with run-time uncap
|
||||||
|
co : Str ;
|
||||||
|
} ;
|
||||||
|
g : Gender
|
||||||
|
} ;
|
||||||
|
|
||||||
mkN : (x1,_,_,_,_,x6 : Str) -> Gender -> Noun =
|
mkN : (x1,_,_,_,_,x6,x7 : Str) -> Gender -> Noun =
|
||||||
\mann, mannen, manne, mannes, maenner, maennern, g -> {
|
\Mann, Mannen, Manne, Mannes, Maenner, Maennern, Mann_, g -> {
|
||||||
s = table {
|
s = table {
|
||||||
Sg => caselist mann mannen manne mannes ;
|
Sg => caselist Mann Mannen Manne Mannes ;
|
||||||
Pl => caselist maenner maenner maennern maenner
|
Pl => caselist Maenner Maenner Maennern Maenner
|
||||||
} ;
|
} ;
|
||||||
|
co = Mann_ ;
|
||||||
|
uncap =
|
||||||
|
let
|
||||||
|
mann = toLowerFirst Mann ;
|
||||||
|
mannen = toLowerFirst Mannen ;
|
||||||
|
manne = toLowerFirst Manne ;
|
||||||
|
mannes = toLowerFirst Mannes ;
|
||||||
|
maenner = toLowerFirst Maenner ;
|
||||||
|
maennern = toLowerFirst Maennern ;
|
||||||
|
mann_ = toLowerFirst Mann_ ;
|
||||||
|
in {
|
||||||
|
s = table {
|
||||||
|
Sg => caselist mann mannen manne mannes ;
|
||||||
|
Pl => caselist maenner maenner maennern maenner
|
||||||
|
} ;
|
||||||
|
co = mann_ ;
|
||||||
|
} ;
|
||||||
g = g
|
g = g
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
mkCompoundForm : Str -> Str = \s -> case s of {
|
||||||
|
_ + "e" => s + "n" ;
|
||||||
|
_ + ("ung" | "heit" | "keit") => s + "s" ;
|
||||||
|
_ => s ---- any more predictable cases?
|
||||||
|
} ;
|
||||||
|
|
||||||
-- Adjectives need four forms: two for the positive and one for the other degrees.
|
-- Adjectives need four forms: two for the positive and one for the other degrees.
|
||||||
|
|
||||||
Adjective : Type = {s : Degree => AForm => Str} ;
|
Adjective : Type = {s : Degree => AForm => Str} ;
|
||||||
@@ -246,7 +277,8 @@ resource ResGer = ParamX ** open Prelude in {
|
|||||||
|
|
||||||
Verb : Type = {
|
Verb : Type = {
|
||||||
s : VForm => Str ;
|
s : VForm => Str ;
|
||||||
prefix : Str ;
|
prefix : Str ;
|
||||||
|
particle : Str ;
|
||||||
aux : VAux ;
|
aux : VAux ;
|
||||||
vtype : VType
|
vtype : VType
|
||||||
} ;
|
} ;
|
||||||
@@ -288,6 +320,7 @@ resource ResGer = ParamX ** open Prelude in {
|
|||||||
VPastPart a => ein + (regA gegeben).s ! Posit ! a
|
VPastPart a => ein + (regA gegeben).s ! Posit ! a
|
||||||
} ;
|
} ;
|
||||||
prefix = ein ;
|
prefix = ein ;
|
||||||
|
particle = [] ;
|
||||||
aux = aux ;
|
aux = aux ;
|
||||||
vtype = VAct
|
vtype = VAct
|
||||||
} ;
|
} ;
|
||||||
@@ -311,6 +344,7 @@ resource ResGer = ParamX ** open Prelude in {
|
|||||||
VPastPart a => ein + vs ! VPastPart a
|
VPastPart a => ein + vs ! VPastPart a
|
||||||
} ;
|
} ;
|
||||||
prefix = ein ;
|
prefix = ein ;
|
||||||
|
particle = verb.particle ;
|
||||||
aux = verb.aux ;
|
aux = verb.aux ;
|
||||||
vtype = verb.vtype
|
vtype = verb.vtype
|
||||||
} ;
|
} ;
|
||||||
@@ -320,7 +354,7 @@ resource ResGer = ParamX ** open Prelude in {
|
|||||||
-- defined in $MorphoGer$.
|
-- defined in $MorphoGer$.
|
||||||
|
|
||||||
mkN4 : (x1,_,_,x4 : Str) -> Gender -> Noun = \wein,weines,weine,weinen ->
|
mkN4 : (x1,_,_,x4 : Str) -> Gender -> Noun = \wein,weines,weine,weinen ->
|
||||||
mkN wein wein wein weines weine weinen ;
|
mkN wein wein wein weines weine weinen (mkCompoundForm wein) ;
|
||||||
|
|
||||||
regA : Str -> Adjective = \blau ->
|
regA : Str -> Adjective = \blau ->
|
||||||
let blauest : Str = case blau of {
|
let blauest : Str = case blau of {
|
||||||
@@ -486,7 +520,7 @@ resource ResGer = ParamX ** open Prelude in {
|
|||||||
|
|
||||||
vf : Bool -> Str -> Str -> {fin,inf : Str} = \b,fin,inf -> {
|
vf : Bool -> Str -> Str -> {fin,inf : Str} = \b,fin,inf -> {
|
||||||
fin = fin ;
|
fin = fin ;
|
||||||
inf = if_then_Str b [] auf ++ inf --- negation of main b
|
inf = verb.particle ++ if_then_Str b [] auf ++ inf --- negation of main b
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
in {
|
in {
|
||||||
@@ -515,6 +549,7 @@ resource ResGer = ParamX ** open Prelude in {
|
|||||||
s = {
|
s = {
|
||||||
s = verb.s ;
|
s = verb.s ;
|
||||||
prefix = verb.prefix ;
|
prefix = verb.prefix ;
|
||||||
|
particle = verb.particle ;
|
||||||
aux = verb.aux ;
|
aux = verb.aux ;
|
||||||
vtype = verb.vtype
|
vtype = verb.vtype
|
||||||
} ;
|
} ;
|
||||||
@@ -574,6 +609,7 @@ resource ResGer = ParamX ** open Prelude in {
|
|||||||
v => sein.s ! v
|
v => sein.s ! v
|
||||||
} ;
|
} ;
|
||||||
prefix = [] ;
|
prefix = [] ;
|
||||||
|
particle = [] ;
|
||||||
aux = VSein ;
|
aux = VSein ;
|
||||||
vtype = VAct
|
vtype = VAct
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
Reference in New Issue
Block a user