- From: Michael Rys <mrys@microsoft.com>
- Date: Thu, 29 Jan 2004 14:24:05 -0800
- To: "Roger L. Costello" <costello@mitre.org>, <scott_boag@us.ibm.com>, <public-qt-comments@w3.org>
I think you want to bind ors inside the satisfy clause. I agree with Scott that the current grammar seems to give the right precedence... A PathExpr is also a ExprSingle. Best regards Michael > -----Original Message----- > From: public-qt-comments-request@w3.org [mailto:public-qt-comments- > request@w3.org] On Behalf Of Roger L. Costello > Sent: Thursday, January 29, 2004 1:36 PM > To: scott_boag@us.ibm.com; public-qt-comments@w3.org; Costello,Roger L. > Subject: 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 17:24:31 UTC