Subject: Re: Re: FXPath - A comment on EXSL
From: Jeni Tennison <mail@xxxxxxxxxxxxxxxx>
Date: Thu, 1 Mar 2001 13:41:24 +0000
|
Hi David,
> As the FXPath grammar is written, IfExpr has higher precedence than
> AndExpr so it will be parsed as
>
> if (and) then (*) else (- 2)
I'm no parser writer, but when you said:
> If I've not overlooked something, the FXPath grammar can be parsed
> with a single token lookahead. This is what's currently needed for
> XPath 1.0.
I thought that single token lookahead had something to do with only
needing to look ahead a single token to be able to work out what a
token means. Perhaps my naivety is showing through, but in your
example:
> or and and or and or or and or
then you *know* that the first 'or' must be an element name because if
it were an operator name then it would have something in front of it,
so you *know* that the first 'and' has to be an operator name, so you
*know* that the second 'and' has to be an element name and so on. So
you can tokenise it all successfully before working out what kind of
expression has priority.
With:
if and then * else - 2
then you look at the first 'if' and all you know is it could be an
element name or the 'if' keyword. So you look ahead a single token,
and see the 'and', but this doesn't help - the 'and' could be an
element name (in which case the 'if' is a keyword) or it could be an
operator (in which case the 'if' is an element name).
In fact you have to tokenise the entire expression before you choose
to interpret the 'if' as a keyword because the if expression has a
higher priority than the and expression. Before then, you don't know
whether it's going to work out to be:
if and then * else (can only be an and expression)
if and then * else or (can only be an if expression)
if and then * else or foo (can only be an or expression)
Perhaps I've misinterpreted the term 'single token lookahead'?
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
- <Possible follow-ups>
- David Rosenborg - Thu, 1 Mar 2001 07:21:10 -0500 (EST)
|
|