From e866940d65847afe7cea36d87a71feb1b07cab71 Mon Sep 17 00:00:00 2001 From: aarneranta Date: Fri, 10 Jul 2026 14:16:34 +0200 Subject: [PATCH] add the Czech Markup module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 " 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) --- src/czech/LangCze.gf | 3 ++- src/czech/MarkupCze.gf | 27 +++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 src/czech/MarkupCze.gf diff --git a/src/czech/LangCze.gf b/src/czech/LangCze.gf index 513fa955..dcd92da6 100644 --- a/src/czech/LangCze.gf +++ b/src/czech/LangCze.gf @@ -1,10 +1,11 @@ --# -path=.:../abstract:../common:../api -concrete LangCze of Lang = +concrete LangCze of Lang = GrammarCze, LexiconCze -- ,ConstructionCze -- ,DocumentationCze --# notpresent + ,MarkupCze - [stringMark] ** { } diff --git a/src/czech/MarkupCze.gf b/src/czech/MarkupCze.gf new file mode 100644 index 00000000..93843cd9 --- /dev/null +++ b/src/czech/MarkupCze.gf @@ -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} ; + +}