public CreoleStripeSimpleParser(String line, CreoleContext creoleContext, FontConfiguration fontConfiguration,
			ISkinSimple skinParam, boolean modeSimpleLine) {
		this.fontConfiguration = fontConfiguration;
		this.modeSimpleLine = modeSimpleLine;
		this.skinParam = skinParam;

		final Pattern p4 = MyPattern.cmpile("^--([^-]*)--$");
		final Matcher m4 = p4.matcher(line);
		if (m4.find()) {
			this.line = m4.group(1);
			this.style = new StripeStyle(StripeStyleType.HORIZONTAL_LINE, 0, '-');
			return;
		}

		final Pattern p5 = MyPattern.cmpile("^==([^=]*)==$");
		final Matcher m5 = p5.matcher(line);
		if (m5.find()) {
			this.line = m5.group(1);
			this.style = new StripeStyle(StripeStyleType.HORIZONTAL_LINE, 0, '=');
			return;
		}
		final Pattern p5b = MyPattern.cmpile("^===*==$");
		final Matcher m5b = p5b.matcher(line);
		if (m5b.find()) {
			this.line = "";
			this.style = new StripeStyle(StripeStyleType.HORIZONTAL_LINE, 0, '=');
			return;
		}

		if (modeSimpleLine == false) {
			final Pattern p6 = MyPattern.cmpile("^__([^_]*)__$");
			final Matcher m6 = p6.matcher(line);
			if (m6.find()) {
				this.line = m6.group(1);
				this.style = new StripeStyle(StripeStyleType.HORIZONTAL_LINE, 0, '_');
				return;
			}
		}

		final Pattern p7 = MyPattern.cmpile("^\\.\\.([^\\.]*)\\.\\.$");
		final Matcher m7 = p7.matcher(line);
		if (m7.find()) {
			this.line = m7.group(1);
			this.style = new StripeStyle(StripeStyleType.HORIZONTAL_LINE, 0, '.');
			return;
		}

		final Pattern p1 = MyPattern.cmpile("^(\\*+)([^*]+(?:[^*]|\\*\\*[^*]+\\*\\*)*)$");
		final Matcher m1 = p1.matcher(line);
		if (m1.find()) {
			this.line = m1.group(2).trim();
			final int order = m1.group(1).length() - 1;
			this.style = new StripeStyle(StripeStyleType.LIST_WITHOUT_NUMBER, order, '\0');
			return;
		}

		final Pattern p2 = MyPattern.cmpile("^(#+)(.+)$");
		final Matcher m2 = p2.matcher(CharHidder.hide(line));
		if (m2.find()) {
			this.line = CharHidder.unhide(m2.group(2)).trim();
			final int order = CharHidder.unhide(m2.group(1)).length() - 1;
			this.style = new StripeStyle(StripeStyleType.LIST_WITH_NUMBER, order, '\0');
			return;
		}

		final Pattern p3 = MyPattern.cmpile("^(=+)(.+)$");
		final Matcher m3 = p3.matcher(line);
		if (m3.find()) {
			this.line = m3.group(2).trim();
			final int order = m3.group(1).length() - 1;
			this.style = new StripeStyle(StripeStyleType.HEADING, order, '\0');
			return;
		}

		this.line = line;
		this.style = new StripeStyle(StripeStyleType.NORMAL, 0, '\0');

	}