simplifications

This commit is contained in:
Krasimir Angelov
2026-09-28 06:52:54 +02:00
parent 138e53897f
commit e2e0fca917
3 changed files with 55 additions and 18 deletions
+41 -10
View File
@@ -8,14 +8,45 @@ concrete ConjunctionKaz of Conjunction = CatKaz ** open ResKaz in {
lin
BaseNP x y = {s1=\\c => x.s ! c;s2=\\c => y.s ! c;a={p=P3;n=Pl}} ;
ConsNP x xs = {s1=\\c => x.s ! c ++ "," ++ xs.s1 ! c;s2=xs.s2;a={p=P3;n=Pl}} ;
ConjNP c xs = {s=\\k => coord c.s (xs.s1 ! k) (xs.s2 ! k);a=xs.a} ;
BaseAP x y = {s1=x.s;s2=y.s} ; ConsAP x xs = {s1=x.s ++ "," ++ xs.s1;s2=xs.s2} ;
ConjAP c xs = {s=coord c.s xs.s1 xs.s2} ;
BaseAdv x y = {s1=x.s;s2=y.s} ; ConsAdv x xs = {s1=x.s ++ "," ++ xs.s1;s2=xs.s2} ;
ConjAdv c xs = {s=coord c.s xs.s1 xs.s2} ;
BaseS x y = {s1=x.s;s2=y.s} ; ConsS x xs = {s1=x.s ++ "," ++ xs.s1;s2=xs.s2} ;
ConjS c xs = {s=coord c.s xs.s1 xs.s2} ;
BaseCN x y = {s1=x;s2=y} ; ConsCN x xs = {s1=x;s2=xs.s2} ;
ConjCN c xs = {s=\\k,n => coord c.s (xs.s1.s ! k ! n) (xs.s2.s ! k ! n);
poss=\\o,p,n => coord c.s (xs.s1.poss ! o ! p ! n) (xs.s2.poss ! o ! p ! n)} ;
ConjNP c xs = {
s=\\k => xs.s1 ! k ++ c.s ++ xs.s2 ! k;
a=xs.a
} ;
BaseAP x y = {s1=x.s;s2=y.s} ;
ConsAP x xs = {s1=x.s ++ "," ++ xs.s1;s2=xs.s2} ;
ConjAP c xs = {s=xs.s1 ++ c.s ++ xs.s2} ;
BaseAdv x y = {
s1=x.s;
s2=y.s
} ;
ConsAdv x xs = {
s1=x.s ++ "," ++ xs.s1;
s2=xs.s2
} ;
ConjAdv c xs = {
s=xs.s1 ++ c.s ++ xs.s2
} ;
BaseS x y = {
s1=x.s;
s2=y.s
} ;
ConsS x xs = {
s1=x.s ++ "," ++ xs.s1;
s2=xs.s2
} ;
ConjS c xs = {
s=xs.s1 ++ c.s ++ xs.s2
} ;
BaseCN x y = {
s1=x;
s2=y
} ;
ConsCN x xs = {
s1=x;
s2=xs.s2
} ;
ConjCN c xs = {
s=\\k,n => xs.s1.s ! k ! n ++ c.s ++ xs.s2.s ! k ! n;
poss=\\o,p,n => xs.s1.poss ! o ! p ! n ++ c.s ++ xs.s2.poss ! o ! p ! n
} ;
}
+14 -2
View File
@@ -7,7 +7,19 @@ concrete IdiomKaz of Idiom = CatKaz ** open ResKaz, ParadigmsKaz in {
fut=\\_ => ip.s ++ "болады";cond=\\_ => ip.s ++ "болар еді";anter=\\_ => ip.s ++ "болған"} ;
ImpersCl vp = mkClause {s=\\_ => [];a=defaultAgr} vp ;
GenericCl vp = mkClause {s=\\_ => "адам";a=defaultAgr} vp ;
CleftNP np rs = stringClause (np.s ! Nom ++ rs.s) ;
CleftAdv adv s = stringClause (adv.s ++ s.s) ;
CleftNP np rs = {
pres=\\_ => np.s ! Nom ++ rs.s;
past=\\_ => np.s ! Nom ++ rs.s;
fut=\\_ => np.s ! Nom ++ rs.s;
cond=\\_ => np.s ! Nom ++ rs.s;
anter=\\_ => np.s ! Nom ++ rs.s
} ;
CleftAdv adv s = {
pres=\\_ => adv.s ++ s.s;
past=\\_ => adv.s ++ s.s;
fut=\\_ => adv.s ++ s.s;
cond=\\_ => adv.s ++ s.s;
anter=\\_ => adv.s ++ s.s
} ;
ImpPl1 vp = {s=vp.imperative!Pos!Informal!Pl} ;
}
-6
View File
@@ -393,10 +393,4 @@ oper mkClause : NPForm -> Verb -> Clause = \np,vp -> {
anter = \\pol => np.s ! Nom ++ selectVerb vp P.Past P.Anter pol np.a
} ;
oper stringClause : Str -> Clause = \s -> {
pres=\\_ => s; past=\\_ => s; fut=\\_ => s; cond=\\_ => s; anter=\\_ => s
} ;
oper coord : Str -> Str -> Str -> Str = \c,x,y -> x ++ c ++ y ;
}