1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
/**********************************************************************
Freeciv - Copyright (C) 1996 - A Kjeldberg, L Gregersen, P Unold
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
***********************************************************************/
/**********************************************************************
A low-level object for reading a registry-format file.
See comments in inputfile.c
***********************************************************************/
#ifndef FC__INPUTFILE_H
#define FC__INPUTFILE_H
struct inputfile; /* opaque */
struct inputfile *inf_open(const char *filename);
void inf_close(struct inputfile *inf);
int inf_at_eof(struct inputfile *inf);
enum inf_token_type {
INF_TOK_SECTION_NAME,
INF_TOK_ENTRY_NAME,
INF_TOK_EOL,
INF_TOK_TABLE_START,
INF_TOK_TABLE_END,
INF_TOK_COMMA,
INF_TOK_VALUE,
INF_TOK_LAST
};
#define INF_TOK_FIRST INF_TOK_SECTION_NAME
const char *inf_token(struct inputfile *inf, enum inf_token_type type);
const char *inf_token_required(struct inputfile *inf, enum inf_token_type type);
int inf_discard_tokens(struct inputfile *inf, enum inf_token_type type);
void inf_die(struct inputfile *inf, const char *message);
void inf_warn(struct inputfile *inf, const char *message);
#endif /* FC__INPUTFILE_H */
|