1
0
forked from GitHub/gf-rgl

(Pes) Add parameter in A+AP about AP's placement as predicative

Co-Authored-By: Nasrin Mostofian <nasrin.mostofian@gmail.com>
This commit is contained in:
Inari Listenmaa
2019-04-18 18:31:59 +02:00
parent 02b231363e
commit 1719924f56
5 changed files with 14 additions and 5 deletions

View File

@@ -43,7 +43,8 @@ concrete AdjectivePes of Adjective = CatPes ** open ResPes, Prelude in {
AdjOrd ord = {
s = \\_ => ord.s ;
adv = ord.s ;
isPre = ord.isPre
isPre = ord.isPre ;
afterPrefix = False ;
} ;
AdvAP ap adv = ap ** {

View File

@@ -48,7 +48,7 @@ concrete ConjunctionPes of Conjunction =
isCmpd : CmpdStatus;
hasAdj : Bool ;
compl : Number => Str} ;
[AP] = {s1,s2 : Mod => Str ; adv : Str ; isPre : Bool} ;
[AP] = {s1,s2 : Mod => Str ; adv : Str ; isPre,afterPrefix : Bool} ;
[RS] = {s1,s2 : Agr => Str ; rp : RelPron => Str} ;
oper

View File

@@ -150,7 +150,8 @@ oper
Adjective : Type = {
s : Mod => Str ;
adv : Str ;
isPre : Bool
isPre : Bool ; -- as attributive
afterPrefix : Bool ; -- as predicative, does it go between the prefix and the light verb
} ;
mkAdj : Str -> Str -> Adjective = \adj,adv -> {
@@ -159,7 +160,7 @@ oper
Clitic => mkEnclic adj ;
Poss => mkPossStem adj
} ;
adv = adv ; isPre = False
adv = adv ; isPre = False ; afterPrefix = True ;
};
------------------------------------------------------------------

View File

@@ -88,6 +88,7 @@ oper
mkA : Str -> A ; -- Regular adjective, same form for adjective and adverb.
mkA : (adj,adv : Str) -> A -- Different forms for adjective and adverb.
} ;
prefixA : A -> A ; -- Adjective that comes before the noun
mkA2 : (married,to : Str) -> A2 -- Takes string and complementiser, returns A2.
= \a,c -> lin A2 (mkAdj a a ** {c2 = c}) ;
@@ -303,6 +304,8 @@ oper
= \a,c -> lin A2 (mkAdj a a ** {c2 = c})
} ;
prefixA a = a ** {isPre=True};
preA : (adj,adv : Str) -> A = \adj,adv ->
lin A ((mkAdj adj adv) ** {isPre=True}) ;

View File

@@ -15,7 +15,11 @@ concrete VerbPes of Verb = CatPes ** open ResPes,Prelude in {
ComplVV = insertVV ;
ComplVS v s = embComp (conjThat ++ s.s ! v.compl) (predV v) ;
ComplVQ v q = embComp (conjThat ++ q.s) (predV v) ;
ComplVA v ap = insertObj (appComp v.c2 ap.s) (predV v) ; -- check form of adjective
ComplVA v ap = let adjStr = appComp v.c2 ap.s in
case ap.afterPrefix of {
True => predV (v ** {prefix = v.prefix ++ adjStr}) ;
False => insertObj adjStr (predV v) -- check form of adjective
} ;
SlashVV vv vps = vps ** ComplVV vv vps ;
SlashV2S v s = predVc v ** embComp (conjThat ++ s.s ! Indic) (predV v) ;