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 = { AdjOrd ord = {
s = \\_ => ord.s ; s = \\_ => ord.s ;
adv = ord.s ; adv = ord.s ;
isPre = ord.isPre isPre = ord.isPre ;
afterPrefix = False ;
} ; } ;
AdvAP ap adv = ap ** { AdvAP ap adv = ap ** {

View File

@@ -48,7 +48,7 @@ concrete ConjunctionPes of Conjunction =
isCmpd : CmpdStatus; isCmpd : CmpdStatus;
hasAdj : Bool ; hasAdj : Bool ;
compl : Number => Str} ; 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} ; [RS] = {s1,s2 : Agr => Str ; rp : RelPron => Str} ;
oper oper

View File

@@ -150,7 +150,8 @@ oper
Adjective : Type = { Adjective : Type = {
s : Mod => Str ; s : Mod => Str ;
adv : 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 -> { mkAdj : Str -> Str -> Adjective = \adj,adv -> {
@@ -159,7 +160,7 @@ oper
Clitic => mkEnclic adj ; Clitic => mkEnclic adj ;
Poss => mkPossStem 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 : Str -> A ; -- Regular adjective, same form for adjective and adverb.
mkA : (adj,adv : Str) -> A -- Different forms 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. mkA2 : (married,to : Str) -> A2 -- Takes string and complementiser, returns A2.
= \a,c -> lin A2 (mkAdj a a ** {c2 = c}) ; = \a,c -> lin A2 (mkAdj a a ** {c2 = c}) ;
@@ -303,6 +304,8 @@ oper
= \a,c -> lin A2 (mkAdj a a ** {c2 = c}) = \a,c -> lin A2 (mkAdj a a ** {c2 = c})
} ; } ;
prefixA a = a ** {isPre=True};
preA : (adj,adv : Str) -> A = \adj,adv -> preA : (adj,adv : Str) -> A = \adj,adv ->
lin A ((mkAdj adj adv) ** {isPre=True}) ; lin A ((mkAdj adj adv) ** {isPre=True}) ;

View File

@@ -15,7 +15,11 @@ concrete VerbPes of Verb = CatPes ** open ResPes,Prelude in {
ComplVV = insertVV ; ComplVV = insertVV ;
ComplVS v s = embComp (conjThat ++ s.s ! v.compl) (predV v) ; ComplVS v s = embComp (conjThat ++ s.s ! v.compl) (predV v) ;
ComplVQ v q = embComp (conjThat ++ q.s) (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 ; SlashVV vv vps = vps ** ComplVV vv vps ;
SlashV2S v s = predVc v ** embComp (conjThat ++ s.s ! Indic) (predV v) ; SlashV2S v s = predVc v ** embComp (conjThat ++ s.s ! Indic) (predV v) ;