add the Czech Markup module

MarkupNP marks s, clit and prep, since in Czech these are alternative
surface forms of a pronoun chosen by context, as in MarkupRomance.
The nominative clitic is left alone: it is the pro-drop subject, empty
for every personal pronoun, so marking it up gave "<b> </b> je starý".

Inherit MarkupCze in LangCze, as LangFin does; stringMark is excluded
because abstract Lang already excludes it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
aarneranta
2026-07-10 14:16:34 +02:00
parent 8f1b3eeece
commit e866940d65
2 changed files with 29 additions and 1 deletions
+2 -1
View File
@@ -1,10 +1,11 @@
--# -path=.:../abstract:../common:../api
concrete LangCze of Lang =
concrete LangCze of Lang =
GrammarCze,
LexiconCze
-- ,ConstructionCze
-- ,DocumentationCze --# notpresent
,MarkupCze - [stringMark]
** {
}
+27
View File
@@ -0,0 +1,27 @@
--# -path=.:../abstract:../common
concrete MarkupCze of Markup = CatCze, MarkHTMLX ** open ResCze in {
lin
MarkupCN m cn = cn ** {s = \\n,c => appMark m (cn.s ! n ! c)} ;
-- s, clit and prep are alternative surface forms, so each is marked;
-- but clit ! Nom is the pro-drop subject, empty for every pronoun,
-- and marking it up would leave the tags around nothing
MarkupNP m np = np ** {
s = \\c => appMark m (np.s ! c) ;
clit = \\c => case c of {
Nom => np.clit ! Nom ;
_ => appMark m (np.clit ! c)
} ;
prep = \\c => appMark m (np.prep ! c)
} ;
MarkupAP m ap = ap ** {s = \\g,n,c => appMark m (ap.s ! g ! n ! c)} ;
MarkupAdv m adv = {s = appMark m adv.s} ;
MarkupS m s = {s = appMark m s.s} ;
MarkupUtt m utt = {s = appMark m utt.s} ;
MarkupPhr m phr = {s = appMark m phr.s} ;
MarkupText m txt = {s = appMark m txt.s} ;
}