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
Public Member Functions | Private Attributes | List of all members
jmespath::parser::Grammar< Iterator, Skipper > Class Template Reference

The Grammar class contains the PEG rule definition based on the EBNF specifications of JMESPath. More...

#include <grammar.h>

Inheritance diagram for jmespath::parser::Grammar< Iterator, Skipper >:

Public Member Functions

 Grammar ()
 Constructs a Grammar object. More...
 

Private Attributes

qi::rule< Iterator,
ast::ExpressionNode(), Skipper > 
m_topLevelExpressionRule
 
qi::rule< Iterator,
ast::ExpressionNode(),
qi::locals
< ast::ExpressionNode >
, Skipper > 
m_expressionRule
 
qi::rule< Iterator,
ast::SubexpressionNode(ast::ExpressionNode
&), Skipper > 
m_subexpressionRule
 
qi::rule< Iterator,
ast::IndexExpressionNode(ast::ExpressionNode
&), Skipper > 
m_indexExpressionRule
 
qi::rule< Iterator,
ast::HashWildcardNode(ast::ExpressionNode
&), Skipper > 
m_hashWildcardRule
 
qi::rule< Iterator,
ast::HashWildcardNode(ast::ExpressionNode
&), Skipper > 
m_hashWildcardSubexpressionRule
 
qi::rule< Iterator,
ast::BracketSpecifierNode(),
Skipper > 
m_bracketSpecifierRule
 
qi::rule< Iterator,
ast::ArrayItemNode(), Skipper > 
m_arrayItemRule
 
qi::rule< Iterator,
ast::FlattenOperatorNode(),
Skipper > 
m_flattenOperatorRule
 
qi::rule< Iterator,
ast::FilterExpressionNode(),
Skipper > 
m_filterExpressionRule
 
qi::rule< Iterator,
ast::SliceExpressionNode(),
Skipper > 
m_sliceExpressionRule
 
qi::rule< Iterator,
ast::ListWildcardNode(),
Skipper > 
m_listWildcardRule
 
qi::rule< Iterator,
ast::MultiselectListNode(),
Skipper > 
m_multiselectListRule
 
qi::rule< Iterator,
ast::MultiselectHashNode(),
Skipper > 
m_multiselectHashRule
 
qi::rule< Iterator,
ast::MultiselectHashNode::KeyValuePairType(),
Skipper > 
m_keyValuePairRule
 
qi::rule< Iterator,
ast::NotExpressionNode(ast::ExpressionNode
&), Skipper > 
m_notExpressionRule
 
qi::rule< Iterator,
ast::PipeExpressionNode(ast::ExpressionNode
&), Skipper > 
m_pipeExpressionRule
 
qi::rule< Iterator,
ast::ComparatorExpressionNode(ast::ExpressionNode
&), Skipper > 
m_comparatorExpressionRule
 
qi::symbols< UnicodeChar,
ast::ComparatorExpressionNode::Comparator
m_comparatorSymbols
 
qi::rule< Iterator,
ast::OrExpressionNode(ast::ExpressionNode
&), Skipper > 
m_orExpressionRule
 
qi::rule< Iterator,
ast::AndExpressionNode(ast::ExpressionNode
&), Skipper > 
m_andExpressionRule
 
qi::rule< Iterator,
ast::ParenExpressionNode(),
Skipper > 
m_parenExpressionRule
 
qi::rule< Iterator,
ast::FunctionExpressionNode(),
Skipper > 
m_functionExpressionRule
 
qi::rule< Iterator,
std::vector
< ast::FunctionExpressionNode::ArgumentType >
), Skipper > 
m_functionArgumentListRule
 
qi::rule< Iterator,
ast::FunctionExpressionNode::ArgumentType(),
Skipper > 
m_functionArgumentRule
 
qi::rule< Iterator,
ast::ExpressionArgumentNode(),
Skipper > 
m_expressionArgumentRule
 
qi::rule< Iterator,
ast::IdentifierNode(), Skipper > 
m_identifierRule
 
qi::rule< Iterator,
ast::RawStringNode(), Skipper > 
m_rawStringRule
 
