28 #ifndef FUNCTIONEXPRESSIONNODE_H
29 #define FUNCTIONEXPRESSIONNODE_H
33 #include <initializer_list>
34 #include <boost/variant.hpp>
35 #include <boost/fusion/include/adapt_struct.hpp>
37 namespace jmespath {
namespace ast {
40 class ExpressionArgumentNode;
49 boost::recursive_wrapper<ExpressionNode>,
50 boost::recursive_wrapper<ExpressionArgumentNode> >;
62 const std::initializer_list<ArgumentType>& argumentList = {});
87 BOOST_FUSION_ADAPT_STRUCT(
90 (std::vector<jmespath::ast::FunctionExpressionNode::ArgumentType>,
93 #endif // FUNCTIONEXPRESSIONNODE_H
bool operator==(const FunctionExpressionNode &other) const
Equality compares this node to the other.
Definition: functionexpressionnode.cpp:52
std::vector< ArgumentType > arguments
The function expressions's arguments.
Definition: functionexpressionnode.h:83
boost::variant< boost::blank, boost::recursive_wrapper< ExpressionNode >, boost::recursive_wrapper< ExpressionArgumentNode > > ArgumentType
Definition: functionexpressionnode.h:50
void accept(interpreter::AbstractVisitor *visitor) const override
Calls the visit method of the given visitor with the dynamic type of the node.
Definition: functionexpressionnode.cpp:47
std::basic_string< Char > String
UTF-8 encoded string type.
Definition: types.h:44
FunctionExpressionNode()
Constructs an empty FunctionExpressionNode object.
Definition: functionexpressionnode.cpp:34
The AbstractVisitor class is an interface which defines the member functions required to visit every ...
Definition: abstractvisitor.h:71
String functionName
The function's name.
Definition: functionexpressionnode.h:79
The AbstractNode class is the common interface class for all AST node types.
Definition: abstractnode.h:45
The FunctionExpressionNode class represents a JMESPath function expression.
Definition: functionexpressionnode.h:45