Example #1
0
 /*
  * Constructeur
  */
 public __Valeur(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs, String _code = "") : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs)
 {
     // Initialisations
     // ---------------
     __code = _code;
     __codeDInitialisation = "";
 }
 /*
  * Constructeur
  */
 public __Variable(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs)
 {
     if (__variables == null)
     {
         __variables = new Dictionary <string, int>();
     }
 }
Example #3
0
        /*
         * Constructeur
         */
        public __Valeur_Boutons(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs, int _bouton) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs)
        {
            // Initialisation des membres
            // --------------------------

            __code = __BOUTONS.code(_bouton);
        }
        /*
         * Constructeur
         */
        public __Bloc(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs)
        {
            __UID = _UID;

            __commentaire = "";

            __nomDansBlockly = _XMLDuBloc.Attributes["type"].Value;

            __blocPrécédent = _blocPrécédent;

            __groupeDeBlocs = _groupeDeBlocs;

            if (__blocPrécédent != null)
            {
                __UIDDuSéquenceur = __blocPrécédent.__UIDDuSéquenceur;
            }
            else
            if (__groupeDeBlocs != null)
            {
                __UIDDuSéquenceur = __groupeDeBlocs.__UIDDuSéquenceur;
            }


            __séquences = new List <Séquence>();
        }
        /*
         * Méthodes statiques
         */
        public static __GroupeDeBlocs groupeDInstructions_Faire_AuDessus(__GroupeDeBlocs groupeDeBlocs)
        {
            if (groupeDeBlocs == null)
            {
                return(null);
            }

            if (groupeDeBlocs.__bloc_SortDeLaBoucleFaire_Possible)
            {
                return(groupeDeBlocs);
            }

            return(__GroupeDeBlocs.groupeDInstructions_Faire_AuDessus(groupeDeBlocs.__groupeDeBlocs));
        }
        /*
         * Constructeur
         */
        public __Instruction(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs)
        {
            __UID = _UID;

            __nomDansBlockly = _XMLDuBloc.Attributes["type"].Value;

            __blocPrécédent = _blocPrécédent;

            if (__blocPrécédent != null)
            {
                __UIDDuSéquenceur = __blocPrécédent.UIDDuSéquenceur;
            }

            __séquences = new List <Séquence>();
        }
Example #7
0
        /*
         * Constructeur
         */
        public Valeur_Math_Number(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs)
        {
            // Déclarations
            // ------------

            String nomDeLAttribut;



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

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

                switch (nomDeLAttribut)
                {
                case "NUM":
                    __code = XMLDUnNoeudFils.FirstChild.InnerText;
                    break;
                }
            }
        }
        /*
         * Constructeur
         */
        public Paramètre_LAdresseDeLaTélécommandeEst_SAIValeur(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs)
        {
            // Déclarations
            // ------------
            String nomDeLAttribut;



            // 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 "Adresse":
                    Valeur_CapteurIR_SELBouton.adresseIR = Int32.Parse(XMLDUnNoeudFils.InnerText);
                    break;
                }
            }
        }
        /*
         * Constructeur
         */
        public __GroupeDInstructions_Si_Alors_Sinon_AvecCondition(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs, __BlocsInternes _blocsInternesSi, __BlocsInternes _blocsInternesSinon, __Valeur _ConditionDEntré) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs)
        {
            // Initialisation des membres
            // --------------------------
            __blocsInternes = _blocsInternesSi;
            __blocsInternesSupplémentaires = _blocsInternesSinon;
            __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);
            __séquences.Add((Séquence)Séquence_4);

            __nombreDeBlocsInternes = 2;
        }
Example #10
0
        /*
         * Constructeur
         */
        public Variable_DéfinirUneVariable(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs)
        {
            // Déclarations
            // ------------

            String erreur;
            String nomDeLAttribut;



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

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

                switch (nomDeLAttribut)
                {
                case "VAR":
                    __nom = XMLDUnNoeudFils.FirstChild.InnerText;
                    break;

                case "VALUE":
                    __expression = Compilateur.AnalyseUnNoeudDExpression(_UID, XMLDUnNoeudFils.FirstChild, _blocPrécédent, _groupeDeBlocs);
                    break;
                }
            }

            if (__expression == null)
            {
                erreur = String.Format(Messages.Message((int)Messages.TYPE.VARIABLE_NON_INITIALISÉE), __nom);
                throw new Exception(erreur);
            }


            __Variable.AjouteUneVariable(__nom);


            // Liste les séquences du bloc
            // ---------------------------
            __séquences.Add((Séquence)Séquence_1);
        }
        /*
         * Constructeur
         */
        public __Sons_JoueUnSon_AvecSon(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs, int _son) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs)
        {
            __son = _son;

            // Liste les séquences du bloc
            // ---------------------------
            __séquences.Add((Séquence)Séquence_1);
            __séquences.Add((Séquence)Séquence_2);
        }
