xquery top-level property

Mode xquery
final

Implementation

final xquery = Mode(
    refs: {},
    name: "XQuery",
    aliases: ["xpath", "xq"],
    case_insensitive: false,
    illegal: "(proc)|(abstract)|(extends)|(until)|(#)",
    keywords: {
      "\$pattern": "[a-zA-Z\$][a-zA-Z0-9_:-]*",
      "keyword": [
        "module",
        "schema",
        "namespace",
        "boundary-space",
        "preserve",
        "no-preserve",
        "strip",
        "default",
        "collation",
        "base-uri",
        "ordering",
        "context",
        "decimal-format",
        "decimal-separator",
        "copy-namespaces",
        "empty-sequence",
        "except",
        "exponent-separator",
        "external",
        "grouping-separator",
        "inherit",
        "no-inherit",
        "lax",
        "minus-sign",
        "per-mille",
        "percent",
        "schema-attribute",
        "schema-element",
        "strict",
        "unordered",
        "zero-digit",
        "declare",
        "import",
        "option",
        "function",
        "validate",
        "variable",
        "for",
        "at",
        "in",
        "let",
        "where",
        "order",
        "group",
        "by",
        "return",
        "if",
        "then",
        "else",
        "tumbling",
        "sliding",
        "window",
        "start",
        "when",
        "only",
        "end",
        "previous",
        "next",
        "stable",
        "ascending",
        "descending",
        "allowing",
        "empty",
        "greatest",
        "least",
        "some",
        "every",
        "satisfies",
        "switch",
        "case",
        "typeswitch",
        "try",
        "catch",
        "and",
        "or",
        "to",
        "union",
        "intersect",
        "instance",
        "of",
        "treat",
        "as",
        "castable",
        "cast",
        "map",
        "array",
        "delete",
        "insert",
        "into",
        "replace",
        "value",
        "rename",
        "copy",
        "modify",
        "update"
      ],
      "type": [
        "item",
        "document-node",
        "node",
        "attribute",
        "document",
        "element",
        "comment",
        "namespace",
        "namespace-node",
        "processing-instruction",
        "text",
        "construction",
        "xs:anyAtomicType",
        "xs:untypedAtomic",
        "xs:duration",
        "xs:time",
        "xs:decimal",
        "xs:float",
        "xs:double",
        "xs:gYearMonth",
        "xs:gYear",
        "xs:gMonthDay",
        "xs:gMonth",
        "xs:gDay",
        "xs:boolean",
        "xs:base64Binary",
        "xs:hexBinary",
        "xs:anyURI",
        "xs:QName",
        "xs:NOTATION",
        "xs:dateTime",
        "xs:dateTimeStamp",
        "xs:date",
        "xs:string",
        "xs:normalizedString",
        "xs:token",
        "xs:language",
        "xs:NMTOKEN",
        "xs:Name",
        "xs:NCName",
        "xs:ID",
        "xs:IDREF",
        "xs:ENTITY",
        "xs:integer",
        "xs:nonPositiveInteger",
        "xs:negativeInteger",
        "xs:long",
        "xs:int",
        "xs:short",
        "xs:byte",
        "xs:nonNegativeInteger",
        "xs:unisignedLong",
        "xs:unsignedInt",
        "xs:unsignedShort",
        "xs:unsignedByte",
        "xs:positiveInteger",
        "xs:yearMonthDuration",
        "xs:dayTimeDuration"
      ],
      "literal": [
        "eq",
        "ne",
        "lt",
        "le",
        "gt",
        "ge",
        "is",
        "self::",
        "child::",
        "descendant::",
        "descendant-or-self::",
        "attribute::",
        "following::",
        "following-sibling::",
        "parent::",
        "ancestor::",
        "ancestor-or-self::",
        "preceding::",
        "preceding-sibling::",
        "NaN"
      ]
    },
    contains: [
      Mode(className: "variable", begin: "[\$][\\w\\-:]+"),
      Mode(className: "built_in", variants: [
        Mode(
            begin: "\\barray:",
            end:
                "(?:append|filter|flatten|fold-(?:left|right)|for-each(?:-pair)?|get|head|insert-before|join|put|remove|reverse|size|sort|subarray|tail)\\b"),
        Mode(
            begin: "\\bmap:",
            end:
                "(?:contains|entry|find|for-each|get|keys|merge|put|remove|size)\\b"),
        Mode(
            begin: "\\bmath:",
            end:
                "(?:a(?:cos|sin|tan[2]?)|cos|exp(?:10)?|log(?:10)?|pi|pow|sin|sqrt|tan)\\b"),
        Mode(begin: "\\bop:", end: "\\(", excludeEnd: true),
        Mode(begin: "\\bfn:", end: "\\(", excludeEnd: true),
        Mode(
            begin:
                "[^</\$:'\"-]\\b(?:abs|accumulator-(?:after|before)|adjust-(?:date(?:Time)?|time)-to-timezone|analyze-string|apply|available-(?:environment-variables|system-properties)|avg|base-uri|boolean|ceiling|codepoints?-(?:equal|to-string)|collation-key|collection|compare|concat|contains(?:-token)?|copy-of|count|current(?:-)?(?:date(?:Time)?|time|group(?:ing-key)?|output-uri|merge-(?:group|key))?data|dateTime|days?-from-(?:date(?:Time)?|duration)|deep-equal|default-(?:collation|language)|distinct-values|document(?:-uri)?|doc(?:-available)?|element-(?:available|with-id)|empty|encode-for-uri|ends-with|environment-variable|error|escape-html-uri|exactly-one|exists|false|filter|floor|fold-(?:left|right)|for-each(?:-pair)?|format-(?:date(?:Time)?|time|integer|number)|function-(?:arity|available|lookup|name)|generate-id|has-children|head|hours-from-(?:dateTime|duration|time)|id(?:ref)?|implicit-timezone|in-scope-prefixes|index-of|innermost|insert-before|iri-to-uri|json-(?:doc|to-xml)|key|lang|last|load-xquery-module|local-name(?:-from-QName)?|(?:lower|upper)-case|matches|max|minutes-from-(?:dateTime|duration|time)|min|months?-from-(?:date(?:Time)?|duration)|name(?:space-uri-?(?:for-prefix|from-QName)?)?|nilled|node-name|normalize-(?:space|unicode)|not|number|one-or-more|outermost|parse-(?:ietf-date|json)|path|position|(?:prefix-from-)?QName|random-number-generator|regex-group|remove|replace|resolve-(?:QName|uri)|reverse|root|round(?:-half-to-even)?|seconds-from-(?:dateTime|duration|time)|snapshot|sort|starts-with|static-base-uri|stream-available|string-?(?:join|length|to-codepoints)?|subsequence|substring-?(?:after|before)?|sum|system-property|tail|timezone-from-(?:date(?:Time)?|time)|tokenize|trace|trans(?:form|late)|true|type-available|unordered|unparsed-(?:entity|text)?-?(?:public-id|uri|available|lines)?|uri-collection|xml-to-json|years?-from-(?:date(?:Time)?|duration)|zero-or-one)\\b"),
        Mode(begin: "\\blocal:", end: "\\(", excludeEnd: true),
        Mode(
            begin: "\\bzip:",
            end:
                "(?:zip-file|(?:xml|html|text|binary)-entry| (?:update-)?entries)\\b"),
        Mode(
            begin: "\\b(?:util|db|functx|app|xdmp|xmldb):",
            end: "\\(",
            excludeEnd: true)
      ]),
      Mode(className: "string", variants: [
        Mode(
            begin: "\"",
            end: "\"",
            contains: [Mode(begin: "\"\"", relevance: 0)]),
        Mode(begin: "'", end: "'", contains: [Mode(begin: "''", relevance: 0)])
      ]),
      Mode(
          className: "number",
          begin:
              "(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",
          relevance: 0),
      Mode(
          className: "comment",
          begin: "\\(:",
          end: ":\\)",
          relevance: 10,
          contains: [Mode(className: "doctag", begin: "@\\w+")]),
      Mode(className: "meta", begin: "%[\\w\\-:]+"),
      Mode(
          className: "title",
          begin: "\\bxquery version \"[13]\\.[01]\"\\s?(?:encoding \".+\")?",
          end: ";"),
      Mode(
          beginKeywords:
              "element attribute comment document processing-instruction",
          end: "\\{",
          excludeEnd: true),
      Mode(
          begin: "<([\\w._:-]+)(\\s+\\S*=('|\").*('|\"))?>",
          end: "(\\/[\\w._:-]+>)",
          subLanguage: [
            "xml"
          ],
          contains: [
            Mode(begin: "\\{", end: "\\}", subLanguage: ["xquery"]),
            Mode(self: true)
          ])
    ]);