Go to the documentation of this file.
38 #ifndef SEAMS_DRIVER_H
39 #define SEAMS_DRIVER_H
50 #ifndef math_errhandling
51 #define math_errhandling MATH_ERRNO
56 #define isatty _isatty
95 double (*
fnctptr_ddddc)(double, double, double, double,
char *){
nullptr};
96 double (*
fnctptr_dddddd)(double, double, double, double, double, double){
nullptr};
99 const char *(*strfnct)(){
nullptr};
100 const char *(*strfnct_c)(
char *){
nullptr};
101 const char *(*strfnct_d)(double){
nullptr};
102 const char *(*strfnct_a)(
const array *){
nullptr};
103 const char *(*strfnct_dd)(double, double){
nullptr};
104 const char *(*strfnct_cc)(
char *,
char *){
nullptr};
105 const char *(*strfnct_ccc)(
char *,
char *,
char *){
nullptr};
106 const char *(*strfnct_dcc)(double,
char *,
char *){
nullptr};
107 const char *(*strfnct_dcccc)(double,
char *,
char *,
char *,
char *){
nullptr};
109 array *(*arrfnct_c)(
const char *){
nullptr};
110 array *(*arrfnct_cc)(
const char *,
const char *){
nullptr};
111 array *(*arrfnct_cd)(
const char *, double){
nullptr};
112 array *(*arrfnct_ddd)(double, double, double){
nullptr};
113 array *(*arrfnct_dd)(double, double){
nullptr};
114 array *(*arrfnct_d)(double){
nullptr};
121 symrec(
const char *my_name,
int my_type,
bool is_internal =
false)
128 symrec(
const std::string &my_name,
int my_type,
bool is_internal =
false)
162 file_rec(
const char *my_name,
int line_num,
bool is_temp,
int loop_cnt)
218 bool parse_stream(std::istream &in,
const std::string &in_name =
"stream input");
225 bool parse_string(
const std::string &input,
const std::string &sname =
"string stream");
232 bool parse_strings(
const std::vector<std::string> &input,
const std::string &sname);
253 void statistics(std::ostream *out =
nullptr)
const;
264 void add_variable(
const std::string &sym_name,
const std::string &sym_value,
265 bool immutable =
false,
bool internal =
false);
266 void add_variable(
const std::string &sym_name,
double sym_value,
bool immutable =
false,
267 bool internal =
false);
273 int set_option(
const std::string &option,
const std::string &optional_value = std::string(
""));
275 std::fstream *
open_file(
const std::string &file,
const char *mode);
276 std::fstream *
check_open_file(
const std::string &file,
const char *mode);
287 void error(
const std::string &msg,
bool line_info =
true,
bool prefix =
true)
const;
288 void warning(
const std::string &msg,
bool line_info =
true,
bool prefix =
true)
const;
289 void info(
const std::string &msg,
bool line_info =
false,
bool prefix =
true)
const;
295 void set_error_streams(std::ostream *c_error, std::ostream *c_warning, std::ostream *c_info);
297 void dumpsym(
const char *type,
bool doInternal)
const;
298 void dumpsym(
int type,
bool doInternal)
const;
299 void dumpsym(
int type,
const char *pre,
bool doInternal)
const;
339 void add_history(
const std::string &original,
const std::string &substitution);
350 #endif // SEAMS_DRIVER_H
Definition: apr_aprepro.cc:68
void warning(const std::string &msg, bool line_info=true, bool prefix=true) const
Definition: apr_aprepro.cc:210
void dumpsym(const char *type, bool doInternal) const
Definition: apr_aprepro.cc:683
const std::ostringstream & parsing_results() const
Definition: aprepro.h:207
bool parse_stream(std::istream &in, const std::string &in_name="stream input")
Definition: apr_aprepro.cc:111
bool one_based_index
Definition: aprepro.h:149
aprepro_options()=default
int parseErrorCount
Definition: aprepro.h:319
void clear_history()
Definition: apr_aprepro.cc:873
void error(const std::string &msg, bool line_info=true, bool prefix=true) const
Definition: apr_aprepro.cc:184
class Scanner * stringScanner
Definition: aprepro.h:310
std::string version() const
Definition: apr_aprepro.cc:103
std::ostream * infoStream
Definition: aprepro.h:293
void add_history(const std::string &original, const std::string &substitution)
Definition: apr_aprepro.cc:855
std::vector< symrec * > sym_table
Definition: aprepro.h:303
bool dumpvars
Definition: aprepro.h:145
Definition: aprepro.h:155
std::stack< std::ostream * > outputStream
Definition: aprepro.h:258
std::stack< file_rec > ap_file_list
Definition: aprepro.h:256
void info(const std::string &msg, bool line_info=false, bool prefix=true) const
Definition: apr_aprepro.cc:240
double(* fnctptr_c)(char *)
Definition: aprepro.h:86
int loop_count
Definition: aprepro.h:159
double(* fnctptr_cc)(char *, char *)
Definition: aprepro.h:89
bool isInternal
Definition: aprepro.h:80
bool debugging
Definition: aprepro.h:144
struct SEAMS::symrec::value value
class Scanner * lexer
Definition: aprepro.h:280
double(* fnctptr_dddd)(double, double, double, double)
Definition: aprepro.h:94
void clear_results()
Definition: apr_aprepro.cc:105
double var
Definition: aprepro.h:83
SEAMS::symrec * getsym(const char *sym_name) const
Definition: apr_aprepro.cc:670
bool end_on_exit
Definition: aprepro.h:141
int type
Definition: aprepro.h:79
std::string include_file
Definition: aprepro.h:140
int rows
Definition: aprepro.h:66
double(* fnctptr_ccd)(char *, char *, double)
Definition: aprepro.h:93
void set_error_streams(std::ostream *c_error, std::ostream *c_warning, std::ostream *c_info)
Definition: apr_aprepro.cc:269
bool inIfdefGetvar
Definition: aprepro.h:342
double(* fnctptr_dd)(double, double)
Definition: aprepro.h:90
double(* fnctptr_ccc)(char *, char *, char *)
Definition: aprepro.h:92
double(* fnctptr_cd)(char *, double)
Definition: aprepro.h:88
bool parse_string_interactive(const std::string &input)
Definition: apr_aprepro.cc:154
Definition: aprepro.h:137
bool stringInteractive
Definition: aprepro.h:309
int get_error_count() const
Definition: aprepro.h:283
~Aprepro()
Definition: apr_aprepro.cc:80
double(* fnctptr)()
Definition: aprepro.h:84
bool immutable
Definition: aprepro.h:147
int set_option(const std::string &option, const std::string &optional_value=std::string(""))
Definition: apr_aprepro.cc:408
double(* fnctptr_dc)(double, char *)
Definition: aprepro.h:87
symrec(const char *my_name, int my_type, bool is_internal=false)
Definition: aprepro.h:121
int lineno
Definition: aprepro.h:158
std::string svar
Definition: aprepro.h:97
void statistics(std::ostream *out=nullptr) const
Definition: apr_aprepro.cc:800
std::fstream * open_file(const std::string &file, const char *mode)
Definition: apr_aprepro.cc:291
std::string info
Definition: aprepro.h:78
bool tmp_file
Definition: aprepro.h:160
SEAMS::symrec * putsym(const std::string &sym_name, SYMBOL_TYPE sym_type, bool is_internal)
Definition: apr_aprepro.cc:345
bool keep_history
Definition: aprepro.h:150
std::ostream * errorStream
Definition: aprepro.h:313
bool interactive
Definition: aprepro.h:146
bool parse_string(const std::string &input, const std::string &sname="string stream")
Definition: apr_aprepro.cc:139
std::vector< history_data > history
Definition: aprepro.h:317
std::string include_path
Definition: aprepro.h:139
bool isCollectingLoop
Definition: aprepro.h:335
array(int r, int c)
Definition: aprepro.h:69
symrec(const std::string &my_name, int my_type, bool is_internal=false)
Definition: aprepro.h:128
std::string & comment()
Definition: apr_units.cc:50
void add_variable(const std::string &sym_name, const std::string &sym_value, bool immutable=false, bool internal=false)
Definition: apr_aprepro.cc:537
int cols
Definition: aprepro.h:67
double(* fnctptr_ddddc)(double, double, double, double, char *)
Definition: aprepro.h:95
bool state_is_immutable() const
Definition: aprepro.h:202
std::streampos index
Definition: aprepro.h:174
bool info_msg
Definition: aprepro.h:143
bool warning_msg
Definition: aprepro.h:142
std::string syntax
Definition: aprepro.h:77
bool parse_strings(const std::vector< std::string > &input, const std::string &sname)
Definition: apr_aprepro.cc:145
symrec * next
Definition: aprepro.h:119
bool parse_file(const std::string &filename)
Definition: apr_aprepro.cc:130
std::istringstream stringInput
Definition: aprepro.h:307
aprepro_options ap_options
Definition: aprepro.h:255
file_rec(const char *my_name, int line_num, bool is_temp, int loop_cnt)
Definition: aprepro.h:162
double(* fnctptr_d)(double)
Definition: aprepro.h:85
bool doLoopSubstitution
Definition: aprepro.h:326
Definition: aprepro.h:170
std::vector< double > data
Definition: aprepro.h:65
const std::vector< history_data > & get_history()
Definition: apr_aprepro.cc:871
std::fstream * check_open_file(const std::string &file, const char *mode)
Definition: apr_aprepro.cc:324
SYMBOL_TYPE
Definition: aprepro.h:190
std::string name
Definition: aprepro.h:76
std::ostringstream parsingResults
Definition: aprepro.h:304
bool doIncludeSubstitution
Definition: aprepro.h:331
double(* fnctptr_a)(const array *)
Definition: aprepro.h:97
void remove_variable(const std::string &sym_name)
Definition: apr_aprepro.cc:624
bool trace_parsing
Definition: aprepro.h:148
Definition: apr_scanner.h:27
double(* fnctptr_dddddd)(double, double, double, double, double, double)
Definition: aprepro.h:96
Definition: aprepro.h:183
array * avar
Definition: aprepro.h:108
std::vector< std::string > get_variable_names(bool doInternal=false)
Definition: apr_aprepro.cc:594
std::ostream * warningStream
Definition: aprepro.h:314
Aprepro()
construct a new parser aprepro context
Definition: apr_aprepro.cc:72
std::string name
Definition: aprepro.h:157
bool string_interactive()
Definition: aprepro.h:244
bool stateImmutable
Definition: aprepro.h:322
std::string original
Definition: aprepro.h:172
std::string substitution
Definition: aprepro.h:173
double(* fnctptr_ddd)(double, double, double)
Definition: aprepro.h:91
void init_table(const char *comment)
Definition: apr_init.cc:396