2002-02-16  Per Bothner  <per@bothner.com>

	* XQuery.java (<init>):  Don't print error if library class not found.

2002-02-05  Per Bothner  <per@bothner.com>

	* XQParser.java (parseNodeTest):  Take axis parameter.
	Handle child::, attribute::NAME, and descendant::NAME; else error.
	(parseRelativePathExpr):  Handle EXPR//NAME.
	(parseStepExpr):  Pass axis to parseNodeTest.

	* XQParser.java (parseFLWRExpression):  Allow ellding of 'return'
	if body is another 'let' or 'for'.

2002-01-31  Per Bothner  <per@bothner.com>

	* XQuery (<init>):  Also do loadClass of gnu.kawa.servlet.HTTP.

2002-01-29  Per Bothner  <per@bothner.com>

	* XQParser.java (stringValue):  New method.
	(parseContent, parseElementConstructor):  Coerce attributesto string.

	* XQuery.java (defineAll, loadClass):  Moved to Interpreter, and
	make non-static.
	(<init>):  Update to no longer explicitly pass environ to loadClass.

2002-01-24  Per Bothner  <per@bothner.com>

	* XQParser.java (parseElementConstructor):  Handle ATTR={EXPR} syntax.

2002-01-23  Per Bothner  <per@bothner.com>

	* XQParser.java (interactive): Moved to super-class Lexer.
	(<init>):  Don't aet interactive - let Shell do it instead.

	* XQParser.java (makeExprSequence):  AppendValues has moved.

2002-01-21  Per Bothner  <per@bothner.com>

	* XQuery.java (<init>):  Update for moved of class Document.
	Add definition for "unescaped-data".

2002-01-19  Per Bothner  <per@bothner.com>

	* XQuery.java:  Update for move of WriteTo class.

2002-01-13  Per Bothner  <per@bothner.com>

	* XQParser.java (parse):  Skip initial Unix script header #!/PROGRAM.

2002-01-07  Per Bothner  <per@bothner.com>

	* XQParser.java (parseContent):  Handle '{{' and '}}'.

2002-01-02  Per Bothner  <per@bothner.com>

	* XQuery.java (<init>):  Define 'number' and 'concat'.

2001-12-24  Per Bothner  <per@bothner.com>

	* XQuery.java (<init>):  Add new pre-defined functions.

	* XQParser.java: Add support for XQuery comments.
	(skipComment):  New method.
	(getRawToken):  Check for and skip comments.

	* XQParser.java (parseDataType):  Parse 'element' type.
	(parseElementType):  New method.

	* XQParser.java (parseTypeSwitch):  New method handle 'typeswitch'.
	(parseMaybePrimaryExpr):  Call it.

	* XQParser.java:  Fix parsing for 'where' in FLWR-expression.
	(OP_WHERE):  New constant.
	(peekOperator):  Recognize 'where'.
	(parseFLWRExpression):  Fix handling of 'where'.

	* XQParser.java (parseContent):  Handle char references.
	(appendNamedEntity):  New method to resolve char references.

	& XQParser.java (parseElementConstructor):  Handle abbreviated element.

	* XQParser.java:  Use case-sentive matching for keywords etc.
	* XQParser.java:  Use LambdaExp constructor taking a parameter count.

2001-11-24  Per Bothner  <per@bothner.com>

	* XQParser.java:  Set line number information various places.

	* XQParser.java (parseStepQualifiers, parseRelativePathExpr,
	parseFLWRExpression):  Add various optimizations.

2001-11-18  Per Bothner  <per@bothner.com>

	* XQParser.java:  Many changes to add line-and-column to expressions.
	(peekNonSpace):  New method.

	* XQParser.java (parseMaybePrimaryExpr):  Special handling for
	$request and $response.

	* XQuery.java (<init>):  Force Compilation.usingTailCalls to true.

2001-11-12  Per Bothner  <per@bothner.com>

	* XQParser.java:  Handle namespaces better.
	(NCNAME_COLON_TOKEN):  New token kind - NCNAME followed by ':'.
	(getrawtoken):  Improve parsing - can return NCNAME_COLON_TOKEN.
	(peekOperand):  Handle NCNAME_COLON_TOKEN.
	(parseNameTest):  New method.
	(parse):  Handle namespace declarations.

