private void AnalyseList(IBNode parent)
{
// 列表一定是l开始的
if (GetCurrentCharMove() != 'l')
return;
int count = 0;
// 循环读入列表项
do
{
ListItemNode listItemNode = _bNodeFactory.GetBNode('l') as ListItemNode;
switch (GetCurrentChar())
{
case 'i': // 数字
listItemNode.SetValue(AnalyseInteger());
listItemNode.ValueType = 'i';
break;
case 'd': // 字典
AnalyseDictionary(listItemNode);
listItemNode.ValueType = 'd';
break;
case 'l': // 列表
AnalyseList(listItemNode);
listItemNode.ValueType = 'l';
break;
default:
listItemNode.SetValue(AnalyseString());
listItemNode.ValueType = 's';
break;
}
listItemNode.ListIndex = count++;
parent.Child.Add(listItemNode);
} while (GetCurrentChar() != 'e');
GetCurrentCharMove();
}