Exemplo n.º 1
0
        /// <summary>インラインテーブルを解析する。</summary>
        /// <param name="iter">イテレータ。</param>
        /// <returns>値情報。</returns>
        private ITomlValue GetInlineTable(TomlInnerBuffer.TomlIter iter)
        {
            var  table = new TomlTable();
            UTF8 c;

            while ((c = iter.GetChar(0)).ch1 != 0)
            {
                // 改行、空白部を取り除く
                iter.SkipLineFeedAndSpace();

                // キー/値部分を取り込む
                this.AnalisysKeyAndValue(iter, table, true);

                // インラインテーブルが閉じられているか確認
                //
                // 1. テーブルが閉じられている
                // 2. 次のキー/値を取得
                // 3. エラー
                switch (iter.CloseInlineTable())
                {
                case 1:                             // 1
                    return(table);

                case 2:                             // 2
                    // 空実装
                    break;

                default:                            // 3
                    break;
                }
            }
            throw new TomlAnalisysException(Resources.INLINE_TABLE_NOT_CLOSE_ERR, iter);
        }