#!/bin/csh

#######################################################################################################################################
#                                                                                                                                     #
#         C O N V E R S I O N   D ' U N   A L P H A B E T   ' $K '   E N   U N   A L P H A B E T   ' $Y '  :                          #
#                                                                                                                                     #
#                                                                                                                                     #
#         Utilisation :                                                                                                               #
#                                                                                                                                     #
#                   $xrd/conversion_K_Y_alphabets.01$vv$Z   <Alphabet> <ArgumentsMessage> [<Lettre>]                                  #
#                                                                                                                                     #
#                                                                                                                                     #
#         Author of '$xrd/conversion_K_Y_alphabets.01$vv$Z' :                                                                         #
#                                                                                                                                     #
#                     Jean-Francois COLONNA (LACTAMME, 20250528124807).                                                               #
#                                                                                                                                     #
#######################################################################################################################################

set       Alphabet=$1
set       ArgumentsMessage="$2"
set       Lettre=$3
                                        # Lorsque '$LeTtRe' n'est pas vide, c'est sa definition "graphique" qui est editees a la      #
                                        # fin, alors que lorsqu'elle est vide, c'est toutes les definitions "graphiques" qui sont     #
                                        # editees...                                                                                  #

setArgum  CoordonneeX         "$K_VIDE"
setArgum  Lettre              "$K_VIDE"

set       LeTtRe="$Lettre"

source    $xrd/conversion_K_Y_alphabets.02$vv$Y
                                        # Introduit le 20250528183801...                                                              #

set       Arguments_message="$ArgumentsMessage"
                                        # Et ce a cause de 'v $xrd/conversion_K_Y_alphabets.01$vv$Y Arguments_message'...             #

if        ("$Arguments_message" == "$K_VIDE") then
                                        # Test introduit le 20250528182440...                                                         #
          set       Arguments_message="$K_VIDE"
          set       Arguments_message="$Arguments_message"" bibliotheque=$Alphabet"
          set       Arguments_message="$Arguments_message"" bibliotheque_00_fonte_proportionnelle=FAUX"
          set       Arguments_message="$Arguments_message"" EgalDiese=FAUX"
                                        # Cette definition peut paraitre inutile puisque 'FAUX' est la valeur par defaut de           #
                                        # 'GetParam $xci/message$X EgalDiese'.                                                        #
                                        #                                                                                             #
                                        # Mais 'v $xiii/$xiii/alphabet.0$FON FgLegal_00_____remplacer_par_un_diese' lorsqu'il         #
                                        # est VRAI, donne entre {Bblock,Eblock} donne une sequence vide sans {gA,g1,g2,g3,g4,gB}.     #
                                        # Or 'v $xrd/graph.G_L$vv$Y non defini dans' voit que c'est vide et donne un message          #
                                        # d'erreur...                                                                                 #
          set       Arguments_message="$Arguments_message"" InferieurSymetriqueX=VRAI"
          set       Arguments_message="$Arguments_message"" SuperieurSymetriqueX=VRAI"
          set       Arguments_message="$Arguments_message"" bibliotheque_00_remplacer_0_O=VRAI"
                                        # Ces definitions sont inspirees de 'v $xiirv/.TURI.21.2.$U Arguments_message'...             #
else
endif

source    $xrd/conversion_K_Y_alphabets.01$vv$Y
                                        # Ainsi, on definit des variables '$TeStS_FgL_...' correspondant aux options destinees        #
                                        # a '$xci/message$X' via '$Arguments_message'...                                              #
                                        #                                                                                             #
                                        # Puis, recuperation dans 'v $xci/message$K GET_ARGUMENTSg' des arguments definis par un      #
                                        # 'GET_ARGUMENT_L(...)' et preparatifs de reeciture du type :                                 #
                                        #                                                                                             #
                                        #                   Test(IL_FAUT(FgL...))                                       (pour '$K')   #
                                        #                                                                                             #
                                        # en :                                                                                        #
                                        #                                                                                             #
                                        #                   if        ($TeStS_FgL... == $EXIST) then                    (pour '$CSH') #
                                        #                                                                                             #

