public Tree<CellBase> Parse(string input) { var alternationParser = new AlternationParser(); var cells = new ListParser("td", alternationParser, false); var rows = new ListParser("tr", cells, true); var tables = new ListParser("table", rows, true); var items = new ListParser("li", alternationParser, false); var lists = new ListParser("ul", items, true); alternationParser.ChildParsers = new [] {tables, lists}; var root = new CellBase(string.Empty, "div"); var result = new TreeList<CellBase>(root); foreach (Tree<CellBase> branch in tables.Parse(new LexicalAnalyzer(input))) result.AddBranch(branch); return result; }
public Tree<Cell> Parse(string input) { var alternationParser = new AlternationParser(); var cells = new ListParser("td", alternationParser, false, makeTreeCell); var rows = new ListParser("tr", cells, true, makeTreeCell); var tables = new ListParser("table", rows, true, makeTreeCell); var items = new ListParser("li", alternationParser, false, makeTreeCell); var lists = new ListParser("ul", items, true, makeTreeCell); alternationParser.ChildParsers = new [] {tables, lists}; var result = makeTreeCell(string.Empty); result.Value.SetTag("div"); foreach (var branch in tables.Parse(new LexicalAnalyzer(input))) result.Add(branch); return result; }
public Tree <CellBase> Parse(string input) { var alternationParser = new AlternationParser(); var cells = new ListParser("td", alternationParser, false); var rows = new ListParser("tr", cells, true); var tables = new ListParser("table", rows, true); var items = new ListParser("li", alternationParser, false); var lists = new ListParser("ul", items, true); alternationParser.ChildParsers = new [] { tables, lists }; var root = new CellBase(string.Empty, "div"); var result = new TreeList <CellBase>(root); foreach (Tree <CellBase> branch in tables.Parse(new LexicalAnalyzer(input))) { result.AddBranch(branch); } return(result); }
public Tree <Cell> Parse(string input) { var alternationParser = new AlternationParser(); var cells = new ListParser("td", alternationParser, false, makeTreeCell); var rows = new ListParser("tr", cells, true, makeTreeCell); var tables = new ListParser("table", rows, true, makeTreeCell); var items = new ListParser("li", alternationParser, false, makeTreeCell); var lists = new ListParser("ul", items, true, makeTreeCell); alternationParser.ChildParsers = new [] { tables, lists }; var result = makeTreeCell(string.Empty); result.Value.SetTag("div"); foreach (var branch in tables.Parse(new LexicalAnalyzer(input))) { result.Add(branch); } return(result); }