2001-11-06  Per Bothner  <per@bothner.com>

	* XQParser.java (interactive):  New flag.
	(syntaxError):  If interactive, skip to eol and throw SYnatxException

	* XQParser.java (makeBinary):  Redefine comparisons to use
	gnu.xquery.util.Compare, with new support for '=' and '!='.

	* XQuery.java:  Implement XQuery string using String, not FString.

	* XQPsrser.java (parseElementConstructor):  Better parsing of end tags.
	Handle end tag immediately followed by '=', not reading it as '>='.
	Complain if end tag name doesn't match start tag.
	(parseExprSequence):  Return syntaxError instead of throing Error.

	* XQuery.java (<init>):  Define "string" function.

2001-11-01  Per Bothner  <per@bothner.com>

	* XQParser.java (peekOperand):  Don't unread after EOF.

	* XQParser.java (parseNodeTest):  New method.
	(parseRelativePathExpr):  Don't check node-tests here.
	(parseStepQualifiers):  New method.
	(parseMaybePrimaryExpr):  Now handles node tests.

	* XQParser.java (parseMaybePrimaryExpr):  Fix indexes when checking
	for "let" or "for".

	* XQuery.java (<init>):  Define "true" and "false".

2001-10-17  Per Bothner  <per@bothner.com>

	* XQParser.java (parseRelativePathExpr):  Handle PATH/*, PATH/@ATTR,
	PATH/ATTR.  Update for changed/moved implementation.
	(parseNameSpec):  Intern name.

2001-10-02  Per Bothner  <per@bothner.com>

	* XQuery.java (parseFile):  Handle multiple top-level "statements".

	* XQuery.java (getNamespaceOf):  New method.

	* XQuery.java (<init>):  Define function "empty".

	* XQuery.java (registerEnvironment):  Explicitly setting current
	Environment is redundant, so don't.

	* XQParser.java (DEFINE_TOKEN):  New constant.
	(peekOperand):  Recognize 'define'.
	(parseMaybePrimaryExpr):  Search for matching function Declaration.
	(parseFunctionDefinition):  New method.
	(parse):  Handle 'define function'.

2001-09-29  Per Bothner  <per@bothner.com>

	* XQParser.java (parseContent):  Use Vector's 'addElement' method
	instead of 'add', for JDK 1.1.x compatibility.

2001-09-25  Per Bothner  <per@bothner.com>

	* XQParser.java (parseExprSequence):  New method.
	(parseMaybePrimaryExpr):  Call parseExprSequence after '('.
	(parse):  Call parseExprSequence.

2001-09-24  Per Bothner  <per@bothner.com>

	* XQParser.java (OP_INSTANCEOF, OP_RANGE_TO):  New constants.
	(instanceOf):  New static field.
	(peekOperator):  Map 'to', 'mul' and 'instanceof'.
	(peekOperand):  Special case for 'if' followed by '('.
	(makeFunctionExp):  Add overloads.
	(makeBinary):  Add implementations for OP_MUL, OP_DIV, OP_MOD,
	OP_LSS. OP_LEQ, OP_GRT, OP_GEQ and OP_RANGE_TO.
	(parseDataType):  New method.
	(parseBinarOp):  Special case for OP_INSTANCEOF and OP_AND.
	(parseMaybePrimaryExpr):  Handle 'if' expressions.
	(parseIfExpr):  New method.
	(parseFLWRExpression):  Call parseExpr instead of parsePrimaryExpr.

2001-08-16  Per Bothner  <per@bothner.com>

	* XQParser.java (FNAME_TOKEN):  New constant.
	(peekOperand):  Check for FuncName here.
	(parseMaybePrimaryExpr):  This we no longer check for FuncName here.
	Instead, we recognize FNAME_TOKEN.

	* XQParser.java (makeBinary):  Make static.
	(makeExprSequence):  New static helper method.
	(parseBinaryExpr):  Return on unexpected '</'.
	(parseRelativePathExpr):  Handle EXP/name.
	(parseContent):  Add missing getRawToken.
	(parseEnclosedExpr):  Handle an ExprSequence.
	(parseMaybePrimaryExpr):  Use makeExprSequence.
	Add explicit check for eof.
	Emit error message if we saw '</'.

	* XQParser.java (parseFLWRExpression):  Re-write to make 'for' work.
	* XQuery.java (parse):  Lexer's parse methods return null on eof.
	(<init>): Define new function string-value.

	* XQuery.java (<init>):  Set flag so module body will print values.
	(registerEnvironment): No longer need to do so here.

2001-07-18  Per Bothner  <per@bothner.com>

	New package gnu.xquery.lang.
	* XQuery.java:  New class, extends Interpreter.
	* XQParser.java:  New class, extends LispReader (for now).

