38 #ifndef SEAMS_DRIVER_H 39 #define SEAMS_DRIVER_H 50 #ifndef math_errhandling 51 #define math_errhandling MATH_ERRNO 90 double (*
fnctptr_ddddc)(double, double, double, double,
char *){
nullptr};
91 double (*
fnctptr_dddddd)(double, double, double, double, double, double){
nullptr};
94 const char *(*strfnct)(){
nullptr};
95 const char *(*strfnct_c)(
char *){
nullptr};
96 const char *(*strfnct_d)(double){
nullptr};
97 const char *(*strfnct_a)(
const array *){
nullptr};
98 const char *(*strfnct_dd)(double, double){
nullptr};
99 const char *(*strfnct_cc)(
char *,
char *){
nullptr};
100 const char *(*strfnct_ccc)(
char *,
char *,
char *){
nullptr};
101 const char *(*strfnct_dcc)(double,
char *,
char *){
nullptr};
102 const char *(*strfnct_dcccc)(double,
char *,
char *,
char *,
char *){
nullptr};
104 array *(*arrfnct_c)(
const char *){
nullptr};
105 array *(*arrfnct_cc)(
const char *,
const char *){
nullptr};
106 array *(*arrfnct_cd)(
const char *, double){
nullptr};
107 array *(*arrfnct_dd)(double, double){
nullptr};
108 array *(*arrfnct_d)(double){
nullptr};
115 symrec(
const char *my_name,
int my_type,
bool is_internal =
false)
122 symrec(
const std::string &my_name,
int my_type,
bool is_internal =
false)
156 file_rec(
const char *my_name,
int line_num,
bool is_temp,
int loop_cnt)
212 bool parse_stream(std::istream &in,
const std::string &in_name =
"stream input");
219 bool parse_string(
const std::string &input,
const std::string &sname =
"string stream");
226 bool parse_strings(
const std::vector<std::string> &input,
const std::string &sname);
247 void statistics(std::ostream *out =
nullptr)
const;
258 void add_variable(
const std::string &sym_name,
const std::string &sym_value,
259 bool immutable =
false,
bool internal =
false);
260 void add_variable(
const std::string &sym_name,
double sym_value,
bool immutable =
false,
261 bool internal =
false);
267 int set_option(
const std::string &option,
const std::string &optional_value = std::string(
""));
269 std::fstream *
open_file(
const std::string &file,
const char *mode);
270 std::fstream *
check_open_file(
const std::string &file,
const char *mode);
281 void error(
const std::string &msg,
bool line_info =
true,
bool prefix =
true)
const;
282 void warning(
const std::string &msg,
bool line_info =
true,
bool prefix =
true)
const;
283 void info(
const std::string &msg,
bool line_info =
false,
bool prefix =
true)
const;
289 void set_error_streams(std::ostream *c_error, std::ostream *c_warning, std::ostream *c_info);
291 void dumpsym(
const char *type,
bool doInternal)
const;
292 void dumpsym(
int type,
bool doInternal)
const;
293 void dumpsym(
int type,
const char *pre,
bool doInternal)
const;
333 void add_history(
const std::string &original,
const std::string &substitution);
344 #endif // SEAMS_DRIVER_H symrec * next
Definition: aprepro.h:113
int parseErrorCount
Definition: aprepro.h:313
bool parse_strings(const std::vector< std::string > &input, const std::string &sname)
Definition: apr_aprepro.cc:141
int lineno
Definition: aprepro.h:152
void init_table(const char *comment)
Definition: apr_init.cc:376
Definition: aprepro.h:177
bool doLoopSubstitution
Definition: aprepro.h:320
std::string svar
Definition: aprepro.h:92
void set_error_streams(std::ostream *c_error, std::ostream *c_warning, std::ostream *c_info)
Definition: apr_aprepro.cc:242
std::ostream * infoStream
Definition: aprepro.h:287
bool parse_string_interactive(const std::string &input)
Definition: apr_aprepro.cc:150
std::stack< std::ostream * > outputStream
Definition: aprepro.h:252
std::string substitution
Definition: aprepro.h:167
symrec(const char *my_name, int my_type, bool is_internal=false)
Definition: aprepro.h:115
std::string include_path
Definition: aprepro.h:133
std::vector< std::string > get_variable_names(bool doInternal=false)
Definition: apr_aprepro.cc:575
Definition: aprepro.h:149
double(* fnctptr_dd)(double, double)
Definition: aprepro.h:85
const std::ostringstream & parsing_results() const
Definition: aprepro.h:201
bool immutable
Definition: aprepro.h:141
~Aprepro()
Definition: apr_aprepro.cc:78
std::string original
Definition: aprepro.h:166
double(* fnctptr_ccd)(char *, char *, double)
Definition: aprepro.h:88
void clear_history()
Definition: apr_aprepro.cc:857
int type
Definition: aprepro.h:74
void error(const std::string &msg, bool line_info=true, bool prefix=true) const
Definition: apr_aprepro.cc:180
void dumpsym(const char *type, bool doInternal) const
Definition: apr_aprepro.cc:664
bool warning_msg
Definition: aprepro.h:136
std::fstream * open_file(const std::string &file, const char *mode)
Definition: apr_aprepro.cc:264
bool interactive
Definition: aprepro.h:140
bool trace_parsing
Definition: aprepro.h:142
bool parse_file(const std::string &filename)
Definition: apr_aprepro.cc:126
aprepro_options ap_options
Definition: aprepro.h:249
bool isInternal
Definition: aprepro.h:75
bool parse_stream(std::istream &in, const std::string &in_name="stream input")
Definition: apr_aprepro.cc:107
struct SEAMS::symrec::value value
double(* fnctptr_d)(double)
Definition: aprepro.h:80
double(* fnctptr)()
Definition: aprepro.h:79
bool state_is_immutable() const
Definition: aprepro.h:196
int get_error_count() const
Definition: aprepro.h:277
void clear_results()
Definition: apr_aprepro.cc:101
bool one_based_index
Definition: aprepro.h:143
SYMBOL_TYPE
Definition: aprepro.h:184
std::string info
Definition: aprepro.h:73
std::istringstream stringInput
Definition: aprepro.h:301
void info(const std::string &msg, bool line_info=false, bool prefix=true) const
Definition: apr_aprepro.cc:221
double(* fnctptr_ddd)(double, double, double)
Definition: aprepro.h:86
double(* fnctptr_c)(char *)
Definition: aprepro.h:81
int rows
Definition: aprepro.h:61
bool isCollectingLoop
Definition: aprepro.h:329
bool inIfdefGetvar
Definition: aprepro.h:336
bool tmp_file
Definition: aprepro.h:154
const std::vector< history_data > & get_history()
Definition: apr_aprepro.cc:855
void statistics(std::ostream *out=nullptr) const
Definition: apr_aprepro.cc:779
std::streampos index
Definition: aprepro.h:168
array(int r, int c)
Definition: aprepro.h:64
bool stringInteractive
Definition: aprepro.h:303
bool stateImmutable
Definition: aprepro.h:316
SEAMS::symrec * getsym(const char *sym_name) const
Definition: apr_aprepro.cc:651
double(* fnctptr_cc)(char *, char *)
Definition: aprepro.h:84
double(* fnctptr_cd)(char *, double)
Definition: aprepro.h:83
std::string & comment()
Definition: apr_units.cc:50
std::ostream * warningStream
Definition: aprepro.h:308
bool parse_string(const std::string &input, const std::string &sname="string stream")
Definition: apr_aprepro.cc:135
class Scanner * lexer
Definition: aprepro.h:274
bool string_interactive()
Definition: aprepro.h:238
void add_variable(const std::string &sym_name, const std::string &sym_value, bool immutable=false, bool internal=false)
Definition: apr_aprepro.cc:512
void warning(const std::string &msg, bool line_info=true, bool prefix=true) const
Definition: apr_aprepro.cc:199
symrec(const std::string &my_name, int my_type, bool is_internal=false)
Definition: aprepro.h:122
std::ostringstream parsingResults
Definition: aprepro.h:298
SEAMS::symrec * putsym(const std::string &sym_name, SYMBOL_TYPE sym_type, bool is_internal)
Definition: apr_aprepro.cc:318
aprepro_options()=default
std::ostream * errorStream
Definition: aprepro.h:307
double(* fnctptr_ddddc)(double, double, double, double, char *)
Definition: aprepro.h:90
array * avar
Definition: aprepro.h:103
std::fstream * check_open_file(const std::string &file, const char *mode)
Definition: apr_aprepro.cc:297
std::string name
Definition: aprepro.h:151
Definition: aprepro.h:164
std::string include_file
Definition: aprepro.h:134
double(* fnctptr_dc)(double, char *)
Definition: aprepro.h:82
int loop_count
Definition: aprepro.h:153
int cols
Definition: aprepro.h:62
double(* fnctptr_dddd)(double, double, double, double)
Definition: aprepro.h:89
Definition: aprepro.h:131
bool doIncludeSubstitution
Definition: aprepro.h:325
std::string version() const
Definition: apr_aprepro.cc:99
std::string syntax
Definition: aprepro.h:72
int set_option(const std::string &option, const std::string &optional_value=std::string(""))
Definition: apr_aprepro.cc:384
Definition: apr_scanner.h:27
std::vector< double > data
Definition: aprepro.h:60
Definition: apr_aprepro.cc:57
double(* fnctptr_a)(const array *)
Definition: aprepro.h:92
double var
Definition: aprepro.h:78
bool keep_history
Definition: aprepro.h:144
bool info_msg
Definition: aprepro.h:137
void remove_variable(const std::string &sym_name)
Definition: apr_aprepro.cc:605
bool end_on_exit
Definition: aprepro.h:135
Aprepro()
construct a new parser aprepro context
Definition: apr_aprepro.cc:70
double(* fnctptr_ccc)(char *, char *, char *)
Definition: aprepro.h:87
bool dumpvars
Definition: aprepro.h:139
class Scanner * stringScanner
Definition: aprepro.h:304
bool debugging
Definition: aprepro.h:138
double(* fnctptr_dddddd)(double, double, double, double, double, double)
Definition: aprepro.h:91
std::string name
Definition: aprepro.h:71
std::vector< symrec * > sym_table
Definition: aprepro.h:297
void add_history(const std::string &original, const std::string &substitution)
Definition: apr_aprepro.cc:839
std::stack< file_rec > ap_file_list
Definition: aprepro.h:250
file_rec(const char *my_name, int line_num, bool is_temp, int loop_cnt)
Definition: aprepro.h:156
std::vector< history_data > history
Definition: aprepro.h:311