private void verifyComponentStart(Stack<LiteralComponent> componentStack, LiteralComponent componentToCheck,
			String literalName) throws ComponentMismatchException {
		if (componentStack.size() == 0) {
			if (componentToCheck.compareTo(LiteralComponent.NAME_START) > 0) throw new ComponentMismatchException(
					ErrorMessage.LITERAL_NAME_MISSING);
		} else {
			LiteralComponent lastComponent = componentStack.peek();
			if (lastComponent.equals(LiteralComponent.NAME_START)
					&& componentToCheck.compareTo(LiteralComponent.NAME_END) > 0) {
				if ("".equals(literalName)) throw new ComponentMismatchException(ErrorMessage.LITERAL_NAME_MISSING);
				lastComponent = LiteralComponent.NAME_END;
				componentStack.push(lastComponent);
			}
			if (lastComponent.ordinal() % 2 != 0) throw new ComponentMismatchException(
					ErrorMessage.LITERAL_COMPONENT_MISMATCH, new Object[] { "" + lastComponent.getSymbol() + ":::::"
							+ componentToCheck.getSymbol() });
			else if (lastComponent.compareTo(componentToCheck) >= 0) throw new ComponentMismatchException(
					ErrorMessage.LITERAL_COMPONENT_MISORDERED, new Object[] { componentToCheck.getSymbol() });
		}
		componentStack.push(componentToCheck);
	}