1
0
forked from GitHub/gf-core

add AdV category

This commit is contained in:
krasimir
2008-02-29 15:29:45 +00:00
parent 52b2d9e728
commit aa210a01c3
5 changed files with 23 additions and 7 deletions

View File

@@ -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
} ;

View File

@@ -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 = []} ;

View File

@@ -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
}
} ;

View File

@@ -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

View File

@@ -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) ;