Public Member Functions | Protected Member Functions | Protected Attributes

TinyXPath::token_syntax_decoder Class Reference

#include <xpath_syntax.h>

Inheritance diagram for TinyXPath::token_syntax_decoder:
Inheritance graph
[legend]
Collaboration diagram for TinyXPath::token_syntax_decoder:
Collaboration graph
[legend]

List of all members.

Public Member Functions

Protected Member Functions

Protected Attributes


Detailed Description

XPath syntax decoder class. Pure virtual : one need to redefine v_action and i_get_action_counter


Constructor & Destructor Documentation

TinyXPath::token_syntax_decoder::token_syntax_decoder (  )  [inline]
virtual TinyXPath::token_syntax_decoder::~token_syntax_decoder (  )  [inline, virtual]

Member Function Documentation

bool TinyXPath::token_syntax_decoder::o_recognize ( xpath_construct  xc_current,
bool  o_final 
) [protected]

Recognize one XPath construction
This function throws exceptions every time there's a failure in a backtracking attempt. This should only happen when o_final is false, otherwise we have a syntax error

Parameters:
xc_current XPath construction to recognize
o_final true if we need to go on, false if it's just a trial in the backtracking

References i_get_action_counter(), TinyXPath::lex_2_colon, TinyXPath::lex_2_dot, TinyXPath::lex_2_slash, TinyXPath::lex_and, TinyXPath::lex_at, TinyXPath::lex_cbrack, TinyXPath::lex_colon, TinyXPath::lex_comma, TinyXPath::lex_comment, TinyXPath::lex_cparen, TinyXPath::lex_div, TinyXPath::lex_dollar, TinyXPath::lex_dot, TinyXPath::lex_equal, TinyXPath::lex_gt, TinyXPath::lex_gt_equal, TinyXPath::lex_literal, TinyXPath::lex_lt, TinyXPath::lex_lt_equal, TinyXPath::lex_minus, TinyXPath::lex_mod, TinyXPath::lex_ncname, TinyXPath::lex_node, TinyXPath::lex_not_equal, TinyXPath::lex_number, TinyXPath::lex_obrack, TinyXPath::lex_oparen, TinyXPath::lex_or, TinyXPath::lex_orchar, TinyXPath::lex_plus, TinyXPath::lex_processing_instruction, TinyXPath::lex_slash, TinyXPath::lex_star, TinyXPath::lex_text, TinyXPath::token_list::ltp_get(), TinyXPath::o_is_axis_name(), u_nb_recurs, v_action(), TinyXPath::token_list::v_inc_current(), TinyXPath::token_list::v_set_current(), TinyXPath::xpath_abbreviated_absolute_location_path, TinyXPath::xpath_abbreviated_axis_specifier, TinyXPath::xpath_abbrieviated_step, TinyXPath::xpath_absolute_location_path, TinyXPath::xpath_absolute_location_path_abbrev, TinyXPath::xpath_absolute_location_path_slash, TinyXPath::xpath_absolute_location_path_slash_rel, TinyXPath::xpath_additive_expr, TinyXPath::xpath_additive_expr_minus, TinyXPath::xpath_additive_expr_more_minus, TinyXPath::xpath_additive_expr_more_plus, TinyXPath::xpath_additive_expr_plus, TinyXPath::xpath_additive_expr_simple, TinyXPath::xpath_and_expr, TinyXPath::xpath_and_expr_and, TinyXPath::xpath_and_expr_simple, TinyXPath::xpath_argument, TinyXPath::xpath_axis_name, TinyXPath::xpath_axis_specifier, TinyXPath::xpath_axis_specifier_at, TinyXPath::xpath_axis_specifier_axis_name, TinyXPath::xpath_axis_specifier_empty, TinyXPath::xpath_equality_expr, TinyXPath::xpath_equality_expr_equal, TinyXPath::xpath_equality_expr_not_equal, TinyXPath::xpath_equality_expr_simple, TinyXPath::xpath_expr, TinyXPath::xpath_filter_expr, TinyXPath::xpath_filter_expr_predicate, TinyXPath::xpath_filter_expr_primary, TinyXPath::xpath_function_call, TinyXPath::xpath_location_path, TinyXPath::xpath_location_path_abs, TinyXPath::xpath_location_path_rel, TinyXPath::xpath_multiplicative_expr, TinyXPath::xpath_multiplicative_expr_div, TinyXPath::xpath_multiplicative_expr_mod, TinyXPath::xpath_multiplicative_expr_simple, TinyXPath::xpath_multiplicative_expr_star, TinyXPath::xpath_name_test, TinyXPath::xpath_name_test_ncname, TinyXPath::xpath_name_test_qname, TinyXPath::xpath_name_test_star, TinyXPath::xpath_node_test, TinyXPath::xpath_node_test_name_test, TinyXPath::xpath_node_test_pi, TinyXPath::xpath_node_test_pi_lit, TinyXPath::xpath_node_test_reserved_keyword, TinyXPath::xpath_or_expr, TinyXPath::xpath_or_expr_or, TinyXPath::xpath_or_expr_simple, TinyXPath::xpath_path_expr, TinyXPath::xpath_path_expr_2_slash, TinyXPath::xpath_path_expr_filter, TinyXPath::xpath_path_expr_location_path, TinyXPath::xpath_path_expr_slash, TinyXPath::xpath_predicate, TinyXPath::xpath_predicate_expr, TinyXPath::xpath_primary_expr, TinyXPath::xpath_primary_expr_function_call, TinyXPath::xpath_primary_expr_literal, TinyXPath::xpath_primary_expr_number, TinyXPath::xpath_primary_expr_paren_expr, TinyXPath::xpath_primary_expr_variable, TinyXPath::xpath_relational_expr, TinyXPath::xpath_relational_expr_gt, TinyXPath::xpath_relational_expr_gte, TinyXPath::xpath_relational_expr_lt, TinyXPath::xpath_relational_expr_lte, TinyXPath::xpath_relational_expr_simple, TinyXPath::xpath_relative_location_path, TinyXPath::xpath_relative_location_path_rel_double_slash_step, TinyXPath::xpath_relative_location_path_rel_step, TinyXPath::xpath_relative_location_path_step, TinyXPath::xpath_step, TinyXPath::xpath_step_abbrev, TinyXPath::xpath_step_full, TinyXPath::xpath_unary_expr, TinyXPath::xpath_unary_expr_minus, TinyXPath::xpath_unary_expr_simple, TinyXPath::xpath_union_expr, TinyXPath::xpath_union_expr_simple, TinyXPath::xpath_union_expr_union, TinyXPath::xpath_unknown, TinyXPath::xpath_variable_reference, TinyXPath::xpath_xml_local_part, TinyXPath::xpath_xml_prefix, TinyXPath::xpath_xml_q_name, TinyXPath::xpath_xml_q_name_colon, and TinyXPath::xpath_xml_q_name_simple.

