- From: Roger L. Costello <costello@mitre.org>
- Date: Thu, 29 Jan 2004 16:35:57 -0500
- To: scott_boag@us.ibm.com, public-qt-comments@w3.org, "Costello,Roger L." <costello@mitre.org>
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