Beispiel #1
0
            public void AddNode(YKeyValuePair item)
            {
                if (item == null)
                {
                    return;
                }

                if (item.Value is YAlias alias)
                {
                    this.nodes.AddRange(alias.Anchor.ValueChildren.ToArray());
                }
                else
                {
                    this.nodes.Add(item);
                }
            }
Beispiel #2
0
        private YKeyValuePair ParseMappingKey(ITokenizer tokenizer)
        {
            switch (tokenizer.Current.Value.Kind)
            {
            case TokenKind.MappingKey:
            {
                tokenizer.MoveNext();

                var key = this.GetNodeKey(tokenizer);

                if (tokenizer.Current.Value.Kind != TokenKind.MappingValue)
                {
                    return(new YKeyValuePair(key, new YScalar(null)));
                }

                tokenizer.MoveNext();
                var keyValuePair = new YKeyValuePair(key);
                var value        = this.GetNodeValue(tokenizer);
                keyValuePair.Value = value;

                return(keyValuePair);
            }

            default:
            {
                var key = this.GetNodeKey(tokenizer);
                tokenizer.MoveNext();

                var keyValuePair = new YKeyValuePair(key);
                var value        = this.GetNodeValue(tokenizer);
                keyValuePair.Value = value;

                return(keyValuePair);
            }
            }
        }