From 002fe17a16f0a9fa5bb71654dd95c72c35f253b8 Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期一, 07 十二月 2020 23:10:46 +0800 Subject: [PATCH] 0312 更新ExecuteAlways 升级litjson --- Assets/Plugins/LitJson/JsonReader.cs | 207 ++++++++++++++++++++++++++------------------------- 1 files changed, 106 insertions(+), 101 deletions(-) diff --git a/Assets/Plugins/LitJson/JsonReader.cs b/Assets/Plugins/LitJson/JsonReader.cs index d0cd061..e47eabc 100644 --- a/Assets/Plugins/LitJson/JsonReader.cs +++ b/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; } -- Gitblit v1.8.0