Esempio n. 1
0
        public Format.Schema.ExpressionV1 Serialize()
        {
            Format.Schema.ExpressionV1 expression = new Format.Schema.ExpressionV1();

            var serializedOps = this.ops.Select(op => op.Serialize());

            expression.Ops.AddRange(serializedOps);

            return(expression);
        }
Esempio n. 2
0
        static public Either <Errors.FormatError, Expression> DeserializeV1(Format.Schema.ExpressionV1 expression)
        {
            List <Op> result = new List <Op>();

            foreach (Format.Schema.Op op in expression.Ops)
            {
                Either <Errors.FormatError, Op> deserialized = Op.DeserializeV1(op);

                if (deserialized.IsLeft)
                {
                    return(deserialized.Left);
                }
                else
                {
                    result.Add(deserialized.Right);
                }
            }

            return(new Expression(result));
        }