BTTool.CommonAnalyser.AnalyseDictionary C# (CSharp) Method

AnalyseDictionary() private method

private AnalyseDictionary ( IBNode parent ) : void
parent IBNode
return void
        private void AnalyseDictionary(IBNode parent)
        {
            // 字典一定是d开始的
            if (GetCurrentCharMove() != 'd')
                return;

            // 循环分析键值对
            do
            {
                KeyValueNode keyValueNode = _bNodeFactory.GetBNode('k') as KeyValueNode;
                // 键值对,键一定是string
                keyValueNode.SetKey(AnalyseString());
                // 值
                switch (GetCurrentChar())
                {
                    case 'i': // 数字
                        keyValueNode.SetValue(AnalyseInteger());
                        keyValueNode.ValueType = 'i';
                        break;
                    case 'd': // 字典
                        AnalyseDictionary(keyValueNode);
                        keyValueNode.ValueType = 'd';
                        break;
                    case 'l': // 列表
                        AnalyseList(keyValueNode);
                        keyValueNode.ValueType = 'l';
                        break;
                    default:
                        keyValueNode.SetValue(AnalyseString());
                        keyValueNode.ValueType = 's';
                        break;
                }
                parent.Child.Add(keyValueNode);
            } while (GetCurrentChar() != 'e');
            GetCurrentCharMove();
        }