]> git.sesse.net Git - pgn-extract/blob - argsfile.h
Add support for outputting positions in my own bit-packed FEN format.
[pgn-extract] / argsfile.h
1 /*
2  *  Program: pgn-extract: a Portable Game Notation (PGN) extractor.
3  *  Copyright (C) 1994-2014 David Barnes
4  *  This program is free software; you can redistribute it and/or modify
5  *  it under the terms of the GNU General Public License as published by
6  *  the Free Software Foundation; either version 1, or (at your option)
7  *  any later version.
8  *
9  *  This program is distributed in the hope that it will be useful,
10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  *  GNU General Public License for more details.
13  *
14  *  You should have received a copy of the GNU General Public License
15  *  along with this program; if not, write to the Free Software
16  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17  *
18  *  David Barnes may be contacted as D.J.Barnes@kent.ac.uk
19  *  http://www.cs.kent.ac.uk/people/staff/djb/
20  *
21  */
22
23 /* Classifications for the arguments allowed in an argsfile. */
24 typedef enum {
25     SEVEN_TAG_ROSTER_ARGUMENT = '7',
26     GAMES_PER_FILE_ARGUMENT = '#',
27     ALTERNATIVE_HELP_ARGUMENT = '?',
28     LONG_FORM_ARGUMENT = '-',
29     APPEND_TO_OUTPUT_FILE_ARGUMENT = 'a',
30     BOUNDS_ARGUMENT = 'b',
31     CHECK_FILE_ARGUMENT = 'c',
32     DUPLICATES_FILE_ARGUMENT = 'd',
33     USE_ECO_FILE_ARGUMENT = 'e',
34     FILE_OF_FILES_ARGUMENT = 'f',
35     HELP_ARGUMENT = 'h',
36     WRITE_TO_LOG_FILE_ARGUMENT = 'l',
37     NON_MATCHING_GAMES_ARGUMENT = 'n',
38     WRITE_TO_OUTPUT_FILE_ARGUMENT = 'o',
39     CHECK_ONLY_ARGUMENT = 'r',
40     KEEP_SILENT_ARGUMENT = 's',
41     TAGS_ARGUMENT = 't',
42     MOVES_ARGUMENT = 'v',
43     LINE_WIDTH_ARGUMENT = 'w',
44     POSITIONS_ARGUMENT = 'x',
45     ENDINGS_ARGUMENT = 'z',
46     FILE_OF_ARGUMENTS_ARGUMENT = 'A',
47     DONT_KEEP_COMMENTS_ARGUMENT = 'C',
48     DONT_KEEP_DUPLICATES_ARGUMENT = 'D',
49     ECO_OUTPUT_LEVEL_ARGUMENT = 'E',
50     OUTPUT_FEN_STRING_ARGUMENT = 'F',
51     APPEND_TO_LOG_FILE_ARGUMENT = 'L',
52     MATCH_CHECKMATE_ARGUMENT = 'M',
53     DONT_KEEP_NAGS_ARGUMENT = 'N',
54     DONT_MATCH_PERMUTATIONS_ARGUMENT = 'P',
55     TAG_ROSTER_ARGUMENT = 'R',
56     USE_SOUNDEX_ARGUMENT = 'S',
57     TAG_EXTRACTION_ARGUMENT = 'T',
58     SUPPRESS_ORIGINALS_ARGUMENT = 'U',
59     DONT_KEEP_VARIATIONS_ARGUMENT = 'V',
60     OUTPUT_FORMAT_ARGUMENT = 'W',
61     USE_VIRTUAL_HASH_TABLE_ARGUMENT = 'Z',
62     NO_ARGUMENT_MATCH = '\0'        /* No argument match. */
63 } ArgType;
64
65 void read_args_file(const char *infile);
66 void process_argument(char arg_letter,const char *associated_value);
67 int process_long_form_argument(const char *argument, const char *associated_value);