76 template <
typename U,
typename
78 std::is_convertible<U, String>::value>::type* =
nullptr>
149 std::unique_ptr<ast::ExpressionNode, ExpressionDeleter>
m_astRoot;
174 inline Expression operator""_jmespath(
const char* expression, std::size_t)
180 #endif // EXPRESSION_H
Expression(U &&expression)
Constructs an Expression object by forwarding argument.
Definition: expression.h:79
Expression & operator=(const Expression &other)
Assigns other to this expression and returns a reference to this expression.
Definition: expression.cpp:50
The Expression class represents a JMESPath expression.
Definition: expression.h:47
bool operator==(const Expression &other) const
Equality compares this expression to the other.
Definition: expression.cpp:98
String m_expressionString
The string representation of the JMESPath expression.
Definition: expression.h:145
String toString() const
Converts the expression to the string representation of the JMESPath expression.
Definition: expression.cpp:70
const ast::ExpressionNode * astRoot() const
Returns a pointer to the root expression in the abstract syntax tree.
Definition: expression.cpp:80
std::basic_string< Char > String
UTF-8 encoded string type.
Definition: types.h:44
void parseExpression(const String &expressionString)
Parses the expressionString and updates the AST.
Definition: expression.cpp:85
Expression()
Constructs an empty Expression object.
Definition: expression.cpp:34
void operator()(ast::ExpressionNode *node) const
operator () Destroys the given node object.
Definition: expression.cpp:108
The ExpressionNode class represents a JMESPath expression.
Definition: expressionnode.h:56
The ExpressionDeleter struct is a custom destruction policy for deleting ast::ExpressionNode objects...
Definition: expression.h:134
bool isEmpty() const
Checks whether this object has been initialized. expression.
Definition: expression.cpp:75
std::unique_ptr< ast::ExpressionNode, ExpressionDeleter > m_astRoot
The root node of the ast.
Definition: expression.h:149