mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
add AdV category
This commit is contained in:
@@ -53,6 +53,7 @@ concrete CatBul of Cat = open ResBul, Prelude, (R = ParamX) in {
|
||||
VP = {
|
||||
s : ResBul.Tense => Anteriority => Polarity => Agr => Bool => Str ;
|
||||
imp : Polarity => Number => Str ;
|
||||
ad : Bool => Str ;
|
||||
s2 : Agr => Str ;
|
||||
subjRole : Role
|
||||
} ;
|
||||
|
||||
@@ -12,6 +12,7 @@ concrete PhraseBul of Phrase = CatBul ** open Prelude, ResBul in {
|
||||
UttIP ip = {s = ip.s ! RSubj} ;
|
||||
UttIAdv iadv = {s = iadv.s1} ;
|
||||
UttNP np = {s = np.s ! RSubj} ;
|
||||
UttVP vp = {s = vp.ad ! False ++ "äà" ++ vp.s ! Pres ! Simul ! Pos ! {gn=GSg Masc; p=P1} ! False} ;
|
||||
UttAdv adv = adv ;
|
||||
|
||||
NoPConj = {s = []} ;
|
||||
|
||||
@@ -191,6 +191,7 @@ resource ResBul = ParamX ** open Prelude in {
|
||||
VP : Type = {
|
||||
s : Tense => Anteriority => Polarity => Agr => Bool => Str ;
|
||||
imp : Polarity => Number => Str ;
|
||||
ad : Bool => Str ; -- sentential adverb
|
||||
s2 : Agr => Str ;
|
||||
subjRole : Role
|
||||
} ;
|
||||
@@ -244,6 +245,7 @@ resource ResBul = ParamX ** open Prelude in {
|
||||
in aux.s1 ++ verbs.main ++ aux.s2;
|
||||
imp = \\p,n => let ne = case p of {Pos => []; Neg => "íå"} ;
|
||||
in ne ++ verb.s ! VImperative n ;
|
||||
ad = \\_ => [] ;
|
||||
s2 = \\_ => [] ;
|
||||
subjRole = case verb.vtype of {
|
||||
VNormal => RSubj ;
|
||||
@@ -255,6 +257,7 @@ resource ResBul = ParamX ** open Prelude in {
|
||||
insertObj : (Agr => Str) -> VP -> VP = \obj,vp -> {
|
||||
s = vp.s ;
|
||||
imp = vp.imp ;
|
||||
ad = vp.ad ;
|
||||
s2 = \\a => vp.s2 ! a ++ obj ! a ;
|
||||
subjRole = vp.subjRole
|
||||
} ;
|
||||
@@ -461,13 +464,13 @@ resource ResBul = ParamX ** open Prelude in {
|
||||
\subj,agr,vp -> {
|
||||
s = \\t,a,b,o =>
|
||||
let
|
||||
verb = vp.s ! t ! a ! b ! agr ! False ;
|
||||
verbq = vp.s ! t ! a ! b ! agr ! True ;
|
||||
verb : Bool => Str
|
||||
= \\q => vp.ad ! q ++ vp.s ! t ! a ! b ! agr ! q ;
|
||||
compl = vp.s2 ! agr
|
||||
in case o of {
|
||||
Main => subj ++ verb ++ compl ;
|
||||
Inv => verb ++ compl ++ subj ;
|
||||
Quest => subj ++ verbq ++ compl
|
||||
Main => subj ++ verb ! False ++ compl ;
|
||||
Inv => verb ! False ++ compl ++ subj ;
|
||||
Quest => subj ++ verb ! True ++ compl
|
||||
}
|
||||
} ;
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ concrete SentenceBul of Sentence = CatBul ** open Prelude, ResBul in {
|
||||
(let vp = predV vv
|
||||
in { s = \\t,a,p,agr,q => vp.s ! t ! a ! p ! agr ! q ++ "äà" ++ v2.s ! (VPres (numGenNum agr.gn) agr.p) ;
|
||||
imp = vp.imp ;
|
||||
ad = vp.ad ;
|
||||
s2 = vp.s2 ;
|
||||
subjRole = vp.subjRole
|
||||
}) **
|
||||
@@ -43,6 +44,7 @@ concrete SentenceBul of Sentence = CatBul ** open Prelude, ResBul in {
|
||||
|
||||
EmbedS s = {s = "," ++ "֌" ++ s.s} ;
|
||||
EmbedQS qs = {s = qs.s ! QIndir} ;
|
||||
EmbedVP vp = {s = vp.ad ! False ++ "äà" ++ vp.s ! Pres ! Simul ! Pos ! {gn=GSg Masc; p=P1} ! False} ;
|
||||
|
||||
UseCl t a p cl = {
|
||||
s = t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! Main
|
||||
|
||||
@@ -9,8 +9,9 @@ concrete VerbBul of Verb = CatBul ** open Prelude, ResBul, ParadigmsBul in {
|
||||
insertObj (\\_ => v.c2.s ++ np.s ! RObj v.c2.c ++ v.c3.s ++ np2.s ! RObj v.c3.c) (predV v) ;
|
||||
|
||||
ComplVV vv vp = {
|
||||
s = \\t,a,p,agr,q => (predV vv).s ! t ! a ! p ! agr ! q ++ "äà" ++ vp.s ! Pres ! Simul ! Pos ! agr ! False ;
|
||||
s = \\t,a,p,agr,q => (predV vv).s ! t ! a ! p ! agr ! q ++ vp.ad ! False ++ "äà" ++ vp.s ! Pres ! Simul ! Pos ! agr ! False ;
|
||||
imp = vp.imp ;
|
||||
ad = \\_ => [] ;
|
||||
s2 = vp.s2 ;
|
||||
subjRole = vp.subjRole
|
||||
} ;
|
||||
@@ -21,7 +22,15 @@ concrete VerbBul of Verb = CatBul ** open Prelude, ResBul, ParadigmsBul in {
|
||||
|
||||
AdvVP vp adv = insertObj (\\_ => adv.s) vp ;
|
||||
|
||||
ReflV2 v = predV (reflV v v.c2.c) ;
|
||||
AdVVP adv vp = {
|
||||
s = \\t,a,p,agr,q => vp.s ! t ! a ! p ! agr ! False ;
|
||||
imp = vp.imp ;
|
||||
ad = \\q => vp.ad ! q ++ adv.s ++ case q of {True => "ëè"; False => []} ;
|
||||
s2 = vp.s2 ;
|
||||
subjRole = vp.subjRole
|
||||
} ;
|
||||
|
||||
ReflV2 v = predV (reflV (v ** {lock_V=<>}) v.c2.c) ;
|
||||
|
||||
PassV2 v = insertObj (\\a => v.s ! VPassive (aform a.gn Indef (RObj Acc))) (predV verbBe) ;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user