コード例 #1
0
        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));
            }
        }
コード例 #2
0
        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));
        }