cantera/src/apps/tok_input_util.h

84 lines
3.2 KiB
C

#ifndef TOK_INPUT_UTIL_H
#define TOK_INPUT_UTIL_H
#include "stdio.h"
#ifndef MAX_INPUT_STR_LN
#define MAX_INPUT_STR_LN 16100
#endif
#ifndef MAX_TOKEN_STR_LN
#define MAX_TOKEN_STR_LN 255
#endif
#ifndef MAXTOKENS
#define MAXTOKENS 20
#endif
/**************************************************************************/
/* TOKEN structure:
* This structure is used to parse strings. The original string is
* tokenized into a set of tokens via separation wrt white space.
* Both the tokens and the original
* string are stored within the structure
*/
struct TOKEN {
char* orig_str;
char* tok_str;
char* tok_ptr[MAXTOKENS];
int ntokes;
TOKEN(void);
~TOKEN();
TOKEN(const char* str);
};
#define NO_DEFAULT_INT -68361
#define NO_DEFAULT_BOOLEAN NO_DEFAULT_INT
#define NO_DEFAULT_DOUBLE -1.241E+11
#define NO_DEFAULT_STR "NO_DEFAULT"
/**************************************************************************/
/* Prototypes for routines tok_input_util.c */
/**************************************************************************/
extern bool get_next_keyLine(FILE*, TOKEN*, TOKEN*);
extern int tok_to_int(const TOKEN*, const int, const int,
const int, bool*);
extern int str_to_int(const char*, const int, const int,
const int, bool*);
extern double tok_to_double(const TOKEN*, const double, const double,
const double, bool*);
extern double str_to_double(const char*, const double, const double,
const double, bool*);
extern bool tok_to_boolean(const TOKEN*, const int, bool*);
extern bool str_to_boolean(const char*, const int, bool*);
extern char* tok_to_string(const TOKEN*, const int, const int,
const char*, bool*);
extern char* str_to_string(const char*, const char*, bool*);
extern int scan_for_int(FILE*, const char*, const int, const int);
extern double scan_for_double(FILE*, const char*, const double,
const double);
extern char* scan_for_string(FILE*, const char*, const int, const int);
extern bool scan_for_boolean(FILE*, const char*);
extern int scan_for_line(FILE*, const char*, char [], const char,
const int);
extern int read_line(FILE*, char [], const int);
extern int read_string(FILE*, char [], const char);
extern int strip(char []);
extern void lower_case(char []);
extern char* TokToStrng(const TOKEN*);
extern int stokenize(char*, const char*, char *[], const int);
extern bool strmatch(const char*, const char*);
extern bool strstrmatch(const char*, const char*);
extern bool strtokmatch(const TOKEN*, const char*);
extern bool toktokmatch(const TOKEN*, const TOKEN*);
extern void fillTokStruct(TOKEN*, const char*);
extern void copyTokStruct(TOKEN*, const TOKEN*);
extern int in_char_list(const char* const, const char** const, int);
extern char* copy_string(const char*);
extern void strip_item_from_token(int, TOKEN*);
/**************************************************************************/
#endif /* END OF TOK_INPUT_UTIL_H */
/**************************************************************************/