docs: function parseElement(start, end, tokens) {
  	const tokenFirst = tokens[start];
  	const tokenLast = tokens[end - 1];
  	const length = end - start;
  
  	if (length === 0) {
  		// Return an error because this parser does not accept empty inputs.
  		return new ParseError(
  			parseErrorMessage("Parser expected an element but received nothing."),
  			start,
  			end
  		);
  	} else if (length === 1) {
  		// The next alternate only matches on inputs with one token.
  		if (
  			tokenFirst.type === "tagOpen" &&
  			tokenFirst.closed === true
  		) {
  			// Verify that the single token is a self-closing tag, and return a
  			// new element without children.
  			return {
  				name: tokenFirst.value,
  				attributes: tokenFirst.attributes,
  				children: []
  			};
  		} else {
  			return new ParseError(
  				parseErrorMessage("Parser expected a self-closing tag or text."),
  				start,
  				end
  			);
  		}
  	} else {
  		// If the input size is greater than one, it must be a full element with
  		// both opening and closing tags that match.
  		if (
  			tokenFirst.type === "tagOpen" &&
  			tokenLast.type === "tagClose" &&
  			tokenFirst.value === tokenLast.value
  		) {
  			// Attempt to parse the inner contents as children. They must be valid
  			// for the element parse to succeed.
  			const children = parseElements(start + 1, end - 1, tokens);
  
  			if (children instanceof ParseError) {
  				return new ParseError(
  					parseErrorMessage("Parser expected valid child elements but encountered an error."),
  					start,
  					end,
  					children
  				);
  			} else {
  				return {
  					name: tokenFirst.value,
  					attributes: tokenFirst.attributes,
  					children
  				};
  			}
  		} else {
  			return new ParseError(
  				parseErrorMessage("Parser expected an element with matching opening and closing tags."),
  				start,
  				end
  			);
  		}
  	}
  }