private IPrototype ParseTag(Browser browser) { var tagParser = new TagParser(); var tag = tagParser.Parse(browser); browser.Move(TagEndToken.Length); browser.JumpReaderCursorToCursor(); if (tag.Name == "CSV") { return(ParseTagCsv(browser, tag)); } else { return(ParseTagData(tag)); } }
public Template ParseWithEnd(Browser browser, string contentTagName) { var prototypes = new List <IPrototype>(); while (browser.CursorIsIn) { while (browser.CursorIsIn && !browser.StartWith(TagParser.StartToken)) { browser.Move(); } prototypes.Add(new StaticText(browser.Read())); if (browser.CursorIsIn) { var tag = _tagParser.Parse(browser); if (tag.Name == "/" + contentTagName) { break; } prototypes.Add(ParseTag(tag, browser)); } } return(new Template(prototypes)); }