RE: Xquery grammar question

Hi Scott,

Here is another round of issues that I found with regard to the 22 August 2003 draft.

1) Seperator should be spelled Separator

2) The QuerySeperator token (DEFAULT and OPERATOR states) is not defined in the spec

3) QName "(" - Why is this token group needed? Isn't the disambiguation of QName "(" from QName "(:" handled by the longest match rule when the '(' is encountered?

4) State changes are mixed in with token groups. How is this reconciled? Aren't token groups expected to be processed in the same state?

5) The following is more thinking out loud than an issue.

Q: Why are the following designated "named terminals" when they might be more easily represented as grammar productions?
SchemaMode ::= "lax" | "strict" | "skip"
SchemaGlobalTypeName ::= "type" "(" QName ")"
SchemaGlobalContext ::= QName | SchemaGlobalTypeName SchemaContextStep ::= QName PITarget ::= NCName VarName ::= QName
A: Because they initiate state changes.

Possible solution: Leave as is or make them productions and add state change in the grammar

Can you think of any other way that this could be handled to make the distinction between lexical analysis and parsing more clear.

6) Can the explicit whitespace designation be removed from the grammar and placed at the lexical level and/or handled by lexical states?

regards,

Kevin Jones

Received on Friday, 5 September 2003 17:37:55 UTC