少年修仙传客户端基础资源
hch
2020-12-07 002fe17a16f0a9fa5bb71654dd95c72c35f253b8
Assets/Plugins/LitJson/JsonReader.cs
@@ -11,6 +11,7 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Text;
@@ -42,7 +43,7 @@
    public class JsonReader
    {
        #region Fields
        private static IDictionary<int, IDictionary<int, int[]>> parse_table;
        private static readonly IDictionary<int, IDictionary<int, int[]>> parse_table;
        private Stack<int>    automaton_stack;
        private int           current_input;
@@ -98,7 +99,7 @@
        #region Constructors
        static JsonReader ()
        {
            PopulateParseTable ();
            parse_table = PopulateParseTable ();
        }
        public JsonReader (string json_text) :
@@ -138,120 +139,122 @@
        #region Static Methods
        private static void PopulateParseTable ()
        private static IDictionary<int, IDictionary<int, int[]>> PopulateParseTable ()
        {
            // See section A.2. of the manual for details
            parse_table = new Dictionary<int, IDictionary<int, int[]>> ();
            IDictionary<int, IDictionary<int, int[]>> parse_table = new Dictionary<int, IDictionary<int, int[]>> ();
            TableAddRow (ParserToken.Array);
            TableAddCol (ParserToken.Array, '[',
                         '[',
                         (int) ParserToken.ArrayPrime);
            TableAddRow (parse_table, ParserToken.Array);
            TableAddCol (parse_table, ParserToken.Array, '[',
                            '[',
                            (int) ParserToken.ArrayPrime);
            TableAddRow (ParserToken.ArrayPrime);
            TableAddCol (ParserToken.ArrayPrime, '"',
                         (int) ParserToken.Value,
            TableAddRow (parse_table, ParserToken.ArrayPrime);
            TableAddCol (parse_table, ParserToken.ArrayPrime, '"',
                            (int) ParserToken.Value,
                         (int) ParserToken.ValueRest,
                         ']');
            TableAddCol (ParserToken.ArrayPrime, '[',
                         (int) ParserToken.Value,
                         (int) ParserToken.ValueRest,
                         ']');
            TableAddCol (ParserToken.ArrayPrime, ']',
                         ']');
            TableAddCol (ParserToken.ArrayPrime, '{',
                         (int) ParserToken.Value,
                         (int) ParserToken.ValueRest,
                         ']');
            TableAddCol (ParserToken.ArrayPrime, (int) ParserToken.Number,
                         (int) ParserToken.Value,
                         (int) ParserToken.ValueRest,
                         ']');
            TableAddCol (ParserToken.ArrayPrime, (int) ParserToken.True,
                         (int) ParserToken.Value,
                         (int) ParserToken.ValueRest,
                         ']');
            TableAddCol (ParserToken.ArrayPrime, (int) ParserToken.False,
                         (int) ParserToken.Value,
                         (int) ParserToken.ValueRest,
                         ']');
            TableAddCol (ParserToken.ArrayPrime, (int) ParserToken.Null,
                         (int) ParserToken.Value,
                         (int) ParserToken.ValueRest,
                         ']');
                            (int) ParserToken.ValueRest,
                            ']');
            TableAddCol (parse_table, ParserToken.ArrayPrime, '[',
                            (int) ParserToken.Value,
                            (int) ParserToken.ValueRest,
                            ']');
            TableAddCol (parse_table, ParserToken.ArrayPrime, ']',
                            ']');
            TableAddCol (parse_table, ParserToken.ArrayPrime, '{',
                            (int) ParserToken.Value,
                            (int) ParserToken.ValueRest,
                            ']');
            TableAddCol (parse_table, ParserToken.ArrayPrime, (int) ParserToken.Number,
                            (int) ParserToken.Value,
                            (int) ParserToken.ValueRest,
                            ']');
            TableAddCol (parse_table, ParserToken.ArrayPrime, (int) ParserToken.True,
                            (int) ParserToken.Value,
                            (int) ParserToken.ValueRest,
                            ']');
            TableAddCol (parse_table, ParserToken.ArrayPrime, (int) ParserToken.False,
                            (int) ParserToken.Value,
                            (int) ParserToken.ValueRest,
                            ']');
            TableAddCol (parse_table, ParserToken.ArrayPrime, (int) ParserToken.Null,
                            (int) ParserToken.Value,
                            (int) ParserToken.ValueRest,
                            ']');
            TableAddRow (ParserToken.Object);
            TableAddCol (ParserToken.Object, '{',
                         '{',
                         (int) ParserToken.ObjectPrime);
            TableAddRow (parse_table, ParserToken.Object);
            TableAddCol (parse_table, ParserToken.Object, '{',
                            '{',
                            (int) ParserToken.ObjectPrime);
            TableAddRow (ParserToken.ObjectPrime);
            TableAddCol (ParserToken.ObjectPrime, '"',
                         (int) ParserToken.Pair,
                         (int) ParserToken.PairRest,
                         '}');
            TableAddCol (ParserToken.ObjectPrime, '}',
                         '}');
            TableAddRow (parse_table, ParserToken.ObjectPrime);
            TableAddCol (parse_table, ParserToken.ObjectPrime, '"',
                            (int) ParserToken.Pair,
                            (int) ParserToken.PairRest,
                            '}');
            TableAddCol (parse_table, ParserToken.ObjectPrime, '}',
                            '}');
            TableAddRow (ParserToken.Pair);
            TableAddCol (ParserToken.Pair, '"',
                         (int) ParserToken.String,
                         ':',
                         (int) ParserToken.Value);
            TableAddRow (parse_table, ParserToken.Pair);
            TableAddCol (parse_table, ParserToken.Pair, '"',
                            (int) ParserToken.String,
                            ':',
                            (int) ParserToken.Value);
            TableAddRow (ParserToken.PairRest);
            TableAddCol (ParserToken.PairRest, ',',
                         ',',
                         (int) ParserToken.Pair,
                         (int) ParserToken.PairRest);
            TableAddCol (ParserToken.PairRest, '}',
                         (int) ParserToken.Epsilon);
            TableAddRow (parse_table, ParserToken.PairRest);
            TableAddCol (parse_table, ParserToken.PairRest, ',',
                            ',',
                            (int) ParserToken.Pair,
                            (int) ParserToken.PairRest);
            TableAddCol (parse_table, ParserToken.PairRest, '}',
                            (int) ParserToken.Epsilon);
            TableAddRow (ParserToken.String);
            TableAddCol (ParserToken.String, '"',
                         '"',
                         (int) ParserToken.CharSeq,
                         '"');
            TableAddRow (parse_table, ParserToken.String);
            TableAddCol (parse_table, ParserToken.String, '"',
                            '"',
                            (int) ParserToken.CharSeq,
                            '"');
            TableAddRow (ParserToken.Text);
            TableAddCol (ParserToken.Text, '[',
                         (int) ParserToken.Array);
            TableAddCol (ParserToken.Text, '{',
                         (int) ParserToken.Object);
            TableAddRow (parse_table, ParserToken.Text);
            TableAddCol (parse_table, ParserToken.Text, '[',
                            (int) ParserToken.Array);
            TableAddCol (parse_table, ParserToken.Text, '{',
                            (int) ParserToken.Object);
            TableAddRow (ParserToken.Value);
            TableAddCol (ParserToken.Value, '"',
                         (int) ParserToken.String);
            TableAddCol (ParserToken.Value, '[',
                         (int) ParserToken.Array);
            TableAddCol (ParserToken.Value, '{',
                         (int) ParserToken.Object);
            TableAddCol (ParserToken.Value, (int) ParserToken.Number,
                         (int) ParserToken.Number);
            TableAddCol (ParserToken.Value, (int) ParserToken.True,
                         (int) ParserToken.True);
            TableAddCol (ParserToken.Value, (int) ParserToken.False,
                         (int) ParserToken.False);
            TableAddCol (ParserToken.Value, (int) ParserToken.Null,
                         (int) ParserToken.Null);
            TableAddRow (parse_table, ParserToken.Value);
            TableAddCol (parse_table, ParserToken.Value, '"',
                            (int) ParserToken.String);
            TableAddCol (parse_table, ParserToken.Value, '[',
                            (int) ParserToken.Array);
            TableAddCol (parse_table, ParserToken.Value, '{',
                            (int) ParserToken.Object);
            TableAddCol (parse_table, ParserToken.Value, (int) ParserToken.Number,
                            (int) ParserToken.Number);
            TableAddCol (parse_table, ParserToken.Value, (int) ParserToken.True,
                            (int) ParserToken.True);
            TableAddCol (parse_table, ParserToken.Value, (int) ParserToken.False,
                            (int) ParserToken.False);
            TableAddCol (parse_table, ParserToken.Value, (int) ParserToken.Null,
                            (int) ParserToken.Null);
            TableAddRow (ParserToken.ValueRest);
            TableAddCol (ParserToken.ValueRest, ',',
                         ',',
                         (int) ParserToken.Value,
                         (int) ParserToken.ValueRest);
            TableAddCol (ParserToken.ValueRest, ']',
                         (int) ParserToken.Epsilon);
            TableAddRow (parse_table, ParserToken.ValueRest);
            TableAddCol (parse_table, ParserToken.ValueRest, ',',
                            ',',
                            (int) ParserToken.Value,
                            (int) ParserToken.ValueRest);
            TableAddCol (parse_table, ParserToken.ValueRest, ']',
                            (int) ParserToken.Epsilon);
            return parse_table;
        }
        private static void TableAddCol (ParserToken row, int col,
        private static void TableAddCol (IDictionary<int, IDictionary<int, int[]>> parse_table, ParserToken row, int col,
                                         params int[] symbols)
        {
            parse_table[(int) row].Add (col, symbols);
        }
        private static void TableAddRow (ParserToken rule)
        private static void TableAddRow (IDictionary<int, IDictionary<int, int[]>> parse_table, ParserToken rule)
        {
            parse_table.Add ((int) rule, new Dictionary<int, int[]> ());
        }
@@ -266,7 +269,7 @@
                number.IndexOf ('E') != -1) {
                double n_double;
                if (Double.TryParse (number, out n_double)) {
                if (double.TryParse (number, NumberStyles.Any, CultureInfo.InvariantCulture, out n_double)) {
                    token = JsonToken.Double;
                    token_value = n_double;
@@ -275,7 +278,7 @@
            }
            int n_int32;
            if (Int32.TryParse (number, out n_int32)) {
            if (int.TryParse (number, NumberStyles.Integer, CultureInfo.InvariantCulture, out n_int32)) {
                token = JsonToken.Int;
                token_value = n_int32;
@@ -283,7 +286,7 @@
            }
            long n_int64;
            if (Int64.TryParse (number, out n_int64)) {
            if (long.TryParse (number, NumberStyles.Integer, CultureInfo.InvariantCulture, out n_int64)) {
                token = JsonToken.Long;
                token_value = n_int64;
@@ -291,7 +294,7 @@
            }
            ulong n_uint64;
            if (UInt64.TryParse(number, out n_uint64))
            if (ulong.TryParse(number, NumberStyles.Integer, CultureInfo.InvariantCulture, out n_uint64))
            {
                token = JsonToken.Long;
                token_value = n_uint64;
@@ -392,7 +395,9 @@
            end_of_json  = true;
            if (reader_is_owned)
                reader.Close ();
            {
                using(reader){}
            }
            reader = null;
        }