private static Vdf Get(VdfTokenizer tokenizer, bool child = false) { var section = new Vdf(); while (!tokenizer.IsFinished) { switch (tokenizer.ReadNext()) { case null: if (child) throw new Exception("Unexpected end of file"); return section; case VdfToken.End: if (!child) throw new Exception("Unexpected end of section"); return section; case VdfToken.Begin: throw new Exception("Unexpected begin of section"); } var key = tokenizer.Consume(); switch (tokenizer.ReadNext()) { case null: throw new Exception("Unexpected end of file"); case VdfToken.End: throw new Exception("Unexpected end of section"); case VdfToken.Begin: section.Children[key] = Get(tokenizer, true); break; case VdfToken.String: section.Values[key] = tokenizer.Consume(); break; } } return section; }
private static Vdf Get(VdfTokenizer tokenizer, bool child = false) { var section = new Vdf(); while (!tokenizer.IsFinished) { switch (tokenizer.ReadNext()) { case null: if (child) { throw new Exception("Unexpected end of file"); } return(section); case VdfToken.End: if (!child) { throw new Exception("Unexpected end of section"); } return(section); case VdfToken.Begin: throw new Exception("Unexpected begin of section"); } var key = tokenizer.Consume(); switch (tokenizer.ReadNext()) { case null: throw new Exception("Unexpected end of file"); case VdfToken.End: throw new Exception("Unexpected end of section"); case VdfToken.Begin: section.Children[key] = Get(tokenizer, true); break; case VdfToken.String: section.Values[key] = tokenizer.Consume(); break; } } return(section); }