Exemplo n.º 1
0
        private JsonToken(JsonToken.TokenType type, string stringValue = null, double numberValue = 0.0)
        {
            while (true)
            {
IL_5A:
                uint arg_3E_0 = 2482964016u;
                while (true)
                {
                    uint num;
                    switch ((num = (arg_3E_0 ^ 3449118601u)) % 4u)
                    {
                    case 0u:
                        this.numberValue = numberValue;
                        arg_3E_0         = (num * 3564385074u ^ 1989645462u);
                        continue;

                    case 1u:
                        this.type        = type;
                        this.stringValue = stringValue;
                        arg_3E_0         = (num * 2560805287u ^ 1189576714u);
                        continue;

                    case 2u:
                        goto IL_5A;
                    }
                    return;
                }
            }
        }
Exemplo n.º 2
0
 private static void EnsureTokenType(JsonToken.TokenType tokenType, JsonToken.TokenType expectToken)
 {
     if ((tokenType & expectToken) == 0)
     {
         ThrowHelper.Throw(string.Format("Parse error, invalid Token.  expectToken = {0} but get = {1}", expectToken, tokenType));
     }
 }
Exemplo n.º 3
0
 private void Match(JsonToken.TokenType jtExpected)
 {
     if (jtExpected == m_jtCurToken.Type)
     {
         m_jtCurToken = m_jtTokenizer.GetNextToken();
     }
     else
     {
         throw new ApplicationException("Expected " + jtExpected.ToString() + ", got " + m_jtCurToken.Type.ToString());
     }
 }
Exemplo n.º 4
0
        private static JsonArray ParseAsArray(Queue <JsonToken> tokens)
        {
            JsonArray jsonArray = new JsonArray();

            JsonToken.TokenType expectedToken = JsonToken.TokenType.BeginArray | JsonToken.TokenType.EndArray | JsonToken.TokenType.BeginObject | JsonToken.TokenType.Null
                                                | JsonToken.TokenType.Number | JsonToken.TokenType.Boolean | JsonToken.TokenType.String;
            while (tokens.Count > 0)
            {
                JsonToken           jsonToken = tokens.Dequeue();
                JsonToken.TokenType tokenType = jsonToken.tokenType;
                switch (tokenType)
                {
                case JsonToken.TokenType.BeginObject:
                    EnsureTokenType(tokenType, expectedToken);
                    JsonObject embeddedJsonObject = ParseAsObject(tokens);
                    jsonArray.Add(embeddedJsonObject);
                    expectedToken = JsonToken.TokenType.SepComma | JsonToken.TokenType.EndArray;
                    break;

                case JsonToken.TokenType.BeginArray:
                    EnsureTokenType(tokenType, expectedToken);
                    JsonArray embeddedJsonArray = ParseAsArray(tokens);
                    jsonArray.Add(embeddedJsonArray);
                    expectedToken = JsonToken.TokenType.SepComma | JsonToken.TokenType.EndArray;
                    break;

                case JsonToken.TokenType.EndArray:
                    EnsureTokenType(tokenType, expectedToken);
                    return(jsonArray);

                case JsonToken.TokenType.Null:
                    EnsureTokenType(tokenType, expectedToken);
                    jsonArray.Add(jsonToken.Value);
                    expectedToken = JsonToken.TokenType.SepComma | JsonToken.TokenType.EndArray;
                    break;

                case JsonToken.TokenType.Number:
                    EnsureTokenType(tokenType, expectedToken);
                    jsonArray.Add(jsonToken.Value);
                    expectedToken = JsonToken.TokenType.SepComma | JsonToken.TokenType.EndArray;
                    break;

                case JsonToken.TokenType.Boolean:
                    EnsureTokenType(tokenType, expectedToken);
                    jsonArray.Add(jsonToken.Value);
                    expectedToken = JsonToken.TokenType.SepComma | JsonToken.TokenType.EndArray;
                    break;

                case JsonToken.TokenType.String:
                    EnsureTokenType(tokenType, expectedToken);
                    jsonArray.Add(jsonToken.Value);
                    expectedToken = JsonToken.TokenType.SepComma | JsonToken.TokenType.EndArray;
                    break;

                case JsonToken.TokenType.SepComma:
                    EnsureTokenType(tokenType, expectedToken);
                    expectedToken = JsonToken.TokenType.String | JsonToken.TokenType.Null | JsonToken.TokenType.Number | JsonToken.TokenType.Boolean
                                    | JsonToken.TokenType.BeginArray | JsonToken.TokenType.BeginObject;
                    break;

                default:
                    ThrowHelper.Throw("Unexpected Token.");
                    break;
                }
            }

            ThrowHelper.Throw("Parse error, invalid Token.");
            return(null);
        }
