static TomlValue ParseRHS(Utf8String segment, int parentIndex) { switch ((char)segment[0]) { case '+': case '-': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if (segment.IsInt) { return(new TomlValue(segment.SplitInteger(), TomlValueType.Integer, parentIndex)); } else { return(new TomlValue(segment, TomlValueType.Float, parentIndex)); } case '"': { int pos; if (segment.TrySearchAscii((Byte)'"', 1, out pos)) { return(new TomlValue(segment.Subbytes(0, pos + 1), TomlValueType.BasicString, parentIndex)); } else { throw new ParserException("no close string: " + segment); } } case '[': { throw new NotImplementedException(); } } throw new NotImplementedException(); }