📄 changelog
字号:
Fixes bug reported 09-28 by Weiqi Gao <weiqigao@networkusa.net>.2003-09-18 Per Bothner <per@bothner.com> * XQuery.java (<init>): Add root function. * XQParser.java (parsePathExpr): Handle non-relative path expressions. (parseRelativePathExpr): Caller now does the parseStepExpr. * XQParser.java: Add import of ClassType.2003-09-14 Per Bothner <per@bothner.com> * XQParser.java (parseNodeTest): Support other axes. * XQParser.java (funcNamedChildren, funcNamedDescendants, funcNamedDescendantsOrSelf): Remove no-longer-used static fields.2003-09-11 Per Bothner <per@bothner.com> * XQParser.java (skipSpaceOrComment): Rename to skipSpace, taking an extra argument to indicate skipping past new line. (parseFLWRExpression): Use renamed skipSpace. (skipSpace): Use new skipSpace(true). (skipHSpace): Replaced by skipSpace(false). (peekNonSpace, peekOperand, parseMaybePrimaryExpr, parse): Use new unary skipSpace. (parseSeparator): Provide implementation. (parse): Add missing parseSeparator calls. (parse): Update to new xmlspace syntax.2003-09-10 Per Bothner <per@bothner.com> * XQParser.java (warnOldVersion): New static variable. (DEFINE_FUNCTION_TOKEN): Rename to DEFINE_VARIABLE_TOKEN. (DECLARE_FUNCTION_TOKEN): Rename to DECLARE_VARIABLE_TOKEN. (peekOperand): Recognize <declare function> amd <declare variable>. Also recognize (and if warnOldVersion warn) the <define ...> syntax. (parse): Update to handle new syntax as well as old syntax. * XQParser.java (DOT_VARNAME, POSITION_VARNAME, LAST_VARNAME): Change values to names don't need to be mangled. * XQParser.java (pushStandardNamespaces): Define 'local' prefix. * XQParser.java (parseNodeTest, parseRelativePathExpr): Simplify using ApplyExp constructor that takes a method or Procedure.. * XQParser.java (parseMaybePrimaryExpr): Do syntaxError instead of throw on syntax confusion. * XQParser.java (parseFLWRExpression): Re-organize methods so we can parse and handle 'at' clause.2003-09-04 Per Bothner <per@bothner.com> * XQuery.java (parse, parseFile): Change defaultCallConvention to new CALL_WITH_CONSUMER.2003-08-03 Per Bothner <per@bothner.com> * XQParser.java (parseNodeTest): Handle self:: and parent:: axies. (parseNodeTest): Handle '.' and '..' abbreviated steps. * XQParser.java (focusDefined): Remove field. Instead, just check whether DOT_VARNAME is in scope. (parseRelativePathExpr, parseStepQualifiers, parseFunctionDefinition): Don't set/unset focusDefined. (DOT_VARNAME, POSITION_VARNAME, LAST_VARNAME): New constants. (parseNodeTest): Look for DOT_VARNAME to see if context is defined. (parseCheckNodeTest): Remove - just use parseNodeTest directly. (parseMaybePrimaryExpr): Re-write position() and last() to RerefenceExps using POSITION_VARNAME and LAST_VARNAME. (parseNodeTest): Use new xxxAxis classes. (parseRelativePathExpr): Second expression is now a 3-argument LambdaExp. Pass it DOT_VARNAME, POSITION_VARNAME, and LAST_VARNAME. Handle '//' now exactly as specified in standard. Comment out some optimizations for now. Use new RelativeStep class instead of ValuesMap. (parseStepQualifiers): Pass axis parameter, since handling of qualifiers depends on type of axis (forward, reverse, or none). Second expression is also now a 3-argument LambdaExp. Pass it DOT_VARNAME, POSITION_VARNAME, and LAST_VARNAME. * XQuery.java (<init>): Don't define position() - it is now re-written at parse time to POSITION_VARNAME.2003-08-01 Per Bothner <per@bothner.com> * XQuery.java (XQUERY_FUNCTION_NAMESPACE): Update URL. * XQParser.java (peekOperator): Map 'union' to OP_UNION. (makeBinary): Implement OP_UNION using UnionNodes class. * XQParserjava (makeBinary): Return syntaxError if unimplemented op. Updates throws specifier to allow this. * XQParser.java (preserveBoundarySpace): New field. (DECLARE_XMLSPACE_TOKEN): New constant. (peekOperand): Map 'declare' 'xmlspace' to DECLARE_XMLSPACE_TOKEN. (parseContent): Skip boundary whitespace if appropriate. (parse): Parse xmlspace declaration. * XQParser.java (parseFunctionDefinition): Handle optional return type declaration using Convert.setCoercedReturnValue.2003-07-26 Per Bothner <per@bothner.com> * XQuery.java (<init>): Add distinct-nodes function.2003-07-23 Terje Pedersen <terje@brassforum.com> * XQuery.java (<init>): Define string-length, substring-before, substring-after, translate, string-pad, contains, starts-with, ends-with, string-join): New standard functions.2003-07-23 Per Bothner <per@bothner.com> * XQParser.java (OP_IS, OP_ISNOT, OP_GRTGRT, OP_LSSLSS): New tokens. (OP_xxx): Renumber, at least for now. (getRawToken): Recognize '>>' as OP_GRTGRT and '<<' as OP_LSSLSS. (peekOperator): Recognis 'is' and 'isnot'. (makeBinary): Handle new tokens. * XQParser.java (parseMaybePrimaryExpr): Intern string literal.2003-07-17 Per Bothner <per@bothner.com> * XQParser.java (matchConstructorKeyword): Fix bug reported 07-17 by Craig.Munday@ecard.com.au.2003-07-10 Per Bothner <per@bothner.com> * XQParser.java (matchConstructorKeyword): Add extra unread/read pair, in case 'next' is the only character of a name.2003-06-27 Per Bothner <per@bothner.com> * XQParser.java (XQParser): Error handling improvements: Better messages, plus special case for 'define QName ('.2003-06-05 Per Bothner <per@bothner.com> * XQuery.java (Prompter.apply1): Prettier prompt format.2003-05-31 Per Bothner <per@bothner.com> * XQuery.java (getOutputConsumer): Update return type.2003-05-30 Per Bothner <per@bothner.com> * XQParser.java (DEFINE_VARIABLE_TOKEN): New token constant. (peekOperand): Recognize 'define variable'. (parse): Handle DEFINE_VARIABLE_TOKEN.2003-05-13 Per Bothner <per@bothner.com> * XQParser.java: Handle new KindType syntax of May '03 draft. (parseSimpleKindType, warnOldStyleKindTest. parseItemtype): New. (parseElementType): Handle new syntax. (parseDataType): Handle new syntax. Use OccurrenceType.2003-05-10 Per Bothner <per@bothner.com> * XQParser.java (checkNext): Moved to Lexer, and made public. * XQParser.java (getrawToken): In string literals, handle character and entity references, and doubled delimters. (appendNamedEntity): Removed StringBuffer parameter; write to tokenBuffer instead. (parseEntityOrCharRef): New method. (parseContent): Use tokenBuffer instead of a new StringBuffer. Handle double-quated attributes delimiters. Use parseEntityOrCharRef.2003-05-08 Per Bothner <per@bothner.com> * XQParser.java (skipComment): Now handles (:new-style:) comments. (skipOldComment): New method to handle {--old-style--} comments. (skipSpaceOrComment, getRawToken): Handle either style of comment. (peekOperand): A NAME '(' followed by ':' is not an FNAME. * XQuery.java (Prompter.apply1): Use new-style comment syntax. * XQParser.java (COLON_EQUAL_TOKEN): New constant. (getRawToken): If ':' is followed by '=' return COLON_EQUAL_TOKEN. If NCNAME ':' is followed by '=' return NCNAME_TOKEN, and back up. (parseFLWRExpression): No need to check for NCNAME_COLON_TOKEN. * XQParser.java (parseEnclosedExpr): More error-tolerant parsing. (parseIfExp): Recover from missing 'then' or 'else'. (parseFLWRExpression): Recover from ':=' / 'in' confusion. * XQuery.java (<init>): Allow 'doc' as synonym for 'document'. New 'trace' method.2003-04-21 Per Bothner <per@bothner.com> * XQuery.java (parse, parseFile): Do ResolveNames. * XQParser.java (parseMaybePrimaryExpr): Remove now-redundant function-name lookup; the rewriteToInvocation call appears redundant given following Inlinecalls.2003-04-19 Per Bothner <per@bothner.com> * XQParser.java: Update to use NameLookup. (parseStepQualifiers): Defer NameLookup's push after addDeclaration. (parseFunctionDefinition): Explicitly push declarations.2003-04-18 Per Bothner <per@bothner.com> * XQParser.java (mark, reset): New methods. (matchConstructorKeyword): Now handles context dependency correctly, parsing ahead using mark and reset if needed. (parseMaybePrimaryExpr): Let matchConstructorKeyword check context.2003-03-29 Per Bothner <per@bothner.com> * XQParser.java (interpreter): New field. * XQuery.java (getLexer): Set XQParser's interpreter field. * XQuery.java (<init>): Define lower-case, upper-case, substring. * XQuery.java (getTypeFor): Handle type "string". * XQParser.java (parseDataType): Use getTypeFor.2003-03-15 Per Bothner <per@bothner.com> * XQParser.java (parseElementConstructor): The default namespace for an attribute is "", not null. * XQParser.java (parseNameSpec): Don't bother passing the defaultNamespaceUri to parseNameTest as it isn't used.2003-03-04 Per Bothner <per@bothner.com> * XQParser.java (<init>): New function node-name. * XQParser.java (matchConstructorKeyword): New helper method. (parseMaybePrimaryExpr): Implement computed constructors.2003-03-02 Per Bothner <per@bothner.com> * XQuery.java (<init>): BaseUri moved to gnu.kawa.functions.2003-02-26 Per Bothner <per@bothner.com> * XQuery.java (<init>): Explicitly specify field names for iterator-items and list-items.2003-02-20 Per Bothner <per@bothner.com> * XQParser.java (parseMaybePrimaryExpr): Servlet handling of $request and $response even if Compilation.generateServletDefault isn't set.2003-02-13 Per Bothner <per@bothner.com> * XQuery.java (<init>): Define base-uri function.2003-02-11 Per Bothner <per@bothner.com> * XQuery.java (getInstance): Move save/restore of current Environment from here ... (<init>): .. to here. (registerEnvironment): Add call to Environment.setCurrent.2003-01-12 Per Bothner <per@bothner.com> * XQuery.java (Prompter.apply1): Always emit readState character. * XQParser.java (pushNesting, popNesting): New methods. (getRawRoken): Push/pop nesting around string literal. (parseBinaryExpr): Push/pop nesting around binary operator. (parseEnclosedExpr, parseTypeSwitch, parseMaybePrimaryExpr, parseIfExpr, parseFLWRExpression, parse): Call pushNesting/popNesting. (parseElementConstructor): Remove increment/decrement of nesting here. (syntaxError): Read port's readState. * XQParser.java (syntaxError): New overload takes paramter indicating number of columns to subtract from current position. (tokenWidth): Return number of chars taken by curToken, (syntaxError): Call tokenWidth. * XQParser.java (getRawRoken): Use syntaxError rather than error on seeing unrecognized character. * XQParser.java (parseMaybePrimaryExpr): Do setProcedureName on function name in call. * XQParser,java (parseExprSequence): Take new rightToken parameter so we can emit error on un-matched ')'. * XQParser.java (pushStandardNamespaces): New method. (<init>(InPort)): Call <init>(InPort,SourceMessages). (<init>(InPort,SourceMessage): Call pushStandardNamespaces. * XQParser.java (parseOptionalTypeDeclaration): New method. (parseDataType): Make ClassType if unrecognized type name. (parseFunctionDefinition): Call parseOptionalTypeDeclaration. * XQParser.java (parseFLWRExpression): Remove unused sc local.2002-11-23 Per Bothner <per@bothner.com> * XQuery.java (<init>): Declare iterator-items and list-items.2002-11-20 Per Bothner <bothner@bothner.com> * XQparser.java (parseMaybePrimaryExpr): Check if function names a method invocation. * XQuery.java (<init>): Recover from missing servlet classes.2002-11-16 Per Bothner <per@bothner.com> * XQParser.java (parseFunctionDefinition): Parse QName function name. * XQParser.java, XQuery.java: Use gnu.mapping.Symbol instead of gnu.xml.QName. * XQuery.java (XQUERY_FUNCTION_NAMESPACE): New constant. * XQParser.java (defaultFunctionNamespace): New field. (defaultNamespace): Rename field to defaultElementNamespace.2002-11-10 Per Bothner <per@bothner.com> * XQParser.java (focusDefined): New field. (parseCheckNodeTest): New method, checks focusDefined. (parseStepExpr, parseMaybePrimaryExpr): Call parseCheckNodeTest. (parseFunctionDefinition): Clear and restore focusDefined. (parseRelativePathExpr, parseStepQualifiers): Set focusDefined.2002-11-05 Per Bothner <per@bothner.com> * XQuery.java (parseFile): Take and use new 'immediate' parameter.2002-10-22 Per Bothner <per@bothner.com> * XQParser.java (DEFINE_TOKEN): Remove constant. (DECLARE_NAMESPACE_TOKEN, DEFAULT_ELEMENT_TOKEN, DEFAULT_FUNCTION_TOKEN, DEFINE_FUNCTION_TOKEN): New constants. (lookingAt): New helper method to handle double-lexeme tokens. (peekOperand): Use lookingAt. (parse): Handle new tokens - and updated syntax. Warn about old syntax.2002-07-28 Per Bothner <per@bothner.com> * XQParser.java (parseDataType): Handle 'text' and 'node'
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -