castleecho.cql

// Download castleecho.cql
// PGN output when run on sample.pgn

/*******
Two positions differ only in that in one castling (to a particular side) is allowed
and in the other that kind of castling is not allowed.
*******/

cql(input heijden.pgn variations )
move legal castle
echo(source target){
  sidetomove==source:sidetomove
  source&target==.
  {source:move legal o-o
    and not move legal o-o
   comment "o-o is not legal"
   source:comment "o-o is legal"}
  or
  {source:move legal o-o-o
   and not move legal o-o-o
   comment "o-o-o is not legal"
   source:comment "o-o-o is legal"}
}