private Element parseChild() throws ParserException, XMLStreamException {
		List<Element> children = new ArrayList<>();
		while (is(START_ELEMENT)) {
			String name = getNameOfStartElement();
			switch (name) {
				case "block":
					children.add(parseBlock());
					break;
				case "procedure":
					children.add(parseProcedure());
					break;
				case "break":
					children.add(parseBreak());
					break;
				case "branch":
					children.add(parseBranch());
					break;
				case "switch":
					children.add(parseSwitch());
					break;
				case "loop":
					children.add(parseLoop());
					break;
				default:
					throw new ParserException("Unknown child type: " + name);
			}
		}
		switch (children.size()) {
			case 0:
				return new Empty();
			case 1:
				return children.get(0);
			default:
				return new Sequence(children);
		}
	}