Example #12
0
        /*
         * Constructeur
         */
        public __Contrôle_Attends_AvecDurée(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs, float _durée) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs)
        {
            // Initialisation des membres
            // --------------------------

            __durée = _durée;


            // Liste les séquences du bloc
            // ---------------------------
            __séquences.Add((Séquence)Séquence_1);
            __séquences.Add((Séquence)Séquence_2);
        }
        /*
         * Constructeur
         */
        public Paramètre_CalibreLesMoteurs_SAIValeur(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs)
        {
            // Déclarations
            // ------------
            String nomDeLAttribut;



            // 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 "Valeur":
                    __MOTEUR.calibration = Int32.Parse(XMLDUnNoeudFils.InnerText);
                    break;
                }
            }
        }
        /*
         * Constructeur
         */
        public Variable_IncrémenterUneVariable(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs)
        {
            // Déclarations
            // ------------

            String nomDeLAttribut;



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

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

                switch (nomDeLAttribut)
                {
                case "VAR":
                    __nom = XMLDUnNoeudFils.FirstChild.InnerText;
                    break;

                case "DELTA":
                    switch (XMLDUnNoeudFils.ChildNodes.Count)
                    {
                    case 1:
                        // Le Noeud fils contient seulement une balise <shadow>
                        // C'est la balise <shadow> qui est sélectionnée avec XMLDUnNoeudFils.FirstChild
                        __expression = Compilateur.AnalyseUnNoeudDExpression(_UID, XMLDUnNoeudFils.FirstChild, _blocPrécédent, _groupeDeBlocs);
                        break;

                    case 2:
                        // Le Noeud fils contient une balise <shadow> et une balise <block>
                        // C'est la balise <block> qui est sélectionnée avec XMLDUnNoeudFils.LastChild
                        __expression = Compilateur.AnalyseUnNoeudDExpression(_UID, XMLDUnNoeudFils.LastChild, _blocPrécédent, _groupeDeBlocs);
                        break;
                    }
                    break;
                }
            }

            __Variable.AjouteUneVariable(__nom);


            // Liste les séquences du bloc
            // ---------------------------
            __séquences.Add((Séquence)Séquence_1);
        }
	/*
	 * Constructeur
	 */
	public	Valeur_CapteurIR_SELBouton( int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs ) : base( _UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs ) {

		// Déclarations
		// ------------

		String	nomDeLAttribut;



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

        // Analyse du Bloc d'instruction
        foreach  (XmlNode XMLDUnNoeudFils in _XMLDuBloc ) {

            nomDeLAttribut = "";
            if (XMLDUnNoeudFils.Attributes["name"] != null)
                nomDeLAttribut = XMLDUnNoeudFils.Attributes["name"].Value;
			
            switch(nomDeLAttribut) {
			
			case "Bouton":
				switch (XMLDUnNoeudFils.InnerText) {
				case "GO":
					__code = "rc5.command==53";
					break;
				case "STOP":
					__code = "rc5.command==87";
					break;
				case "AVANT":
					__code = "rc5.command==80 or rc5.command==32";
					break;
				case "ARRIERE":
					__code = "rc5.command==81 or rc5.command==33";
					break;
				case "GAUCHE":
					__code = "rc5.command==85";
					break;
				case "DROITE":
					__code = "rc5.command==86";
					break;
				case "OK":
					__code = "rc5.command==11";
					break;
				case "MOINS":
					__code = "rc5.command==17";
					break;
				case "PLUS":
					__code = "rc5.command==16";
					break;
				case "0":
				case "1":
				case "2":
				case "3":
				case "4":
				case "5":
				case "6":
				case "7":
				case "8":
				case "9":
					__code = "rc5.command==" + XMLDUnNoeudFils.InnerText;
					break;
				}

				// Complète le test avec l'adresse de la commande IR
				if ( Valeur_CapteurIR_SELBouton.adresseIR != -1 )
					__code += " and rc5.address==" + Valeur_CapteurIR_SELBouton.adresseIR;

				break;

			}

		}


	}
