From fda7e1595d1e464d2a0eb048eae8587f3b3fb9e6 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Sat, 29 Aug 2026 20:46:38 +0200 Subject: [PATCH] added InflectionCl in more languages --- src/french/DocumentationFreFunctor.gf | 35 +++++++++++++++++++++++ src/italian/DocumentationItaFunctor.gf | 35 +++++++++++++++++++++++ src/portuguese/DocumentationPorFunctor.gf | 35 +++++++++++++++++++++++ src/russian/DocumentationRusFunctor.gf | 29 +++++++++++++++++++ src/spanish/DocumentationSpaFunctor.gf | 35 +++++++++++++++++++++++ 5 files changed, 169 insertions(+) diff --git a/src/french/DocumentationFreFunctor.gf b/src/french/DocumentationFreFunctor.gf index 5a90f25e..40f903b6 100644 --- a/src/french/DocumentationFreFunctor.gf +++ b/src/french/DocumentationFreFunctor.gf @@ -108,6 +108,29 @@ lin s2 = paragraph p.s } ; + InflectionCl = \cl -> { + t = "cl" ; + s1 = heading1 "Phrase" ; + s2 = frameTable ( + tr (intagAttr "th" "colspan=3" "Temps simples" ++ + intagAttr "th" "colspan=3" "Temps composés") ++ + tr (th "Temps" ++ th "Affirmation" ++ th "Question" ++ + th "Temps" ++ th "Affirmation" ++ th "Question") ++ + inflClauseTense (heading present_Parameter) + (heading present_Parameter ++ " " ++ heading perfect_Parameter) + RPres cl ++ + inflClauseTense (heading past_Parameter) + (heading past_Parameter ++ " " ++ heading perfect_Parameter) + RPast cl ++ + inflClauseTense (heading future_Parameter) + (heading future_Parameter ++ " " ++ heading perfect_Parameter) + RFut cl ++ + inflClauseTense (heading conditional_Parameter) + (heading conditional_Parameter ++ " " ++ heading perfect_Parameter) + RCond cl + ) + } ; + InflectionV v = { t = "v" ; s1 = heading1 (heading verb_Category) ++ @@ -188,6 +211,18 @@ lin MkTag i = ss i.t ; oper + inflClauseTense : Str -> Str -> RTense -> Cl -> Str = \simple,perfect,tense,cl -> + tr (intagAttr "th" "rowspan=2" simple ++ + td (cl.s ! DDir ! tense ! Simul ! RPos ! Indic) ++ + td (cl.s ! DInv ! tense ! Simul ! RPos ! Indic) ++ + intagAttr "th" "rowspan=2" perfect ++ + td (cl.s ! DDir ! tense ! Anter ! RPos ! Indic) ++ + td (cl.s ! DInv ! tense ! Anter ! RPos ! Indic)) ++ + tr (td (cl.s ! DDir ! tense ! Simul ! (RNeg True) ! Indic) ++ + td (cl.s ! DInv ! tense ! Simul ! (RNeg True) ! Indic) ++ + td (cl.s ! DDir ! tense ! Anter ! (RNeg True) ! Indic) ++ + td (cl.s ! DInv ! tense ! Anter ! (RNeg True) ! Indic)) ; + verbExample : CatFre.Cl -> Str = \cl -> (S.mkUtt cl).s ++ ";" ++ (S.mkUtt (S.mkS S.anteriorAnt cl)).s --# notpresent diff --git a/src/italian/DocumentationItaFunctor.gf b/src/italian/DocumentationItaFunctor.gf index b8c5ce01..de1a5c98 100644 --- a/src/italian/DocumentationItaFunctor.gf +++ b/src/italian/DocumentationItaFunctor.gf @@ -98,6 +98,29 @@ lin s2 = paragraph p.s } ; + InflectionCl = \cl -> { + t = "cl" ; + s1 = heading1 "Frase" ; + s2 = frameTable ( + tr (intagAttr "th" "colspan=3" "Tempi semplici" ++ + intagAttr "th" "colspan=3" "Tempi composti") ++ + tr (th "Tempo" ++ th "Affermazione" ++ th "Domanda" ++ + th "Tempo" ++ th "Affermazione" ++ th "Domanda") ++ + inflClauseTense (heading present_Parameter) + (heading present_Parameter ++ " " ++ heading perfect_Parameter) + RPres cl ++ + inflClauseTense (heading past_Parameter) + (heading past_Parameter ++ " " ++ heading perfect_Parameter) + RPast cl ++ + inflClauseTense (heading future_Parameter) + (heading future_Parameter ++ " " ++ heading perfect_Parameter) + RFut cl ++ + inflClauseTense (heading conditional_Parameter) + (heading conditional_Parameter ++ " " ++ heading perfect_Parameter) + RCond cl + ) + } ; + InflectionV v = { t = "v" ; s1 = heading1 (heading verb_Category) ++ @@ -179,6 +202,18 @@ lin MkTag i = ss i.t ; oper + inflClauseTense : Str -> Str -> RTense -> Cl -> Str = \simple,perfect,tense,cl -> + tr (intagAttr "th" "rowspan=2" simple ++ + td (cl.s ! DDir ! tense ! Simul ! RPos ! Indic) ++ + td (cl.s ! DInv ! tense ! Simul ! RPos ! Indic) ++ + intagAttr "th" "rowspan=2" perfect ++ + td (cl.s ! DDir ! tense ! Anter ! RPos ! Indic) ++ + td (cl.s ! DInv ! tense ! Anter ! RPos ! Indic)) ++ + tr (td (cl.s ! DDir ! tense ! Simul ! (RNeg True) ! Indic) ++ + td (cl.s ! DInv ! tense ! Simul ! (RNeg True) ! Indic) ++ + td (cl.s ! DDir ! tense ! Anter ! (RNeg True) ! Indic) ++ + td (cl.s ! DInv ! tense ! Anter ! (RNeg True) ! Indic)) ; + verbExample : CatIta.Cl -> Str = \cl -> (S.mkUtt cl).s ++ ";" ++ (S.mkUtt (S.mkS S.anteriorAnt cl)).s --# notpresent diff --git a/src/portuguese/DocumentationPorFunctor.gf b/src/portuguese/DocumentationPorFunctor.gf index 23291679..5d064ba7 100644 --- a/src/portuguese/DocumentationPorFunctor.gf +++ b/src/portuguese/DocumentationPorFunctor.gf @@ -98,6 +98,29 @@ lin s2 = paragraph p.s } ; + InflectionCl = \cl -> { + t = "cl" ; + s1 = heading1 "Frase" ; + s2 = frameTable ( + tr (intagAttr "th" "colspan=3" "Tempos simples" ++ + intagAttr "th" "colspan=3" "Tempos compostos") ++ + tr (th "Tempo" ++ th "Afirmação" ++ th "Pergunta" ++ + th "Tempo" ++ th "Afirmação" ++ th "Pergunta") ++ + inflClauseTense (heading present_Parameter) + (heading present_Parameter ++ " " ++ heading perfect_Parameter) + RPres cl ++ + inflClauseTense (heading past_Parameter) + (heading past_Parameter ++ " " ++ heading perfect_Parameter) + RPast cl ++ + inflClauseTense (heading future_Parameter) + (heading future_Parameter ++ " " ++ heading perfect_Parameter) + RFut cl ++ + inflClauseTense (heading conditional_Parameter) + (heading conditional_Parameter ++ " " ++ heading perfect_Parameter) + RCond cl + ) + } ; + InflectionV v = { t = "v" ; s1 = heading1 (heading verb_Category) ++ @@ -179,6 +202,18 @@ lin MkTag i = ss i.t ; oper + inflClauseTense : Str -> Str -> RTense -> Cl -> Str = \simple,perfect,tense,cl -> + tr (intagAttr "th" "rowspan=2" simple ++ + td (cl.s ! DDir ! tense ! Simul ! RPos ! Indic) ++ + td (cl.s ! DInv ! tense ! Simul ! RPos ! Indic) ++ + intagAttr "th" "rowspan=2" perfect ++ + td (cl.s ! DDir ! tense ! Anter ! RPos ! Indic) ++ + td (cl.s ! DInv ! tense ! Anter ! RPos ! Indic)) ++ + tr (td (cl.s ! DDir ! tense ! Simul ! (RNeg True) ! Indic) ++ + td (cl.s ! DInv ! tense ! Simul ! (RNeg True) ! Indic) ++ + td (cl.s ! DDir ! tense ! Anter ! (RNeg True) ! Indic) ++ + td (cl.s ! DInv ! tense ! Anter ! (RNeg True) ! Indic)) ; + verbExample : CatPor.Cl -> Str = \cl -> (S.mkUtt cl).s ++ ";" ++ (S.mkUtt (S.mkS S.anteriorAnt cl)).s --# notpresent diff --git a/src/russian/DocumentationRusFunctor.gf b/src/russian/DocumentationRusFunctor.gf index d2b1bdae..1d1f3a0d 100644 --- a/src/russian/DocumentationRusFunctor.gf +++ b/src/russian/DocumentationRusFunctor.gf @@ -3,6 +3,7 @@ incomplete concrete DocumentationRusFunctor of Documentation = CatRus ** open Terminology, -- the interface ResRus, + TenseRus, ParadigmsRus, Prelude, HTML @@ -145,6 +146,18 @@ lin }) } ; + InflectionCl = \cl -> { + t = "кл" ; + s1 = heading1 "Предложение" ; + s2 = frameTable ( + tr (th "Время" ++ th "Утверждение" ++ th "Вопрос") ++ + clauseTense (heading present_Parameter) Pres cl ++ + clauseTense (heading past_Parameter) Past cl ++ + clauseTense (heading future_Parameter) Fut cl ++ + clauseTense (heading conditional_Parameter) Cond cl + ) + } ; + InflectionV, InflectionV2, InflectionV3, InflectionV2V, InflectionV2S, InflectionV2Q, InflectionV2A, InflectionVS, InflectionVQ, @@ -161,6 +174,22 @@ lin } ; oper +{- +-} --# notpresent + clauseTense : Str -> ResRus.Tense -> Cl -> Str = \label,tense,cl -> + tr (th (label ++ " (полож.)") ++ + td (clauseForm tense Pos cl) ++ + td (clauseForm tense Pos cl)) ++ + tr (th (label ++ " (отриц.)") ++ + td (clauseForm tense Neg cl) ++ + td (clauseForm tense Neg cl)) ; + + clauseForm : ResRus.Tense -> Polarity -> Cl -> Str = \tense,pol,cl -> + ResRus.verbEnvAgr cl.subj cl.adv cl.verb Ind tense cl.a + (case pol of {Pos => PPos ; Neg => PNeg}) ++ + cl.dep ++ + cl.compl ! pol ; + {- -} --# notpresent inflVerb : VerbForms -> Str = \v -> diff --git a/src/spanish/DocumentationSpaFunctor.gf b/src/spanish/DocumentationSpaFunctor.gf index 1c2286f2..7b69b0e4 100644 --- a/src/spanish/DocumentationSpaFunctor.gf +++ b/src/spanish/DocumentationSpaFunctor.gf @@ -106,6 +106,29 @@ lin s2 = paragraph p.s } ; + InflectionCl = \cl -> { + t = "cl" ; + s1 = heading1 "Oración" ; + s2 = frameTable ( + tr (intagAttr "th" "colspan=3" "Tiempos simples" ++ + intagAttr "th" "colspan=3" "Tiempos compuestos") ++ + tr (th "Tiempo" ++ th "Afirmación" ++ th "Pregunta" ++ + th "Tiempo" ++ th "Afirmación" ++ th "Pregunta") ++ + inflClauseTense (heading present_Parameter) + (heading present_Parameter ++ " " ++ heading perfect_Parameter) + RPres cl ++ + inflClauseTense (heading past_Parameter) + (heading past_Parameter ++ " " ++ heading perfect_Parameter) + RPast cl ++ + inflClauseTense (heading future_Parameter) + (heading future_Parameter ++ " " ++ heading perfect_Parameter) + RFut cl ++ + inflClauseTense (heading conditional_Parameter) + (heading conditional_Parameter ++ " " ++ heading perfect_Parameter) + RCond cl + ) + } ; + InflectionV v = { t = "v" ; s1 = heading1 (heading verb_Category) ++ @@ -187,6 +210,18 @@ lin MkTag i = ss i.t ; oper + inflClauseTense : Str -> Str -> RTense -> Cl -> Str = \simple,perfect,tense,cl -> + tr (intagAttr "th" "rowspan=2" simple ++ + td (cl.s ! DDir ! tense ! Simul ! RPos ! Indic) ++ + td (cl.s ! DInv ! tense ! Simul ! RPos ! Indic) ++ + intagAttr "th" "rowspan=2" perfect ++ + td (cl.s ! DDir ! tense ! Anter ! RPos ! Indic) ++ + td (cl.s ! DInv ! tense ! Anter ! RPos ! Indic)) ++ + tr (td (cl.s ! DDir ! tense ! Simul ! (RNeg True) ! Indic) ++ + td (cl.s ! DInv ! tense ! Simul ! (RNeg True) ! Indic) ++ + td (cl.s ! DDir ! tense ! Anter ! (RNeg True) ! Indic) ++ + td (cl.s ! DInv ! tense ! Anter ! (RNeg True) ! Indic)) ; + verbExample : CatSpa.Cl -> Str = \cl -> (S.mkUtt cl).s ++ ";" ++ (S.mkUtt (S.mkS S.anteriorAnt cl)).s --# notpresent