Files
gf-rgl/src/zulu/BackwardZul.gf
2022-12-16 23:16:25 +02:00

195 lines
6.0 KiB
Plaintext
Executable File

concrete BackwardZul of Backward = CatZul ** open ResZul,Prelude,ParamX in {
flags optimize=all_subs ;
lin
-- A repository of obsolete constructs, needed for backward compatibility.
-- They create spurious ambiguities if used in combination with Lang.
-- from Verb 19/4/2008
ComplV2 v2 np = let
oc = objConc np.agr v2.r v2.syl ;
longform = case np.heavy of {
True => False ;
False => True
} ;
obj = np.s!NFull
in {
s = table {
MainCl => \\a,p,t,l => let
vform = (VFIndic MainCl p t) ;
vpref_no_oc = verb_prefix_no_oc vform l v2.r a ;
vpref_with_oc = verb_prefix_with_oc vform l a ;
tp = tensePref vform v2.r v2.syl ; -- [] / zo- / zuku-
-- oc = objConc np.agr v2.r v2.syl ; -- [] / m -
-- longform = case np.heavy of {
-- True => False ;
-- False => True
-- } ;
r = v2.s!(rform (VFIndic MainCl p t) longform) ; -- bona / boni
-- obj = np.s!NFull -- [] / inkomo
in case np.proDrop of {
True => vpref_with_oc ++ tp ++ oc ++ r ++ obj ;
False => vpref_no_oc ++ tp ++ r ++ obj
} ;
RelCl => \\a,p,t,l => let
vform = (VFIndic RelCl p t) ;
rc = relConc vform a v2.r ; -- o- / onga-
tp = tensePref vform v2.r v2.syl ; -- [] / zo- / zuku-
-- oc = objConc np.agr v2.r v2.syl ; -- [] / m -
-- longform = case np.heavy of {
-- True => False ;
-- False => True
-- } ;
r = v2.s!(rform vform longform) ; -- bona / boni
-- obj = np.s!NFull -- [] / inkomo
in case np.proDrop of {
True => rc ++ tp ++ oc ++ r ++ obj ;
False => rc ++ tp ++ r ++ obj
}
} ;
imp_s = table {
Sg => table {
Pos => case np.proDrop of {
True => oc ++ v2.s!R_e ++ obj ;
False => v2.s!R_a ++ obj
} ;
Neg => case np.proDrop of {
True => "unga" ++BIND++ oc ++ v2.s!R_i ++ obj ;
False => "unga" ++BIND++ v2.s!R_i ++ obj
}
} ;
Pl => table {
Pos => case np.proDrop of {
True => oc ++ v2.s!R_e ++BIND++"ni" ++ obj ;
False => v2.s!R_a ++BIND++"ni" ++ obj
} ;
Neg => case np.proDrop of {
True => "ninga" ++BIND++ oc ++ v2.s!R_i ++ obj ;
False => "ninga" ++BIND++ v2.s!R_i ++ obj
}
}
} ;
inf_s = let
inf_oc = case np.proDrop of {
True => oc ;
False => []
}
in
table {
NFull => table {
Pos => "uku" ++BIND++ inf_oc ++ v2.s!R_a ++ obj ;
Neg => "uku" ++BIND++ "nga" ++BIND++ inf_oc ++ v2.s!R_i ++ obj
} ;
NReduced | NPoss => table {
Pos => "ku" ++BIND++ inf_oc ++ v2.s!R_a ++ obj ;
Neg => "ku" ++BIND++ "nga" ++BIND++ inf_oc ++ v2.s!R_i ++ obj
} ;
NLoc => table {
Pos => "ku"++BIND++poss_pron_stem!(Third C15 Sg) ++ "uku"++BIND++inf_oc ++ v2.s!R_a ++ obj ;
Neg => "ku"++BIND++poss_pron_stem!(Third C15 Sg) ++ "uku"++BIND++"nga"++BIND++inf_oc ++ v2.s!R_a ++ obj
}
} ;
iadv, advs, comp = [] ;
ap_comp = \\_ => [] ;
hasComp = np.heavy ;
r = v2.r ;
syl = v2.syl ;
vptype = VNPCompl
} ;
-- ComplV3 v3 np1 np2 = v3 ** {
-- -- s = v3.s ;
-- oc = case np1.proDrop of {
-- True => objConc np1.agr v3.r v3.syl ;
-- False => []
-- } ;
-- comp = case np1.proDrop of {
-- True => case v3.voice of {
-- Active => np2.s ! NFull ++ np2.desc ;
-- Passive => (cop_pref np2.agr) ++BIND++ np2.s ! NFull ++ np2.desc
-- } ;
-- False => case v3.voice of {
-- Active => np1.s ! NFull ++ np1.desc ++ np2.s ! NFull ++ np2.desc ;
-- Passive => (cop_pref np1.agr) ++BIND++ np1.s ! NFull ++ np1.desc ++ np2.s ! NFull ++ np2.desc
-- }
-- } ;
-- iadv = [] ;
-- advs = [] ;
-- hasComp = True ;
-- -- r = v3.r ;
-- -- syl = v3.syl ;
-- asp = Null ;
-- asp_pref = \\_ => [] ;
-- vptype = VNPCompl ;
-- comp_agr = np1.agr ; -- this could be anything...
-- ap_comp = \\_ => [] ;
-- ap_bool = False ;
-- aux_root = [] ;
-- hasAux = False
-- } ;
-- ComplV2V v np vp =
-- insertObj (\\a => infVP v.isAux vp False Simul CPos 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) ;
--
-- ReflV2 v = insertObj (\\a => v.c2 ++ reflPron ! a) (predV v) ;
--
-- -- from Sentence 19/4/2008
--
-- SlashV2 np v2 =
-- mkClause (np.s ! Nom) np.a (predV v2) ** {c2 = v2.c2} ;
--
-- SlashVVV2 np vv v2 =
-- mkClause (np.s ! Nom) np.a
-- (insertObj (\\a => infVP vv.isAux (predV v2) False Simul CPos a) (predVV vv)) **
-- {c2 = v2.c2} ;
--
-- -- from Noun 19/4/2008
--
-- NumInt n = {s = n.s ; n = Pl} ;
-- OrdInt n = {s = n.s ++ "th"} ; --- DEPRECATED
--
-- DetSg quant ord = {
-- s = quant.s ! Sg ++ ord.s ;
-- n = Sg
-- } ;
--
-- DetPl quant num ord = {
-- s = quant.s ! num.n ++ num.s ++ ord.s ;
-- n = num.n
-- } ;
--
-- NoNum = {s = []; n = Pl } ;
--
-- DefArt = {s = \\_ => artDef} ;
--
-- IndefArt = {
-- s = table {
-- Sg => artIndef ;
-- Pl => []
-- }
-- } ;
--
-- MassDet = {s = \\_ => []} ;
--
--
--
-- -- from Structural 19/4/2008
--
-- that_NP = regNP "that" Sg ;
-- these_NP = regNP "these" Pl ;
-- this_NP = regNP "this" Sg ;
-- those_NP = regNP "those" Pl ;
}