on filter
Anon
filter is a left clause and a right clause with the word on
between them. Each of the clauses must be set filters.
on-filter := left-clause 'on' right-clause left-clause := set-filter right-clause := set-filterThe set associated with an
on
filter in a position is the intersection of the sets associated with its left clause and right clause in that position. For example,
B on between (A A)matches any square in a position that has white Bishop on it between two white pieces. The left clause of the on filter is
B
which is a piece designator filter and is associated with the set of squares that has a white Bishop on it. The right clause is between (A A)
which is a between filter and is associated with the set of squares between two white pieces.
on
filters may be chained:
B on between (A A) on attack (a A)will match the set of squares in a position that has a white Bishop on it between two white pieces and that is attacked by a black piece. This is technically a single
on
filter whose left clause is the piece designator filter B
and whose right clause is the on
filter whose left clause is the between
filter between (A A)
and whose right clause is the attack
filter attack (a A).
Examples