23 bool eof() const noexcept;
24 char peek() const noexcept;
58 const std::vector<
ExprPtr>& arguments,
61 const std::vector<
ExprPtr>& arguments);
69 const std::vector<
ExprPtr>& arguments);
函数节点,表示数学函数调用(三角函数、对数、特殊函数等)。
static bool is_ident_continue(unsigned char c) noexcept
ExprResult apply_log(const std::vector< ExprPtr > &arguments)
static bool is_ident_start(unsigned char c) noexcept
ExprResult parse_logical_and()
ExprResult parse_logical_or()
ExprResult uninterpreted_function(const std::string &name, const std::vector< ExprPtr > &arguments)
char peek() const noexcept
ExprResult parse_multiplicative()
ExprResult function_node(const std::string &name, const std::vector< ExprPtr > &arguments, FunctionNode::FuncType type)
ExprResult interval(const ExprPtr &lower, const ExprPtr &upper, bool lower_closed, bool upper_closed)
ExprResult logical(const ExprPtr &lhs, const ExprPtr &rhs, LogicalNode::Op op)
ExprResult parse_membership()
ExprResult parse_logical_not()
void skip_space() noexcept
ExprResult apply_function(const std::string &name, const std::vector< ExprPtr > &arguments)
ExprResult parse_approx_literal()
ExprResult apply_clamp(const std::vector< ExprPtr > &arguments)
bool match_keyword(const char *text)
ExprResult parse_number()
ExprResult apply_atan2(const std::vector< ExprPtr > &arguments)
ExprParser(std::string source)
ExprResult finite_set(const std::vector< ExprPtr > &elements)
ExprResult parse_relational()
ExprResult apply_limit(const std::vector< ExprPtr > &arguments)
ExprResult apply_integral(const std::vector< ExprPtr > &arguments)
ExprResult parse_equality()
ExprResult apply_rootof(const std::vector< ExprPtr > &arguments)
ExprResult relational(const ExprPtr &lhs, const ExprPtr &rhs, RelationOp op)
ExprResult parse_identifier_or_call()
bool match_text(const char *text)
ExprResult parse_call(const std::string &name)
ExprResult membership(const ExprPtr &element, const ExprPtr &set, bool negated)
ExprResult parse_set_literal()
ExprResult parse_additive()
std::string parse_identifier()
bool eof() const noexcept
ExprResult parse_primary()
ExprResult fail(std::string message) const
ExprResult parse_interval_literal(bool lower_closed)
constexpr const char * kParseOperation
__attribute__((visibility("default"))) ExprResult function(const std __attribute__((visibility("default"))) ExprResult finite_set(std ExprPtr upper
const VectorField const VectorField & c
Result< ExprPtr > ExprResult
RelationOp
Stable relational operator used by public APIs.
const ExprPtr RelationOp op
__attribute__((visibility("default"))) ExprResult function(const std __attribute__((visibility("default"))) ExprResult finite_set(std ExprPtr bool lower_closed
std::shared_ptr< SymbolicExpr > ExprPtr
__attribute__((visibility("default"))) ExprResult function(const std __attribute__((visibility("default"))) ExprResult finite_set(std ExprPtr bool bool upper_closed
const ExprPtr bool negated
__attribute__((visibility("default"))) Result< EqvProfile > eqv_profile_from_name(const std const std::string & name