Module binbo_fen

Data Types

atom_color()

atom_color() = binbo_board:atom_color()

castlig_error()

castlig_error() = empty_castling | {invalid_character, [byte()]}

fen()

fen() = binary() | [byte()]

fen_error()

fen_error() = empty_fen | invalid_fen_string | bad_data_type | too_few_parts | {position, position_error()} | {invalid_active_color, binary()} | {castling, castlig_error()} | {invalid_enpassant, binary()} | {invalid_halfmove, binary()} | {invalid_fullmove, binary()}

fullmove()

fullmove() = pos_integer()

halfmove()

halfmove() = non_neg_integer()

initial_fen()

initial_fen() = <<_:448>>

parsed_fen()

parsed_fen() = #parsed_fen{position = binbo_fen:position(), sidetomove = undefined | 119 | 98, castling = binbo_position:castling(), enpassant = none | binbo_board:square_index(), halfmove = non_neg_integer(), fullmove = pos_integer()}

piece()

piece() = binbo_board:piece()

piece_char()

piece_char() = 80 | 78 | 66 | 82 | 81 | 75 | 112 | 110 | 98 | 114 | 113 | 107

pieces_totals_error()

pieces_totals_error() = {no_kings, atom_color()} | {too_many_kings | too_many_pawns, atom_color(), pos_integer()} | {bad_totals, atom_color(), {total, qty()}, {pawns, qty()}, {knights, qty()}, {bishops, qty()}, {rooks, qty()}, {queens, qty()}, {kings, qty()}}

position()

position() = [{sq_idx(), piece()}]

position_error()

position_error() = empty_position | not_8_ranks | empty_rank | rank_error() | pieces_totals_error()

qty()

qty() = non_neg_integer()

rank_error()

rank_error() = {last_index_mismatch | index_out_of_range, pos_integer(), {rank, rank_number()}} | {invalid_character, [non_neg_integer(), ...]}

rank_number()

rank_number() = binbo_board:rank_number()

sq_idx()

sq_idx() = binbo_board:square_index()

Function Index

initial/0
parse/1

Function Details

initial/0

initial() -> initial_fen()

parse/1

parse(Fen::fen()) -> {ok, parsed_fen()} | {error, fen_error()}


Generated by EDoc