void valider() {
//1 - chaque op à la meme parité
//2 - chaque op à un op et un résultat
// Donc, tester parité avant tout!
for(int i = 0; i < (int)bdc.size(); i++){
if (bdc.at(i).getIds().size() < 2) {
throw "Erreur : Une clause doit avoir au moin un opérateur et un résultat \n";
}
}
vector<string> uniq_ops;
ensOperateur(uniq_ops);
for(int i = 0; i < (int)uniq_ops.size(); i++){
//stack pour tester les arités
stack<int> arite;
for(int j = 0; j < (int)bdc.size(); j++){
if(uniq_ops.at(i) == bdc.at(j).getOp()) {
arite.push(bdc.at(j).getArite());
}
}
//vérifie l'arité de cette opérateur
int ariteInt = arite.top();
for(int s = 0; s < (int)arite.size(); s++){
if(arite.top() != ariteInt) {
throw "Erreur : Les opérateurs pareils doivent avoir le même nombre d'arguments \n";
}
arite.pop();
}
}
}