private static int parseChanges(int index, List<Word> wordList,
			List<Change> changes, String comma) throws SQLCompilerException {
		while (index < wordList.size()) {
			ParseExpressionResult result = ExpressionParser.parse(index,
					wordList);
			if (result.getIndex() <= index) {
				break;
			} else {
				Expression exp = result.getExpression();
				check((exp != null && exp.getType() == Expression.EXPRESSION
						&& Keywords.ASSIGN.equals(exp.getName())
						&& exp.getParameters().size() == 2 && exp
						.getParameters().get(0).getType() == Expression.REFER),
						wordList.get(index), ErrorCode.ERROR,
						ErrorCode.SP_INVALID_SENTENCE,
						"Invalid assignment expression.");

				Change change = new Change();
				Expression field = exp.getParameters().get(0);
				change.setDomain(field.getDomain());
				change.setField(field.getName());
				change.setValue(exp.getParameters().get(1));
				changes.add(change);

				index = result.getIndex();

				if (index < wordList.size()) {
					Word w = wordList.get(index);
					if (w.getType() == WordDef.DE && comma.equals(w.getWord())) {
						index++;
					}
				}
			}
		}
		return index;
	}