Exemplo n.º 5
0
        private static JsonObject ParseAsObject(Queue <JsonToken> tokens)
        {
            JsonObject jsonObject = new JsonObject();

            JsonToken.TokenType expectedToken = JsonToken.TokenType.String | JsonToken.TokenType.EndObject;
            string key = null;

            while (tokens.Count > 0)
            {
                JsonToken           jsonToken = tokens.Dequeue();
                JsonToken.TokenType tokenType = jsonToken.tokenType;
                switch (tokenType)
                {
                case JsonToken.TokenType.BeginObject:
                    EnsureTokenType(tokenType, expectedToken);
                    JsonObject embeddedJO = ParseAsObject(tokens);
                    SafeAddValue(jsonObject, ref key, embeddedJO);
                    expectedToken = JsonToken.TokenType.SepComma | JsonToken.TokenType.EndObject;
                    break;

                case JsonToken.TokenType.EndObject:
                    EnsureTokenType(tokenType, expectedToken);
                    return(jsonObject);

                case JsonToken.TokenType.BeginArray:
                    EnsureTokenType(tokenType, expectedToken);
                    JsonArray embeddedArray = ParseAsArray(tokens);
                    jsonObject.Add(key, embeddedArray);
                    key           = null;
                    expectedToken = JsonToken.TokenType.SepComma | JsonToken.TokenType.EndObject;
                    break;

                case JsonToken.TokenType.Null:
                    EnsureTokenType(tokenType, expectedToken);
                    SafeAddValue(jsonObject, ref key, jsonToken.Value);
                    expectedToken = JsonToken.TokenType.SepComma | JsonToken.TokenType.EndObject;
                    break;

                case JsonToken.TokenType.Number:
                    EnsureTokenType(tokenType, expectedToken);
                    SafeAddValue(jsonObject, ref key, jsonToken.Value);
                    expectedToken = JsonToken.TokenType.SepComma | JsonToken.TokenType.EndObject;
                    break;

                case JsonToken.TokenType.Boolean:
                    EnsureTokenType(tokenType, expectedToken);
                    SafeAddValue(jsonObject, ref key, jsonToken.Value);
                    expectedToken = JsonToken.TokenType.SepComma | JsonToken.TokenType.EndObject;
                    break;

                case JsonToken.TokenType.String:
                    EnsureTokenType(tokenType, expectedToken);
                    if (key != null)
                    {
                        SafeAddValue(jsonObject, ref key, jsonToken.Value);
                        expectedToken = JsonToken.TokenType.SepComma | JsonToken.TokenType.EndObject;
                    }
                    else
                    {
                        key           = jsonToken.Value.GetStringValue();
                        expectedToken = JsonToken.TokenType.SepColon;
                    }
                    break;

                case JsonToken.TokenType.SepColon:
                    EnsureTokenType(tokenType, expectedToken);
                    expectedToken = JsonToken.TokenType.Null | JsonToken.TokenType.Number | JsonToken.TokenType.Boolean | JsonToken.TokenType.String
                                    | JsonToken.TokenType.BeginObject | JsonToken.TokenType.BeginArray;
                    break;

                case JsonToken.TokenType.SepComma:
                    EnsureTokenType(tokenType, expectedToken);
                    expectedToken = JsonToken.TokenType.String;
                    break;

                default:
                    ThrowHelper.Throw("unhandled token type" + tokenType);

                    break;
                }
            }

            ThrowHelper.Throw("object not closed!");

            return(null);
        }
