FEN tag¶
The Forsyth-Edwards Notation or shortly FEN tag defines a position on the board. In the PDN 2.0 draft standard the following syntax is proposed:
[TURN]:[COLOUR1][[K][SQUARE_NUM][,]...]:[COLOUR2][[K][SQUARE_NUM][,]...]
We extend this syntax with ranges of numeric fields, such that the start
position of international draughts can be defined as [FEN "W:W31-50:B1-20"]
.
Another extension is that we allow ?
to denote an unknown color.
The following grammar describes the formal syntax of the value of a FEN tag.
// Productions
Fen : COLOR (NumericSquares | AlphaNumericSquares) DOT?
NumericSquares : (COLON COLOR NumericSquareSequence)+
NumericSquareSequence : NumericSquareRange (COMMA NumericSquareRange)*
NumericSquareRange : KING? NUMSQUARE (HYPHEN NUMSQUARE)?
AlphaNumericSquares : (COLON COLOR AlphaNumericSquareSequence)+
AlphaNumericSquareSequence : KING? ALPHASQUARE (COMMA KING? ALPHASQUARE)*
// Tokens
COLOR : "[WB?]"
KING : "K"
ALPHASQUARE : "[a-h][1-8]"
NUMSQUARE : "([1-9][0-9]*)|(0[1-9][0-9]*)|0"
HYPHEN : "\-"
COMMA : "\,"
COLON : "\:"
DOT : "\."
Important
Some corrections have been made.
The
COMMA
inNumericSquareSequence
andAlphaNumericSquareSequence
is mandatory.A missing
KING?
inAlphaNumericSquareSequence
has been added.NUMSQUARE
may contain more than two digits (it is up to the implementer to do range checks).
Restrictions¶
The following restrictions apply when writing a FEN tag:
No embedded spaces are allowed inside the value of a FEN tag
No dot (‘.’) is allowed at the end of the value of a FEN tag
Examples¶
[FEN "B:W18,24,27,28,K10,K15:B12,16,20,K22,K25,K29"]
[FEN "B:W18,19,21,23,24,26,29,30,31,32:B1,2,3,4,6,7,9,10,11,12"]
[FEN "W:W31-50:B1-20"]
Extensions¶
The above grammar does not allow positions with no pieces for one of the players. It should therefore be extended to accept empty ranges of pieces.