Exemple #1
0
        /// <inheritdoc />
        protected override void DoSerialize(BuildXLWriter writer)
        {
            writer.Write(Path);
            writer.WriteCompact(Length);

            // Evaluated array
            writer.Write(true);

            // This should be an array of constant expressions.
            for (int i = 0; i < Length; i++)
            {
                ConstExpressionSerializer.WriteConstValue(writer, m_data[i].Value);
            }
        }
Exemple #2
0
        /// <summary>
        /// Creates an object literal from the stream.
        /// </summary>
        public static ObjectLiteral Create(DeserializationContext context, LineInfo location)
        {
            var reader = context.Reader;

            var path  = reader.ReadAbsolutePath();
            var count = reader.ReadInt32Compact();

            var namedValues = new List <NamedValue>(count);

            for (int i = 0; i < count; i++)
            {
                var name = reader.ReadStringId();

                bool   isNode = reader.ReadBoolean();
                object body   = isNode ? Read(context) : ConstExpressionSerializer.ReadConstValue(reader);
                namedValues.Add(NamedValue.Create(new Binding(name, body, location)));
            }

            return(Create(namedValues, location, path));
        }
Exemple #3
0
        /// <inheritdoc />
        protected override void DoSerialize(BuildXLWriter writer)
        {
            writer.Write(Path);
            writer.WriteCompact(Count);
            foreach (var member in Members)
            {
                writer.Write(member.Key);

                var node = member.Value.Value as Node;

                bool isNode = node != null;
                writer.Write(isNode);

                if (node != null)
                {
                    node.Serialize(writer);
                }
                else
                {
                    ConstExpressionSerializer.WriteConstValue(writer, member.Value.Value);
                }
            }
        }
Exemple #4
0
 /// <nodoc />
 public void Serialize(BuildXLWriter writer)
 {
     ConstExpressionSerializer.Write(writer, this);
 }