@Override
	public boolean checkGrammarTree(GrammarTree grammarTree,
			SyntaxAnalyser syntaxAnalyser) throws GrammarCheckException {
		GrammarTree tree = grammarTree.getSubNode(0);
		// there are tree words need to be handled , at least
		if (tree == null || tree.getSiblingAmount() < 3)
			this.throwExceptionAndAddErrorMsg("where", syntaxAnalyser, null);
		while (true) {
			// first word
			if (tree.getNextAmount() + 1 < 3) {
				throwExceptionAndAddErrorMsg("where", syntaxAnalyser, null);
			}
			checkToken(tree, TokenType.IDENTIFIER, null, true, syntaxAnalyser);
			String dimensionName = tree.getValue().getToken();
			// second word
			tree = tree.next();
			boolean isEquals = checkToken(tree, TokenType.KEYWARD, "equals",
					false, syntaxAnalyser);
			if (isEquals) {
				tree = this.checkEqualSentence(tree, syntaxAnalyser,
						dimensionName);
			} else {
				tree = this.checkBetweenAndSentence(tree, syntaxAnalyser,
						dimensionName);
			}
			if (tree.hasNext())
				tree = tree.next();
			else
				break;
		}

		return true;
	}