35 virtual std::function<double(
double)>
parse() = 0;
78 static bool icontains(
const std::string& hay,
const std::string& needle);
92 static std::vector<std::string>
splitSignTokens(
const std::string& expr_no_ws);
123 std::function<double(
double)>
parse()
override;
134 static bool parseTokenAsPolyTerm(
const std::string& raw_token, std::function<
double(
double)>& out_term);
155 std::function<double(
double)>
parse()
override;
166 static bool parseTokenAsTrigTerm(
const std::string& raw_token, std::function<
double(
double)>& out_term);
Test fixture class for FunctionParserBase unit tests.
Definition function_parser_base_tester.hpp:12
Base class for function parsers.
Definition function_parser.hpp:27
static std::pair< double, std::string > parseOptionalCoefficient(const std::string &token)
Helper static method to parse an optional coefficient from a token.
Definition function_parser.cpp:66
static std::function< double(double)> parseFunction(const std::string &function_str)
Static method to parse a function string and return a callable function.
Definition function_parser.cpp:234
static std::string removeSpaces(const std::string &function_str)
Helper static method to remove all whitespace from a string.
Definition function_parser.cpp:37
static bool isTrigonometric(const std::string &expression)
Static method to check if the expression is a trigonometric function.
Definition function_parser.cpp:22
virtual ~FunctionParserBase()=default
virtual std::function< double(double)> parse()=0
Pure virtual method to parse the function string.
static std::vector< std::string > splitSignTokens(const std::string &expr_no_ws)
Helper static method to split an expression into tokens based on sign characters.
Definition function_parser.cpp:48
static bool isPolynomial(const std::string &expression)
Static method to check if the expression is a polynomial.
Definition function_parser.cpp:15
std::string function_str
The function string to be parsed.
Definition function_parser.hpp:70
static bool icontains(const std::string &hay, const std::string &needle)
Helper static method to check if a string contains a substring (case-insensitive).
Definition function_parser.cpp:29
Test fixture class for PolynomialParser unit tests.
Definition polynomial_parser_tester.hpp:12
Parser class for polynomial functions.
Definition function_parser.hpp:110
std::function< double(double)> parse() override
Parse the polynomial function string.
Definition function_parser.cpp:132
static bool parseTokenAsPolyTerm(const std::string &raw_token, std::function< double(double)> &out_term)
Helper static method to parse a token as a polynomial term.
Definition function_parser.cpp:80
Test fixture class for TrigonometricParser unit tests.
Definition trigonometric_parser_tester.hpp:12
Parser class for trigonometric functions.
Definition function_parser.hpp:142
static bool parseTokenAsTrigTerm(const std::string &raw_token, std::function< double(double)> &out_term)
Helper static method to parse a token as a trigonometric term.
Definition function_parser.cpp:158
std::function< double(double)> parse() override
Parse the trigonometric function string.
Definition function_parser.cpp:210