int endIndexOfCommentsAndQuotes(char[] expressionChars, int i, int position) {
		String[] startSkip = getStartSkip();
		String[] stopSkip = getStopSkip();

		int offset = startSkip[i].length();
		for (int m = position + offset; m < expressionChars.length; m++) {
			// 由于注释起始标识在getStartSkip()中index为i,所以结束标识必然是getStopSkip()中index为i的那个。
			if (expressionChars[m] == stopSkip[i].charAt(0)) {
				boolean endMatch = true;
				int endPos = m;
				for (int n = 1; n < stopSkip[i].length(); n++) {
					if (m + n >= expressionChars.length) {
						// last comment not closed properly
						return expressionChars.length;
					}
					if (!(expressionChars[m + n] == stopSkip[i].charAt(n))) {
						endMatch = false;
						break;
					}
					endPos = m + n;
				}
				if (endMatch) {
					// found character sequence ending comment or quote
					return endPos + 1;
				}
			}
		}
		// character sequence ending comment or quote not found
		return expressionChars.length;
	}