UnityEditor.Json.Parser.ParseString C# (CSharp) Method

ParseString() private method

private ParseString ( ) : string
return string
            private string ParseString()
            {
                StringBuilder builder = new StringBuilder();
                this.json.Read();
                bool flag = true;
                while (flag)
                {
                    char[] chArray;
                    int num;
                    if (this.json.Peek() == -1)
                    {
                        flag = false;
                        break;
                    }
                    char nextChar = this.NextChar;
                    if (nextChar == '"')
                    {
                        flag = false;
                        continue;
                    }
                    if (nextChar != '\\')
                    {
                        goto Label_015F;
                    }
                    if (this.json.Peek() == -1)
                    {
                        flag = false;
                        continue;
                    }
                    nextChar = this.NextChar;
                    switch (nextChar)
                    {
                        case 'r':
                        {
                            builder.Append('\r');
                            continue;
                        }
                        case 't':
                        {
                            builder.Append('\t');
                            continue;
                        }
                        case 'u':
                            chArray = new char[4];
                            num = 0;
                            goto Label_0138;

                        default:
                        {
                            if (((nextChar != '"') && (nextChar != '/')) && (nextChar != '\\'))
                            {
                                if (nextChar == 'b')
                                {
                                    break;
                                }
                                if (nextChar == 'f')
                                {
                                    goto Label_00DF;
                                }
                                if (nextChar == 'n')
                                {
                                    goto Label_00ED;
                                }
                            }
                            else
                            {
                                builder.Append(nextChar);
                            }
                            continue;
                        }
                    }
                    builder.Append('\b');
                    continue;
                Label_00DF:
                    builder.Append('\f');
                    continue;
                Label_00ED:
                    builder.Append('\n');
                    continue;
                Label_0126:
                    chArray[num] = this.NextChar;
                    num++;
                Label_0138:
                    if (num < 4)
                    {
                        goto Label_0126;
                    }
                    builder.Append((char) Convert.ToInt32(new string(chArray), 0x10));
                    continue;
                Label_015F:
                    builder.Append(nextChar);
                }
                return builder.ToString();
            }