All pastes #219945 Raw Edit

Sans titre

public text v1 · immutable
#219945 ·published 2006-10-24 23:08 UTC
rendered paste body
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();
		}		
	}
}