📄 changelog
字号:
* XQuery.java (initXQuery): Remove inccorectly implemented index and string functions, now handled in XQResolveNames. Remove bogus last-index-of and string-value functions. * XQParser.java (pushStandardNamespaces): Use new XML_NAMESPACE. * XQParser.java (checkAllowedNamespaceDeclaration): New method. (parseElementConstructor): Call checkAllowedNamespaceDeclaration. (parse): Likewise. * XQParser.java (parseElementConstructor): Rename local variable typo defininingNamespace to definingNamespace.2006-03-25 Per Bothner <per@bothner.com> * XQResolveNames.java (STATIC_BASE_URI_BUILTIN): New constant. (<init>): Declare 'fn:static-base-uri'. (walkApplyExp): Handle STATIC_BASE_URI_BUILTIN. * XQResolveNames.java (checkArgCount): New private convenience method. (walkApplyExp): Use it various places to check number of arguments. * XQResolveNames.java (maybeAddNamespace): Map prefix=="" to null.2006-03-18 Per Bothner <per@bothner.com> * XQParser.java (parseMaybePrimaryExpr): Re-write to use a switch rather than a big 'if/else if/.../else' statement.2006-03-17 Per Bothner <per@bothner.com> * XQParser.java (parseQName): No longer erroneously try to resolve namespace prefixes here. Instead use logic from parseNameTest. (OP_ATTRIBUTE): Fix bug where it was same as OP_ELEMENT. (parseElementType): Rename to parseNamedNodeType. generalize to also attribute types, and return Expression. (makeNamedNodeType): New helper method. (parseItemType): Change to return Expression rather than Type. (parseMaybeKindTest): Likewise. Also handle OP_ATTRIBUTE. (parseNodeTest): Update accordingly. (parsedataType): Likewise. Create ApplyExp to call OccurrenceType.getInstance(); (setType): Remove method. Replace calls by Declarations's new setTypeExp method. (resolver): Remove no-longer-needed field. * XQResolveNames.java (RESOLVE_PREFIX_BUILTIN): New constant. (resolvePrefixDecl): New field. (walkApplyExp): Implement RESOLVE_PREFIX_BUILTIN. * XQuery.java (parse): Some simplication/cleanup since XQParser no longer needs XQResolveNames.2006-03-15 Per Bothner <per@bothner.com> * XQParser.java (castableAs): New field, used for 'cast as'. * XQResolveNames.java (namespaceResolve): Tweak error message. (walkReferenceExp): Look for cast "functions" as in xs:decimal. (walkApplyExp): If "function" is a Type, do a cast instead. * XQuery.java (typeMap): Rewrite to use XDataType members. (getStandardTYpe): New static function. (getTypeFor): Map various classes to standard XQuery types. * XQParser.java (peekOperand): Fix typo. (parseMaybeKindTest): Generalize OP_PI parsing to full syntax. Use new gnu.kawa.xml.ProcessingInstructionType. (parseMaybePrimaryExpr): Handle PI_TOKEN. (piNodeTest): No longer needed. * XQuery.java (initXQuery): Add a slew of date/time/duration-related functions. * XQParser.java (XQUERY_VERSION_TOKEN): New constant. (peekOperand): Map <"xquery" "version"> to XQUERY_VERSION_TOKEN. (parse): Handle XQUERY_VERSION_TOKEN. * XQParser.java (parseBinaryExpr): Coerce 'and' and 'or' results to boolean values. * XQParser.java (parsePathExpr, parseNodeTest, parseStepExpr): Tweaked error messages when context item is undefined. * XQParser.java (parseMaybePrimaryExpr): Handle - by ignoring - the 'ordered' and 'unordered' expressions. * XQParser.java (parseVariable): Inline Symbol.make call. * XQParser.java (parse): Pass Symbol, not String, to getExternal. * XQParser.java (syntaxError): Another overload. * XQParser.java (stringValue): Update for moved StringValue class. * XQResolveNames.java (walkApplyExp): Likewise. * XQuery.java (intXQuery): Likewise. Also add fn:string-to-codepoints and fn:codepoints-to-string. * XQuery.java (inXQuery): Declare fn:boolean and fn:in-scope-prefixes. * XQuery.java (initXQuery): Declare fn:abs, fn:floor, fn:ceiling, and fn:round-half-to-even. * XQParser.java (makeBinary): Use XQuery-specific ArithOp operators. (parseUnaryOp): Proper implementation of unary operators.2006-03-14 Per Bothner <per@bothner.com> * XQuery.java (initXQuery): Declare fn:zero-or-one, fn:one-or-more, and fn:exactly-one.2006-03-04 Per Bothner <per@bothner.com> * XQParser.java (parseNodeTest): Defer getRawToken until after a possible missing context error message.2006-03-01 Per Bothner <per@bothner.com> * XQParser.java (FLOAT_TOKEN): Replace by DECIMAL_TOKEN, DOUBLE_TOKEN. (getRawToken): Fix recognition of numbers to distinguish xs:decimal literals from xs:double literals - which have exponent. (parseMaybePrimaryExpr): Handle double/decimal literals correctly. * XQParser.java: Pass XQuery error code various places. (error, fatal): New methods take error code. * XQParser.java (OP_TREAT_AS, OP_CASTABLE_AS, OP_CAST_AS): New tokens. (priority): Handle new tokens. (match(String,String,boolean)): New method. (peekOperator): Recognize 'cast as', 'treat as', castable as'. (parseBinaryExpr): Handle new operations. (DECLARE_XMLSPACE_TOKEN): Rename to DECLARE_BOUNDARY_SPACE_TOKEN. (DECLARE_ORDERING_TOKEN): New token. (orderingModeUnordered): New field. (parseMaybePrimaryExpr): Recognize 'declare orderering'. * XQParser.java (OP_ELEMENT, OP_ATTRIBUTE, OP_ITEM, OP_EMPTY_SEQUENCE, OP_SCHEMA_ATTRIBUTE, OP_SCHEMA_ELEMENT, IF_LPAREN_TOKEN, TYPESWITCH_LPAREN_TOKEN, FOR_DOLLAR_TOKEN, LET_DOLLAR_TOKEN, SOME_DOLLAR_TOKEN, EVERY_DOLLAR_TOKEN, CASE_DOLLAR_TOKEN, VALIDATE_LBRACE_TOKEN, ORDERED_LBRACE_TOKEN, UNORDERED_LBRACE_TOKEN, ELEMENT_TOKEN, ATTRIBUTE_TOKEN, TEXT_TOKEN, COMMENT_TOKEN, PI_TOKEN, DOCUMENT_TOKEN): New token representing keyword followed by specific characters, so we can distinguish from a NameTest reliably. (peekOperand): Rewrite to use switch statement. Recognize tokens such 'element' depending on following characters. (parseSimpleKindType): Don't check for '(' - handled in peekOperand. (parseElementType): Likewise. (parseItemType, parseNodeTest, parseStepExpr): Update accordingly. (parseMaybeKindTest): New method. (parseExprSingle): Now matches specifications' grammar. (parseOtherStepExpr): Inline into caller. (matchConstructorKeyword): Remove no-longer-needed method. (parseMaybePrimaryExpr): Changes to use switch and new tokenization. * XQParser.java (makeNamespaceDecl): Handle empty (default) prefix.2006-03-01 Per Bothner <per@bothner.com> * XQParser.java (parse): Use new SetExp.makeDefinition factory method. * XQParser.java (pushStandardNamespaces): Define 'xdt' prefix, but as a synonym for 'xs'.2006-02-19 Per Bothner <per@bothner.com> * XQuery.java (define_method): Update for changed ClassMethods.apply.2006-02-09 Per Bothner <per@bothner.com> * XQuery.java (parse): Use new Compilation.pushNewModule method.2006-02-07 Per Bothner <per@bothner.com> * XQResolveNames.java (walkReferenceExp): Create GetNamedPart application rather than removed ClassMethodProc. * XQuery.java (define_method): Don't use removed ClassMethodProc. * XQParser.java (parseNameTest): NAMESPACE_PREFIX is now gone. (makeNamespaceDecl): Likewise. * XQResolvenames.java (namespaceResolve): Likewise.2006-02-05 Per Bothner <per@bothner.com> * XQuery.java (initXQuery): Define write-to-if-changed function. Define subsequence - as alias for old sublist.2006-01-10 Per Bothner <per@bothner.com> * XQuery.java (initXQuery): HTTP module was moved to gnu.kawa.servlet.2006-01-07 Per Bothner <per@bothner.com> * XQResolveNames.java (RESOLVE_URI_BUILTIN): New constant. (<init>): Declare "resolve-uri" function. (walkApplyExp): Handle RESOLVE_URI_BUILTIN. (getBaseUriExpr): New helper method.2006-01-05 Per Bothner <per@bothner.com> * XQuery.java (typeMap): Add binding for anyURI.2005-12-13 Per Bothner <per@bothner.com> * XQResolveNames.java (BASE_URI_BUILTIN): New constant. (<init>): Define fn:base-uri as builtin using BASE_URI_BUILTIN. (walkApplyExp): Handle BASE_URI_BUILTIN. * XQuery.java (initXQuery): Remove old defnition of fn:base-uri.2005-12-11 Per Bothner <per@bothner.com> * XQuery.java (evalToFocusProc): Update evalModule call.2005-11-28 Per Bothner <per@bothner.com> * XQParser.java (parse): Set class name from module namespace.2005-11-03 Per Bothner <per@bothner.com> * XQuery.java (XHTML_NAMESPACE): New constant. * XQParser.java (pushStandardNamespaces): Bind html to XHTML_NAMESPACE.2005-10-27 Per Bothner <per@bothner.com> * XQParser.java (tokenString): Handle STRING_TOKEN.2005-10-18 Per Bothner <per@bothner.com> * XQParser.java (parseMaybePrimaryExpr): Catch DFloNum parsing exception.2005-10-06 Per Bothner <per@bothner.com> * XQParser.java (parseMaybePrimaryExpr): For text and comment parse an ExprSequence, yielding a single argument. * XQParser.java (parseContent): Various tweaks to fix/improve handing of text content, including fixing whitespace insertion. * XQParser.java (parse): Set line number for 'external' variable. * XQParser.java (parseFLWRInner): Fix thinko in growing array. * XQParser.java (parseTypeSwitch): Number of parameters to LambdaExp for a case is 1, not 0. * XQResolveNames.java (push): If namespaceResolve returned null, skip this Declaration.2005-09-26 Per Bothner <per@bothner.com> * XQParser.java (parseFLWRExpression): Get next token after comma separating 'order by' specifiers.2005-09-25 Per Bothner <per@bothner.com> * XQParser.java: Re-do FLWOR parsing to handle 'order by'. (parseFLWRInner): New method. (parseFLWRExpression): Use parseFLWRInner. * XQParser.java (parseSortExpr): Remove obsolete method. (parseExp): Call parseExprSingle instead of parseSortExpr. * XQParser.java (parse): Move error for duplicate declare collation. * XQuery.java (initXQuery): Define 'reverse' function. * XQParser.java (parse): Fix 'declare variable' parse bug.2005-08-22 Per Bothner <per@bothner.com> * XQParser.java (parseNodeTest): Return ErrorExp if focus is undefined, to prevent confusion later, in XQResolveNames. * XQParser.java: Fix various places where we only accepted an ExprSingle rather than a (comma-separated) Expr. (parseStepQualifiers): Use parseExprSequence rather than parseExpr. (parseParenExpr): New method. (parseTypeSwitch, parseMaybePrimaryExpr, parseIfExpr): Use parseParenExpr. (parse): Handle DECLARE_BASE_URI_TOKEN - i.e 'declare base-uri'.2005-08-18 Per Bothner <per@bothner.com> * XQParser.java: Implement 'declare base-uri' statement. (vaseURI): New field. (parseURILiteral): New method. (parse): Use new method for both 'declare base-uri' and for 'declare default collation' statements. * XQResolveNames.java (DOC_BUILTIN, DOC_AVAILABLE_BUILTIN): New values. (walkApplyExp): Handle new macros. * XQuery.java (initXQuery): Remove declarations for fn:doc and deprecated fn:document since now handled by XQResolveNames constructor.2005-08-16 Per Bothner <per@bothner.com> * XQResolveNames.java (NAMESPACE_URI_BUILTIN, DISTINCT_VALUES_BUILTIN, LOCAL_NAME_BUILTIN, ROOT_BUILTIN, COMPARE_BUILTIN): New constants. (positionDecl): Remove unneded static field. (pushBuiltin): New convenience method. (<init>): Push various builtin functions. (getCollator, withCollator, withContext): New methods. (walkApplyExp): Implement support for various xxx_BUILTIN functions. * XQuery.java (initXQuery): Remove declaration for fn:root, since it is now handled by XQResolveNames constructor. * XQuery.java (initXQuery): Declare prefix-from-QName.2005-08-03 Per Bothner <per@bothner.com> * XQResolveNames.java (flookup): Change to take single argument. (lookup): Merge/inline into walkReferenceExp. (walkReferenceExp): Call ClassMethodProc's makeExp rather than make. * XQuery.java (instance): Make final. (xqEnvironment): New final field. (initXQuery): New private method, called from static constructor. (<init>): Just set two fields.2005-07-27 Per Bothner <per@bothner.com> * XQParser.java (parse): Pass external variable's type to getExternal. Don't set IS_UNKNOWN. * XQuery.java (getExternal): Cast external value if type is specified as a number.2005-07-21 Per Bothner <per@bothner.com> * XQuery.java (<init>): Comment out unused variable. * XQuery.java (getExternal): New method. * XQParser.java (parse): Implement external variables.2005-06-26 Per Bothner <per@bothner.com> * XQParser.java (priority): Use a switch statement instead of a shift. Also fix some errors in the precedence hierarchy, compared to the current draft. (OP_OR...OP_INSTANCEOF): Re-order to be plain sequential. (OP_IDIV): New operator. (peekOperator): Use switch statement for presuambly better performance. Map 'idiv' to OP_IDIV. (makeBinary): Handle OP_IDIV. (parseBinaryExpr): Remove now-bogus test.2005-06-04 Per Bothner <per@bothner.com> * XQuery.java: Update for AbstractFormat move to gnu.lists. * XQuery.java (getFormat): Change return type.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -