/*
         * Constructeur
         */
        public GroupeDInstructions_Boucle_RépèteToutLeTemps(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs)
        {
            // Déclarations
            // ------------

            XmlNode XMLInterne;



            // Initialisation des membres
            // --------------------------

            // Il est possible de sortir de ce groupe, à l'aide du bloc SortDeLaBoucleFaire
            __bloc_SortDeLaBoucleFaire_Possible = true;



            // Traitements
            // -----------

            XMLInterne = _XMLDuBloc.SelectSingleNode("./statement");
            if (XMLInterne != null)
            {
                __blocsInternes = new __BlocsInternes(UID + 1, XMLInterne.FirstChild, null, this);
            }


            // Liste les séquences du bloc
            // ---------------------------
            __séquences.Add((Séquence)Séquence_1);
            __séquences.Add((Séquence)Séquence_2);
            __séquences.Add((Séquence)Séquence_3);

            __nombreDeBlocsInternes = 1;
        }
コード例 #2
0
        /*
         * Constructeur
         */
        public GroupeDInstructions_Boucle_Faire_TantQue_ENTCondition(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs)
        {
            // Déclarations
            // ------------
            String nomDeLAttribut;

            XmlNode XMLInterne;



            // Initialisation des membres
            // --------------------------

            // Il est possible de sortir de ce groupe, à l'aide du bloc SortDeLaBoucleFaire
            __bloc_SortDeLaBoucleFaire_Possible = true;



            // Traitements
            // -----------

            // Analyse du Bloc d'instruction
            foreach (XmlNode XMLDUnNoeudFils in _XMLDuBloc.ChildNodes)
            {
                nomDeLAttribut = "";
                if (XMLDUnNoeudFils.Attributes["name"] != null)
                {
                    nomDeLAttribut = XMLDUnNoeudFils.Attributes["name"].Value;
                }

                switch (nomDeLAttribut)
                {
                case "Condition":
                    __conditionDeBoucle = Compilateur.AnalyseUnNoeudDExpression(_UID, XMLDUnNoeudFils.FirstChild, _blocPrécédent, _groupeDeBlocs);
                    break;
                }
            }

            XMLInterne = _XMLDuBloc.SelectSingleNode("./statement");
            if (XMLInterne != null)
            {
                __blocsInternes = new __BlocsInternes(UID + 1, XMLInterne.FirstChild, null, this);
            }


            // Liste les séquences du bloc
            // ---------------------------
            __séquences.Add((Séquence)Séquence_1);
            __séquences.Add((Séquence)Séquence_2);
            __séquences.Add((Séquence)Séquence_3);

            __nombreDeBlocsInternes = 1;
        }
コード例 #3
0
        /*
         * Constructeur
         */
        public GroupeDInstructions_Si_ENTCondition_Alors_Sinon(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs, null, null, null)
        {
            // Déclarations
            // ------------

            String nomDeLAttribut;

            XmlNode XMLInterne;


            // Traitements
            // -----------

            // Analyse du Bloc d'instruction
            foreach (XmlNode XMLDUnNoeudFils in _XMLDuBloc.ChildNodes)
            {
                nomDeLAttribut = "";
                if (XMLDUnNoeudFils.Attributes["name"] != null)
                {
                    nomDeLAttribut = XMLDUnNoeudFils.Attributes["name"].Value;
                }

                switch (nomDeLAttribut)
                {
                case "Condition":
                    __conditionDEntré = Compilateur.AnalyseUnNoeudDExpression(_UID, XMLDUnNoeudFils.FirstChild, _blocPrécédent, _groupeDeBlocs);
                    break;
                }
            }


            // Blocs internes au groupe
            // ------------------------

            XMLInterne = _XMLDuBloc.SelectSingleNode("./statement[@name=\"BlocsInternes\"]");
            if (XMLInterne != null)
            {
                __blocsInternes = new __BlocsInternes(UID + 1, XMLInterne.FirstChild, null, this);
            }

            XMLInterne = _XMLDuBloc.SelectSingleNode("./statement[@name=\"BlocsInternes_Sinon\"]");
            if (XMLInterne != null)
            {
                if (__blocsInternes != null)
                {
                    __blocsInternesSupplémentaires = new __BlocsInternes(UID + 1 + __blocsInternes.nombreDeSéquence, XMLInterne.FirstChild, null, this);
                }
                else
                {
                    __blocsInternesSupplémentaires = new __BlocsInternes(UID + 1, XMLInterne.FirstChild, null, this);
                }
            }
        }
コード例 #4
0
        /*
         * Constructeur
         */
        public __GroupeDInstructions_Si_Alors_AvecCondition(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs, __BlocsInternes _blocsInternes, __Valeur _ConditionDEntré) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs)
        {
            // Initialisation des membres
            // --------------------------
            __blocsInternes   = _blocsInternes;
            __conditionDEntré = _ConditionDEntré;


            // Liste les séquences du bloc
            // ---------------------------
            __séquences.Add((Séquence)Séquence_1);
            __séquences.Add((Séquence)Séquence_2);
            __séquences.Add((Séquence)Séquence_3);

            __nombreDeBlocsInternes = 1;
        }
コード例 #5
0
        /*
         * Constructeur
         */
        public GroupeDInstructions_Boucle_Répète_SAINombre(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs, null, 0)
        {
            // Déclarations
            // ------------
            String nomDeLAttribut;

            XmlNode XMLInterne;



            // Initialisation des membres
            // --------------------------

            // Il est possible de sortir de ce groupe, à l'aide du bloc SortDeLaBoucleFaire
            __bloc_SortDeLaBoucleFaire_Possible = true;



            // Traitements
            // -----------

            // Analyse du Bloc d'instruction
            foreach (XmlNode XMLDUnNoeudFils in _XMLDuBloc.ChildNodes)
            {
                nomDeLAttribut = "";
                if (XMLDUnNoeudFils.Attributes["name"] != null)
                {
                    nomDeLAttribut = XMLDUnNoeudFils.Attributes["name"].Value;
                }

                switch (nomDeLAttribut)
                {
                case "NombreDeBoucle":
                    nombreDeBoucle = Int32.Parse(XMLDUnNoeudFils.InnerText);
                    break;
                }
            }

            XMLInterne = _XMLDuBloc.SelectSingleNode("./statement");
            if (XMLInterne != null)
            {
                __blocsInternes = new __BlocsInternes(UID + 2, XMLInterne.FirstChild, null, this);
            }
        }
        /*
         * Constructeur
         */
        public __GroupeDInstructions_Boucle_Répète_AvecNombre(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs, __BlocsInternes _blocsInternes, int _nombreDeBoucle) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs)
        {
            // Initialisation des membres
            // --------------------------

            __compteurDeBoucle++;
            __UIDDeBoucle = __compteurDeBoucle;

            __blocsInternes  = _blocsInternes;
            __nombreDeBoucle = _nombreDeBoucle + 1;

            // Il est possible de sortir de ce groupe, à l'aide du bloc SortDeLaBoucleFaire
            __bloc_SortDeLaBoucleFaire_Possible = true;


            // Liste les séquences du bloc
            // ---------------------------
            __séquences.Add((Séquence)Séquence_1);
            __séquences.Add((Séquence)Séquence_2);
            __séquences.Add((Séquence)Séquence_3);
            __séquences.Add((Séquence)Séquence_4);

            __nombreDeBlocsInternes = 1;
        }
コード例 #7
0
        /*
         * Constructeur
         */
        public GroupeDInstructions_Si_IlYAUnObstacleDevant_Alors(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs, null, null)
        {
            // Déclarations
            // ------------

            XmlNode XMLInterne;


            // Initialisation des membres
            // --------------------------

            __conditionDEntré = new __Valeur(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs,
                                             __CAPTEURS.code((int)__CAPTEURS.NOM.AVANT_AU_MOINS_UN, (int)__CAPTEURS.PARAMÈTRE.DISTANCE_PRÈS));


            // Blocs internes au groupe
            // ------------------------

            XMLInterne = _XMLDuBloc.SelectSingleNode("./statement");
            if (XMLInterne != null)
            {
                __blocsInternes = new __BlocsInternes(UID + 1, XMLInterne.FirstChild, null, this);
            }
        }