コード例 #1
0
ファイル: YAMLMappingNode.cs プロジェクト: bmjoy/UnityRipper
        public void InsertBegin(string key, YAMLNode value)
        {
            YAMLScalarNode keyNode = new YAMLScalarNode();

            keyNode.Value = key;
            InsertBegin(keyNode, value);
        }
コード例 #2
0
ファイル: YAMLMappingNode.cs プロジェクト: bmjoy/UnityRipper
        public void Add(string key, YAMLNode value)
        {
            YAMLScalarNode keyNode = new YAMLScalarNode();

            keyNode.Value = key;
            InsertEnd(keyNode, value);
        }
コード例 #3
0
ファイル: YAMLDocument.cs プロジェクト: bmjoy/UnityRipper
 public YAMLDocument(YAMLNode root)
 {
     if (root == null)
     {
         throw new ArgumentNullException(nameof(root));
     }
     Root = root;
 }
コード例 #4
0
ファイル: YAMLMappingNode.cs プロジェクト: bmjoy/UnityRipper
        public void Add(YAMLNode key, YAMLNode value)
        {
            if (key.NodeType != YAMLNodeType.Scalar)
            {
                throw new Exception($"Only {YAMLNodeType.Scalar} node as a key supported");
            }

            InsertEnd(key, value);
        }
コード例 #5
0
ファイル: YAMLSequenceNode.cs プロジェクト: bmjoy/UnityRipper
        internal override void Emit(Emitter emitter)
        {
            base.Emit(emitter);

            StartChildren(emitter);
            for (int i = 0; i < m_children.Count; i++)
            {
                YAMLNode child = m_children[i];
                StartChild(emitter, child);
                child.Emit(emitter);
                EndChild(emitter, child);
            }
            EndChildren(emitter);
        }
コード例 #6
0
ファイル: YAMLSequenceNode.cs プロジェクト: bmjoy/UnityRipper
 private void EndChild(Emitter emitter, YAMLNode next)
 {
     if (Style == SequenceStyle.Block)
     {
         emitter.WriteLine();
     }
     else if (Style == SequenceStyle.Flow)
     {
         emitter.WriteSeparator().WriteWhitespace();
     }
     if (next.IsIndent)
     {
         emitter.DecreaseIntent();
     }
 }
コード例 #7
0
ファイル: YAMLMappingNode.cs プロジェクト: bmjoy/UnityRipper
 private void EndTransition(Emitter emitter, YAMLNode next)
 {
     if (Style == MappingStyle.Block)
     {
         emitter.WriteLine();
     }
     else if (Style == MappingStyle.Flow)
     {
         emitter.WriteSeparator().WriteWhitespace();
     }
     if (next.IsIndent)
     {
         emitter.DecreaseIntent();
     }
 }
コード例 #8
0
ファイル: YAMLMappingNode.cs プロジェクト: bmjoy/UnityRipper
 private void StartTransition(Emitter emitter, YAMLNode next)
 {
     emitter.Write(':').WriteWhitespace();
     if (Style == MappingStyle.Block)
     {
         if (next.IsMultyline)
         {
             emitter.WriteLine();
         }
     }
     if (next.IsIndent)
     {
         emitter.IncreaseIntent();
     }
 }
コード例 #9
0
ファイル: YAMLSequenceNode.cs プロジェクト: bmjoy/UnityRipper
        private void StartChild(Emitter emitter, YAMLNode next)
        {
            if (Style == SequenceStyle.Block)
            {
                emitter.Write('-').WriteWhitespace();

                if (next.NodeType == NodeType)
                {
                    emitter.WriteLine();
                }
            }
            if (next.IsIndent)
            {
                emitter.IncreaseIntent();
            }
        }
コード例 #10
0
ファイル: YAMLMappingNode.cs プロジェクト: bmjoy/UnityRipper
        internal override void Emit(Emitter emitter)
        {
            base.Emit(emitter);

            StartChildren(emitter);
            foreach (var kvp in m_children)
            {
                YAMLNode key   = kvp.Key;
                YAMLNode value = kvp.Value;

                key.Emit(emitter);
                StartTransition(emitter, value);
                value.Emit(emitter);
                EndTransition(emitter, value);
            }
            EndChildren(emitter);
        }
コード例 #11
0
        public static YAMLNode ExportYAML <T>(this IReadOnlyDictionary <T, float> _this)
            where T : IYAMLExportable
        {
            YAMLSequenceNode node = new YAMLSequenceNode();

            node.Style = SequenceStyle.Block;
            foreach (var kvp in _this)
            {
                YAMLMappingNode map = new YAMLMappingNode();
                YAMLNode        key = kvp.Key.ExportYAML();
                if (key.NodeType == YAMLNodeType.Scalar)
                {
                    map.Add(key, kvp.Value);
                }
                else
                {
                    map.Add("first", key);
                    map.Add("second", kvp.Value);
                }
                node.Add(map);
            }
            return(node);
        }
コード例 #12
0
ファイル: YAMLSequenceNode.cs プロジェクト: bmjoy/UnityRipper
 public void Add(YAMLNode child)
 {
     m_children.Add(child);
 }
コード例 #13
0
ファイル: YAMLMappingNode.cs プロジェクト: bmjoy/UnityRipper
        public void Add(YAMLNode key, bool value)
        {
            YAMLScalarNode valueNode = new YAMLScalarNode(value);

            Add(key, valueNode);
        }
コード例 #14
0
ファイル: YAMLMappingNode.cs プロジェクト: bmjoy/UnityRipper
        private void InsertEnd(YAMLNode key, YAMLNode value)
        {
            KeyValuePair <YAMLNode, YAMLNode> pair = new KeyValuePair <YAMLNode, YAMLNode>(key, value);

            m_children.Add(pair);
        }
コード例 #15
0
ファイル: YAMLMappingNode.cs プロジェクト: bmjoy/UnityRipper
        public void InsertBegin(YAMLNode key, YAMLNode value)
        {
            KeyValuePair <YAMLNode, YAMLNode> pair = new KeyValuePair <YAMLNode, YAMLNode>(key, value);

            m_children.Insert(0, pair);
        }