Exemplo n.º 6
0
 public JsonToken(string sInitText, JsonToken.TokenType jtInitType)
 {
     m_jtType = jtInitType;
     m_sText  = sInitText;
 }
Exemplo n.º 7
0
 public void SetGoal(JsonToken.TokenType type)
 {
     GoalType         = type;
     GoalExternalySet = true;
 }
Exemplo n.º 8
0
        public override string ToString()
        {
            JsonToken.TokenType tokenType = this.type;
            while (true)
            {
IL_AB:
                uint arg_5F_0 = 2682264506u;
                while (true)
                {
                    uint num;
                    switch ((num = (arg_5F_0 ^ 4241128215u)) % 15u)
                    {
                    case 0u:
                        goto IL_C8;

                    case 1u:
                        goto IL_BD;

                    case 2u:
                        goto IL_E8;

                    case 3u:
                        goto IL_B2;

                    case 4u:
                        arg_5F_0 = (num * 3627266443u ^ 1115301066u);
                        continue;

                    case 5u:
                        switch (tokenType)
                        {
                        case JsonToken.TokenType.Null:
                            goto IL_B2;

                        case JsonToken.TokenType.False:
                            goto IL_144;

                        case JsonToken.TokenType.True:
                            goto IL_BD;

                        case JsonToken.TokenType.StringValue:
                            goto IL_16F;

                        case JsonToken.TokenType.Number:
                            goto IL_F3;

                        case JsonToken.TokenType.Name:
                            goto IL_C8;

                        case JsonToken.TokenType.StartObject:
                            goto IL_123;

                        case JsonToken.TokenType.EndObject:
                            goto IL_139;

                        case JsonToken.TokenType.StartArray:
                            goto IL_12E;

                        case JsonToken.TokenType.EndArray:
                            goto IL_E8;

                        case JsonToken.TokenType.EndDocument:
                            goto IL_118;

                        default:
                            arg_5F_0 = (num * 2433619620u ^ 3405509361u);
                            continue;
                        }
                        break;

                    case 6u:
                        goto IL_AB;

                    case 7u:
                        goto IL_F3;

                    case 8u:
                        goto IL_118;

                    case 9u:
                        goto IL_123;

                    case 10u:
                        goto IL_12E;

                    case 11u:
                        goto IL_139;

                    case 12u:
                        goto IL_144;

                    case 14u:
                        goto IL_16F;
                    }
                    goto Block_2;
                }
            }
Block_2:
            goto IL_14F;
IL_B2:
            return(Module.smethod_34 <string>(854952751u));

IL_BD:
            return(Module.smethod_33 <string>(2183097496u));

IL_C8:
            return(JsonToken.smethod_2(Module.smethod_35 <string>(2827822917u), this.stringValue, Module.smethod_36 <string>(472157920u)));

IL_E8:
            return(Module.smethod_36 <string>(1155181364u));

IL_F3:
            return(JsonToken.smethod_3(Module.smethod_34 <string>(1106698670u), this.numberValue, Module.smethod_33 <string>(4291034649u)));

IL_118:
            return(Module.smethod_34 <string>(985298691u));

IL_123:
            return(Module.smethod_34 <string>(2110138035u));

IL_12E:
            return(Module.smethod_33 <string>(3370785385u));

IL_139:
            return(Module.smethod_34 <string>(891562079u));

IL_144:
            return(Module.smethod_34 <string>(1042425975u));

IL_14F:
            throw JsonToken.smethod_4(JsonToken.smethod_0(Module.smethod_34 <string>(1266508527u), this.type));
IL_16F:
            return(JsonToken.smethod_2(Module.smethod_35 <string>(743299430u), this.stringValue, Module.smethod_37 <string>(988941460u)));
        }