* and en-passant notation.
* UCI: UCI-compatible format - actually LALG.
*/
-typedef enum { SOURCE, SAN, EPD, CM, LALG, HALG, ELALG, UCI } OutputFormat;
+typedef enum { SOURCE, SAN, EPD, CM, LALG, HALG, ELALG, UCI, SESSE_BIN } OutputFormat;
/* Define a type to specify whether a move gives check, checkmate,
* or nocheck.
*/
#define MAX_MOVE_LEN 15
+struct EcoLog;
+typedef struct EcoLog EcoLog;
+
/* Retain the text of a move and any associated
* NAGs and comments.
*/
* has been played.
*/
char *epd;
+ /* Same as epd, but in our special binary packed format.
+ * Not zero-terminated, since it is binary.
+ */
+ char *bpfen;
+ int bpfen_len;
StringList *Nags;
CommentList *Comment;
/* terminating_result hold the result of the current list of moves. */
char *terminating_result;
Variation *Variants;
+ EcoLog *eco;
/* Pointers to the previous and next move.
* The extraction program does not need the prev field, but my
* intention is to build other interfaces that might need it.
* 0 => no error found.
*/
int error_ply;
+ /* File position of the first byte of the game, or -1
+ * if unknown.
+ */
+ long start_position;
} Game;
/* Define a type to distinguish between CHECK files, NORMAL files,
Boolean output_total_plycount;
/* Whether to add a HashCode tag. */
Boolean add_hashcode_tag;
+ /* Whether to dump ECO data to stdout after loading.*/
+ Boolean dump_eco;
/* The comment to use for position matches, if required. */
const char *position_match_comment;
/* Current input file name. */
const char *current_input_file;
/* Whether this is a CHECKFILE or a NORMALFILE. */
SourceFileType current_file_type;
+ /* Byte positions to scan to and from in the PGN file.
+ * Starting in the middle of a game will yield unexpected
+ * results.
+ */
+ long start_position;
+ long end_position;
/* File of ECO lines. */
const char *eco_file;
/* Where to write the extracted games. */