Referenced by v_syntax_decode().

Here is the call graph for this function:

Here is the caller graph for this function:

void TinyXPath::token_syntax_decoder::v_syntax_decode (  ) 

Decodes the syntax of an XPath expression. On entry, the lexical analysis has already produced a list of basic tokens.
Throws : syntax_error, syntax_overflow

References TinyXPath::cp_disp_class_lex(), TinyXPath::token_list::ltp_get(), o_recognize(), u_nb_recurs, TinyXPath::token_list::v_set_current_top(), TinyXPath::token_list::v_tokenize_expression(), and TinyXPath::xpath_expr.

Here is the call graph for this function:

virtual void TinyXPath::token_syntax_decoder::v_action ( xpath_construct  xc_rule,
unsigned  u_sub,
unsigned  u_variable = 0,
const char *  cp_literal = "" 
) [pure virtual]

Pure virtual : action taken when processing the rule.

Implemented in TinyXPath::token_redef.

Referenced by o_recognize().

Here is the caller graph for this function:

virtual int TinyXPath::token_syntax_decoder::i_get_action_counter (  )  [pure virtual]

Implemented in TinyXPath::token_redef.

Referenced by o_recognize().

Here is the caller graph for this function:


Member Data Documentation

Nb of recursions.

Referenced by o_recognize(), and v_syntax_decode().


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