final int checkPoint = match.getCheckPoint();
while (current instanceof AssignmentExpression &&
((AssignmentExpression) current).getOperator() == AssignmentOperatorType.ASSIGN) {
final AssignmentExpression assignment = (AssignmentExpression) current;
final Expression target = assignment.getLeft();
if (!_targetPattern.matches(target, match)) {
assignments.clear();
match.restoreCheckPoint(checkPoint);
break;
}
assignments.addLast(assignment);
current = assignment.getRight();
}
if (assignments.isEmpty() || !_valuePattern.matches(assignments.getLast().getRight(), match)) {
match.restoreCheckPoint(checkPoint);
return false;