示例#1
0
        /// <summary>
        /// Lecteur d'une variable
        /// </summary>
        /// <returns></returns>
        private IElementCalcul LitVariable()
        {
            Token          nomVariable = _tokenCourant;
            IElementCalcul retour;

            LitTokenSuivant();
            if (_tokenCourant.TypeToken == ENTypeToken.ENEgal)
            {
                LitTokenSuivant();
                retour = LitSomme();
                retour = new ElementCalculAffectVar(new ElementCalculVariable(nomVariable.Text), retour);
            }
            else
            {
                if (_paramsFonctionCourante.ContainsKey(nomVariable.Text)) //C'est le paramètre de la fonction en court de définition
                {
                    retour = new ElementCalculVariable(_paramsFonctionCourante[nomVariable.Text]);
                }
                else //C'est une variable
                {
                    retour = new ElementCalculVariable(nomVariable.Text);
                }
            }
            return(retour);
        }
示例#2
0
        /// <summary>
        /// Lecteur d'une variable
        /// </summary>
        /// <returns></returns>
        private IElementCalcul LitVariable()
        {
            string         nomVariable = mTokenCourant;
            IElementCalcul retour;

            LitToken();
            if (mTokenCourant == "=")
            {
                LitToken();
                retour = LitSomme();
                retour = new ElementCalculAffectVar(new ElementCalculVariable(nomVariable), retour);
            }
            else
            {
                if (mParamsFonctionCourante.ContainsKey(nomVariable)) //C'est le paramètre de la fonction en court de définition
                {
                    retour = new ElementCalculVariable(mParamsFonctionCourante[nomVariable]);
                }
                else //C'est une variable
                {
                    retour = new ElementCalculVariable(nomVariable);
                }
            }
            return(retour);
        }
示例#3
0
 /// <summary>
 /// Constructeur
 /// </summary>
 public ElementCalculAffectVar(ElementCalculVariable variable, IElementCalcul valeur)
 {
     if (variable == null)
     {
         throw new ArgumentException(Calculateur.ResourceManager.GetString("variableNull"));
     }
     _variable = variable;
     _valeur   = valeur;
 }
 /// <summary>
 /// Visit d'un ElementCalculVariable
 /// </summary>
 /// <param name="elt"></param>
 void IVisiteurIElement.Visit(ElementCalculVariable elt)
 {
     if (_contexFonction != null && _contexFonction.ContientVariable(elt.NomVariable))
     {
         _valeurCourante = _contexFonction.ObtenirValeur(elt.NomVariable);
     }
     else if (_contexVariables.ContientVariable(elt.NomVariable))
     {
         _valeurCourante = _contexVariables.ObtenirValeur(elt.NomVariable);
     }
     else
     {
         throw new ArgumentException(string.Format(System.Globalization.CultureInfo.CurrentUICulture, Calculateur.ResourceManager.GetString("VariableIndefini"), elt.NomVariable));
     }
 }