[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] Why is RelationalExpr left associative?


Subject: RE: [xsl] Why is RelationalExpr left associative?
From: Mark Nahabedian <naha@xxxxxxxxxx>
Date: Sun, 29 Apr 2001 23:52:59 -0400 (Eastern Daylight Time)

Gavin Thomas Nicol writes:
 > > So the question is: why are these kinds of expressions allowed? Are 
 > > there any useful situations in which one can benefit?
 > 
 > I agree that the grammar is quirky. I think the intent here is to
 > allow typical recursive definitions of expressions, which typically
 > allow something like
 > 
 >   3 > 2 > 1 
 > 
 > to appear.

The problem is that the semantics implied by the grammar are different
from the semantics that one might reasonably infer: that A > B > C is
asking if B is between A and C.  There are few programming languages
that provide this semantics, but there are some.

 > 
 > There are a number of things in XPath that are semantically
 > invalid, but grammatically correct. Almost all of these are
 > caused by some form of recursion, or inclusion of a construct
 > to allow it's use in different contexts through recursion.
 > 
 >   "foo"
 >   5
 >   "foo"[5]
 >   "foo"[5]
 >   "foo"["bar"[4]]
 >   5[4[3[2[1]]]]
 > 
 > are legal according to the grammar.
 > 
 > I've often thought of recasting the grammar... but it's 
 > probably too late now.
 > 
 > 
 > 
 >  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
 > 
 > 


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



Current Thread
Keywords