Re: [XPath] Legal vaues for a satisfies expression in a quantifier?

Hi Scott,

Hmm, I am not sure where you are getting that expansion - where does it say
the value of a quantifier's satisfies expression is a "PathExpr"?  I am
looking at section 3.9 of the latest XPath 2.0 spec and it says that the value
of a quantifier's satisfies expression is "ExprSingle", not "PathExpr", i.e.,

QuantifiedExpr    ::=    (("some" "$") | ("every" "$")) VarName "in"
ExprSingle ("," "$" VarName "in" ExprSingle)* "satisfies" ExprSingle

Note the use of "ExprSingle" in three places.

That said, PathExpr makes good sense.  So, I believe that section 3.9 needs to
be corrected to:

 QuantifiedExpr    ::=    (("some" "$") | ("every" "$")) VarName "in" PathExpr
("," "$" VarName "in" PathExpr)* "satisfies" PathExpr

Agree?  /Roger



scott_boag@us.ibm.com wrote:

> Hi Roger.  I may be misunderstanding your question, but I think the answer
> is that OrExpr recurses down PathExpr.  You can follow the recursion
> basically by clicking on the first member of the right hand side of the
> BNF productions.  This particular cascade is what implements the built-in
> precedence.  Anyway, I believe the BNF to be correct, and the structure,
> dumped from the diagnostics of the test parser, is:
>
> |XPath
> |   Expr
> |      QuantifiedExpr
> |         Every every $
> |         VarName part
> |         In in
> |         PathExpr
> |            RootDescendants //
> |            StepExpr
> |               NodeTest
> |                  NameTest
> |                     QName part
> |         Satisfies satisfies
> |         PathExpr
> |            VarName part
> |            StepExpr
> |               At @
> |               NodeTest
> |                  NameTest
> |                     QName discounted
>
> Note that the test parser reduces many of the unneeded steps, for instance
> for ExprSingle to PathExpr, as I think you would for most ASTs.
>
> -scott

Received on Thursday, 29 January 2004 16:36:44 UTC