jmespath.cpp
C++ implementation of JMESPath, a query language for JSON http://jmespath.org
|
The Interpreter class evaluates the AST structure on a Json context. More...
#include <interpreter.h>
Public Member Functions | |
Interpreter () | |
Constructs an Interpreter object. More... | |
template<typename JsonT > | |
std::enable_if_t< std::is_same < std::decay_t< JsonT >, Json > ::value, void > | setContext (JsonT &&value) |
Sets the context of the evaluation. More... | |
const Json & | currentContext () const |
Returns the current evaluation context. More... | |
ContextValue & | currentContextValue () |
Returns the current evaluation context which can either hold a value or a const reference. More... | |
virtual void | evaluateProjection (const ast::ExpressionNode *expression) |
Evaluates the projection of the given expression on the current context. More... | |
void | visit (const ast::AbstractNode *node) override |
Evaluate the given node on the current context value. More... | |
void | visit (const ast::ExpressionNode *node) override |
Evaluate the given node on the current context value. More... | |
void | visit (const ast::IdentifierNode *node) override |
Evaluate the given node on the current context value. More... | |
void | visit (const ast::RawStringNode *node) override |
Evaluate the given node on the current context value. More... | |
void | visit (const ast::LiteralNode *node) override |
Evaluate the given node on the current context value. More... | |
void | visit (const ast::SubexpressionNode *node) override |
Evaluate the given node on the current context value. More... | |
void | visit (const ast::IndexExpressionNode *node) override |
Evaluate the given node on the current context value. More... | |
void | visit (const ast::ArrayItemNode *node) override |
Evaluate the given node on the current context value. More... | |
void | visit (const ast::FlattenOperatorNode *) override |
Evaluate the given node on the current context value. More... | |
void | visit (const ast::BracketSpecifierNode *node) override |
Evaluate the given node on the current context value. More... | |
void | visit (const ast::SliceExpressionNode *node) override |
Evaluate the given node on the current context value. More... | |
void | visit (const ast::ListWildcardNode *) override |
Evaluate the given node on the current context value. More... | |
void | visit (const ast::HashWildcardNode *node) override |
Evaluate the given node on the current context value. More... | |
void | visit (const ast::MultiselectListNode *node) override |
Evaluate the given node on the current context value. More... | |
void | visit (const ast::MultiselectHashNode *node) override |
Evaluate the given node on the current context value. More... | |
void | visit (const ast::NotExpressionNode *node) override |
Evaluate the given node on the current context value. More... | |
void | visit (const ast::ComparatorExpressionNode *node) override |
Evaluate the given node on the current context value. More... | |
void | visit (const ast::OrExpressionNode *node) override |
Evaluate the given node on the current context value. More... | |
void | visit (const ast::AndExpressionNode *node) override |
Evaluate the given node on the current context value. More... | |
void | visit (const ast::ParenExpressionNode *node) override |
Evaluate the given node on the current context value. More... | |
void | visit (const ast::PipeExpressionNode *node) override |
Evaluate the given node on the current context value. More... | |
void | visit (const ast::CurrentNode *) override |
Evaluate the given node on the current context value. More... | |
void | visit (const ast::FilterExpressionNode *node) override |
Evaluate the given node on the current context value. More... | |
void | visit (const ast::FunctionExpressionNode *node) override |
Evaluate the given node on the current context value. More... | |
void | visit (const ast::ExpressionArgumentNode *) override |
Evaluate the given node on the current context value. More... | |
![]() | |
virtual | ~AbstractVisitor () |
Destroys the AbstractVisitor object. More... | |
Private Types | |
using | FunctionArgument = boost::variant< boost::blank, ContextValue, ast::ExpressionNode > |
Type of the arguments in FunctionArgumentList. More... | |
using | FunctionArgumentList = std::vector< FunctionArgument > |
List of FunctionArgument objects. More... | |
using | Function = std::function< void(FunctionArgumentList &)> |
Function wrapper type to which JMESPath built in function implementations should conform to. More... | |
using | JsonComparator = std::function< bool(const Json &, const Json &)> |
The type of comparator functions used for comparing Json values. More... | |
using | ArgumentArityValidator = std::function< bool(const size_t &)> |
Function argument arity validator predicate. More... | |
using | FunctionDescriptor = std::tuple< ArgumentArityValidator, bool, Function > |
Describes a built in function implementation. More... | |
using | FunctionExpressionArgumentList = std::vector< ast::FunctionExpressionNode::ArgumentType > |
List of unevaluated function arguments. More... | |
Private Member Functions | |
Index | adjustSliceEndpoint (size_t length, Index endpoint, Index step) const |
Adjust the value of the slice endpoint to make sure it's within the array's bounds and points to the correct item. More... | |
bool | toBoolean (const Json &json) const |
Converts the json value to a boolean. More... | |
template<typename JsonT > | |
void | evaluateProjection (const ast::ExpressionNode *expression, JsonT &&context) |
Evaluates the projection of the given expression with the evaluation context. More... | |
void | evaluateLogicOperator (const ast::BinaryExpressionNode *node, bool shortCircuitValue) |
Evaluates a binary logic operator to the result of the left side expression if it's binary value equals to shortCircuitValue otherwise evaluates it to the result of the result of the right side expression. More... | |
FunctionArgumentList | evaluateArguments (const FunctionExpressionArgumentList &arguments, const std::shared_ptr< ContextValue > &contextValue) |
Evaluate the given function expression arguments. More... | |
template<typename T > | |
T & | getArgument (FunctionArgument &argument) const |
Converts the given function argument to the requsted type. More... | |
const Json & | getJsonArgument (FunctionArgument &argument) const |
Creates a reference to the Json value held by the argument. More... | |
void | abs (FunctionArgumentList &arguments) |
Calculates the absolute value of the first item in the given list of arguments. The first item must be a number Json value. More... | |
void | avg (FunctionArgumentList &arguments) |
Calculates the average value of the items in the first item of the given arguments. The first item must be an Json array and every item in the array must be a number Json value. More... | |
void | contains (FunctionArgumentList &arguments) |
Checks whether the first item in the given arguments contains the second item. The first item should be either an array or string the second item can be any Json type. More... | |
void | ceil (FunctionArgumentList &arguments) |
Rounds up the first item of the given arguments to the next highest integer value. The first item should be a Json number. More... | |
void | endsWith (FunctionArgumentList &arguments) |
Checks whether the first item of the given arguments ends with the second item. The first and second item of arguments must be a Json string. More... | |
void | floor (FunctionArgumentList &arguments) |
Rounds down the first item of the given arguments to the next lowest integer value. The first item should be a Json number. More... | |
void | join (FunctionArgumentList &arguments) |
Joins every item in the array provided as the second item of the given arguments with the first item as a separator. The first item must be a string and the second item must be an array of strings. More... | |
void | keys (FunctionArgumentList &arguments) |
Extracts the keys from the object provided as the first item of the given arguments. More... | |
void | length (FunctionArgumentList &arguments) |
Returns the length of the first item in the given arguments. The first item must be either an array a string or an object. More... | |
void | map (FunctionArgumentList &arguments) |
Applies the expression provided as the first item in the given arguments to every item in the array provided as the second item in arguments. More... | |
template<typename JsonT > | |
void | map (const ast::ExpressionNode *node, JsonT &&array) |
Applies the expression provided in node to every item in the array. More... | |
void | merge (FunctionArgumentList &arguments) |
Accepts zero or more objects in the given arguments, and returns a single object with subsequent objects merged. Each subsequent object’s key/value pairs are added to the preceding object. More... | |
template<typename JsonT > | |
void | mergeObject (Json *object, JsonT &&sourceObject) |
Merges the items of the sourceObject into object. More... | |
void | notNull (FunctionArgumentList &arguments) |
Accepts one or more items in arguments, and will evaluate them in order until a non null argument is encounted. More... | |
void | reverse (FunctionArgumentList &arguments) |
Reverses the order of the first item in arguments. It must either be an array or a string. More... | |
void | reverse (Json &&subject) |
Reverses the order of the subject. It must either be an array or a string. More... | |
void | sort (FunctionArgumentList &arguments) |
Sorts the first item in the given arguments, which must either be an array of numbers or an array of strings. More... | |
void | sort (Json &&array) |
Sorts the array, which must either be an array of numbers or an array of strings. More... | |
void | sortBy (FunctionArgumentList &arguments) |
Sorts the first item in the given arguments, which must either be an array of numbers or an array of strings. It uses the expression provided as the second item in arguments as the sort key. More... | |
void | sortBy (const ast::ExpressionNode *expression, Json &&array) |
Sorts the array, which must either be an array of numbers or an array of strings. It uses the expression as the sort key. More... | |
void | startsWith (FunctionArgumentList &arguments) |
Checks wheather the string provided as the first item in arguments starts with the string provided as the second item in arguments. More... | |
void | sum (FunctionArgumentList &arguments) |
Calculates the sum of the numbers in the array provided as the first item of arguments. More... | |
void | toArray (FunctionArgumentList &arguments) |
Converts the first item of the given arguments to a one element array if it's not already an array. More... | |
template<typename JsonT > | |
void | toArray (JsonT &&value) |
Converts the given value to a one element array if it's not already an array. More... | |
void | toString (FunctionArgumentList &arguments) |
Converts the first item of the given arguments to the Json encoded value if it's not already a string. More... | |
template<typename JsonT > | |
void | toString (JsonT &&value) |
Converts the given value to the Json encoded value if it's not already a string. More... | |
void | toNumber (FunctionArgumentList &arguments) |
Converts the string provided as the first item in the given arguments to a number. If it's already a number then the original value is returned, all other Json types are converted to null. More... | |
template<typename JsonT > | |
void | toNumber (JsonT &&value) |
Converts the value to a number if it's not already a number, all other Json types are converted to null. More... | |
void | type (FunctionArgumentList &arguments) |
Returns the type of the Json value provided as the first item in arguments. More... | |
void | values (FunctionArgumentList &arguments) |
Extracts the values from the object provided as the first item of the given arguments. More... | |
template<typename JsonT > | |
void | values (JsonT &&object) |
Extracts the values from the object. More... | |
void | max (FunctionArgumentList &arguments, const JsonComparator &comparator) |
Finds the largest item in the array provided as the first item in the arguments, it must either be an array of numbers or an array of strings. More... | |
template<typename JsonT > | |
void | max (const JsonComparator *comparator, JsonT &&array) |
Finds the largest item in the array, it must either be an array of numbers or an array of strings. More... | |
void | maxBy (FunctionArgumentList &arguments, const JsonComparator &comparator=std::less< Json >{}) |
Finds the largest item in the array provided as the first item in the arguments, which must either be an array of numbers or an array of strings, using the expression provided as the second item in arguments as a key for comparison. More... | |
template<typename JsonT > | |
void | maxBy (const ast::ExpressionNode *expression, const JsonComparator *comparator, JsonT &&array) |
Finds the largest item in the array, which must either be an array of numbers or an array of strings, using the expression as a key for comparison. More... | |
bool | isComparableArray (const Json &array) const |
Checks whether array is a homogeneous array which contains comparable types like strings and numbers. More... | |
template<typename JsonT > | |
void | visit (const ast::IdentifierNode *node, JsonT &&context) |
Evaluates the given node on the evaluation context. More... | |
template<typename JsonT > | |
void | visit (const ast::ArrayItemNode *node, JsonT &&context) |
Evaluates the given node on the evaluation context. More... | |
template<typename JsonT > | |
void | visit (const ast::FlattenOperatorNode *node, JsonT &&context) |
Evaluates the given node on the evaluation context. More... | |
template<typename JsonT > | |
void | visit (const ast::SliceExpressionNode *node, JsonT &&context) |
Evaluates the given node on the evaluation context. More... | |
template<typename JsonT > | |
void | visit (const ast::HashWildcardNode *node, JsonT &&context) |
Evaluates the given node on the evaluation context. More... | |
template<typename JsonT > | |
void | visit (const ast::FilterExpressionNode *node, JsonT &&context) |
Evaluates the given node on the evaluation context. More... | |
Private Attributes | |
ContextValue | m_context |
Stores the evaluation context. More... | |
std::unordered_map< String, FunctionDescriptor > | m_functionMap |
Maps the JMESPath built in function names to their implementations. More... | |
The Interpreter class evaluates the AST structure on a Json context.
|
private |
Function argument arity validator predicate.
|
private |
Function wrapper type to which JMESPath built in function implementations should conform to.
|
private |
Type of the arguments in FunctionArgumentList.
|
private |
List of FunctionArgument objects.
|
private |
Describes a built in function implementation.
The tuple's first item is the comparator function used for comparing the actual number of arguments with the expected argument count, the second item marks whether the funciton needs a single ContextValue or more, while the third item stores the callable functions wrapper.
|
private |
List of unevaluated function arguments.
|
private |
The type of comparator functions used for comparing Json values.
jmespath::interpreter::Interpreter::Interpreter | ( | ) |
Constructs an Interpreter object.
|
private |
Calculates the absolute value of the first item in the given list of arguments. The first item must be a number Json value.
[in] | arguments | The list of the function's arguments. |
InvalidFunctionArgumentType |
|
private |
Adjust the value of the slice endpoint to make sure it's within the array's bounds and points to the correct item.
[in] | length | The length of the array that should be sliced. |
[in] | endpoint | The current value of the endpoint. |
[in] | step | The slice's step variable value. |
|
private |
Calculates the average value of the items in the first item of the given arguments. The first item must be an Json array and every item in the array must be a number Json value.
[in] | arguments | The list of the function's arguments. |
InvalidFunctionArgumentType |
|
private |
Rounds up the first item of the given arguments to the next highest integer value. The first item should be a Json number.
[in] | arguments | The list of the function's arguments. |
InvalidFunctionArgumentType |
|
private |
Checks whether the first item in the given arguments contains the second item. The first item should be either an array or string the second item can be any Json type.
[in] | arguments | The list of the function's arguments. |
InvalidFunctionArgumentType |
|
inline |
Returns the current evaluation context.
|
inline |
Returns the current evaluation context which can either hold a value or a const reference.
|
private |
Checks whether the first item of the given arguments ends with the second item. The first and second item of arguments must be a Json string.
[in] | arguments | The list of the function's arguments. |
InvalidFunctionArgumentType |
|
private |
Evaluate the given function expression arguments.
Evalutate an ast::ExpressionNode on the current context to a Json value and evaluate ast::ExpressionArgumentNode to its child ast::ExpressionNode.
[in] | arguments | List of arguments. |
[in] | contextValue | A context used for evaluating the arguments. |
|
private |
Evaluates a binary logic operator to the result of the left side expression if it's binary value equals to shortCircuitValue otherwise evaluates it to the result of the result of the right side expression.
[in] | node | Pointer to the node. |
[in] | shortCircuitValue | Specifies what should be the boolean value of the left side expression's result to do short circuit evaluation. |
|
virtual |
Evaluates the projection of the given expression on the current context.
[in] | expression | The expression that gets projected. |
|
private |
Evaluates the projection of the given expression with the evaluation context.
[in] | expression | The expression that gets projected. |
[in] | context | An const lvalue reference or an rvalue reference to the evaluation context. |
JsonT | The type of the context. |
|
private |
Rounds down the first item of the given arguments to the next lowest integer value. The first item should be a Json number.
[in] | arguments | The list of the function's arguments. |
InvalidFunctionArgumentType |
|
private |
Converts the given function argument to the requsted type.
[in] | argument | A funciton argument value. |
T | The to which the argument should be converted. |
InvalidFunctionArgumentType |
|
private |
Creates a reference to the Json value held by the argument.
argument | A funciton argument value. |
InvalidFunctionArgumentType |
|
private |
Checks whether array is a homogeneous array which contains comparable types like strings and numbers.
[in] | array | The Json value that should be tested. |
|
private |
Joins every item in the array provided as the second item of the given arguments with the first item as a separator. The first item must be a string and the second item must be an array of strings.
[in] | arguments | The list of the function's arguments. |
InvalidFunctionArgumentType |
|
private |
Extracts the keys from the object provided as the first item of the given arguments.
[in] | arguments | The list of the function's arguments. |
InvalidFunctionArgumentType |
|
private |
Returns the length of the first item in the given arguments. The first item must be either an array a string or an object.
[in] | arguments | The list of the function's arguments. |
InvalidFunctionArgumentType |
|
private |
Applies the expression provided as the first item in the given arguments to every item in the array provided as the second item in arguments.
[in] | arguments | The list of the function's arguments. |
InvalidFunctionArgumentType |
|
private |
Applies the expression provided in node to every item in the array.
[in] | node | Pointer to the expresson node. |
[in] | array | Either an lvalue or rvalue reference to a Json array. |
JsonT | The type of the array. |
InvalidFunctionArgumentType |
|
private |
Finds the largest item in the array provided as the first item in the arguments, it must either be an array of numbers or an array of strings.
[in] | arguments | The list of the function's arguments. |
[in] | comparator | The comparator function used for comparing Json values. It should return true if its first argument is less then its second argument. |
InvalidFunctionArgumentType |
|
private |
Finds the largest item in the array, it must either be an array of numbers or an array of strings.
[in] | comparator | The comparator function used for comparing Json values. It should return true if its first argument is less then its second argument. |
[in] | array | A Json array. |
JsonT | The type of array. |
InvalidFunctionArgumentType |
|
private |
Finds the largest item in the array provided as the first item in the arguments, which must either be an array of numbers or an array of strings, using the expression provided as the second item in arguments as a key for comparison.
[in] | arguments | The list of the function's arguments. |
[in] | comparator | The comparator function used for comparing Json values. It should return true if its first argument is less then its second argument. |
InvalidFunctionArgumentType |
|
private |
Finds the largest item in the array, which must either be an array of numbers or an array of strings, using the expression as a key for comparison.
[in] | expression | The expression which evaluates to the key that should be used for comparisons. |
[in] | comparator | The comparator function used for comparing Json values. It should return true if its first argument is less then its second argument. |
[in] | array | A Json array. |
JsonT | The type of the array. |
InvalidFunctionArgumentType |
|
private |
Accepts zero or more objects in the given arguments, and returns a single object with subsequent objects merged. Each subsequent object’s key/value pairs are added to the preceding object.
[in] | arguments | The list of the function's arguments. |
InvalidFunctionArgumentType |
|
private |
Merges the items of the sourceObject into object.
[in,out] | object | The object into which the items of the sourceObject should be added. |
[in] | sourceObject | ither an lvalue or rvalue reference to a Json object. |
JsonT | JsonT The type of the sourceObject. |
|
private |
Accepts one or more items in arguments, and will evaluate them in order until a non null argument is encounted.
[in] | arguments | The list of the function's arguments. |
InvalidFunctionArgumentType |
|
private |
Reverses the order of the first item in arguments. It must either be an array or a string.
[in] | arguments | The list of the function's arguments. |
InvalidFunctionArgumentType |
|
private |
Reverses the order of the subject. It must either be an array or a string.
[in] | subject | A Json array or string. |
InvalidFunctionArgumentType |
|
inline |
Sets the context of the evaluation.
[in] | value | Json document to be used as the context. |
|
private |
Sorts the first item in the given arguments, which must either be an array of numbers or an array of strings.
[in] | arguments | The list of the function's arguments. |
InvalidFunctionArgumentType |
|
private |
Sorts the array, which must either be an array of numbers or an array of strings.
[in] | array | A Json array of number or strings. |
InvalidFunctionArgumentType |
|
private |
Sorts the first item in the given arguments, which must either be an array of numbers or an array of strings. It uses the expression provided as the second item in arguments as the sort key.
[in] | arguments | The list of the function's arguments. |
InvalidFunctionArgumentType |
|
private |
Sorts the array, which must either be an array of numbers or an array of strings. It uses the expression as the sort key.
[in] | expression | The expression which evaluates to the key that should be used for comparisons during sorting. |
[in] | array | A Json array of numbers or strings. |
InvalidFunctionArgumentType |
|
private |
Checks wheather the string provided as the first item in arguments starts with the string provided as the second item in arguments.
[in] | arguments | The list of the function's arguments. |
InvalidFunctionArgumentType |
|
private |
Calculates the sum of the numbers in the array provided as the first item of arguments.
[in] | arguments | The list of the function's arguments. |
InvalidFunctionArgumentType |
|
private |
Converts the first item of the given arguments to a one element array if it's not already an array.
[in] | arguments | The list of the function's arguments. |
InvalidFunctionArgumentType |
|
private |
Converts the given value to a one element array if it's not already an array.
[in] | value | A Json value. |
JsonT | The type of the value. |
|
private |
Converts the json value to a boolean.
[in] | json | The Json value that needs to be converted. |
|
private |
Converts the string provided as the first item in the given arguments to a number. If it's already a number then the original value is returned, all other Json types are converted to null.
[in] | arguments | The list of the function's arguments. |
InvalidFunctionArgumentType |
|
private |
Converts the value to a number if it's not already a number, all other Json types are converted to null.
[in] | value | A Json value. |
JsonT | The type of the value. |
|
private |
Converts the first item of the given arguments to the Json encoded value if it's not already a string.
[in] | arguments | The list of the function's arguments. |
InvalidFunctionArgumentType |
|
private |
Converts the given value to the Json encoded value if it's not already a string.
[in] | value | A Json value. |
JsonT | The type of the value. |
|
private |
Returns the type of the Json value provided as the first item in arguments.
[in] | arguments | The list of the function's arguments. |
InvalidFunctionArgumentType |
|
private |
Extracts the values from the object provided as the first item of the given arguments.
[in] | arguments | The list of the function's arguments. |
InvalidFunctionArgumentType |
|
private |
Extracts the values from the object.
[in] | object | A Json object. |
JsonT | The type of object. |
InvalidFunctionArgumentType |
|
overridevirtual |
Evaluate the given node on the current context value.
[in] | node | Pointer to the node |
Implements jmespath::interpreter::AbstractVisitor.
|
overridevirtual |
Evaluate the given node on the current context value.
[in] | node | Pointer to the node |
Implements jmespath::interpreter::AbstractVisitor.
|
overridevirtual |
Evaluate the given node on the current context value.
[in] | node | Pointer to the node |
Implements jmespath::interpreter::AbstractVisitor.
|
overridevirtual |
Evaluate the given node on the current context value.
[in] | node | Pointer to the node |
Implements jmespath::interpreter::AbstractVisitor.
|
overridevirtual |
Evaluate the given node on the current context value.
[in] | node | Pointer to the node |
Implements jmespath::interpreter::AbstractVisitor.
|
overridevirtual |
Evaluate the given node on the current context value.
[in] | node | Pointer to the node |
Implements jmespath::interpreter::AbstractVisitor.
|
overridevirtual |
Evaluate the given node on the current context value.
[in] | node | Pointer to the node |
Implements jmespath::interpreter::AbstractVisitor.
|
overridevirtual |
Evaluate the given node on the current context value.
[in] | node | Pointer to the node |
Implements jmespath::interpreter::AbstractVisitor.
|
overridevirtual |
Evaluate the given node on the current context value.
[in] | node | Pointer to the node |
Implements jmespath::interpreter::AbstractVisitor.
|
overridevirtual |
Evaluate the given node on the current context value.
[in] | node | Pointer to the node |
Implements jmespath::interpreter::AbstractVisitor.
|
overridevirtual |
Evaluate the given node on the current context value.
[in] | node | Pointer to the node |
Implements jmespath::interpreter::AbstractVisitor.
|
overridevirtual |
Evaluate the given node on the current context value.
[in] | node | Pointer to the node |
Implements jmespath::interpreter::AbstractVisitor.
|
overridevirtual |
Evaluate the given node on the current context value.
[in] | node | Pointer to the node |
Implements jmespath::interpreter::AbstractVisitor.
|
overridevirtual |
Evaluate the given node on the current context value.
[in] | node | Pointer to the node |
Implements jmespath::interpreter::AbstractVisitor.
|
overridevirtual |
Evaluate the given node on the current context value.
[in] | node | Pointer to the node |
Implements jmespath::interpreter::AbstractVisitor.
|
overridevirtual |
Evaluate the given node on the current context value.
[in] | node | Pointer to the node |
Implements jmespath::interpreter::AbstractVisitor.
|
overridevirtual |
Evaluate the given node on the current context value.
[in] | node | Pointer to the node |
Implements jmespath::interpreter::AbstractVisitor.
|
overridevirtual |
Evaluate the given node on the current context value.
[in] | node | Pointer to the node |
Implements jmespath::interpreter::AbstractVisitor.
|
overridevirtual |
Evaluate the given node on the current context value.
[in] | node | Pointer to the node |
Implements jmespath::interpreter::AbstractVisitor.
|
overridevirtual |
Evaluate the given node on the current context value.
[in] | node | Pointer to the node |
Implements jmespath::interpreter::AbstractVisitor.
|
overridevirtual |
Evaluate the given node on the current context value.
[in] | node | Pointer to the node |
Implements jmespath::interpreter::AbstractVisitor.
|
overridevirtual |
Evaluate the given node on the current context value.
[in] | node | Pointer to the node |
Implements jmespath::interpreter::AbstractVisitor.
|
overridevirtual |
Evaluate the given node on the current context value.
[in] | node | Pointer to the node |
Implements jmespath::interpreter::AbstractVisitor.
|
overridevirtual |
Evaluate the given node on the current context value.
[in] | node | Pointer to the node |
Implements jmespath::interpreter::AbstractVisitor.
|
overridevirtual |
Evaluate the given node on the current context value.
[in] | node | Pointer to the node |
Implements jmespath::interpreter::AbstractVisitor.
|
private |
Evaluates the given node on the evaluation context.
[in] | node | Pointer to the node. |
[in] | context | An const lvalue reference or an rvalue reference to the evaluation context. |
JsonT | The type of the context. |
|
private |
Evaluates the given node on the evaluation context.
[in] | node | Pointer to the node. |
[in] | context | An const lvalue reference or an rvalue reference to the evaluation context. |
JsonT | The type of the context. |
|
private |
Evaluates the given node on the evaluation context.
[in] | node | Pointer to the node. |
[in] | context | An const lvalue reference or an rvalue reference to the evaluation context. |
JsonT | The type of the context. |
|
private |
Evaluates the given node on the evaluation context.
[in] | node | Pointer to the node. |
[in] | context | An const lvalue reference or an rvalue reference to the evaluation context. |
JsonT | The type of the context. |
|
private |
Evaluates the given node on the evaluation context.
[in] | node | Pointer to the node. |
[in] | context | An const lvalue reference or an rvalue reference to the evaluation context. |
JsonT | The type of the context. |
|
private |
Evaluates the given node on the evaluation context.
[in] | node | Pointer to the node. |
[in] | context | An const lvalue reference or an rvalue reference to the evaluation context. |
JsonT | The type of the context. |
|
private |
Stores the evaluation context.
|
private |
Maps the JMESPath built in function names to their implementations.