void cDico_SymbFN::AddF(Fonc_Num aF) { Fonc_Num::tKindOfExpr aK = aF.KindOfExpr(); if ( (aK == Fonc_Num::eIsICste) || (aK == Fonc_Num::eIsRCste) || (aK == Fonc_Num::eIsVarSpec) ) return; cCelDico_SFN & aCel = mDic[aF]; // Lorsque l'expression est marquee comme interessante, // on force l'emission de symbole pour clarifier if (aF.HasNameCpp()) aCel.mNbRef++; aCel.mNbRef++; if ((!aF.IsVarSpec()) && (aCel.mNbRef == 2)) { aCel.mNum = mNumSymb++; tPair * aPair = &(*mDic.find(aF)); mVSymb.push_back(aPair); } }
void cDico_SymbFN::PutSymbs(cElCompileFN & anEnv) { for (INT aK=0 ; aK<INT(mVSymb.size()) ; aK++) { tPair * aPair = mVSymb[aK]; Fonc_Num aPF = aPair->first; anEnv << " double " << aPair->second.NameSymb() << " = " << aPF << ";" ; if (aPF.HasNameCpp()) anEnv << " // " << aPF.NameCpp(); anEnv << "\n"; aPair->second.mSymbPut = true; } anEnv << "\n"; }