jmespath.cpp
C++ implementation of JMESPath, a query language for JSON http://jmespath.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Classes | Functions
jmespath::parser Namespace Reference

Classes required for parsing JMESPath expressions. More...

Classes

class  AppendEscapeSequenceAction
 The AppendEscapeSequenceAction class is a functor for appending UTF-32 an escape sequence, consisting from a pair of UTF-32 characters, to a UTF-8 encoded strings. More...
 
class  AppendUtf8Action
 The AppendUtf8Action class is a functor for appending UTF-32 characters to UTF-8 encoded strings. More...
 
class  EncodeSurrogatePairAction
 The EncodeSurrogatePairAction class is a functor for encoding surrogate pair characters in UTF-32. More...
 
class  Grammar
 The Grammar class contains the PEG rule definition based on the EBNF specifications of JMESPath. More...
 
class  InsertNodeAction
 The InsertNodeAction class is a functor for inserting the given node into the AST whose root node is specified with targetNode. More...
 
class  LeftChildExtractor
 The LeftChildExtractor class is a functor that extracts the child expression node from the given node which should be evaluated before the given node itself. More...
 
class  LeftEdgeIterator
 The LeftEdgeIterator class is a forward iterator which can be used to iterate over the ExpressionNode objects along the left edge of the AST. More...
 
class  NodeInsertCondition
 The NodeInsertCondition class is a functor that will either yield a true or false result based on whether the given node should be inserted at the location of the targetNode. More...
 
class  NodeInsertPolicy
 The NodeInsertPolicy class is a functor for inserting a given node into the AST. More...
 
class  Parser
 The Parser class parses expressions with the specified grammar. More...
 

Functions

template<typename T >
int nodeRank (const T &)
 Returns the rank of the given node object's type. More...
 
template<typename... Args>
int nodeRank (const boost::variant< Args...> &variant)
 Returns the rank of the node object's type contained in variant. More...
 
template<>
int nodeRank (const ast::ExpressionNode &node)
 Returns the rank of the given node object's type. More...
 
template<>
int nodeRank (const ast::SubexpressionNode &)
 Returns the rank of the given node object's type. More...
 
template<>
int nodeRank (const ast::BracketSpecifierNode &node)
 Returns the rank of the given node object's type. More...
 
template<>
int nodeRank (const ast::IndexExpressionNode &node)
 Returns the rank of the given node object's type. More...
 
template<>
int nodeRank (const ast::ArrayItemNode &)
 Returns the rank of the given node object's type. More...
 
template<>
int nodeRank (const ast::FlattenOperatorNode &)
 Returns the rank of the given node object's type. More...
 
template<>
int nodeRank (const ast::SliceExpressionNode &)
 Returns the rank of the given node object's type. More...
 
template<>
int nodeRank (const ast::ListWildcardNode &)
 Returns the rank of the given node object's type. More...
 
template<>
int nodeRank (const ast::HashWildcardNode &)
 Returns the rank of the given node object's type. More...
 
template<>
int nodeRank (const ast::FilterExpressionNode &)
 Returns the rank of the given node object's type. More...
 
template<>
int nodeRank (const ast::NotExpressionNode &)
 Returns the rank of the given node object's type. More...
 
template<>
int nodeRank (const ast::ComparatorExpressionNode &)
 Returns the rank of the given node object's type. More...
 
template<>
int nodeRank (const ast::AndExpressionNode &)
 Returns the rank of the given node object's type. More...
 
template<>
int nodeRank (const ast::OrExpressionNode &)
 Returns the rank of the given node object's type. More...
 
template<>
int nodeRank (const ast::PipeExpressionNode &)
 Returns the rank of the given node object's type. More...
 

Detailed Description

Classes required for parsing JMESPath expressions.

Function Documentation

template<typename T >
int jmespath::parser::nodeRank ( const T &  )
inline

Returns the rank of the given node object's type.

Template Parameters
TThe type of the node object.
Returns
Returns the rank of the node as an integer.
template<typename... Args>
int jmespath::parser::nodeRank ( const boost::variant< Args...> &  variant)
inline

Returns the rank of the node object's type contained in variant.

Parameters
[in]variantA variant object containing a ast::AbstractNode
Returns
Returns the rank of the node as an integer.
template<>
int jmespath::parser::nodeRank ( const ast::ExpressionNode &  node)
inline

Returns the rank of the given node object's type.

Parameters
[in]nodeA node object
Returns
Returns the rank of the node as an integer.
template<>
int jmespath::parser::nodeRank ( const ast::SubexpressionNode &  )
inline

Returns the rank of the given node object's type.

Parameters
[in]nodeA node object
Returns
Returns the rank of the node as an integer.
template<>
int jmespath::parser::nodeRank ( const ast::BracketSpecifierNode &  node)
inline

Returns the rank of the given node object's type.

Parameters
[in]nodeA node object
Returns
Returns the rank of the node as an integer.
template<>
int jmespath::parser::nodeRank ( const ast::IndexExpressionNode &  node)
inline

Returns the rank of the given node object's type.

Parameters
[in]nodeA node object
Returns
Returns the rank of the node as an integer.
template<>
int jmespath::parser::nodeRank ( const ast::ArrayItemNode &  )
inline

Returns the rank of the given node object's type.

Parameters
[in]nodeA node object
Returns
Returns the rank of the node as an integer.
template<>
int jmespath::parser::nodeRank ( const ast::FlattenOperatorNode &  )
inline

Returns the rank of the given node object's type.

Parameters
[in]nodeA node object
Returns
Returns the rank of the node as an integer.
template<>
int jmespath::parser::nodeRank ( const ast::SliceExpressionNode &  )
inline

Returns the rank of the given node object's type.

Parameters
[in]nodeA node object
Returns
Returns the rank of the node as an integer.
template<>
int jmespath::parser::nodeRank ( const ast::ListWildcardNode &  )
inline

Returns the rank of the given node object's type.

Parameters
[in]nodeA node object
Returns
Returns the rank of the node as an integer.
template<>
int jmespath::parser::nodeRank ( const ast::HashWildcardNode &  )
inline

Returns the rank of the given node object's type.

Parameters
[in]nodeA node object
Returns
Returns the rank of the node as an integer.
template<>
int jmespath::parser::nodeRank ( const ast::FilterExpressionNode &  )
inline

Returns the rank of the given node object's type.

Parameters
[in]nodeA node object
Returns
Returns the rank of the node as an integer.
template<>
int jmespath::parser::nodeRank ( const ast::NotExpressionNode &  )
inline

Returns the rank of the given node object's type.

Parameters
[in]nodeA node object
Returns
Returns the rank of the node as an integer.
template<>
int jmespath::parser::nodeRank ( const ast::ComparatorExpressionNode &  )
inline

Returns the rank of the given node object's type.

Parameters
[in]nodeA node object
Returns
Returns the rank of the node as an integer.
template<>
int jmespath::parser::nodeRank ( const ast::AndExpressionNode &  )
inline

Returns the rank of the given node object's type.

Parameters
[in]nodeA node object
Returns
Returns the rank of the node as an integer.
template<>
int jmespath::parser::nodeRank ( const ast::OrExpressionNode &  )
inline

Returns the rank of the given node object's type.

Parameters
[in]nodeA node object
Returns
Returns the rank of the node as an integer.
template<>
int jmespath::parser::nodeRank ( const ast::PipeExpressionNode &  )
inline

Returns the rank of the given node object's type.

Parameters
[in]nodeA node object
Returns
Returns the rank of the node as an integer.