コード例 #1
0
ファイル: TomlParser.cs プロジェクト: gpsnmeajp/Oredayo4V
        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();
        }