/// <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); }
/// <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); }
/// <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)); } }