@Override
	public int down() throws ParsingException
	{
		if (!canStepDown)
		{
			throw new InvalidParseCommandException("Can't step down. Element " + currentElement.getName()
					+ " does not have any unparsed child elements", lastEvent.getLocation().getLineNumber(), lastEvent
					.getLocation().getColumnNumber());
		}

		// Add the current element to the stack, then tell the parser that it should parse the children of this element
		// next time.
		parseStack.push(currentElement);
		++targetDepth;
		currentElement = null;

		canStepDown = false;

		return parseStack.size();
	}