forked from GitHub/gf-core
restored V2V, V2S, V2Q as categories in RG
This commit is contained in:
@@ -65,9 +65,10 @@ concrete CatEng of Cat = CommonX ** open ResEng, Prelude in {
|
||||
-- Open lexical classes, e.g. Lexicon
|
||||
|
||||
V, VS, VQ, VA = Verb ; -- = {s : VForm => Str} ;
|
||||
V2, V2A = Verb ** {c2 : Str} ;
|
||||
V2, V2A, V2Q, V2S = Verb ** {c2 : Str} ;
|
||||
V3 = Verb ** {c2, c3 : Str} ;
|
||||
VV = {s : VVForm => Str ; isAux : Bool} ;
|
||||
V2V = Verb ** {c2 : Str ; isAux : Bool} ;
|
||||
|
||||
A = {s : AForm => Str} ;
|
||||
A2 = {s : AForm => Str ; c2 : Str} ;
|
||||
|
||||
@@ -268,12 +268,10 @@ oper
|
||||
mkAV : A -> AV ;
|
||||
mkA2V : A -> Prep -> A2V ;
|
||||
|
||||
-- Notice: categories $V2S, V2V, V2Q$ are in v 1.0 treated
|
||||
-- just as synonyms of $V2$, and the second argument is given
|
||||
-- as an adverb. Likewise $AS, A2S, AV, A2V$ are just $A$.
|
||||
-- $V0$ is just $V$.
|
||||
-- Notice: Categories $V0, AS, A2S, AV, A2V$ are just $A$.
|
||||
-- $V0$ is just $V$; the second argument is treated as adverb.
|
||||
|
||||
V0, V2S, V2V, V2Q : Type ;
|
||||
V0 : Type ;
|
||||
AS, A2S, AV, A2V : Type ;
|
||||
|
||||
--.
|
||||
@@ -457,16 +455,16 @@ oper
|
||||
mkVQ v = v ** {lock_VQ = <>} ;
|
||||
|
||||
V0 : Type = V ;
|
||||
V2S, V2V, V2Q : Type = V2 ;
|
||||
-- V2S, V2V, V2Q : Type = V2 ;
|
||||
AS, A2S, AV : Type = A ;
|
||||
A2V : Type = A2 ;
|
||||
|
||||
mkV0 v = v ** {lock_V = <>} ;
|
||||
mkV2S v p = prepV2 v p ** {lock_V2 = <>} ;
|
||||
mkV2V v p t = prepV2 v p ** {s4 = t ; lock_V2 = <>} ;
|
||||
mkV2S v p = prepV2 v p ** {lock_V2S = <>} ;
|
||||
mkV2V v p t = prepV2 v p ** {isAux = False ; lock_V2V = <>} ;
|
||||
mkVA v = v ** {lock_VA = <>} ;
|
||||
mkV2A v p = prepV2 v p ** {lock_V2A = <>} ;
|
||||
mkV2Q v p = prepV2 v p ** {lock_V2 = <>} ;
|
||||
mkV2Q v p = prepV2 v p ** {lock_V2Q = <>} ;
|
||||
|
||||
mkAS v = v ** {lock_A = <>} ;
|
||||
mkA2S v p = mkA2 v p ** {lock_A = <>} ;
|
||||
|
||||
@@ -9,11 +9,19 @@ concrete VerbEng of Verb = CatEng ** open ResEng in {
|
||||
insertObj (\\_ => v.c2 ++ np.s ! Acc ++ v.c3 ++ np2.s ! Acc) (predV v) ;
|
||||
|
||||
ComplVV v vp = insertObj (\\a => infVP v.isAux vp a) (predVV v) ;
|
||||
|
||||
ComplVS v s = insertObj (\\_ => conjThat ++ s.s) (predV v) ;
|
||||
ComplVQ v q = insertObj (\\_ => q.s ! QIndir) (predV v) ;
|
||||
|
||||
ComplVA v ap = insertObj (ap.s) (predV v) ;
|
||||
|
||||
ComplV2V v np vp =
|
||||
insertObj (\\a => infVP v.isAux vp a)
|
||||
(insertObj (\\_ => v.c2 ++ np.s ! Acc) (predV v)) ;
|
||||
ComplV2S v np s =
|
||||
insertObj (\\_ => conjThat ++ s.s)
|
||||
(insertObj (\\_ => v.c2 ++ np.s ! Acc) (predV v)) ;
|
||||
ComplV2Q v np q =
|
||||
insertObj (\\_ => q.s ! QIndir)
|
||||
(insertObj (\\_ => v.c2 ++ np.s ! Acc) (predV v)) ;
|
||||
ComplV2A v np ap =
|
||||
insertObj (\\_ => v.c2 ++ np.s ! Acc ++ ap.s ! np.a) (predV v) ;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user