ranges

A range is an integer or a pair of integers. A range denotes the integers that lie between its contents. Ranges are used throughout CQL for counting things.
      range := integer 
      range := integer integer
If two integers are present, the second integer must be greater than or equal to the first integer. Examples of ranges:
      10
      10 20
      0 1000
      -1 1

Semantics of ranges

If the second argument is missing then it is taken to be equal to the first argument. A range represents the integers greater than or equal to its first argument and less than or equal to its second argument.

For example,

	10
denotes the number 10.
 0 3
denotes the four numbers 0, 1, 2, and 3.

Note on the use of ranges in the grammar

Many CQL filters take what we call an optional range. This is a range that might or not be present. For example, attack takes an optional range: one can write either attack (A k) or attack 1 100 (A k), and both will be true in positions in which the black King is in check.