コード例 #1
0
 /// <summary>
 /// ///////////////////////////////////////////////////////////
 /// </summary>
 /// <param name="nNiveau"></param>
 /// <returns></returns>
 protected override IExpression GetExpression(int nNiveau)
 {
     if (nNiveau == 4)
     {
         IExpression expN;
         expN = GetExpression(nNiveau - 1);
         if (expN == null)
         {
             return(null);
         }
         int nOldPosPile = ContexteAnalyse.GetPosPile();
         CTokenAnalyseSyntaxique token = ContexteAnalyse.PopToken();
         if (token == null)
         {
             return(expN);
         }
         if (token.GetNiveauToken() == nNiveau && token is CTokenOperateur)
         {
             //Si on l'a , c'est bien
             CTokenOperateur tokOp = (CTokenOperateur)token;
             IExpression     exp   = AllocateurExpression.GetExpression(tokOp.Operateur.Id);
             exp.Parametres.Add(expN);
             CResultAErreur result = exp.VerifieParametres();
             return(exp);
         }
         else                // sinon, c'est pas grave
         {
             ContexteAnalyse.SetPosPile(nOldPosPile);
         }
         return(expN);
     }
     return(base.GetExpression(nNiveau));
 }
コード例 #2
0
        /// /////////////////////////////////////////////////
        protected override bool BaseNiveau(int nNiveau)
        {
            //Greffon pour le not
            if (nNiveau == 4)
            {
                PasseCaracteresControle();
                IsOperateurNiveauN(nNiveau, false);                 //Not facultatif
            }
            if (nNiveau == 0)
            {
                //Si c'est null, pas de paramètres
                PasseCaracteresControle();
                if (Identifie("null", 0))
                {
                    ContexteAnalyse.m_nPositionAnalyse += "null".Length;
                    ContexteAnalyse.PushToken(new CTokenConstante(ContexteAnalyse.m_nPositionAnalyse, null));
                    return(true);
                }
            }

            return(base.BaseNiveau(nNiveau));
        }