public TokenArray(ITomlToken first, IEnumerable<ITomlToken> rest) { Value = new List<ITomlToken>(); Value.Add(first); foreach (ITomlToken item in rest) { Value.Add(item); } }
/// <summary> /// Unboxes a data element within an array or recurses to further process an array. /// </summary> private static object MakeNestedHash(ITomlToken tomlToken) { Hashtable nht = new Hashtable(); var a = tomlToken as TokenArray; if (a == null) { return nht; } for (int i = 0; i < a.Value.Count; i++) { if (a.Value[ i ] is TokenArray) { nht[ i ] = MakeNestedHash(a.Value[ i ]); } else { nht[ i ] = UnboxTomlObject(a.Value[ i ]); } } return nht; }
/// <summary> /// Unboxes to a primitive or a TomlDocument. /// </summary> private static object UnboxTomlObject(ITomlToken data) { if (data is TokenString) { return ( data as TokenString ).Value; } if (data is TokenInteger) { return ( data as TokenInteger ).Value; } if (data is TokenFloat) { return ( data as TokenFloat ).Value; } if (data is TokenDateTime) { return ( data as TokenDateTime ).Value; } if (data is TokenBool) { return ( data as TokenBool ).Value; } if (data is TokenArray) { return new TomlDocument(( data as TokenArray ).Value); } throw new ArgumentException("Unusable data type: " + data.GetType()); }
public TomlKeyValue(string key, ITomlToken val) { Key = key; Value = val; }