/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        G E N E R A T I O N   A U T O M A T I Q U E   D ' U N   C - S H E L L - S C R I P T                                        */
/*        R E P E T A N T   L A   M E M E   O P E R A T I O N   P O U R   U N E   S E Q U E N C E   D ' I M A G E S  :               */
/*        S U I V A N T   D E S   N U M E R O S   O U   B I E N   S U I V A N T   L E S   C O M P O S A N T E S   { R , V , B }  :   */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                    Ces definitions doivent imperativement                                                                         */
/*                  etre dans un fichier de type '$I' si l'on                                                                        */
/*                  veut qu'elles soient interpretees correctement,                                                                  */
/*                  et ce a cause de la derivation formelle qui fait                                                                 */
/*                  que les definitions contenues dans le fichier "de base"                                                          */
/*                  '$K' sont traitees differemment des autres. En effet,                                                            */
/*                  cela est du plus particulierement au fichier                                                                     */
/*                  'v $xcc/cpp$Z INCLUDES_1.sed' qui "inhibe"                                                                       */
/*                  temporairement les 'define's du niveau le plus                                                                   */
/*                  bas des fichiers. En particulier, les 'define's qui peuvent etre                                                 */
/*                  "redefinis" via 'TestADef' doivent donc etre mis                                                                 */
/*                  dans un fichier d'include...                                                                                     */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xci/genere$I' :                                                                                                */
/*                                                                                                                                   */
/*                    Jean-Francois Colonna (LACTAMME, 20071227130205).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        G E N E R A T I O N   D ' U N E   C O M M A N D E   D ' E D I T I O N  :                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   LISTE_DES_VALEURS                                                                                                             \
                    LISTE`__COMPTEUR8__A__

#define   GENERATION_D_UN_CAS(numero,valeur_a_editer,arguments_specifiques,temporisation_eventuelle)                                    \
                                        /* L'argument 'arguments_specifiques' a ete introduit le 20091208130123...                   */ \
                                        /*                                                                                           */ \
                                        /* L'argument 'temporisation' a ete introduit le 20111011205753...                           */ \
                    %ifndef   LISTE_DES_VALEURS                                                                                         \
                         __PLUS1__A__                                                                                                   \
                         %define   LISTE_DES_VALEURS                                      Cara(commande)                                \
                         __MOINS1__A__                                                                                                  \
                    %Aifndef                                                                                                            \
                         __PLUS1__A__                                                                                                   \
                         %define   LISTE_DES_VALEURS                       __MOINS1__A__  LISTE_DES_VALEURS,valeur_a_editer             \
                         __PLUS1__A__                                                                                                   \
                    %Eifndef                                                                                                            \
                                                                                                                                        \
                    _____FORCER_UN_CHANGEMENT_DE_LIGNE_EN_PASSE_2_____                                                                  \
                    _____FORCER_UN_CHANGEMENT_DE_LIGNE_EN_PASSE_2_____                                                                  \
                                                                                                                                        \
                    Ca1e(numero)                                                                                                        \
                         Bblock                                                                                                         \
                         Test(IL_FAUT(parentheser_les_commandes))                                                                       \
                              Bblock                                                                                                    \
                              CAL2(GPrin0("("));                                                                                        \
                                        /* Introduit le 20091208145226 pour simplifier 'v $xE/.alias.2$vv$Y execRVB' de meme         */ \
                                        /* que 'v $xE/.alias.2$vv$Y execXYZ' evidemment...                                           */ \
                              Eblock                                                                                                    \
                         ATes                                                                                                           \
                              Bblock                                                                                                    \
                              Eblock                                                                                                    \
                         ETes                                                                                                           \
                                                                                                                                        \
                         Test(IZGT(temporisation_eventuelle))                                                                           \
                              Bblock                                                                                                    \
                              CAL2(GPrin3("sleep %d%s;%s",temporisation_eventuelle," "," "));                                           \
                                        /* Introduit le 20111011205753, cette temporisation preliminaire optionnelle est destinee    */ \
                                        /* a eviter des charges exceptionnelles des MACHINEs, par exemple, lors de chargements       */ \
                                        /* d'albums "lourds" ('v $xiirc/.MANE.41.4.$U execRVB....xci.accumule.42.X')...              */ \
                                        /*                                                                                           */ \
                                        /* L"ecriture "%s;%s" est destinee a garantir les espaces autour de ";" (soit " : ").        */ \
                              Eblock                                                                                                    \
                         ATes                                                                                                           \
                              Bblock                                                                                                    \
                              Eblock                                                                                                    \
                         ETes                                                                                                           \
                                                                                                                                        \
                         CAL2(GPrin ## numero(LISTE_DES_VALEURS));                                                                      \
                                        /* C'est ici que la commande 'commande' est editee...                                        */ \
                                                                                                                                        \
                         Test(IFNE_chaine(arguments_specifiques,C_VIDE))                                                                \
                              Bblock                                                                                                    \
                              CAL2(GPrin1(" %s",arguments_specifiques));                                                                \
                              Eblock                                                                                                    \
                         ATes                                                                                                           \
                              Bblock                                                                                                    \
                              Eblock                                                                                                    \
                         ETes                                                                                                           \
                                                                                                                                        \
                         Test(IL_FAUT(parentheser_les_commandes))                                                                       \
                              Bblock                                                                                                    \
                              CAL2(GPrin0(")"));                                                                                        \
                                        /* Introduit le 20091208145226 pour simplifier 'v $xE/.alias.2$vv$Y execRVB' de meme         */ \
                                        /* que 'v $xE/.alias.2$vv$Y execXYZ' evidemment...                                           */ \
                              Eblock                                                                                                    \
                         ATes                                                                                                           \
                              Bblock                                                                                                    \
                              Eblock                                                                                                    \
                         ETes                                                                                                           \
                         Eblock                                                                                                         \
                    ECa1                                                                                                                \
                                        /* Afin de generer l'un des cas (introduit le 20071227122537)...                             */

#define   INITIALISATION_DE_LA_GENERATION_DE_LA_COMMANDE_COURANTE                                                                       \
                    %ifdef   LISTE_DES_VALEURS                                                                                          \
                         %undef    LISTE_DES_VALEURS                                                                                    \
                    %Aifdef  LISTE_DES_VALEURS                                                                                          \
                    %Eifdef  LISTE_DES_VALEURS                                                                                          \
                                                                                                                                        \
                    _____FORCER_UN_CHANGEMENT_DE_LIGNE_EN_PASSE_2_____                                                                  \
                    _____FORCER_UN_CHANGEMENT_DE_LIGNE_EN_PASSE_2_____
                                        /* Afin de reinitialiser l'ensemble des cas...                                               */



Copyright © Jean-François Colonna, 2019-2021.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / Ecole Polytechnique, 2019-2021.