/// <summary> /// Json text into a tree. /// </summary> /// <param name="text"></param> /// <param name="lineFormat"></param> /// <returns></returns> public ILineTree ReadLineTree(TextReader text, ILineFormat lineFormat = default) { LineTree root = new LineTree(); using (var ini = new IniTokenizer(text.ReadToEnd())) ReadIniIntoTree(ini, root, lineFormat, null); return(root); }
/// <summary> /// Json text into a tree. /// </summary> /// <param name="text"></param> /// <param name="lineFormat">unused</param> /// <returns></returns> public ILineTree ReadLineTree(TextReader text, ILineFormat lineFormat = default) { LineTree root = new LineTree(); using (var json = new JsonTextReader(text)) { ReadJsonIntoTree(json, root, lineFormat, null); } return(root); }
/// <summary> /// Convert <paramref name="lines"/> to Key Tree of one level. /// </summary> /// <param name="lines"></param> /// <param name="lineFormat"></param> /// <returns></returns> public static ILineTree ToLineTree(this IEnumerable <ILine> lines, ILineFormat lineFormat) { LineTree tree = new LineTree(); if (lineFormat is ILinePattern pattern) { tree.AddRange(lines, pattern, lineFormat.GetParameterInfos()); } else { tree.AddRange(lines); } return(tree); }
/// <summary> /// Parse string key of each line and put into <see cref="ILineTree"/>. /// </summary> /// <param name="lines"></param> /// <param name="lineFormat"><see cref="ILineFormatParser"/> parses strings to lines.</param> /// <returns></returns> public static ILineTree ToLineTree(this IEnumerable <KeyValuePair <string, IString> > lines, ILineFormat lineFormat) => LineTree.Create(lines.ToLines(lineFormat), null, lineFormat.GetParameterInfos());