1
0
forked from GitHub/gf-rgl

(Ger) Shrink Agr = Ag Gender Number Person from 3*2*3 = 18 values to 2+3+1+3+1 = 10 by

Agr = AgSgP1 | AgSgP2 | AgSgP3 Gender | AgSgP3Gen | AgPl Person | AgPlPol ;
      with AgSgP3Gen resp. AgPlPol used for reflexive,possessive forms of "man", "Sie".

      Compiles AllGer from src in 162sec with 15M VerbGer.gfo vs. 380sec with 17M VerbGer.gfo
This commit is contained in:
Hans Leiss
2023-09-30 23:28:42 +02:00
parent 67d1e24761
commit 1cf6496883
25 changed files with 623 additions and 668 deletions

View File

@@ -40,66 +40,6 @@ lin
)
} ;
InflectionPN = \pn -> {
t = "pn" ;
s1 = heading1 ("Eigenname" ++
"("+case <pn.g,pn.n> of {
<Masc,Sg> => heading masculine_Parameter ;
<Fem,Sg> => heading feminine_Parameter ;
<Neutr,Sg> => heading neuter_Parameter ;
<_,Pl> => heading plural_Parameter
} ++")") ;
s2 = frameTable (
tr (th (heading nominative_Parameter) ++ td (pn.s ! Nom)) ++
tr (th (heading genitive_Parameter) ++ td (pn.s ! Gen)) ++
tr (th (heading dative_Parameter) ++ td (pn.s ! Dat)) ++
tr (th (heading accusative_Parameter) ++ td (pn.s ! Acc))
)
} ;
InflectionGN = \gn -> {
t = "vn" ;
s1 = heading1 ("Vorname" ++
case gn.g of {
Male => "(männlich)" ;
Female => "(weiblich)"
}) ;
s2 = frameTable (
tr (th (heading nominative_Parameter) ++ td (gn.s ! Nom)) ++
tr (th (heading genitive_Parameter) ++ td (gn.s ! Gen)) ++
tr (th (heading dative_Parameter) ++ td (gn.s ! Dat)) ++
tr (th (heading accusative_Parameter) ++ td (gn.s ! Acc))
) ;
} ;
InflectionSN = \sn -> {
t = "fn" ;
s1 = heading1 ("Familienname") ;
s2 = frameTable (
tr (th (heading nominative_Parameter) ++ td (sn.s ! Male ! Nom)) ++
tr (th (heading genitive_Parameter) ++ td (sn.s ! Male ! Gen)) ++
tr (th (heading dative_Parameter) ++ td (sn.s ! Male ! Dat)) ++
tr (th (heading accusative_Parameter) ++ td (sn.s ! Male ! Acc))
) ;
} ;
InflectionLN = \ln -> {
t = "pn" ;
s1 = heading1 ("Standortnamen" ++
"("+case <ln.g,ln.n> of {
<Masc,Sg> => heading masculine_Parameter ;
<Fem,Sg> => heading feminine_Parameter ;
<Neutr,Sg> => heading neuter_Parameter ;
<_,Pl> => heading plural_Parameter
} ++")") ;
s2 = frameTable (
tr (th (heading nominative_Parameter) ++ td (ln.s ! Strong ! Nom)) ++
tr (th (heading genitive_Parameter) ++ td (ln.s ! Strong ! Gen)) ++
tr (th (heading dative_Parameter) ++ td (ln.s ! Strong ! Dat)) ++
tr (th (heading accusative_Parameter) ++ td (ln.s ! Strong ! Acc))
)
} ;
InflectionA, InflectionA2 = \adj ->
let
gforms : Degree -> ResGer.Case -> Str = \d,c ->
@@ -223,7 +163,7 @@ oper
let
vfin : VForm -> Str = \f ->
verb.s ! f ++ verb.prefix ;
gforms : ParadigmsGer.Number -> Person -> Str = \n,p ->
gforms : Number -> Person -> Str = \n,p ->
td (vfin (VFin False (VPresInd n p))) ++
td (vfin (VFin False (VPresSubj n p)))
++ td (vfin (VFin False (VImpfInd n p))) --# notpresent