public boolean accept(String mot) {
		int longueur = mot.length();
		if (longueur < 1)
			return false;
		Cellule[][] monTableau = new Cellule[longueur][longueur];
		/* Initialisation des cellules du tableau */
		for (int a = 0; a < longueur; a++)
			for (int b = 0; b < longueur; b++)
				monTableau[a][b] = new Cellule();
		/*
		 * Initialisation de la première ligne du tableau avec les règles
		 * donnant les lettres du mot
		 */
		for (int i = 1; i <= longueur; i++)
			this.ajouteRegleDonnantChar(mot.charAt(i - 1), monTableau[0][i - 1]);

		for (int l = 2; l <= longueur; l++) {
			for (int i = 1; i <= longueur - l + 1; i++) {
				for (int m = 1; m <= l - 1; m++) {
					Set<Variable> lesY = monTableau[m - 1][i - 1].getVariable();
					Set<Variable> lesZ = monTableau[l - m - 1][i + m - 1]
							.getVariable();
					for (Variable y : lesY)
						for (Variable z : lesZ)
							this.ajouteRegleDonnantCouple(y, z,
									monTableau[l - 1][i - 1]);
				}
			}
		}
		return monTableau[longueur - 1][0].getVariable().contains(this.axiome);
	}