Пример #1
0
            public override Format.Schema.Op Serialize()
            {
                Format.Schema.Op result = new Format.Schema.Op();

                Format.Schema.OpUnary opUnary = new Format.Schema.OpUnary();

                switch (this.op)
                {
                case UnaryOp.Negate:
                    opUnary.Kind = Format.Schema.OpUnary.Types.Kind.Negate;
                    break;

                case UnaryOp.Parens:
                    opUnary.Kind = Format.Schema.OpUnary.Types.Kind.Parens;
                    break;

                case UnaryOp.Length:
                    opUnary.Kind = Format.Schema.OpUnary.Types.Kind.Length;
                    break;
                }

                result.Unary = opUnary;

                return(result);
            }
Пример #2
0
            public override Format.Schema.Op Serialize()
            {
                Format.Schema.Op op = new Format.Schema.Op
                {
                    Value = this.value.Serialize()
                };

                return(op);
            }
Пример #3
0
 static public Either <FormatError, Op> DeserializeV1(Format.Schema.Op op)
 {
     if (op.Value != null)
     {
         return(ID.DeserializeEnumV1(op.Value).Select <Op>(v => new Op.Value(v)));
     }
     else if (op.Unary != null)
     {
         return(Op.Unary.DeserializeV1(op.Unary));
     }
     else if (op.Binary != null)
     {
         return(Op.Binary.DeserializeV1(op.Binary));
     }
     else
     {
         return(new DeserializationError("invalid unary operation"));
     }
 }
Пример #4
0
            public override Format.Schema.Op Serialize()
            {
                Format.Schema.Op b = new Format.Schema.Op();

                Format.Schema.OpBinary b1 = new Format.Schema.OpBinary();

                switch (this.op)
                {
                case BinaryOp.LessThan:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.LessThan;
                    break;

                case BinaryOp.GreaterThan:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.GreaterThan;
                    break;

                case BinaryOp.LessOrEqual:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.LessOrEqual;
                    break;

                case BinaryOp.GreaterOrEqual:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.GreaterOrEqual;
                    break;

                case BinaryOp.Equal:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.Equal;
                    break;

                case BinaryOp.Contains:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.Contains;
                    break;

                case BinaryOp.Prefix:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.Prefix;
                    break;

                case BinaryOp.Suffix:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.Suffix;
                    break;

                case BinaryOp.Regex:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.Regex;
                    break;

                case BinaryOp.Add:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.Add;
                    break;

                case BinaryOp.Sub:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.Sub;
                    break;

                case BinaryOp.Mul:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.Mul;
                    break;

                case BinaryOp.Div:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.Div;
                    break;

                case BinaryOp.And:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.And;
                    break;

                case BinaryOp.Or:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.Or;
                    break;

                case BinaryOp.Intersection:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.Intersection;
                    break;

                case BinaryOp.Union:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.Union;
                    break;
                }

                b.Binary = b1;

                return(b);
            }