コード例 #1
0
        /// <summary>
        /// ---------------------------------------------------------------------------
        /// |     Analyse lexicale : évaluation d'une variable ou d'une constante     |
        /// ---------------------------------------------------------------------------
        /// </summary>
        /// <returns></returns>
        private IElementCalcul LitValeur()
        {
            IElementCalcul retour;

            if (_tokenCourant.TypeToken == ENTypeToken.ENNombre)
            {
                // C'est un nombre
                retour = new ElementCalculValeur(_tokenCourant.Text); // convertion en float
                LitTokenSuivant();
            }
            else if (_tokenCourant.TypeToken == ENTypeToken.ENIdentifiant)//gestion des variables
            {
                retour = LitVariable();
            }
            else
            {
                // Erreur de syntaxe
                throw (new FormatException(Calculateur.ResourceManager.GetString("ErreurSyntaxe")));
            }
            return(retour);
        }
コード例 #2
0
        // ---------------------------------------------------------------------------
        // |     Analyse lexicale : évaluation d'une variable ou d'une constante     |
        // ---------------------------------------------------------------------------
        private IElementCalcul LitValeur()
        {
            IElementCalcul retour;
            EnCaract       typCaractCourant = LitCaractere(mTokenCourant[0]);

            if (typCaractCourant == EnCaract.enCHIFFRE)
            {
                // C'est un nombre
                retour = new ElementCalculValeur(mTokenCourant);                 // convertion en float
                LitToken();
            }
            else if (typCaractCourant == EnCaract.enLETTRE)           //gestion des variables
            {
                retour = LitVariable();
            }
            else
            {
                // Erreur de syntaxe
                throw (new Exception("Erreur de syntaxe"));
            }
            return(retour);
        }
コード例 #3
0
 /// <summary>
 /// Visit d'un ElementCalculValeur
 /// </summary>
 /// <param name="elt"></param>
 void IVisiteurIElement.Visit(ElementCalculValeur elt)
 {
     _valeurCourante = elt.Valeur;
 }