polite imperative except Scand,Rus; todo in Ita,Spa

This commit is contained in:
aarne
2006-12-13 10:13:02 +00:00
parent 694f644fe5
commit a970f40206
16 changed files with 55 additions and 28 deletions

View File

@@ -15,7 +15,7 @@ concrete CatGer of Cat = CommonX ** open ResGer, Prelude in {
Cl = {s : Tense => Anteriority => Polarity => Order => Str} ;
Slash = {s : Tense => Anteriority => Polarity => Order => Str} **
{c2 : Preposition} ;
Imp = {s : Polarity => Number => Str} ;
Imp = {s : Polarity => ImpForm => Str} ;
-- Question

View File

@@ -7,8 +7,9 @@ concrete PhraseGer of Phrase = CatGer ** open Prelude, ResGer in {
UttS s = {s = s.s ! Main} ;
UttQS qs = {s = qs.s ! QDir} ;
UttImpSg pol imp = {s = pol.s ++ imp.s ! pol.p ! Sg} ;
UttImpPl pol imp = {s = pol.s ++ imp.s ! pol.p ! Pl} ;
UttImpSg pol imp = {s = pol.s ++ imp.s ! pol.p ! ImpF Sg False} ;
UttImpPl pol imp = {s = pol.s ++ imp.s ! pol.p ! ImpF Pl False} ;
UttImpPol pol imp = {s = pol.s ++ imp.s ! pol.p ! ImpF Sg True} ;
UttIP ip = {s = ip.s ! Nom} ; --- Acc also
UttIAdv iadv = iadv ;

View File

@@ -59,7 +59,7 @@ resource ResGer = ParamX ** open Prelude in {
param VPForm =
VPFinite Tense Anteriority
| VPImperat
| VPImperat Bool
| VPInfinit Anteriority ;
param VAux = VHaben | VSein ;
@@ -371,7 +371,8 @@ resource ResGer = ParamX ** open Prelude in {
Fut => vf (wird a) (vpart ++ haben) ; --# notpresent
Cond => vf (wuerde a) (vpart ++ haben) --# notpresent
} ; --# notpresent
VPImperat => vf (verb.s ! VImper a.n) [] ;
VPImperat False => vf (verb.s ! VImper a.n) [] ;
VPImperat True => vf (verb.s ! VPresSubj Pl P3) [] ;
VPInfinit Anter => vf [] (vpart ++ haben) ; --# notpresent
VPInfinit Simul => vf [] vinf
} ;
@@ -424,8 +425,8 @@ resource ResGer = ParamX ** open Prelude in {
VPresInd Pl (P1 | P3) => "sind" ;
VPresSubj Sg P2 => (variants {"seiest" ; "seist"}) ;
VPresSubj Sg _ => "sei" ;
VPresSubj Pl P2 => "seien" ;
VPresSubj Pl _ => "seiet" ;
VPresSubj Pl P2 => "seiet" ;
VPresSubj Pl _ => "seien" ;
VPresPart a => (regA "seiend").s ! Posit ! a ;
v => sein.s ! v
} ;

View File

@@ -1,4 +1,4 @@
concrete SentenceGer of Sentence = CatGer ** open ResGer in {
concrete SentenceGer of Sentence = CatGer ** open ResGer, Prelude in {
flags optimize=all_subs ;
@@ -11,10 +11,15 @@ concrete SentenceGer of Sentence = CatGer ** open ResGer in {
ImpVP vp = {
s = \\pol,n =>
let
agr = {g = Fem ; n = n ; p = P2} ; --- g does not matter
verb = vp.s ! agr ! VPImperat ;
ps = case n of {
ImpF _ True => <P3,"Sie",True> ; -- setzen Sie sich
_ => <P2,[],False>
} ;
agr = {g = Fem ; n = numImp n ; p = ps.p1} ; --- g does not matter
verb = vp.s ! agr ! VPImperat ps.p3 ;
in
verb.fin ++ vp.a1 ! pol ++ verb.inf ++ vp.n2 ! agr ++ vp.a2 ++ vp.inf ++ vp.ext
verb.fin ++ ps.p2 ++ verb.inf ++
vp.n2 ! agr ++ vp.a1 ! pol ++ vp.a2 ++ vp.inf ++ vp.ext
} ;
SlashV2 np v2 =