/** * La methode principale qui renvoie l'arbre remplace si il y a matching et null sinon * * @param rule la rule qui va nous permettre de tester notre arbre. * @param arbre l'arbre a tester * @return le return qui vaut null si ça ne match pas, et qui vaut l'arbre remplacé sinon */ public Expression check(Rule rule, Expression arbre) { boolean check; // ici on recupere le pattern de la rule et l'arbre Expression pattern = rule.getLeft(); // Maintenant on homogeneise les noms de variable Hashtable<Character, Expression> ht = new Hashtable<Character, Expression>(); check = this.compareExpressions(pattern, arbre, ht); if (check == false) return null; return replace(rule.getRight(), ht); }