forked from GitHub/gf-core
shrinking the size of some Fin datatypes (in general RGL) results in pgf size reduction to 25% of previous size
This commit is contained in:
@@ -183,7 +183,7 @@ oper
|
||||
ollaSVerbForms : SVForm => Str = table SVForm ["oll";"ole";"on";"o";"olk";"olla";"oli";"oli";"olisi";"oll";"olt";"ollu";"liene";"ole"] ;
|
||||
|
||||
-- used in Cat
|
||||
SVerb1 = {s : SVForm => Str ; sc : NPForm ; h : Harmony ; p : Str} ;
|
||||
SVerb1 = {s : SVForm => Str ; sc : SubjCase ; h : Harmony ; p : Str} ;
|
||||
|
||||
sverb2verbBind : SVerb -> Verb = sverb2verb True ;
|
||||
sverb2verbSep : SVerb -> Verb = sverb2verb False ;
|
||||
@@ -412,7 +412,7 @@ oper
|
||||
AgentPart AAdv => plus tulema "sti"
|
||||
|
||||
} ;
|
||||
sc = NPCase Nom ;
|
||||
sc = SCNom ;
|
||||
lock_V = <>
|
||||
} ;
|
||||
|
||||
@@ -506,11 +506,11 @@ oper
|
||||
---- a hack to make VerbFin compile accurately for library (in ../),
|
||||
---- and in a simplified way for ParseFin (here)
|
||||
|
||||
slashV2VNP : (SVerb1 ** {c2 : Compl ; vi : InfForm}) -> (NP ** {isNeg : Bool}) ->
|
||||
slashV2VNP : (SVerb1 ** {c2 : Compl ; vi : VVType}) -> (NP ** {isNeg : Bool}) ->
|
||||
(VP ** {c2 : Compl}) -> (VP ** {c2 : Compl}) =
|
||||
\v, np, vp -> {
|
||||
s = v ;
|
||||
s2 = \\fin,b,a => np.s ! v.c2.c ++ vp.c2.s ! False ++ v.s ! SVInf ;
|
||||
s2 = \\fin,b,a => appCompl fin b v.c2 np ++ v.s ! SVInf ;
|
||||
---- infVP v.sc b a vp v.vi ;
|
||||
-- ignoring Acc variation and pre/postposition and proper inf form
|
||||
ext = [] ;
|
||||
@@ -546,7 +546,7 @@ oper
|
||||
s2 : Bool => Polarity => Agr => Str ; -- talo/talon/taloa
|
||||
adv : Polarity => Str ; -- ainakin/ainakaan
|
||||
ext : Str ;
|
||||
sc : NPForm ;
|
||||
sc : SubjCase ;
|
||||
isNeg : Bool ; -- True if some complement is negative
|
||||
h : Harmony
|
||||
} ;
|
||||
@@ -666,8 +666,8 @@ oper
|
||||
} ;
|
||||
|
||||
passVP : VP -> Compl -> VP = \vp,pr -> {
|
||||
s = {s = vp.s.s ; h = vp.s.h ; p = vp.s.p ; sc = pr.c} ; -- minusta pidetään
|
||||
s2 = \\b,p,a => pr.s ! False ++ vp.s2 ! b ! p ! a ; ---- prep after verb ---- TODO minun päälleni katsotaan
|
||||
s = {s = vp.s.s ; h = vp.s.h ; p = vp.s.p ; sc = npform2subjcase pr.c} ; -- minusta pidetään
|
||||
s2 = \\b,p,a => pr.s.p1 ++ vp.s2 ! b ! p ! a ++ pr.s.p2 ; ---- possessive suffix
|
||||
ext = vp.ext ;
|
||||
adv = vp.adv ;
|
||||
vptyp = {isNeg = vp.vptyp.isNeg ; isPass = True} ;
|
||||
@@ -712,9 +712,9 @@ oper
|
||||
s = \\t,a,b =>
|
||||
let
|
||||
agrfin = case vp.sc of {
|
||||
NPCase Nom => <agr,True> ;
|
||||
_ => <agrP3 Sg,False> -- minun täytyy, minulla on
|
||||
} ;
|
||||
SCNom => <agr,True> ;
|
||||
_ => <agrP3 Sg,False> -- minun täytyy, minulla on
|
||||
} ;
|
||||
verb = vp.s ! VIFin t ! a ! b ! agrfin.p1 ;
|
||||
in {subj = sub b ;
|
||||
fin = verb.fin ;
|
||||
@@ -737,12 +737,12 @@ oper
|
||||
|
||||
-- the first Polarity is VP-internal, the second comes form the main verb:
|
||||
-- ([main] tahdon | en tahdo) ([internal] nukkua | olla nukkumatta)
|
||||
infVPGen : Polarity -> NPForm -> Polarity -> Agr -> VP -> InfForm -> Str =
|
||||
infVPGen : Polarity -> SubjCase -> Polarity -> Agr -> VP -> InfForm -> Str =
|
||||
\ipol,sc,pol,agr,vp0,vi ->
|
||||
let
|
||||
vp = vp2old_vp vp0 ;
|
||||
fin = case sc of { -- subject case
|
||||
NPCase Nom => True ; -- minä tahdon nähdä auton
|
||||
SCNom => True ; -- minä tahdon nähdä auton
|
||||
_ => False -- minun täytyy nähdä auto
|
||||
} ;
|
||||
verb = case ipol of {
|
||||
@@ -759,10 +759,10 @@ oper
|
||||
in
|
||||
verb.p1.fin ++ verb.p1.inf ++ poss ++ verb.p2 ++ compl ;
|
||||
|
||||
infVP : NPForm -> Polarity -> Agr -> VP -> InfForm -> Str = infVPGen Pos ;
|
||||
infVP : SubjCase -> Polarity -> Agr -> VP -> InfForm -> Str = infVPGen Pos ;
|
||||
|
||||
vpVerbOlla : SVerb1 = {
|
||||
s = ollaSVerbForms ;
|
||||
sc = NPCase Nom ; h = Back ; lock_V = <> ; p = []
|
||||
sc = SCNom ; h = Back ; lock_V = <> ; p = []
|
||||
} ;
|
||||
}
|
||||
Reference in New Issue
Block a user