private void analyse() {
		if (null == this.expression) {
			throw new java.lang.IllegalArgumentException("expression can not be null.");
		}

		this.expressionList = new ArrayList<String>();

		int lastFromIndex = 0;
		int length = this.expression.length();
		int splitStringLen = IHtmlElementExpression.SPLIT_ELEMENT_STRING.length();
		int index;
		while ((index = this.expression.indexOf(
				IHtmlElementExpression.SPLIT_ELEMENT_STRING, lastFromIndex)) != -1) {
			// 如果出现表达式组，则直接截断至末尾，并结束解析
			if (this.expression.charAt(lastFromIndex) == IHtmlElementExpression.SPLIT_ARRAY_START_CHAR) {
				this.addExpression(this.expression.substring(lastFromIndex));
				lastFromIndex = length;
				break;
			}
			
			if (lastFromIndex != index) {
				// 取出根据分隔符分割出来的元素
				String val = this.expression.substring(lastFromIndex, index);
				this.addExpression(val);
			}

			lastFromIndex = index + splitStringLen;
			if (lastFromIndex >= length - 1) {
				continue;
			}
		}

		if ((lastFromIndex >= 0) && (lastFromIndex != length)) {
			this.addExpression(this.expression.substring(lastFromIndex));
		}

		this.expressionLength = this.expressionList.size();
	}