/// <summary>配列を解析する。</summary> /// <param name="iter">イテレータ。</param> /// <returns>値情報。</returns> private ITomlValue GetValueArray(TomlInnerBuffer.TomlIter iter) { var array = new List <ITomlValue>(); while (iter.GetChar(0).ch1 != 0) { // 改行、空白部を取り除く iter.SkipLineFeedAndSpace(); // 値を取り込む var value = this.AnalisysValue(iter); // 空値以外は取り込む if (value.ValueType != TomlValueType.TomlNoneValue) { array.Add(value); } // 配列が閉じられているか確認 // // 1. テーブルが閉じられている // 2. 次のキー/値を取得 // 3. エラー switch (iter.CloseValueArray()) { case 1: // 1 return(CheckArrayValueType(array, iter)); case 2: // 2 if (value.ValueType != TomlValueType.TomlNoneValue) { break; } else { throw new TomlAnalisysException(Resources.EMPTY_COMMA_ERR, iter); } default: // 3 break; } } // 配列が閉じられていない throw new TomlAnalisysException(Resources.ARRAY_NOT_CLOSE_ERR, iter); }