- 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