qi::rule< Iterator,
ast::LiteralNode(), Skipper > 
m_literalRule
 
qi::rule< Iterator,
ast::CurrentNode()> 
m_currentNodeRule
 
qi::rule< Iterator, UnicodeChar()> m_literalCharRule
 
qi::rule< Iterator, UnicodeChar()> m_literalEscapeRule
 
qi::rule< Iterator, UnicodeChar()> m_rawStringCharRule
 
qi::rule< Iterator, std::pair
< UnicodeChar, UnicodeChar >)> 
m_rawStringEscapeRule
 
qi::rule< Iterator, String()> m_quotedStringRule
 
qi::rule< Iterator, String()> m_unquotedStringRule
 
qi::rule< Iterator, UnicodeChar()> m_unescapedCharRule
 
qi::rule< Iterator, UnicodeChar()> m_escapedCharRule
 
qi::rule< Iterator, UnicodeChar()> m_unicodeCharRule
 
qi::rule< Iterator, UnicodeChar()> m_surrogatePairCharacterRule
 
qi::rule< Iterator > m_quoteRule
 
qi::rule< Iterator > m_escapeRule
 
qi::symbols< UnicodeChar,
UnicodeChar
m_controlCharacterSymbols
 
qi::rule< Iterator, Index()> m_indexRule
 

Detailed Description

template<typename Iterator, typename Skipper = encoding::space_type>
class jmespath::parser::Grammar< Iterator, Skipper >

The Grammar class contains the PEG rule definition based on the EBNF specifications of JMESPath.

The actual grammar is slightly modified compared to the specifications to eliminate left recursion.

Template Parameters
IteratorString iterator type
SkipperCharacter skipper parser type
See Also
http://jmespath.org/specification.html#grammar

Constructor & Destructor Documentation

template<typename Iterator , typename Skipper = encoding::space_type>
jmespath::parser::Grammar< Iterator, Skipper >::Grammar ( )
inline

Constructs a Grammar object.

Member Data Documentation