Example #16
0
        /*
         * Constructeur
         */
        public Valeur_Entier_OpérationNumériques_ENTEntier_SELComparaison_ENTEntier(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs)
        {
            // Déclarations
            // ------------

            String nomDeLAttribut;



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

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

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

                case "Valeur2":
                    __valeur2 = Compilateur.AnalyseUnNoeudDExpression(_UID, XMLDUnNoeudFils.FirstChild, _blocPrécédent, _groupeDeBlocs);
                    break;

                case "Opération":
                    switch (XMLDUnNoeudFils.InnerText)
                    {
                    case "ADDITION":               opération = (int)__OPÉRATIONS_NUMÉRIQUES.NOM.ADDITION; break;

                    case "SOUSTRACTION":   opération = (int)__OPÉRATIONS_NUMÉRIQUES.NOM.SOUSTRACTION; break;

                    case "MULTIPLICATION": opération = (int)__OPÉRATIONS_NUMÉRIQUES.NOM.MULTIPLICATION; break;

                    case "DIVISION":               opération = (int)__OPÉRATIONS_NUMÉRIQUES.NOM.DIVISION; break;

                    case "MODULO":                 opération = (int)__OPÉRATIONS_NUMÉRIQUES.NOM.MODULO; break;
                    }
                    break;
                }
            }


            switch (opération)
            {
            case (int)__OPÉRATIONS_NUMÉRIQUES.NOM.ADDITION:
                __code = "(" + __valeur1.codePourLeSéquenceur + "+" + __valeur2.codePourLeSéquenceur + ")";
                break;

            case (int)__OPÉRATIONS_NUMÉRIQUES.NOM.SOUSTRACTION:
                __code = "(" + __valeur1.codePourLeSéquenceur + "-" + __valeur2.codePourLeSéquenceur + ")";
                break;

            case (int)__OPÉRATIONS_NUMÉRIQUES.NOM.MULTIPLICATION:
                __code = "(" + __valeur1.codePourLeSéquenceur + "*" + __valeur2.codePourLeSéquenceur + ")";
                break;

            case (int)__OPÉRATIONS_NUMÉRIQUES.NOM.DIVISION:
                __code = "(" + __valeur1.codePourLeSéquenceur + "/" + __valeur2.codePourLeSéquenceur + ")";
                break;

            case (int)__OPÉRATIONS_NUMÉRIQUES.NOM.MODULO:
                __code = "(" + __valeur1.codePourLeSéquenceur + "%" + __valeur2.codePourLeSéquenceur + ")";
                break;
            }
        }
        /*
         * Constructeur
         */
        public GroupeDInstructions_Si_ENTCondition_Alors(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs, 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");
            if (XMLInterne != null)
            {
                __blocsInternes = new __BlocsInternes(UID + 1, XMLInterne.FirstChild, null, this);
            }
        }
Example #18
0
 /*
  * Constructeur
  */
 public __Paramètre(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs)
 {
 }
        /*
         * Constructeur
         */
        public __Mouvement_Tourne_AvecSensAngle(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs, int _sens, int _angle) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs)
        {
            // Initialisation des membres
            // --------------------------

            __sens = _sens;

            angle = _angle;


            // Liste les séquences du bloc
            // ---------------------------
            __séquences.Add((Séquence)Séquence_1);
            __séquences.Add((Séquence)Séquence_2);
        }
        /*
         * 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;
        }
        /*
         * Constructeur
         */
        public Mouvement_Tourne_SELSens_SAIAngle(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs, (int)__MOTEUR.TOURNE.PAS, 0)
        {
            // Déclarations
            // ------------

            String nomDeLAttribut;


            // 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 "Angle":
                    angle = Int32.Parse(XMLDUnNoeudFils.InnerText);
                    break;

                case "Sens":
                    switch (XMLDUnNoeudFils.InnerText)
                    {
                    case "A_DROITE":       __sens = (int)__MOTEUR.TOURNE.A_DROITE; break;

                    case "A_GAUCHE":       __sens = (int)__MOTEUR.TOURNE.A_GAUCHE; break;
                    }
                    break;
                }
            }
        }
 /*
  * Constructeur
  */
 public Evénement_ArrêterLeChronomètre(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs)
 {
     // Liste les séquences du bloc
     // ---------------------------
     __séquences.Add((Séquence)Séquence_1);
 }
        /*
         * Méthode privées
         */



        /*
         * Constructeur
         */
        public Mouvement_VitesseDesRoues_ENTVitesseAGauche_ENTVitesseADroite(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs, (int)__MOTEUR.SENS.LIBRE, 0, 0)
        {
            // Déclarations
            // ------------

            String nomDeLAttribut;


            // 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 "VitesseAGauche":
                    __vitesseAGauche = 5 * int.Parse(XMLDUnNoeudFils.InnerText);
                    break;

                case "VitesseADroite":
                    __vitesseADroite = 5 * int.Parse(XMLDUnNoeudFils.InnerText);
                    break;
                }
            }
        }
