public void Initialize(MarkdownGrammar grammar)
		{
			var prefix = Terms.sp.Repeat(0, 3);
			var value = Terminals.Set("\n\r").Inverse().Repeat(1).WithName("value");
			var suffix = Terminals.Eol & ((+Terminals.Literal("=")).Named("h1") | (+Terminals.Literal("-")).Named("h2")) & Terms.ows & Terminals.Eol;
			this.Add(prefix, value, suffix, -Terms.blankLine);
		}
		public void Initialize(MarkdownGrammar grammar)
		{
			var prefix = Terminals.Literal("#").Repeat(1);
			var value = Terminals.Set("\n\r").Inverse().Repeat(1).Until(Terms.ows & -Terminals.Literal("#") & Terms.eolorf, true);
			prefix.Name = "prefix";
			value.Name = "value";
			this.Add(prefix, Terms.ows, value, -Terms.blankLine);
		}
		public void Initialize(MarkdownGrammar grammar)
		{
			var prefix = "[" & (+Terminals.Set("]\n\r").Inverse()).WithName("id") & "]:";
			var link = (+Terminals.WhiteSpace.Inverse()).WithName("link");
			var title = new StringParser { Name = "title", BeginQuoteCharacters = "\"'(".ToCharArray(), EndQuoteCharacters = "\"')".ToCharArray() };

			Add(Terms.sp.Repeat(0, 3), prefix, Terms.ows, link, Terms.ows, ~title, +Terms.blankLine | Terms.eof);
		}
示例#4
0
		public void Initialize(MarkdownGrammar grammar)
		{
			var prefix = Terminals.Repeat(c => c == ' ' || c == '\t', 0, 3);
			var dash = Terminals.Literal("-").Repeat(3).SeparatedBy(Terms.ows).Until(Terms.eolorf);
			var star = Terminals.Literal("*").Repeat(3).SeparatedBy(Terms.ows).Until(Terms.eolorf);
			var underscore = Terminals.Literal("_").Repeat(3).SeparatedBy(Terms.ows).Until(Terms.eolorf);
			this.Add(prefix, dash | star | underscore, -Terms.blankLine);
		}
示例#5
0
		public void Initialize(MarkdownGrammar grammar)
		{
			var content = new RepeatParser().Until(Terms.eolorf);
			content.Name = "content";
			var line = grammar.Indent & content;
			Inner = line;
			this.Minimum = 1;
			this.SeparatedBy(+(Terms.ows & Terms.eol.Named("sep"))).Until(Terms.EndOfSection(line.Not()), true);
		}
		public void Initialize(MarkdownGrammar grammar)
		{
			var prefix = Terms.sp.Repeat(0, 3);
			var content = (~prefix & Terms.words & -Terms.sp);
			var dlheader = new DoubleLineHeaderSection();
			dlheader.Initialize(grammar);
			var finish = Terminals.Set("#>") | dlheader;
			var lines = content.Repeat(1).SeparatedBy(Terms.eol).Until((Terms.eol & finish.NonCaptured()) | Terms.EndOfSection(minLines: 2), true);
			Add(grammar.Prefix, prefix, lines.Named("lines"));
		}
		public void Initialize(MarkdownGrammar grammar)
		{
			this.grammar = grammar;
			var prefix = (grammar.Prefix & -Terms.sp) & Terminals.Literal(">");
			var value = new RepeatParser(1).Until(Terms.eolorf, true);
			prefix.Name = "prefix";
			value.Name = "value";
			this.Inner =  prefix.Separate() & Terms.ows & value & -Terms.blankLine;
			this.Minimum = 1;
		}
示例#8
0
		public void Initialize(MarkdownGrammar grammar)
		{
			var prefix = Terms.sp.Repeat(0, 3);
			var star = ((Parser)"*" | "-" | "+").WithName("star") & Terms.ws;
			var num = (+Terminals.Digit).WithName("num") & "." & Terms.ows;
			var start = (prefix & (num | star)).Separate();

			var content = grammar.Encoding.ReplacementsWithAnyChar().Repeat().Until(Terms.blankLine & (Terms.blankLine | Terms.ows & start));
			content.Name = "content";
			var line = (grammar.PrefixSpOrHt & start & content & Terms.blankLineOrEof);
			var inner = grammar.CreateInnerReplacements().WithName("inner");
			var spacing = (-Terms.blankLine).WithName("spacing");
			var lineWithSpacing = line & ~(-Terms.blankLine & inner) & spacing;
			Inner = lineWithSpacing.WithName("line");
			Minimum = 1;

			this.Until(Terms.EndOfSection(line.Not()), capture: true);
		}
		public void Initialize(MarkdownGrammar grammar)
		{
			Add("  ", Terminals.Eol);
		}
示例#10
0
		public void Initialize(MarkdownGrammar grammar)
		{
			var inner = grammar.Encoding.Replacements();
			Add("**" & Terms.ows & +((inner | Terminals.Set("*\n\r").Inverse())) & "**");
			Add("__" & Terms.ows & +((inner | Terminals.Set("_\n\r").Inverse())) & "__");
		}
示例#11
0
		public void Initialize(MarkdownGrammar grammar)
		{
			var parens = +(Terminals.Set("\\").Not() & Terminals.Literal("`"));
			Add(new BalancedParser { Surrounding = parens }/*, (parens & new RepeatParser().Until(Terminals.Literal("`"), true) & parens)*/);
		}
示例#12
0
		public void Initialize(MarkdownGrammar grammar)
		{
			Add(new HtmlElementParser { MatchContent = true, Name = "html" }, -Terms.blankLine);
		}
示例#13
0
		public void Initialize(MarkdownGrammar grammar)
		{
			this.Add("&" & ~(+Terminals.Letter & ";"), Terminals.Set("<>\""), Terminals.Literal("\\") & Terminals.Set("&><\\`*_{}[]()#+-.!"));
		}