FilSTmpB  FSeQuEnCeS_CoNdItIoNnElLe $Y

$CA       $xcs/csh$Y                                                                                                                    \
                                                                                          >>  $FSeQuEnCeS_CoNdItIoNnElLe

$CA       $xiii/alphabet.$Alphabet$FON                                                                                            |     \
$GRE      -v '^ */\*'                                                                                                             |     \
$GRE      -v '^__*$'                                                                                                              |     \
$GRE      -v '^$'                                                                                                                 |     \
$GRE      -v '^#'                                                                                                                 |     \
$GRE      -v '^DEFV(Common,DEFV('                                                                                                 |     \
$AW       ' /DEFV\(Common,GENERE__FonctionI_GRAPHIQUES\(/,/^                                              \)$/ '                  |     \
$SE       -e '/^                                         )$/d'                                                                          \
          -e '/^     )$/d'                                                                                                              \
          -e "s/g\([$Alphabet_0_9""ABS]\)/G_\1/g"                                                                                 |     \
$EGRE     -v -e '^ *Bblock$|^ *Eblock$|^ *CALS\(|^ */\* '                                                                         |     \
$SE       -f $FTeStS_FgL                                                                                                                \
          -e 's/^ *ATes$/\nelse/'                                                                                                       \
          -e 's/^ *ETes$/\nendif\nelse\n\nendif\nendif/'                                                                                \
          -e 's/^ *\(G_[^ ]*\)$/echo "\1"/'                                                                                             \
                                                                                          >>  $FSeQuEnCeS_CoNdItIoNnElLe
                                        # Generation d'un '$Y' recuperant les sequences conditionnelles qui sont VRAIes...            #
                                        #                                                                                             #
                                        # Je rappelle le 20250528111842 que 'FiNdUfIcHiEr' n'existe pas dans les fichiers             #
                                        # '$xiii/alphabet.$AlPhAbEt$FON' et alors '$AW' avec "/FiNdUfIcHiEr/", ne le rencontrant      #
                                        # pas, fait sa recherche jusqu'au bout (a la place de "FiNdUfIcHiEr" on aurait en fait pu     #
                                        # utiliser n'importe quelle chaine, a condition qu'elle n'existe pas...).                     #

FilSTmpB  CodDe_AlPhAbEt

$CA       $FSeQuEnCeS_CoNdItIoNnElLe                                                                                              |     \
$GRE      -v '^$'                                                                                                                       \
                                                                                          >>  $CodDe_AlPhAbEt
                                        # A cause de 'v $xiii/alphabet.0$FON FgLsuperieur_00', le 20250526121113 fut mise en place    #
                                        # tout ce processus afin de simuler les 'Test(IL_FAUT(FgL...))' sous '$CSH'...                #

if        ("$LeTtRe" == "$K_VIDE") then
          $CA       $CodDe_AlPhAbEt
                                        # Edition de tous les codes de type '$Y' des caracteres de l'alphabet "$Alphabet"...          #
else
          $CA       $CodDe_AlPhAbEt                                                                                               |     \
          $AW  " /GENERE__FonctionI_GRAPHIQUES\(FgL""$LeTtRe""_0$Alphabet/,/                                              )/ "    |     \
          $xcp/appariement$X                                                                                                            \
                         ouverture="("                                                                                            |     \
          $SE       -e "/^ *DEFV(/d" -e "/^ *,BLOC(/d" -e "/^ *)/d"
                                        # Edition du code de type '$Y' du caractere "$LeTtRe" de l'alphabet "$Alphabet"...            #
endif

FilSTmpE  CodDe_AlPhAbEt

FilSTmpE  FSeQuEnCeS_CoNdItIoNnElLe

FilSTmpE  FTeStS_FgL
                                        # Le 'FilSTmpB' est dans 'v $xrd/conversion_K_Y_alphabets.01$vv$Y FilSTmpB..FTeStS_FgL'...    #



Copyright © Jean-François COLONNA, 2025-2025.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2025-2025.