Example #1
0
    public BonValue Read()
    {
        try {
            BonValueType type = (BonValueType)br.ReadByte();
            switch (type)
            {
            case BonValueType.Array: return(ReadArray());

            case BonValueType.Document: return(ReadDoc());

            case BonValueType.Binary: return(ReadBinary());

            case BonValueType.Boolean:
            {
                BonBoolean v = new BonBoolean(br.ReadByte() != 0);
                return(v);
            }

            case BonValueType.Double:
            {
                BonDouble v = new BonDouble(br.ReadDouble());
                return(v);
            }

            case BonValueType.Float:
            {
                BonFloat v = new BonFloat(br.ReadSingle());
                return(v);
            }

            case BonValueType.Int:
            {
                BonInt v = new BonInt(br.ReadInt32());
                return(v);
            }

            case BonValueType.Long:
            {
                BonLong v = new BonLong(br.ReadInt64());
                return(v);
            }

            case BonValueType.Null: return(BonNull.value);

            case BonValueType.String:
            {
                BonString v = new BonString(br.ReadString());
                return(v);
            }

            default: return(null);
            }
        } catch (Exception e) {
            throw SyntaxError(e.Message);
        }
    }
Example #2
0
    private BonValue NextString()
    {
        BonString v = new BonString(GetNextString());

        return(v);
    }