/*! Conditions:: * */ /*! Conditions:: OP_CONTEXT */ /*! Conditions:: VAL_CONTEXT INITIAL */ /*! Production:: $accept : xpath_expr $end */ /*! Production:: arg_list : arg_list COMMA expr */ /*! Production:: arg_list : expr */ /*! Production:: axis_specifier : AT */ /*! Production:: axis_specifier : QNAME DBL_COLON */ /*! Production:: base_expr : LPAREN expr RPAREN */ /*! Production:: base_expr : VAR */ /*! Production:: base_expr : func_call */ /*! Production:: base_expr : literal */ /*! Production:: expr : base_expr */ /*! Production:: expr : filter_expr */ /*! Production:: expr : hashtag_expr */ /*! Production:: expr : op_expr */ /*! Production:: expr : path_expr */ /*! Production:: filter_expr : base_expr predicate */ /*! Production:: filter_expr : filter_expr predicate */ /*! Production:: func_call : QNAME LPAREN RPAREN */ /*! Production:: func_call : QNAME LPAREN arg_list RPAREN */ /*! Production:: hashtag_expr : HASH QNAME */ /*! Production:: hashtag_expr : HASH QNAME SLASH hashtag_path */ /*! Production:: hashtag_path : QNAME */ /*! Production:: literal : NUM */ /*! Production:: literal : STR */ /*! Production:: loc_path : DBL_SLASH rel_loc_path */ /*! Production:: loc_path : SLASH */ /*! Production:: loc_path : SLASH rel_loc_path */ /*! Production:: loc_path : rel_loc_path */ /*! Production:: node_test : NODETYPE_COMMENT LPAREN RPAREN */ /*! Production:: node_test : NODETYPE_NODE LPAREN RPAREN */ /*! Production:: node_test : NODETYPE_PROCINSTR LPAREN RPAREN */ /*! Production:: node_test : NODETYPE_PROCINSTR LPAREN STR RPAREN */ /*! Production:: node_test : NODETYPE_TEXT LPAREN RPAREN */ /*! Production:: node_test : NSWILDCARD */ /*! Production:: node_test : QNAME */ /*! Production:: node_test : WILDCARD */ /*! Production:: op_expr : MINUS expr */ /*! Production:: op_expr : expr AND expr */ /*! Production:: op_expr : expr DIV expr */ /*! Production:: op_expr : expr EQ expr */ /*! Production:: op_expr : expr GT expr */ /*! Production:: op_expr : expr GTE expr */ /*! Production:: op_expr : expr LT expr */ /*! Production:: op_expr : expr LTE expr */ /*! Production:: op_expr : expr MINUS expr */ /*! Production:: op_expr : expr MOD expr */ /*! Production:: op_expr : expr MULT expr */ /*! Production:: op_expr : expr NEQ expr */ /*! Production:: op_expr : expr OR expr */ /*! Production:: op_expr : expr PLUS expr */ /*! Production:: op_expr : expr UNION expr */ /*! Production:: path_expr : base_expr DBL_SLASH rel_loc_path */ /*! Production:: path_expr : base_expr SLASH rel_loc_path */ /*! Production:: path_expr : filter_expr DBL_SLASH rel_loc_path */ /*! Production:: path_expr : filter_expr SLASH rel_loc_path */ /*! Production:: path_expr : loc_path */ /*! Production:: predicate : LBRACK expr RBRACK */ /*! Production:: rel_loc_path : rel_loc_path DBL_SLASH step */ /*! Production:: rel_loc_path : rel_loc_path SLASH func_call */ /*! Production:: rel_loc_path : rel_loc_path SLASH step */ /*! Production:: rel_loc_path : step */ /*! Production:: step : DBL_DOT */ /*! Production:: step : DOT */ /*! Production:: step : step_unabbr */ /*! Production:: step_body : axis_specifier node_test */ /*! Production:: step_body : node_test */ /*! Production:: step_unabbr : step_body */ /*! Production:: step_unabbr : step_unabbr predicate */ /*! Production:: xpath_expr : expr EOF */ /*! Rule:: != */ /*! Rule:: # */ /*! Rule:: $ */ /*! Rule:: ("[^"\""]*"|'[^'\'']*') */ /*! Rule:: (and(?={NotNameStartChar})) */ /*! Rule:: (div(?={NotNameStartChar})) */ /*! Rule:: (mod(?={NotNameStartChar})) */ /*! Rule:: (or(?={NotNameStartChar})) */ /*! Rule:: ({Digit}+(\.{Digit}*)?|(\.{Digit}+)) */ /*! Rule:: , */ /*! Rule:: - */ /*! Rule:: :: */ /*! Rule:: < */ /*! Rule:: <= */ /*! Rule:: = */ /*! Rule:: > */ /*! Rule:: >= */ /*! Rule:: @ */ /*! Rule:: \${QName} */ /*! Rule:: \( */ /*! Rule:: \) */ /*! Rule:: \* */ /*! Rule:: \+ */ /*! Rule:: \. */ /*! Rule:: \.\. */ /*! Rule:: \/ */ /*! Rule:: \/\/ */ /*! Rule:: \[ */ /*! Rule:: \] */ /*! Rule:: \| */ /*! Rule:: comment(?=({WhiteSpace}?\()) */ /*! Rule:: node(?=({WhiteSpace}?\()) */ /*! Rule:: processing-instruction(?=({WhiteSpace}?\()) */ /*! Rule:: text(?=({WhiteSpace}?\()) */ /*! Rule:: {NCName}:\* */ /*! Rule:: {QName} */ /*! Rule:: {WhiteSpace} */