private static char EqualityToCharacter(EqualitySign equality)
 {
     switch (equality)
     {
         case EqualitySign.EqualTo:
             return '=';
         case EqualitySign.GreaterThan:
             return '>';
         case EqualitySign.GreaterThanOrEqualTo:
             return '≥';
         case EqualitySign.LessThan:
             return '<';
         case EqualitySign.LessThanOrEqualTo:
             return '≤';
         case EqualitySign.NotEqualTo:
             return '≠';
         default:
             return '\0';
     }
 }
 public Constraint(string leftValue, EqualitySign equality, string rightValue)
 {
     LeftValue = leftValue;
     RightValue = rightValue;
     Equality = equality;
 }
        private static OpCode GetOpCodeFromEquality(EqualitySign equality)
        {
            OpCode op = default(OpCode);

            switch (equality)
            {
                case EqualitySign.EqualTo:
                    op = OpCodes.Beq_S;
                    break;
                case EqualitySign.NotEqualTo:
                    // A default value indicates a not equal to equality, because for the CLI spec
                    // doesn't have a "not equal to" opcode for floating point values
                    break;
                case EqualitySign.LessThan:
                    op = OpCodes.Blt_S;
                    break;
                case EqualitySign.LessThanOrEqualTo:
                    op = OpCodes.Ble_S;
                    break;
                case EqualitySign.GreaterThan:
                    op = OpCodes.Bgt_S;
                    break;
                case EqualitySign.GreaterThanOrEqualTo:
                    op = OpCodes.Bge_S;
                    break;
            }

            return op;
        }