Numeric expressions: comparing

In OmniMark, you can compare two or more numeric expressions with a standard set of operators.

The following comparison operators are available:

  • "=": tests the equality of the two numeric expressions
  • "!=": tests whether the two numeric expressions are different
  • "<=": tests whether the first numeric expression is less than or equal to the second
  • "<": tests whether the first numeric expression is less than the second
  • ">=": tests whether the first numeric expression is greater than or equal to the second
  • ">": tests whether the first numeric expression is greater than the second

An unparenthesized comparison can consist of more than two parts, provided that the parts are compatible. The operator "!=" is never permitted in a multi-part comparison, and "<" or "<=" cannot be mixed with ">" or ">=".

A multi-part numeric comparison must consist of operators from either one or the other of the following sets (but not both):

  • "=", "<", or "<="
  • "=", ">", or ">="

For example, all of the following are valid multi-part numeric comparison tests:

  do when a = b = c = d
  ...
  done
  
  do when a < b < c < d
  ...
  done
  
  do when a >= b >= c >= d
  ...
  done
  
  do when a <= b = c < d
  ...
  done
  
  do when a = b & b = c & c = d
  ...
  done
  
  do when a < b & b < c & c < d
  ...
  done
  
  do when a >= b & b >= c & c >= d
  ...
  done
  
  do when a <= b & b = c & c <d
  ...
  done

All of OmniMark's comparison operators can be overloaded and used to compare user defined data types created with records.