private void getTruthTable() {
		variables = "";
		// on extrait toutes les variables de la fonction
		getVariables();
		triVariables();
		if (variables.length() > 8)
			error = new SyntaxErrorException(
					Tools.getLocalizedString("TOO_MUCH_VARIABLES"));

		// on initialise la table de vérité
		TruthTable = new boolean[(int) Math.pow(2, variables.length())];
		int lesBit[] = new int[variables.length()];
		for (int i = 0; i < lesBit.length; i++) {
			lesBit[i] = 0;
		}
		// on remplit la table de vérité
		for (int j = 0; j < TruthTable.length; j++) {
			// on donne les valeurs aux variables et on les ajoute à l'evalueur
			// par exemple pour j=0, on obtiendra pour 3 var: lesBit={0, 0, 0}
			decimalToBinary(j, lesBit, variables.length());
			int k = 0;
			char[] expression = exprBool.toCharArray();
			for (int i = 0; i < variables.length(); i++) {
				for (int index = 0; index < expression.length; index++) {
					if (expression[index] == variables.charAt(i))
						expression[index] = (char) (lesBit[k] + 48);
				}
				k++;
			}
			Evaluator e = new Evaluator(new String(expression));
			boolean r;
			try {
				r = e.evaluate();
				TruthTable[j] = r;
			} catch (SyntaxErrorException error) {
				this.setError(error);
				return;
			}
		}
	}