template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, ast::AndExpressionNode(ast::ExpressionNode&), Skipper> jmespath::parser::Grammar< Iterator, Skipper >::m_andExpressionRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, ast::ArrayItemNode(), Skipper> jmespath::parser::Grammar< Iterator, Skipper >::m_arrayItemRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, ast::BracketSpecifierNode(), Skipper> jmespath::parser::Grammar< Iterator, Skipper >::m_bracketSpecifierRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, ast::ComparatorExpressionNode(ast::ExpressionNode&), Skipper> jmespath::parser::Grammar< Iterator, Skipper >::m_comparatorExpressionRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::symbols<UnicodeChar, ast::ComparatorExpressionNode::Comparator> jmespath::parser::Grammar< Iterator, Skipper >::m_comparatorSymbols
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::symbols<UnicodeChar, UnicodeChar> jmespath::parser::Grammar< Iterator, Skipper >::m_controlCharacterSymbols
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, ast::CurrentNode()> jmespath::parser::Grammar< Iterator, Skipper >::m_currentNodeRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, UnicodeChar()> jmespath::parser::Grammar< Iterator, Skipper >::m_escapedCharRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator> jmespath::parser::Grammar< Iterator, Skipper >::m_escapeRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, ast::ExpressionArgumentNode(), Skipper> jmespath::parser::Grammar< Iterator, Skipper >::m_expressionArgumentRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, ast::ExpressionNode(), qi::locals<ast::ExpressionNode>, Skipper > jmespath::parser::Grammar< Iterator, Skipper >::m_expressionRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, ast::FilterExpressionNode(), Skipper> jmespath::parser::Grammar< Iterator, Skipper >::m_filterExpressionRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, ast::FlattenOperatorNode(), Skipper> jmespath::parser::Grammar< Iterator, Skipper >::m_flattenOperatorRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, std::vector<ast::FunctionExpressionNode::ArgumentType>), Skipper> jmespath::parser::Grammar< Iterator, Skipper >::m_functionArgumentListRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, ast::FunctionExpressionNode::ArgumentType(), Skipper> jmespath::parser::Grammar< Iterator, Skipper >::m_functionArgumentRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, ast::FunctionExpressionNode(), Skipper> jmespath::parser::Grammar< Iterator, Skipper >::m_functionExpressionRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, ast::HashWildcardNode(ast::ExpressionNode&), Skipper> jmespath::parser::Grammar< Iterator, Skipper >::m_hashWildcardRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, ast::HashWildcardNode(ast::ExpressionNode&), Skipper> jmespath::parser::Grammar< Iterator, Skipper >::m_hashWildcardSubexpressionRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, ast::IdentifierNode(), Skipper> jmespath::parser::Grammar< Iterator, Skipper >::m_identifierRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, ast::IndexExpressionNode(ast::ExpressionNode&), Skipper> jmespath::parser::Grammar< Iterator, Skipper >::m_indexExpressionRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, Index()> jmespath::parser::Grammar< Iterator, Skipper >::m_indexRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, ast::MultiselectHashNode::KeyValuePairType(), Skipper> jmespath::parser::Grammar< Iterator, Skipper >::m_keyValuePairRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, ast::ListWildcardNode(), Skipper> jmespath::parser::Grammar< Iterator, Skipper >::m_listWildcardRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, UnicodeChar()> jmespath::parser::Grammar< Iterator, Skipper >::m_literalCharRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, UnicodeChar()> jmespath::parser::Grammar< Iterator, Skipper >::m_literalEscapeRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, ast::LiteralNode(), Skipper> jmespath::parser::Grammar< Iterator, Skipper >::m_literalRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, ast::MultiselectHashNode(), Skipper> jmespath::parser::Grammar< Iterator, Skipper >::m_multiselectHashRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, ast::MultiselectListNode(), Skipper> jmespath::parser::Grammar< Iterator, Skipper >::m_multiselectListRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, ast::NotExpressionNode(ast::ExpressionNode&), Skipper> jmespath::parser::Grammar< Iterator, Skipper >::m_notExpressionRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, ast::OrExpressionNode(ast::ExpressionNode&), Skipper> jmespath::parser::Grammar< Iterator, Skipper >::m_orExpressionRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, ast::ParenExpressionNode(), Skipper> jmespath::parser::Grammar< Iterator, Skipper >::m_parenExpressionRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, ast::PipeExpressionNode(ast::ExpressionNode&), Skipper> jmespath::parser::Grammar< Iterator, Skipper >::m_pipeExpressionRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, String()> jmespath::parser::Grammar< Iterator, Skipper >::m_quotedStringRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator> jmespath::parser::Grammar< Iterator, Skipper >::m_quoteRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, UnicodeChar()> jmespath::parser::Grammar< Iterator, Skipper >::m_rawStringCharRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, std::pair<UnicodeChar, UnicodeChar>)> jmespath::parser::Grammar< Iterator, Skipper >::m_rawStringEscapeRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, ast::RawStringNode(), Skipper> jmespath::parser::Grammar< Iterator, Skipper >::m_rawStringRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, ast::SliceExpressionNode(), Skipper> jmespath::parser::Grammar< Iterator, Skipper >::m_sliceExpressionRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, ast::SubexpressionNode(ast::ExpressionNode&), Skipper> jmespath::parser::Grammar< Iterator, Skipper >::m_subexpressionRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, UnicodeChar()> jmespath::parser::Grammar< Iterator, Skipper >::m_surrogatePairCharacterRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, ast::ExpressionNode(), Skipper> jmespath::parser::Grammar< Iterator, Skipper >::m_topLevelExpressionRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, UnicodeChar()> jmespath::parser::Grammar< Iterator, Skipper >::m_unescapedCharRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, UnicodeChar()> jmespath::parser::Grammar< Iterator, Skipper >::m_unicodeCharRule
private
template<typename Iterator , typename Skipper = encoding::space_type>
qi::rule<Iterator, String()> jmespath::parser::Grammar< Iterator, Skipper >::m_unquotedStringRule
private

The documentation for this class was generated from the following file: