(May) move passive to V's infl.table+rename opers

This commit is contained in:
Inari Listenmaa
2023-02-24 11:15:03 +08:00
parent a8b061926b
commit bfb016b3ea
4 changed files with 16 additions and 23 deletions

View File

@@ -135,8 +135,8 @@ oper
} ; } ;
mkV = overload { mkV = overload {
mkV : Str -> V = \v -> lin V (mkVerb v Ber) ; mkV : Str -> V = \v -> lin V (regVerb v Ber) ;
mkV : Str -> Prefix -> V = \v,p -> lin V (mkVerb v p) mkV : Str -> Prefix -> V = \v,p -> lin V (regVerb v p)
} ; } ;
prefixV : V -> V = \v -> v ** { prefixV : V -> V = \v -> v ** {
@@ -147,7 +147,7 @@ oper
} ; } ;
mkV2 = overload { mkV2 = overload {
mkV2 : Str -> V2 = \v2 -> lin V2 (mkVerb2 (mkVerb v2 Meng) dirPrep) ; mkV2 : Str -> V2 = \v2 -> lin V2 (mkVerb2 (regVerb v2 Meng) dirPrep) ;
mkV2 : V -> Prep -> V2 = \v,p -> lin V2 (mkVerb2 v p) mkV2 : V -> Prep -> V2 = \v,p -> lin V2 (mkVerb2 v p)
} ; } ;
@@ -160,7 +160,7 @@ oper
mkV4 = overload { mkV4 = overload {
mkV4 : Str -> Str -> V2 = \v2,str -> mkV4 : Str -> Str -> V2 = \v2,str ->
lin V2 (mkVerb4 (mkVerb v2 Meng) dirPrep str) ; lin V2 (mkVerb4 (regVerb v2 Meng) dirPrep str) ;
mkV4 : V -> Prep -> Str -> V2 = \v,p,str -> lin V2 (mkVerb4 v p str) mkV4 : V -> Prep -> Str -> V2 = \v,p,str -> lin V2 (mkVerb4 v p str)
} ; } ;
@@ -177,12 +177,11 @@ oper
} ; } ;
mkV2V = overload { mkV2V = overload {
mkV2V : Str -> V2V = \v -> lin V2V (mkVerb2 (mkVerb v Meng) dirPrep) ; mkV2V : Str -> V2V = \v -> lin V2V (mkVerb2 (regVerb v Meng) dirPrep) ;
mkV2V : V -> Prep -> Prep -> V2V = \v,p1,p2 -> lin V2V (mkVerb3 v p1 p2) mkV2V : V -> Prep -> Prep -> V2V = \v,p1,p2 -> lin V2V (mkVerb3 v p1 p2)
} ; } ;
-- lin like_V2 = let like' : V2 = mkV2 "suka" in like' ** { -- lin like_V2 = let like' : V2 = mkV2 "suka" in like' ** {
-- s = \\_ => "suka" ; -- s = table {Passive => "disukai" ; _ => "suka"} ;
-- passive = "disukai" ;
-- } ; -- } ;
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------

View File

@@ -142,6 +142,7 @@ param
VForm = VForm =
Root -- infinitive, imperative, … Root -- infinitive, imperative, …
| Active | Active
| Passive
| Imperative | Imperative
; ;

View File

@@ -214,7 +214,6 @@ oper
} ; } ;
Verb2 : Type = Verb ** { Verb2 : Type = Verb ** {
c2 : Preposition ; c2 : Preposition ;
passive : Str
} ; } ;
Verb3 : Type = Verb2 ** { Verb3 : Type = Verb2 ** {
@@ -223,22 +222,24 @@ oper
Verb4 : Type = Verb ** { Verb4 : Type = Verb ** {
c2 : Preposition ; c2 : Preposition ;
passive : Str
} ; } ;
-- VV : Type = Verb ** {vvtype : VVForm} ; -- VV : Type = Verb ** {vvtype : VVForm} ;
mkVerb : Str -> Prefix -> Verb = \str,p -> { regVerb : Str -> Prefix -> Verb = \str,p ->
mkVerb str (prefix p str) ("di" + str) (str + "kan") ;
mkVerb : (makan, memakan, dimakan, makankan : Str) -> Verb = \rt,act,pass,imp -> {
s = table { s = table {
Root => str ; Root => rt ;
Active => prefix p str ; Active => act ;
Imperative => str ++ BIND ++ "kan" Passive => pass ;
Imperative => imp
} }
} ; } ;
mkVerb2 : Verb -> Preposition -> Verb2 = \v,pr -> v ** { mkVerb2 : Verb -> Preposition -> Verb2 = \v,pr -> v ** {
c2 = pr ; c2 = pr ;
passive = "di" ++ BIND ++ v.s ! Root
} ; } ;
mkVerb3 : Verb -> (p,q : Preposition) -> Verb3 = \v,p,q -> mkVerb3 : Verb -> (p,q : Preposition) -> Verb3 = \v,p,q ->

View File

@@ -9,7 +9,7 @@ lin
UseV = ResMay.useV ; UseV = ResMay.useV ;
-- : V2 -> VP ; -- be loved -- : V2 -> VP ; -- be loved
PassV2 v2 = useV {s = \\_ => v2.passive} ; PassV2 v2 = useV {s = \\_ => v2.s ! Passive} ;
-- : VPSlash -> VP ; -- : VPSlash -> VP ;
-- ReflVP = ResMay.insertRefl ; -- ReflVP = ResMay.insertRefl ;
@@ -113,17 +113,9 @@ lin
-- : VV -> VPSlash -> VPSlash ; -- : VV -> VPSlash -> VPSlash ;
SlashVV vv vps = ComplVV vv vps ** { SlashVV vv vps = ComplVV vv vps ** {
c2 = vps.c2 ; -- like ComplVV except missing object c2 = vps.c2 ; -- like ComplVV except missing object
passive = vv.s ++ vps.passive;
adjCompl = vps.adjCompl ; adjCompl = vps.adjCompl ;
} ; } ;
-- SlashVV vv vp = vp ** useV {
-- s = \\vf => vv.s ++ linVP vp ;
-- c2 = vp.c2 ;
-- passive = vv.s ++ vp.passive;
-- adjCompl = vp.adjCompl ;
-- } ;
-- : V2V -> NP -> VPSlash -> VPSlash ; -- beg me to buy -- : V2V -> NP -> VPSlash -> VPSlash ; -- beg me to buy
-- SlashV2VNP v2v np vps = -- SlashV2VNP v2v np vps =