[xsl] Re: Two "Philisophical" questions about the language

Subject: [xsl] Re: Two "Philisophical" questions about the language
From: "Vladimir Nesterovsky" <vladimir@xxxxxxxxxxxxxxxxxxxx>
Date: Fri, 30 Jan 2009 12:06:24 +0200
To those questions I would add another one:
  why "if" xpath 2.0 expression demands "else" part?

  IfExpr    ::=    "if" "(" Expr ")" "then" ExprSingle "else"
ExprSingle

The main reason was to avoid the infamous dangling-else ambiguity:


if (c) then if (d) then e else f

I personally would have preferred the solution of a closing token such as
"end-if" or "fi".

I do remember a half-day spent on if/then/else, where it was clear that
no-one much liked the status-quo syntax, but no-one could come up with
improvements that had majority support.

I've just thought that by the same token there are dangling sequence items in:


for $item in $items return
 expr1, expr2

and in

if (expr) then
 expr1
else
 expr1, expr2

I have found myself a couple of times troubled with such "for", and
as result, deliberately taught myself to write braces:

for $item in $items return
(
 expr1, expr2
)

Vladimir Nesterovsky
http://www.nesterovsky-bros.com/


Current Thread