Piece Designators
A piece designator denotes the squares on which certain pieces lie in the current position. Piece designators are the foundation of CQL files: nearly every CQL file includes them. Examples of piece designators are:Piece designator example | denoted squares |
---|---|
b2 | square b2 |
Q | squares on which there is a white queen |
a-h3 | squares on 3rd rank |
[Qq] | squares on which there is a white or black queen |
Qa3 | a3, if there is a white queen on a3, otherwise no squares |
[PqR]a-h2 | squares on the 2nd rank on which there is either a white pawn, a black queen, or a white rook |
A[b-h2,d5,e-f7-8] | squares in b2,c2,d2,e2,f2,g2,h2,d5,e7,f7,e8,f8 on which there is a white piece |
_f1-8 | empty squares on the f file |
Formally, a piece designator consists of a piece type designator followed by a square designator. If the piece type designator is absent, all piece types (including empty square) are denoted. If the square designator is absent, all 64 squares are denoted.
The piece type designator
A piece type designator is either a simple piece type designator or a compound piece type designator.The simple piece type designators are these:
designator | meaning |
---|---|
Q | white queen |
q | black queen |
B | white bishop |
b | black bishop |
R | white rook |
r | black rook |
N | white knight |
n | black knight |
K | white king |
k | black king |
P | white pawn |
p | black pawn |
A | any white piece |
a | any black piece |
_ | empty square |
A compound piece type designator is a string each of whose characters are simple piece type designators, enclosed in square brackets.
Examples of piece type designators are:
compound piece designator | meaning |
---|---|
[Ak] | Any white piece or the black king |
[KQRBNPk] | Any white piece or the black king |
[KQRBNPk] | Any white piece or the black king |
[K_] | white king or empty square |
[Aa_] | any piece or empty square |
The square designator
A square designator is a simple square designator or a compound square designator.A simple square designator is a file designator followed by a rank designator (without white space between them).
A file designator is a file name optionally followed by a hyphen and a file name.
A file name is one of the characters a
through h
.
A rank designator is a number between 1
and 8
, or two such numbers separated by a hyphen.
Examples of simple square designators are:
simple square designator |
---|
d4 |
d4-5 |
a-h1-8 |
A compound square designator is a list of simple square designators separated by commas without whitespace, such as:
compound square designator |
---|
[a1,h1,a8,h8] |
[a1-8,a-h1,a-h8,h1-8] |
A simple square designator denotes the squares on the chessboard that it names in the obvious way.
A compound square designator denotes the union of the squares denoted by the simple piece designators that it contains.
For example, [a1,h1,a8,h8]
denotes the corners of the board. [a1-8,a-h1,a-h8,h1-8]
denotes the edges of the board.
Piece designators denote squares
In CQL, we think of piece designators as denoting sets of squares in the current position.
- A simple piecetype designator denotes the square on which the a piece (or empty square) of the kind it describes lie.
- A compound piecetype designator denotes the union of the squares denoted by its constituent simple piecetype designators.
For example, if the current position is the start position of a chess game, then the the piece designators in the left column below denote the sets of square in the right column:
piece designator | squares denoted in start position |
---|---|
R | the two squares [a1,h1] |
[Rr] | the four corner squares |
Ra1 | the square a1 |
Ra2 | the empty set of squares. |
[Pp]d-e1-8 | the four squares [d2,e2,d7,e7] |
_ | the squares [a-h3-6] |
[nb] | the squares [b-c8,f-g8] |