- From: <bugzilla@wiggum.w3.org>
- Date: Wed, 10 Jan 2007 09:23:36 +0000
- To: public-qt-comments@w3.org
- CC:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=4176
Summary: Syntax "do rename ... as ..." problematic with
tokenization
Product: XPath / XQuery / XSLT
Version: Working drafts
Platform: Macintosh
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: Update Facility
AssignedTo: andrew.eisenberg@us.ibm.com
ReportedBy: martin@x-hive.com
QAContact: public-qt-comments@w3.org
While implementing the current XQuery updates working draft I noticed a problem
with the syntax for "do rename". Syntax is "do rename" expr "as" expr. Assuming
a stateful, stack based Lexer, the implementation will run into problems. I'm
using the state names from the "Building a Tokenizer for XPath or XQuery" note.
The Lexer will be in default state after the "do rename" token, then lex the
expr content. After that, it's in operator state. When it now encounters an
"as" token it's ambiguous whether the next state should be itemtype or default.
Type declarations like "let $x as foo :=" need the itemtype state, do rename
needs default state.
As far as I can see it's not possible to solve this using the stack. The only
two workarounds are to either duplicate the expression states in the lexer just
for the do rename statement (ie. have a "default but do rename" state) or to
inject the state knowledge from the parser. Both doesn't quite get a buty
price.
Is "do rename expr into expr" correct English? That should give less problems.
Received on Wednesday, 10 January 2007 09:23:46 UTC