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); }
public override Format.Schema.Op Serialize() { Format.Schema.Op op = new Format.Schema.Op { Value = this.value.Serialize() }; return(op); }
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")); } }
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); }