Example #24
0
        /*
         * Constructeur
         */
        public __Lumières_AllumeLesLEDs_AvecLEDCouleurDurée(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs, int _led, int _couleur, float _durée) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs)
        {
            // Initialisation des membres
            // --------------------------

            __couleur = _couleur;
            __led     = _led;

            durée = _durée;


            // Liste les séquences du bloc
            // ---------------------------
            __séquences.Add((Séquence)Séquence_1);
            __séquences.Add((Séquence)Séquence_2);
        }
Example #25
0
 /*
  * Constructeur
  */
 public Contrôle_SortDeLaBoucleFaire(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs)
 {
     // Liste les séquences du bloc
     // ---------------------------
     __séquences.Add((Séquence)Séquence_1);
 }
Example #26
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);
            }
        }
Example #27
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);
            }
        }
Example #28
0
        /*
         * Constructeur
         */
        public Valeur_Booléen_ComparaisonNumériques_ENTEntier_SELComparaison_ENTEntier(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs)
        {
            // Déclarations
            // ------------

            String nomDeLAttribut;



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

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

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

                case "Valeur2":
                    __valeur2 = Compilateur.AnalyseUnNoeudDExpression(_UID, XMLDUnNoeudFils.FirstChild, _blocPrécédent, _groupeDeBlocs);
                    break;

                case "Comparaison":
                    switch (XMLDUnNoeudFils.InnerText)
                    {
                    case "ÉGAL":                           __comparaison = (int)__COMPARAISONS_NUMÉRIQUES.NOM.ÉGAL; break;

                    case "DIFFÉRENT":                      __comparaison = (int)__COMPARAISONS_NUMÉRIQUES.NOM.DIFFÉRENT; break;

                    case "PLUS_GRAND":                     __comparaison = (int)__COMPARAISONS_NUMÉRIQUES.NOM.PLUS_GRAND; break;

                    case "PLUS_PETIT":                     __comparaison = (int)__COMPARAISONS_NUMÉRIQUES.NOM.PLUS_PETIT; break;

                    case "PLUS_GRAND_OU_ÉGAL":     __comparaison = (int)__COMPARAISONS_NUMÉRIQUES.NOM.PLUS_GRAND_OU_ÉGAL; break;

                    case "PLUS_PETIT_OU_ÉGAL":     __comparaison = (int)__COMPARAISONS_NUMÉRIQUES.NOM.PLUS_PETIT_OU_ÉGAL; break;
                    }
                    break;
                }
            }


            switch (__comparaison)
            {
            case (int)__COMPARAISONS_NUMÉRIQUES.NOM.ÉGAL:
                __code = "(" + __valeur1.codePourLeSéquenceur + "==" + __valeur2.codePourLeSéquenceur + ")";
                break;

            case (int)__COMPARAISONS_NUMÉRIQUES.NOM.DIFFÉRENT:
                __code = "(" + __valeur1.codePourLeSéquenceur + "!=" + __valeur2.codePourLeSéquenceur + ")";
                break;

            case (int)__COMPARAISONS_NUMÉRIQUES.NOM.PLUS_GRAND:
                __code = "(" + __valeur1.codePourLeSéquenceur + ">" + __valeur2.codePourLeSéquenceur + ")";
                break;

            case (int)__COMPARAISONS_NUMÉRIQUES.NOM.PLUS_PETIT:
                __code = "(" + __valeur1.codePourLeSéquenceur + "<" + __valeur2.codePourLeSéquenceur + ")";
                break;

            case (int)__COMPARAISONS_NUMÉRIQUES.NOM.PLUS_GRAND_OU_ÉGAL:
                __code = "(" + __valeur1.codePourLeSéquenceur + ">=" + __valeur2.codePourLeSéquenceur + ")";
                break;

            case (int)__COMPARAISONS_NUMÉRIQUES.NOM.PLUS_PETIT_OU_ÉGAL:
                __code = "(" + __valeur1.codePourLeSéquenceur + "<=" + __valeur2.codePourLeSéquenceur + ")";
                break;
            }
        }
Example #29
0
        /*
         * Constructeur
         */
        public Paramètre_InitialiseLeChronomètre_SAIValeur(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs)
        {
            // Déclarations
            // ------------
            String nomDeLAttribut;



            // 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 "Valeur":
                    chronomètre = Int32.Parse(XMLDUnNoeudFils.InnerText);
                    break;
                }
            }


            // Liste les séquences du bloc
            // ---------------------------
            __séquences.Add((Séquence)Séquence_1);
        }
Example #30
0
 /*
  * Constructeur
  */
 public Valeur_Entier_Température(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs)
 {
     __code = "(temperature/10)";
 }