9#ifndef WARPX_UTILS_PARSER_PARSERUTILS_H_
10#define WARPX_UTILS_PARSER_PARSERUTILS_H_
30 std::string
const& parse_function,
31 amrex::Vector<std::string>
const& varnames);
43 amrex::ParmParse
const& pp,
44 std::string
const& query_string,
45 std::string& stored_string);
61 const amrex::ParmParse &pp,
62 std::string
const& group,
63 std::string
const& query_string,
64 std::string& stored_string);
75 amrex::ParmParse
const& pp,
76 std::string
const& query_string,
77 std::string& stored_string);
83 return parser->compile<N>();
101 template <
typename T>
108 template <
typename T>
136 template <
typename T>
138 const int start_ix,
const int num_val)
143 val.erase(val.begin(), val.begin()+start_ix);
145 if (num_val >
int(val.size())) {
return 0; }
165 template <
typename T>
171 template <
typename T>
175 if (is_specified == 0) {
176 throw std::runtime_error(
177 "utils::parser::getArrWithParser: must specify the parameter '" +
199 template <
typename T>
201 const int start_ix,
const int num_val)
204 if (is_specified == 0) {
205 throw std::runtime_error(
206 "utils::parser::getArrWithParser: must specify the parameter '" +
229 template <
typename T>
232 const bool is_specified_without_group = a_pp.
contains(str);
233 const std::string grp_str = group +
"." + std::string(str);
234 const bool is_specified_with_group = (group.empty() ?
false : a_pp.
contains(grp_str));
236 if (is_specified_without_group && !is_specified_with_group) {
246 template <
typename T>
249 const bool is_specified_without_group = a_pp.
contains(str);
250 const std::string grp_str = group +
"." + std::string(str);
251 const bool is_specified_with_group = (group.empty() ?
false : a_pp.
contains(grp_str));
253 if (is_specified_without_group && !is_specified_with_group) {
283 template <
typename T>
285 const int start_ix,
const int num_val)
287 const bool is_specified_without_group = a_pp.
contains(str);
288 const std::string grp_str = group +
"." + std::string(str);
289 const bool is_specified_with_group = (group.empty() ?
false : a_pp.
contains(grp_str));
291 if (is_specified_without_group && !is_specified_with_group) {
312 int query (
const amrex::ParmParse& a_pp, std::string
const& group,
char const * str, std::string& val);
330 template <
typename T>
333 const bool is_specified_without_group = a_pp.
contains(str);
334 const std::string grp_str = group +
"." + std::string(str);
335 const bool is_specified_with_group = (group.empty() ?
false : a_pp.
contains(grp_str));
337 if (is_specified_without_group && !is_specified_with_group) {
346 template <
typename T>
349 const bool is_specified_without_group = a_pp.
contains(str);
350 const std::string grp_str = group +
"." + std::string(str);
351 const bool is_specified_with_group = (group.empty() ?
false : a_pp.
contains(grp_str));
353 if (is_specified_without_group && !is_specified_with_group) {
383 template <
typename T>
385 const int start_ix,
const int num_val)
387 const bool is_specified_without_group = a_pp.
contains(str);
388 const std::string grp_str = group +
"." + std::string(str);
389 const bool is_specified_with_group = (group.empty() ?
false : a_pp.
contains(grp_str));
391 if (is_specified_without_group && !is_specified_with_group) {
412 void get (
amrex::ParmParse const& a_pp, std::string
const& group,
char const * str, std::string& val);
int queryarrAsDouble(std::string_view name, int nvals, T *ptr) const
bool contains(std::string_view name) const
int queryAsDouble(std::string_view name, T &ref) const
std::string prefixedName(std::string_view str) const
void getAsDouble(std::string_view name, T &ref) const
int countval(std::string_view name, int n=LAST) const
Definition BTDIntervalsParser.H:18
int queryArrWithParser(const amrex::ParmParse &a_pp, char const *const str, std::vector< T > &val)
Definition ParserUtils.H:109
amrex::ParserExecutor< N > compileParser(amrex::Parser const *parser)
Definition ParserUtils.H:80
amrex::Parser makeParser(std::string const &parse_function, amrex::Vector< std::string > const &varnames)
Initialize an amrex::Parser object from a string containing a math expression.
Definition ParserUtils.cpp:97
void getWithParser(const amrex::ParmParse &a_pp, char const *const str, T &val)
Definition ParserUtils.H:166
int query(const amrex::ParmParse &a_pp, std::string const &group, char const *str, std::string &val)
Definition ParserUtils.cpp:67
void Store_parserString(amrex::ParmParse const &pp, std::string const &query_string, std::string &stored_string)
Parse a string (typically a mathematical expression) from the input file and store it into a variable...
Definition ParserUtils.cpp:21
void getArrWithParser(const amrex::ParmParse &a_pp, char const *const str, std::vector< T > &val)
Definition ParserUtils.H:172
void get(amrex::ParmParse const &a_pp, std::string const &group, char const *str, std::string &val)
Definition ParserUtils.cpp:82
bool Query_parserString(amrex::ParmParse const &pp, std::string const &query_string, std::string &stored_string)
If the input is provided, parse the string (typically a mathematical expression) from the input file ...
Definition ParserUtils.cpp:54
int queryWithParser(const amrex::ParmParse &a_pp, char const *const str, T &val)
Definition ParserUtils.H:102