20 #define MISSION_TEXT_SIZE 1000000
30 #define COMMENT_CHAR (char)';'
31 #define EOF_CHAR (char)-128
32 #define EOLN (char)0x0a
38 #define F_MULTITEXTOLD 5 // needed for backwards compatability with old briefing format
41 #define F_SHIPCHOICE 8
42 #define F_MESSAGE 9 // this is now obsolete for mission messages - all messages in missions should now use $MessageNew and stuff strings as F_MULTITEXT
43 #define F_MULTITEXT 10
44 #define F_RAW 11 // for any internal parsing use. Just strips whitespace and copies the text.
45 #define F_LNAME 12 //Filenames
47 #define PARSE_BUF_SIZE 4096
49 #define SHIP_TYPE 0 // used to identify which kind of array to do a search for a name in
50 #define SHIP_INFO_TYPE 1
51 #define WEAPON_LIST_TYPE 2 // to parse an int_list of weapons
52 #define RAW_INTEGER_TYPE 3 // to parse a list of integers
53 #define WEAPON_POOL_TYPE 4
56 #define NOT_SET_BY_SEXP_VARIABLE -1
58 #define MISSION_LOADOUT_SHIP_LIST 0
59 #define MISSION_LOADOUT_WEAPON_LIST 1
60 #define CAMPAIGN_LOADOUT_SHIP_LIST 2
61 #define CAMPAIGN_LOADOUT_WEAPON_LIST 3
63 #define SEXP_SAVE_MODE 1
64 #define SEXP_ERROR_CHECK_MODE 2
113 extern void copy_to_eoln(
char *outstr,
char *more_terminators,
char *instr,
int max);
114 extern void copy_text_until(
char *outstr,
char *instr,
char *endstr,
int max_chars);
129 extern char*
alloc_block(
char* startstr,
char* endstr,
int extra_chars = 0);
151 extern int string_lookup(
char *str1,
char *strlist[],
int max,
char *description = NULL,
int say_errors = 0);
152 extern void find_and_stuff(
char *
id,
int *
addr,
int f_type,
char *strlist[],
int max,
char *description);
154 extern int match_and_stuff(
int f_type,
char *strlist[],
int max,
char *description);
156 int max,
char *description);
157 extern int get_string(
char *str,
int max = -1);
182 extern void mark_int_list(
int *ilp,
int max_ints,
int lookup_type);
192 int split_str(
const char *
src,
int max_pixel_w,
int *n_chars,
const char **p_str,
int max_lines,
char ignore_char = -1);
201 extern int replace_one(
char *str,
char *oldstr,
char *newstr,
unsigned int max_len,
int range = 0);
206 extern int replace_all(
char *str,
char *oldstr,
char *newstr,
unsigned int max_len,
int range = 0);
211 extern const char *
stristr(
const char *str,
const char *substr);
212 extern char *
stristr(
char *str,
const char *substr);
225 extern int strextcmp(
const char *s1,
const char *s2);
254 #define PARSING_FOUND_STRING 0
255 #define PARSING_FOUND_VARIABLE 1
GLenum GLsizei GLenum format
void stuff_string(char *outstr, int type, int len, char *terminators=NULL)
int stuff_float_list(float *flp, int max_floats)
void read_file_text(const char *filename, int mode=CF_TYPE_ANY, char *processed_text=NULL, char *raw_text=NULL)
void parse_advance(int s)
void vsprintf(SCP_string &dest, const char *format, va_list ap)
int split_str(const char *src, int max_pixel_w, int *n_chars, const char **p_str, int max_lines, char ignore_char=-1)
int check_for_string_raw(const char *pstr)
void drop_trailing_white_space(char *str)
bool Parsing_modular_table
void sprintf(SCP_string &dest, const char *format,...)
void stuff_float(float *f)
int stuff_float_optional(float *f, bool raw=false)
int string_lookup(char *str1, char *strlist[], int max, char *description=NULL, int say_errors=0)
void stuff_malloc_string(char **dest, int type, char *terminators=NULL)
int stuff_int_optional(int *i, bool raw=false)
char * alloc_block(char *startstr, char *endstr, int extra_chars=0)
void process_raw_file_text(char *processed_text=NULL, char *raw_text=NULL)
int stuff_string_list(SCP_vector< SCP_string > &slp)
const char * stristr(const char *str, const char *substr)
char * get_pointer_to_first_hash_symbol(char *src)
void stuff_boolean_flag(int *i, int flag, bool a_to_eol=true)
int skip_to_string(char *pstr, char *end=NULL)
void stuff_vec3d(vec3d *vp)
bool end_string_at_first_hash_symbol(char *src)
int parse_modular_table(const char *name_check, void(*parse_callback)(const char *filename), int path_type=CF_TYPE_TABLES, int sort_type=CF_SORT_REVERSE)
int is_white_space(char ch)
void mark_int_list(int *ilp, int max_ints, int lookup_type)
std::basic_string< char, std::char_traits< char >, std::allocator< char > > SCP_string
int subsystem_stricmp(const char *str1, const char *str2)
void convert_sexp_to_string(SCP_string &dest, int cur_node, int mode)
GLenum GLuint GLenum GLsizei const GLchar * buf
int required_string_fred(char *pstr, char *end=NULL)
ParseException(const std::string &msg)
int match_and_stuff(int f_type, char *strlist[], int max, char *description)
int get_string(char *str, int max=-1)
void compact_multitext_string(char *str)
int get_string_or_variable(char *str)
void format_integer_with_commas(char *buf, int integer, bool use_comma_with_four_digits)
int optional_string_fred(char *pstr, char *end=NULL, char *end2=NULL)
int replace_all(char *str, char *oldstr, char *newstr, unsigned int max_len, int range=0)
int get_index_of_first_hash_symbol(SCP_string &src)
void stuff_boolean(int *i, bool a_to_eol=true)
void copy_text_until(char *outstr, char *instr, char *endstr, int max_chars)
void advance_to_eoln(char *terminators)
int stuff_int_list(int *ilp, int max_ints, int lookup_type=RAW_INTEGER_TYPE)
int skip_to_start_of_string_either(char *pstr1, char *pstr2, char *end=NULL)
void error_display(int error_level, char *format,...)
int replace_one(char *str, char *oldstr, char *newstr, unsigned int max_len, int range=0)
void stuff_ubyte(ubyte *i)
void stuff_string_until(char *outstr, char *endstr, int len=0)
char * stuff_and_malloc_string(int type, char *terminators=NULL)
GLsizei const GLchar ** string
void backspace(char *src)
int scan_fso_version_string(const char *text, int *major, int *minor, int *build, int *revis)
int optional_string(const char *pstr)
void stuff_matrix(matrix *mp)
int optional_string_one_of(int arg_count,...)
void copy_to_eoln(char *outstr, char *more_terminators, char *instr, int max)
void drop_leading_white_space(char *str)
void find_and_stuff(char *id, int *addr, int f_type, char *strlist[], int max, char *description)
int required_string_either(char *str1, char *str2)
Checks for one of two required strings.
void find_and_stuff_optional(char *id, int *addr, int f_type, char *strlist[], int max, char *description)
void debug_show_mission_text()
char * drop_white_space(char *str)
void stuff_parenthesized_vec3d(vec3d *vp)
GLboolean GLboolean GLboolean b
int stuff_vec3d_list(vec3d *vlp, int max_vecs)
int stuff_loadout_list(int *ilp, int max_ints, int lookup_type)
int skip_to_start_of_string(char *pstr, char *end=NULL)
char * split_str_once(char *src, int max_pixel_w)
void stuff_string_white(char *outstr, int len=0)
void parse_float_list(float *plist, int size)
int required_string_one_of(int arg_count,...)
Checks for one of any of the given required strings.
int check_for_string(const char *pstr)
int required_string(const char *pstr)
void diag_printf(char *format,...)
int required_string_either_fred(char *str1, char *str2)
int strextcmp(const char *s1, const char *s2)
int optional_string_either(char *str1, char *str2)
void truncate_message_lines(SCP_string &text, int num_allowed_lines)
int parse_string_flag_list(int *dest, flag_def_list defs[], int defs_size)
void ignore_white_space()
void read_raw_file_text(const char *filename, int mode=CF_TYPE_ANY, char *raw_text=NULL)
int stuff_bool_list(bool *blp, int max_bools)
void parse_int_list(int *ilist, int size)
bool can_construe_as_integer(const char *text)
void read_file_text_from_array(const char *array, char *processed_text=NULL, char *raw_text=NULL)
void reset_parse(char *text=NULL)
bool drop_extension(char *str)
void stuff_string_line(char *outstr, int len)
int is_gray_space(char ch)
GLenum const GLvoid * addr
void display_parse_diagnostics()
void find_and_stuff_or_add(char *id, int *addr, int f_type, char *strlist[], int *total, int max, char *description)