Ignore:
Timestamp:
Sep 4, 2018, 1:00:48 PM (6 years ago)
Author:
alloc
Message:

Code style cleanup (mostly whitespace changes, enforcing braces, using cleanup)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • binary-improvements/7dtd-server-fixes/src/JSON/JSONNumber.cs

    r324 r325  
    22using System.Text;
    33
    4 namespace AllocsFixes.JSON
    5 {
    6         public class JSONNumber : JSONValue
    7         {
    8                 private double value;
     4namespace AllocsFixes.JSON {
     5        public class JSONNumber : JSONValue {
     6                private readonly double value;
    97
    10                 public JSONNumber (double value)
    11                 {
     8                public JSONNumber (double value) {
    129                        this.value = value;
    1310                }
    1411
    15                 public double GetDouble ()
    16                 {
     12                public double GetDouble () {
    1713                        return value;
    1814                }
    1915
    20                 public int GetInt ()
    21                 {
    22                         return (int)Math.Round(value);
     16                public int GetInt () {
     17                        return (int) Math.Round (value);
    2318                }
    2419
    25                 public override void ToString (StringBuilder stringBuilder, bool prettyPrint = false, int currentLevel = 0)
    26                 {
     20                public override void ToString (StringBuilder stringBuilder, bool prettyPrint = false, int currentLevel = 0) {
    2721                        stringBuilder.Append (value.ToCultureInvariantString ());
    2822                }
    2923
    30                 public static JSONNumber Parse (string json, ref int offset)
    31                 {
     24                public static JSONNumber Parse (string json, ref int offset) {
    3225                        //Log.Out ("ParseNumber enter (" + offset + ")");
    3326                        StringBuilder sbNum = new StringBuilder ();
     
    3730                        while (offset < json.Length) {
    3831                                if (json [offset] >= '0' && json [offset] <= '9') {
    39                                         if (hasExp)
     32                                        if (hasExp) {
    4033                                                sbExp.Append (json [offset]);
    41                                         else
     34                                        } else {
    4235                                                sbNum.Append (json [offset]);
     36                                        }
    4337                                } else if (json [offset] == '.') {
    4438                                        if (hasExp) {
    4539                                                throw new MalformedJSONException ("Decimal separator in exponent");
     40                                        }
     41
     42                                        if (hasDec) {
     43                                                throw new MalformedJSONException ("Multiple decimal separators in number found");
     44                                        }
     45
     46                                        if (sbNum.Length == 0) {
     47                                                throw new MalformedJSONException ("No leading digits before decimal separator found");
     48                                        }
     49
     50                                        sbNum.Append ('.');
     51                                        hasDec = true;
     52                                } else if (json [offset] == '-') {
     53                                        if (hasExp) {
     54                                                if (sbExp.Length > 0) {
     55                                                        throw new MalformedJSONException ("Negative sign in exponent after digits");
     56                                                }
     57
     58                                                sbExp.Append (json [offset]);
    4659                                        } else {
    47                                                 if (hasDec)
    48                                                         throw new MalformedJSONException ("Multiple decimal separators in number found");
    49                                                 else if (sbNum.Length == 0) {
    50                                                         throw new MalformedJSONException ("No leading digits before decimal separator found");
    51                                                 } else {
    52                                                         sbNum.Append ('.');
    53                                                         hasDec = true;
     60                                                if (sbNum.Length > 0) {
     61                                                        throw new MalformedJSONException ("Negative sign in mantissa after digits");
    5462                                                }
    55                                         }
    56                                 } else  if (json [offset] == '-') {
    57                                         if (hasExp) {
    58                                                 if (sbExp.Length > 0)
    59                                                         throw new MalformedJSONException ("Negative sign in exponent after digits");
    60                                                 else
    61                                                         sbExp.Append (json [offset]);
    62                                         } else {
    63                                                 if (sbNum.Length > 0)
    64                                                         throw new MalformedJSONException ("Negative sign in mantissa after digits");
    65                                                 else
    66                                                         sbNum.Append (json [offset]);
     63
     64                                                sbNum.Append (json [offset]);
    6765                                        }
    6866                                } else if (json [offset] == 'e' || json [offset] == 'E') {
    69                                         if (hasExp)
     67                                        if (hasExp) {
    7068                                                throw new MalformedJSONException ("Multiple exponential markers in number found");
    71                                         else if (sbNum.Length == 0) {
     69                                        }
     70
     71                                        if (sbNum.Length == 0) {
    7272                                                throw new MalformedJSONException ("No leading digits before exponential marker found");
    73                                         } else {
    74                                                 sbExp = new StringBuilder ();
    75                                                 hasExp = true;
    7673                                        }
     74
     75                                        sbExp = new StringBuilder ();
     76                                        hasExp = true;
    7777                                } else if (json [offset] == '+') {
    7878                                        if (hasExp) {
    79                                                 if (sbExp.Length > 0)
     79                                                if (sbExp.Length > 0) {
    8080                                                        throw new MalformedJSONException ("Positive sign in exponent after digits");
    81                                                 else
    82                                                         sbExp.Append (json [offset]);
     81                                                }
     82
     83                                                sbExp.Append (json [offset]);
    8384                                        } else {
    8485                                                throw new MalformedJSONException ("Positive sign in mantissa found");
     
    8687                                } else {
    8788                                        double number;
    88                                         if (!StringParsers.TryParseDouble(sbNum.ToString (), out number)) {
    89                                                 throw new MalformedJSONException ("Mantissa is not a valid decimal (\"" + sbNum.ToString () + "\")");
     89                                        if (!StringParsers.TryParseDouble (sbNum.ToString (), out number)) {
     90                                                throw new MalformedJSONException ("Mantissa is not a valid decimal (\"" + sbNum + "\")");
    9091                                        }
    9192
     
    9394                                                int exp;
    9495                                                if (!int.TryParse (sbExp.ToString (), out exp)) {
    95                                                         throw new MalformedJSONException ("Exponent is not a valid integer (\"" + sbExp.ToString () + "\")");
     96                                                        throw new MalformedJSONException ("Exponent is not a valid integer (\"" + sbExp + "\")");
    9697                                                }
    9798
     
    102103                                        return new JSONNumber (number);
    103104                                }
     105
    104106                                offset++;
    105107                        }
     108
    106109                        throw new MalformedJSONException ("End of JSON reached before parsing number finished");
    107110                }
    108 
    109111        }
    110112}
    111 
Note: See TracChangeset for help on using the changeset viewer.