C++ Mathematical Expression Toolkit (ExprTk) release
Loading...
Searching...
No Matches
exprtk::parser< T >::parse_special_function_impl< Type, NumberOfParameters > Struct Template Reference

Static Public Member Functions

static expression_node_ptr process (parser< Type > &p, const details::operator_type opt_type, const std::string &sf_name)

Detailed Description

template<typename T>
template<typename Type, std::size_t NumberOfParameters>
struct exprtk::parser< T >::parse_special_function_impl< Type, NumberOfParameters >

Definition at line 29248 of file exprtk.hpp.

Member Function Documentation

◆ process()

template<typename T>
template<typename Type, std::size_t NumberOfParameters>
expression_node_ptr exprtk::parser< T >::parse_special_function_impl< Type, NumberOfParameters >::process ( parser< Type > & p,
const details::operator_type opt_type,
const std::string & sf_name )
inlinestatic

Definition at line 29250 of file exprtk.hpp.

29251 {
29254
29256
29258
29259 p.next_token();
29260
29262 {
29265 p.current_token(),
29266 "ERR146 - Expected '(' for special function '" + sf_name + "'",
29268
29269 return error_node();
29270 }
29271
29272 for (std::size_t i = 0; i < NumberOfParameters; ++i)
29273 {
29275
29276 if (0 == branch[i])
29277 {
29278 return p.error_node();
29279 }
29280 else if (i < (NumberOfParameters - 1))
29281 {
29283 {
29286 p.current_token(),
29287 "ERR147 - Expected ',' before next parameter of special function '" + sf_name + "'",
29289
29290 return p.error_node();
29291 }
29292 }
29293 }
29294
29296 {
29299 p.current_token(),
29300 "ERR148 - Invalid number of parameters for special function '" + sf_name + "'",
29302
29303 return p.error_node();
29304 }
29305 else
29307
29308 sd.delete_ptr = (0 == result);
29309
29310 return result;
29311 }
const token_t & current_token() const
Definition exprtk.hpp:4458
bool token_is(const token_t::token_type &ttype, const token_advance_mode mode=e_advance)
Definition exprtk.hpp:4482
expression_node_ptr special_function(const details::operator_type &operation, expression_node_ptr(&branch)[3])
Definition exprtk.hpp:33666
expression_node_ptr parse_expression(precedence_level precedence=e_level00)
Definition exprtk.hpp:25480
expression_generator< T > expression_generator_
Definition exprtk.hpp:42238
void set_error(const parser_error::type &error_type)
Definition exprtk.hpp:41934
static expression_node_ptr error_node()
Definition exprtk.hpp:25846

References exprtk::lexer::parser_helper::current_token(), exprtk::parser< T >::scoped_delete< Type, N >::delete_ptr, exprtk::lexer::token::e_comma, exprtk::lexer::token::e_lbracket, exprtk::lexer::token::e_rbracket, exprtk::parser_error::e_syntax, exprtk::parser< T >::error_node(), exprtk::parser< T >::expression_generator_, exprtk_error_location, exprtk::lexer::parser_helper::next_token(), exprtk::parser< T >::parse_expression(), exprtk::parser< T >::parser(), exprtk::parser< T >::set_error(), exprtk::parser< T >::expression_generator< Type >::special_function(), and exprtk::lexer::parser_helper::token_is().

Referenced by exprtk::parser< Type >::parse_special_function().

Here is the call graph for this function:
Here is the caller graph for this function:

The documentation for this struct was generated from the following file: