@Override
	public AbstractComponent parse(String string) throws BookParseException {
		if (string == null) {
			throw new BookParseException("String is null");
		}
		try {
			TextComponent component = (TextComponent) factory
					.newComponent(EComponentType.SENTENCE);
			Pattern lexemPattern = Pattern.compile(LEXEM_REGEX,
					Pattern.UNICODE_CHARACTER_CLASS);
			Matcher lexemMatcher = lexemPattern.matcher(string);
			while (lexemMatcher.find()) {
				component
						.addComponent(lexemeParser.parse(lexemMatcher.group()));
			}
			return component;
		} catch (ComponentException e) {
			throw new BookParseException("Sentence parse failed", e);
		}
	}