forked from GitHub/gf-rgl
@@ -9,7 +9,7 @@ lin add_V3 = mkV3 "dar" ku NoPrep ;
|
|||||||
-- lin alas_Interj = mkInterj "" ;
|
-- lin alas_Interj = mkInterj "" ;
|
||||||
-- lin already_Adv = mkA "" ;
|
-- lin already_Adv = mkA "" ;
|
||||||
lin animal_N = mkN "xayawaan" ;
|
lin animal_N = mkN "xayawaan" ;
|
||||||
-- lin answer_V2S = mkV2 "" ;
|
lin answer_V2S = mkV2S "jawaab" ku ;
|
||||||
-- lin apartment_N = mkN "" ;
|
-- lin apartment_N = mkN "" ;
|
||||||
-- lin apple_N = mkN "" ;
|
-- lin apple_N = mkN "" ;
|
||||||
-- lin art_N = mkN "" ;
|
-- lin art_N = mkN "" ;
|
||||||
@@ -252,7 +252,7 @@ lin name_N = mkN "magac" ;
|
|||||||
--
|
--
|
||||||
-- lin oil_N = mkN "" ;
|
-- lin oil_N = mkN "" ;
|
||||||
-- lin old_A = mkA "" ;
|
-- lin old_A = mkA "" ;
|
||||||
-- lin open_V2 = mkV2 "" ;
|
lin open_V2 = mkV2 "fur" ;
|
||||||
lin paint_V2A = mkV2A "rinjiyee" ;
|
lin paint_V2A = mkV2A "rinjiyee" ;
|
||||||
-- lin paper_N = mkN "" ;
|
-- lin paper_N = mkN "" ;
|
||||||
-- lin paris_PN = mkPN "Paris" ;
|
-- lin paris_PN = mkPN "Paris" ;
|
||||||
|
|||||||
@@ -95,6 +95,11 @@ oper
|
|||||||
mkVV : V -> VVForm -> VV ; -- VV out of an existing V
|
mkVV : V -> VVForm -> VV ; -- VV out of an existing V
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
mkV2S : overload {
|
||||||
|
mkV2S : Str -> V2S ; -- Predictable verb, no preposition.
|
||||||
|
mkV2S : Str -> Preposition -> V2S ; -- Predictable verb, preposition given as second argument.
|
||||||
|
mkV2S : V -> Preposition -> V2S -- Unpredictable verb, preposition.
|
||||||
|
} ;
|
||||||
|
|
||||||
mkVA : Str -> VA
|
mkVA : Str -> VA
|
||||||
= \s -> lin VA (regV s) ;
|
= \s -> lin VA (regV s) ;
|
||||||
@@ -107,8 +112,6 @@ oper
|
|||||||
= \s -> lin V2A (regV s ** {c2 = noPrep}) ;
|
= \s -> lin V2A (regV s ** {c2 = noPrep}) ;
|
||||||
mkV2V : Str -> V2V
|
mkV2V : Str -> V2V
|
||||||
= \s -> lin V2V (regV s ** {c2 = noPrep}) ;
|
= \s -> lin V2V (regV s ** {c2 = noPrep}) ;
|
||||||
mkV2S : Str -> V2S
|
|
||||||
= \s -> lin V2S (regV s ** {c2 = noPrep}) ;
|
|
||||||
mkV2Q : Str -> V2Q
|
mkV2Q : Str -> V2Q
|
||||||
= \s -> lin V2Q (regV s ** {c2 = noPrep}) ;
|
= \s -> lin V2Q (regV s ** {c2 = noPrep}) ;
|
||||||
|
|
||||||
@@ -248,6 +251,15 @@ oper
|
|||||||
in lin VV (dummyV ** {vvtype=b ; s = \\_ => "in"})
|
in lin VV (dummyV ** {vvtype=b ; s = \\_ => "in"})
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
mkV2S = overload {
|
||||||
|
mkV2S : Str -> V2S -- Predictable verb, no preposition.
|
||||||
|
= \s -> lin V2S (regV s ** {c2 = noPrep}) ;
|
||||||
|
mkV2S : Str -> Preposition -> V2S -- Predictable verb, preposition given as second argument.
|
||||||
|
= \s,pr -> lin V2S (regV s ** {c2 = pr}) ;
|
||||||
|
mkV2S : V -> Preposition -> V2S -- Unpredictable verb, preposition.
|
||||||
|
= \v,pr -> lin V2S (v ** {c2 = pr})
|
||||||
|
} ;
|
||||||
|
|
||||||
possPrep : N -> CatSom.Prep = \dhex -> emptyPrep ** {
|
possPrep : N -> CatSom.Prep = \dhex -> emptyPrep ** {
|
||||||
hoostiisa = \\agr =>
|
hoostiisa = \\agr =>
|
||||||
let qnt = PossPron (pronTable ! agr) ;
|
let qnt = PossPron (pronTable ! agr) ;
|
||||||
|
|||||||
@@ -261,6 +261,15 @@ oper
|
|||||||
Single _ => oneWay ! p1 ! p2 ;
|
Single _ => oneWay ! p1 ! p2 ;
|
||||||
z => z } ;
|
z => z } ;
|
||||||
|
|
||||||
|
combinePassive : Preposition -> PrepCombination = \p ->
|
||||||
|
case p of {
|
||||||
|
U => Loo ;
|
||||||
|
Ku => Lagu ;
|
||||||
|
Ka => Laga ;
|
||||||
|
La => Lala ;
|
||||||
|
_ => Passive
|
||||||
|
} ;
|
||||||
|
|
||||||
isPassive : {c2 : PrepCombination} -> Bool = \vp ->
|
isPassive : {c2 : PrepCombination} -> Bool = \vp ->
|
||||||
case vp.c2 of {
|
case vp.c2 of {
|
||||||
Passive | Lagu | Laga | Loo | Lala => True ;
|
Passive | Lagu | Laga | Loo | Lala => True ;
|
||||||
|
|||||||
@@ -515,8 +515,10 @@ oper
|
|||||||
_ + ("i"|"e") => "ey" ;
|
_ + ("i"|"e") => "ey" ;
|
||||||
_ => "ay" } ;
|
_ => "ay" } ;
|
||||||
n : Str = case arag of {
|
n : Str = case arag of {
|
||||||
_ + #v => "nn" ; -- n duplicates after vowel
|
_ + #v => "nn" ; -- n duplicates after vowel
|
||||||
_ => "n" } ;
|
_ + "r" => "r" ; -- Saeed p. 35: agreement marker n (1PL)
|
||||||
|
_ + "l" => "l" ; -- assimilates to stem final r or.
|
||||||
|
_ => "n" } ;
|
||||||
an : Str = case qaado of {
|
an : Str = case qaado of {
|
||||||
_ + "o" => "an" ; -- Allomorph for imperatives
|
_ + "o" => "an" ; -- Allomorph for imperatives
|
||||||
_ => "in" } ;
|
_ => "in" } ;
|
||||||
@@ -769,11 +771,7 @@ oper
|
|||||||
|
|
||||||
passVP : VerbPhrase -> VerbPhrase = \vp -> vp ** {
|
passVP : VerbPhrase -> VerbPhrase = \vp -> vp ** {
|
||||||
c2 = case vp.c2 of {
|
c2 = case vp.c2 of {
|
||||||
Single NoPrep => Passive ;
|
Single p => combinePassive p ;
|
||||||
Single Ku => Lagu ;
|
|
||||||
Single Ka => Laga ;
|
|
||||||
Single U => Loo ;
|
|
||||||
Single La => Lala ;
|
|
||||||
_ => vp.c2 }
|
_ => vp.c2 }
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -827,6 +825,7 @@ oper
|
|||||||
-- if free complement slots, introduce adv.np with insertComp
|
-- if free complement slots, introduce adv.np with insertComp
|
||||||
Single NoPrep => insertCompLite (vp ** {c2 = Single adv.c2}) adv.np ** adv' ;
|
Single NoPrep => insertCompLite (vp ** {c2 = Single adv.c2}) adv.np ** adv' ;
|
||||||
Single p => insertCompLite (vp ** {c2 = combine p adv.c2}) adv.np ** adv' ;
|
Single p => insertCompLite (vp ** {c2 = combine p adv.c2}) adv.np ** adv' ;
|
||||||
|
Passive => insertCompLite (vp ** {c2 = combinePassive adv.c2}) adv.np ** adv' ;
|
||||||
|
|
||||||
-- if complement slots are full, just insert strings.
|
-- if complement slots are full, just insert strings.
|
||||||
_ => vp ** adv''
|
_ => vp ** adv''
|
||||||
|
|||||||
@@ -66,13 +66,17 @@ lin
|
|||||||
-- : V3 -> NP -> VPSlash ; -- give (it) to her
|
-- : V3 -> NP -> VPSlash ; -- give (it) to her
|
||||||
Slash2V3,
|
Slash2V3,
|
||||||
Slash3V3 = \v3 -> insertComp (useVc3 v3) ;
|
Slash3V3 = \v3 -> insertComp (useVc3 v3) ;
|
||||||
|
|
||||||
|
-- : V2S -> S -> VPSlash ; -- answer (to him) that it is good
|
||||||
|
SlashV2S v2s s =
|
||||||
|
let vps = useVc v2s ;
|
||||||
|
subord = SubjS {s="in"} s ;
|
||||||
|
in vps ** {obj = {s = subord.berri ; a = P3_Prep}} ;
|
||||||
|
|
||||||
{-
|
{-
|
||||||
-- : V2V -> VP -> VPSlash ; -- beg (her) to go
|
-- : V2V -> VP -> VPSlash ; -- beg (her) to go
|
||||||
SlashV2V v2v vp = ;
|
SlashV2V v2v vp = ;
|
||||||
|
|
||||||
-- : V2S -> S -> VPSlash ; -- answer (to him) that it is good
|
|
||||||
SlashV2S v2s s = ;
|
|
||||||
|
|
||||||
-- : V2Q -> QS -> VPSlash ; -- ask (him) who came
|
-- : V2Q -> QS -> VPSlash ; -- ask (him) who came
|
||||||
SlashV2Q v2q qs = ;
|
SlashV2Q v2q qs = ;
|
||||||
-}
|
-}
|
||||||
@@ -121,10 +125,9 @@ lin
|
|||||||
AdVVPSlash adv vps = vps ** { adv = adv.s ++ vps.adv } ;
|
AdVVPSlash adv vps = vps ** { adv = adv.s ++ vps.adv } ;
|
||||||
-}
|
-}
|
||||||
-- : VP -> Prep -> VPSlash ; -- live in (it)
|
-- : VP -> Prep -> VPSlash ; -- live in (it)
|
||||||
-- NB. We need possibly a MissingArg kind of solution here too
|
VPSlashPrep vp prep =
|
||||||
-- VPSlashPrep vp prep = vp **
|
let adv = prepNP prep emptyNP
|
||||||
-- { c2 = case vp.c2 of { NoPrep => prep.prep ;
|
in insertAdv vp adv ;
|
||||||
-- x => x }} ;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user